ChainedCursor implements BaseCursor<T> { public ChainedCursor( @Nonnull Function<Optional<T>, CompletableFuture<Optional<T>>> nextGenerator, @Nonnull Function<T, byte[]> continuationEncoder, @Nonnull Function<byte[], T> continuationDecoder, @Nullable byte[] continuation, @Nonnull Executor executor) { this(null, nextGenerator, continuationEncoder, continuationDecoder, continuation, null, executor); } ChainedCursor(
            @Nonnull Function<Optional<T>, CompletableFuture<Optional<T>>> nextGenerator,
            @Nonnull Function<T, byte[]> continuationEncoder,
            @Nonnull Function<byte[], T> continuationDecoder,
            @Nullable byte[] continuation,
            @Nonnull Executor executor);  ChainedCursor(
            @Nonnull FDBRecordContext context,
            @Nonnull Function<Optional<T>, CompletableFuture<Optional<T>>> nextGenerator,
            @Nonnull Function<T, byte[]> continuationEncoder,
            @Nonnull Function<byte[], T> continuationDecoder,
            @Nullable byte[] continuation,
            @Nonnull ScanProperties scanProperties); private  ChainedCursor(
            @Nullable FDBRecordContext context,
            @Nonnull Function<Optional<T>, CompletableFuture<Optional<T>>> nextGenerator,
            @Nonnull Function<T, byte[]> continuationEncoder,
            @Nonnull Function<byte[], T> continuationDecoder,
            @Nullable byte[] continuation,
            @Nullable ScanProperties scanProperties,
            @Nonnull Executor executor); @Nonnull @Override CompletableFuture<RecordCursorResult<T>> onNext(); @Nonnull @Override @Deprecated CompletableFuture<Boolean> onHasNext(); @Nullable @Override @Deprecated T next(); @Nullable @Override @Deprecated byte[] getContinuation(); @Nonnull @Override @Deprecated NoNextReason getNoNextReason(); @Override void close(); @Nonnull @Override Executor getExecutor(); @Override boolean accept(@Nonnull RecordCursorVisitor visitor);  }
@Test public void testChainedCursor() { RecordCursorIterator<Long> cursor = newCursor(null).asIterator(); long i = 0L; while (cursor.hasNext()) { assertEquals((Long) i, cursor.next()); ++i; } assertEquals(25, i); }