ContinuablePagedFluxCore<C,T,P> Class

Type Parameters

C

the type of the continuation token

T

The type of elements in a ContinuablePage

P

The ContinuablePage holding items of type T.

public abstract class ContinuablePagedFluxCore<C,T,P>
extends ContinuablePagedFlux<C,T,P>

The default implementation of ContinuablePagedFlux<C,T,P>.

This type is a Flux that provides the ability to operate on pages of type ContinuablePage<C,T> and individual items in such pages. This type supports user-provided continuation tokens, allowing for restarting from a previously-retrieved continuation token.

The type is backed by the Page Retriever provider provided in it's constructor. The provider is expected to return PageRetriever<C,P> when called. The provider is invoked for each Subscription to this Flux. Given provider is called per Subscription, the provider implementation can create one or more objects to store any state and Page Retriever can capture and use those objects. This indirectly associate the state objects to the Subscription. The Page Retriever can get called multiple times in serial fashion, each time after the completion of the Flux returned by the previous invocation. The final completion signal will be send to the Subscriber when the last Page emitted by the Flux returned by the Page Retriever has null continuation token.

Extending PagedFluxCore for Custom Continuation Token support

class ContinuationState<C> {
     private C lastContinuationToken;
     private boolean isDone;

     ContinuationState(C token) {
         this.lastContinuationToken = token;
     }

     void setLastContinuationToken(C token) {
         this.isDone = token == null;
         this.lastContinuationToken = token;
     }

     C getLastContinuationToken() {
         return this.lastContinuationToken;
     }

     boolean isDone() {
         return this.isDone;
     }
 }

 class FileContinuationToken {
     private final int nextLinkId;

     FileContinuationToken(int nextLinkId) {
         this.nextLinkId = nextLinkId;
     }

     public int getNextLinkId() {
         return nextLinkId;
     }
 }

 class File {
     private final String guid;

     File(String guid) {
         this.guid = guid;
     }

     public String getGuid() {
         return guid;
     }
 }

 class FilePage implements ContinuablePage<FileContinuationToken, File> {
     private final IterableStream<File> elements;
     private final FileContinuationToken fileContinuationToken;

     FilePage(List<File> elements, FileContinuationToken fileContinuationToken) {
         this.elements = IterableStream.of(elements);
         this.fileContinuationToken = fileContinuationToken;
     }

     @Override
     public IterableStream<File> getElements() {
         return elements;
     }

     @Override
     public FileContinuationToken getContinuationToken() {
         return fileContinuationToken;
     }
 }

 class FileShareServiceClient {
     Flux<FilePage> getFilePages(FileContinuationToken token) {
         List<File> files = Collections.singletonList(new File(UUID.randomUUID().toString()));
         if (token.getNextLinkId() < 10) {
             return Flux.just(new FilePage(files, null));
         } else {
             return Flux.just(new FilePage(files,
                 new FileContinuationToken((int) Math.floor(Math.random() * 20))));
         }
     }
 }

 FileShareServiceClient client = new FileShareServiceClient();

 Supplier<PageRetriever<FileContinuationToken, FilePage>> pageRetrieverProvider = () ->
     (continuationToken, pageSize) -> client.getFilePages(continuationToken);

 class FilePagedFlux extends ContinuablePagedFluxCore<FileContinuationToken, File, FilePage> {
     FilePagedFlux(Supplier<PageRetriever<FileContinuationToken, FilePage>>
         pageRetrieverProvider) {
         super(pageRetrieverProvider);
     }
 }

 FilePagedFlux filePagedFlux = new FilePagedFlux(pageRetrieverProvider);

Constructor Summary

Modifier Constructor Description
protected ContinuablePagedFluxCore(Supplier<PageRetriever<C,P>> pageRetrieverProvider)

Creates an instance of ContinuablePagedFluxCore<C,T,P>.

protected ContinuablePagedFluxCore(Supplier<PageRetriever<C,P>> pageRetrieverProvider, int pageSize)

Creates an instance of ContinuablePagedFluxCore<C,T,P>.

protected ContinuablePagedFluxCore(Supplier<PageRetriever<C,P>> pageRetrieverProvider, Integer pageSize, Predicate<C> continuationPredicate)

Creates an instance of ContinuablePagedFluxCore<C,T,P>.

Method Summary

Modifier and Type Method and Description
reactor.core.publisher.Flux<P> byPage()

Gets a Flux of ContinuablePage<C,T> starting at the first page.

reactor.core.publisher.Flux<P> byPage(C continuationToken)

Gets a Flux of ContinuablePage<C,T> beginning at the page identified by the given continuation token.

reactor.core.publisher.Flux<P> byPage(C continuationToken, int preferredPageSize)

Gets a Flux of ContinuablePage<C,T> beginning at the page identified by the given continuation token requesting each page to contain the number of elements equal to the preferred page size.

reactor.core.publisher.Flux<P> byPage(int preferredPageSize)

Gets a Flux of ContinuablePage<C,T> starting at the first page requesting each page to contain a number of elements equal to the preferred page size.

Integer getPageSize()

Get the page size configured this ContinuablePagedFluxCore<C,T,P>.

void subscribe(CoreSubscriber<? super T> coreSubscriber)

Subscribe to consume all items of type T in the sequence respectively.

Methods inherited from ContinuablePagedFlux

Methods inherited from java.lang.Object

Methods inherited from reactor.core.publisher.Flux

reactor.core.publisher.Flux.<A>reduce(A,java.util.function.BiFunction<A, reactor.core.publisher.Flux.<A>reduceWith(java.util.function.Supplier<A>,java.util.function.BiFunction<A, reactor.core.publisher.Flux.<A>scan(A,java.util.function.BiFunction<A, reactor.core.publisher.Flux.<A>scanWith(java.util.function.Supplier<A>,java.util.function.BiFunction<A, reactor.core.publisher.Flux.<C>buffer reactor.core.publisher.Flux.<C>buffer reactor.core.publisher.Flux.<C>buffer(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<C>bufferTimeout reactor.core.publisher.Flux.<C>bufferTimeout reactor.core.publisher.Flux.<C>bufferTimeout reactor.core.publisher.Flux.<C>bufferTimeout reactor.core.publisher.Flux.<E>cast reactor.core.publisher.Flux.<E>collect(java.util.function.Supplier<E>,java.util.function.BiConsumer<E, reactor.core.publisher.Flux.<E>doOnError(java.lang.Class<E>,java.util.function.Consumer< reactor.core.publisher.Flux.<E>onErrorContinue reactor.core.publisher.Flux.<E>onErrorContinue reactor.core.publisher.Flux.<E>onErrorMap(java.lang.Class<E>,java.util.function.Function< reactor.core.publisher.Flux.<E>onErrorResume(java.lang.Class<E>,java.util.function.Function< reactor.core.publisher.Flux.<E>onErrorReturn reactor.core.publisher.Flux.<E>subscribeWith reactor.core.publisher.Flux.<I,O>zip(java.util.function.Function< reactor.core.publisher.Flux.<I,O>zip(java.util.function.Function< reactor.core.publisher.Flux.<I>first(java.lang.Iterable< reactor.core.publisher.Flux.<I>first(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>firstWithSignal(java.lang.Iterable< reactor.core.publisher.Flux.<I>firstWithSignal(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>firstWithValue(java.lang.Iterable< reactor.core.publisher.Flux.<I>firstWithValue(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>index(java.util.function.BiFunction< reactor.core.publisher.Flux.<I>merge(int,org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>merge(java.lang.Iterable< reactor.core.publisher.Flux.<I>merge(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>mergeComparing(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>mergeDelayError(int,org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>mergeOrdered(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>mergePriority(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>mergeSequential(int,org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>mergeSequential(java.lang.Iterable< reactor.core.publisher.Flux.<I>mergeSequential(java.lang.Iterable< reactor.core.publisher.Flux.<I>mergeSequential(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>mergeSequentialDelayError(int,org.reactivestreams.Publisher< reactor.core.publisher.Flux.<I>mergeSequentialDelayError(java.lang.Iterable< reactor.core.publisher.Flux.<K,V>collectMap(java.util.function.Function< reactor.core.publisher.Flux.<K,V>collectMap(java.util.function.Function< reactor.core.publisher.Flux.<K,V>collectMultimap(java.util.function.Function< reactor.core.publisher.Flux.<K,V>collectMultimap(java.util.function.Function< reactor.core.publisher.Flux.<K,V>groupBy(java.util.function.Function< reactor.core.publisher.Flux.<K,V>groupBy(java.util.function.Function< reactor.core.publisher.Flux.<K>collectMap(java.util.function.Function< reactor.core.publisher.Flux.<K>collectMultimap(java.util.function.Function< reactor.core.publisher.Flux.<K>groupBy(java.util.function.Function< reactor.core.publisher.Flux.<K>groupBy(java.util.function.Function< reactor.core.publisher.Flux.<O>error reactor.core.publisher.Flux.<O>zip(java.lang.Iterable< reactor.core.publisher.Flux.<O>zip(java.lang.Iterable< reactor.core.publisher.Flux.<P>as(java.util.function.Function< reactor.core.publisher.Flux.<R,A>collect(java.util.stream.Collector< reactor.core.publisher.Flux.<R>concatMapIterable(java.util.function.Function< reactor.core.publisher.Flux.<R>concatMapIterable(java.util.function.Function< reactor.core.publisher.Flux.<R>doOnDiscard(java.lang.Class<R>,java.util.function.Consumer< reactor.core.publisher.Flux.<R>flatMap(java.util.function.Function< reactor.core.publisher.Flux.<R>flatMap(java.util.function.Function< reactor.core.publisher.Flux.<R>flatMapIterable(java.util.function.Function< reactor.core.publisher.Flux.<R>flatMapIterable(java.util.function.Function< reactor.core.publisher.Flux.<R>flatMapSequential(java.util.function.Function< reactor.core.publisher.Flux.<R>flatMapSequential(java.util.function.Function< reactor.core.publisher.Flux.<R>flatMapSequential(java.util.function.Function< reactor.core.publisher.Flux.<R>flatMapSequentialDelayError(java.util.function.Function< reactor.core.publisher.Flux.<R>handle(java.util.function.BiConsumer< reactor.core.publisher.Flux.<R>publish(java.util.function.Function< reactor.core.publisher.Flux.<R>publish(java.util.function.Function< reactor.core.publisher.Flux.<T,D>using(java.util.concurrent.Callable< reactor.core.publisher.Flux.<T,D>using(java.util.concurrent.Callable< reactor.core.publisher.Flux.<T,D>using(java.util.concurrent.Callable< reactor.core.publisher.Flux.<T,D>using(java.util.concurrent.Callable< reactor.core.publisher.Flux.<T,D>usingWhen(org.reactivestreams.Publisher<D>,java.util.function.Function< reactor.core.publisher.Flux.<T,D>usingWhen(org.reactivestreams.Publisher<D>,java.util.function.Function< reactor.core.publisher.Flux.<T,S>generate reactor.core.publisher.Flux.<T,S>generate(java.util.concurrent.Callable<S>,java.util.function.BiFunction<S,reactor.core.publisher.SynchronousSink<T>,S>,java.util.function.Consumer< reactor.core.publisher.Flux.<T,V>combineLatest(java.lang.Iterable< reactor.core.publisher.Flux.<T,V>combineLatest(java.lang.Iterable< reactor.core.publisher.Flux.<T,V>combineLatest(java.util.function.Function<java.lang.Object[],V>,int,org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T,V>combineLatest(java.util.function.Function<java.lang.Object[],V>,org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,O>zip(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,T3,T4,T5,T6,T7,T8>zip(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,T3,T4,T5,T6,T7>zip(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,T3,T4,T5,T6,V>combineLatest(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,T3,T4,T5,T6>zip(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,T3,T4,T5,V>combineLatest(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,T3,T4,T5>zip(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,T3,T4,V>combineLatest(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,T3,T4>zip(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,T3,V>combineLatest(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,T3>zip(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2,V>combineLatest(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T1,T2>zip(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T2,V>zipWith(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T2,V>zipWith(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T2,V>zipWithIterable(java.lang.Iterable< reactor.core.publisher.Flux.<T2>zipWith(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T2>zipWith(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T2>zipWithIterable(java.lang.Iterable< reactor.core.publisher.Flux.<T>concat(java.lang.Iterable< reactor.core.publisher.Flux.<T>concat(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>concat(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>concat(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>concatDelayError(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>concatDelayError(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>concatDelayError(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>concatDelayError(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>create(java.util.function.Consumer< reactor.core.publisher.Flux.<T>create(java.util.function.Consumer< reactor.core.publisher.Flux.<T>defer(java.util.function.Supplier< reactor.core.publisher.Flux.<T>deferContextual(java.util.function.Function<reactor.util.context.ContextView, reactor.core.publisher.Flux.<T>empty reactor.core.publisher.Flux.<T>error reactor.core.publisher.Flux.<T>error(java.util.function.Supplier< reactor.core.publisher.Flux.<T>from(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>fromArray reactor.core.publisher.Flux.<T>fromIterable(java.lang.Iterable< reactor.core.publisher.Flux.<T>fromStream(java.util.function.Supplier<java.util.stream.Stream< reactor.core.publisher.Flux.<T>fromStream(java.util.stream.Stream< reactor.core.publisher.Flux.<T>generate reactor.core.publisher.Flux.<T>just reactor.core.publisher.Flux.<T>just reactor.core.publisher.Flux.<T>merge(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>merge(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>merge(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>mergeComparing(int,java.util.Comparator< reactor.core.publisher.Flux.<T>mergeComparing(java.util.Comparator< reactor.core.publisher.Flux.<T>mergeComparingDelayError(int,java.util.Comparator< reactor.core.publisher.Flux.<T>mergeOrdered(int,java.util.Comparator< reactor.core.publisher.Flux.<T>mergeOrdered(java.util.Comparator< reactor.core.publisher.Flux.<T>mergePriority(int,java.util.Comparator< reactor.core.publisher.Flux.<T>mergePriority(java.util.Comparator< reactor.core.publisher.Flux.<T>mergePriorityDelayError(int,java.util.Comparator< reactor.core.publisher.Flux.<T>mergeSequential(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>mergeSequential(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>mergeSequentialDelayError(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>never reactor.core.publisher.Flux.<T>onAssembly reactor.core.publisher.Flux.<T>onAssembly reactor.core.publisher.Flux.<T>push(java.util.function.Consumer< reactor.core.publisher.Flux.<T>push(java.util.function.Consumer< reactor.core.publisher.Flux.<T>switchOnNext(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<T>switchOnNext(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<TRight,TLeftEnd,TRightEnd,R>groupJoin(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<TRight,TLeftEnd,TRightEnd,R>join(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<TUPLE,V>zip(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<U,R>withLatestFrom(org.reactivestreams.Publisher< reactor.core.publisher.Flux.<U,V,C>bufferWhen(org.reactivestreams.Publisher<U>,java.util.function.Function< reactor.core.publisher.Flux.<U,V>bufferWhen(org.reactivestreams.Publisher<U>,java.util.function.Function< reactor.core.publisher.Flux.<U,V>timeout(org.reactivestreams.Publisher<U>,java.util.function.Function< reactor.core.publisher.Flux.<U,V>timeout(org.reactivestreams.Publisher<U>,java.util.function.Function< reactor.core.publisher.Flux.<U,V>windowWhen(org.reactivestreams.Publisher<U>,java.util.function.Function< reactor.core.publisher.Flux.<U>delaySubscription reactor.core.publisher.Flux.<U>ofType reactor.core.publisher.Flux.<U>sample reactor.core.publisher.Flux.<U>sampleFirst(java.util.function.Function< reactor.core.publisher.Flux.<U>sampleTimeout(java.util.function.Function< reactor.core.publisher.Flux.<U>sampleTimeout(java.util.function.Function< reactor.core.publisher.Flux.<U>timeout reactor.core.publisher.Flux.<V,C>distinct(java.util.function.Function< reactor.core.publisher.Flux.<V,C>distinct(java.util.function.Function< reactor.core.publisher.Flux.<V>bufferUntilChanged(java.util.function.Function< reactor.core.publisher.Flux.<V>bufferUntilChanged(java.util.function.Function< reactor.core.publisher.Flux.<V>concatMap(java.util.function.Function< reactor.core.publisher.Flux.<V>concatMap(java.util.function.Function< reactor.core.publisher.Flux.<V>concatMapDelayError(java.util.function.Function< reactor.core.publisher.Flux.<V>concatMapDelayError(java.util.function.Function< reactor.core.publisher.Flux.<V>concatMapDelayError(java.util.function.Function< reactor.core.publisher.Flux.<V>distinct(java.util.function.Function< reactor.core.publisher.Flux.<V>distinctUntilChanged(java.util.function.Function< reactor.core.publisher.Flux.<V>distinctUntilChanged(java.util.function.Function< reactor.core.publisher.Flux.<V>flatMap(java.util.function.Function< reactor.core.publisher.Flux.<V>flatMap(java.util.function.Function< reactor.core.publisher.Flux.<V>flatMapDelayError(java.util.function.Function< reactor.core.publisher.Flux.<V>map(java.util.function.Function< reactor.core.publisher.Flux.<V>mapNotNull(java.util.function.Function< reactor.core.publisher.Flux.<V>switchMap(java.util.function.Function< reactor.core.publisher.Flux.<V>switchMap(java.util.function.Function< reactor.core.publisher.Flux.<V>switchOnFirst(java.util.function.BiFunction<reactor.core.publisher.Signal< reactor.core.publisher.Flux.<V>switchOnFirst(java.util.function.BiFunction<reactor.core.publisher.Signal< reactor.core.publisher.Flux.<V>then reactor.core.publisher.Flux.<V>thenMany reactor.core.publisher.Flux.<V>transform(java.util.function.Function< reactor.core.publisher.Flux.<V>transformDeferred(java.util.function.Function< reactor.core.publisher.Flux.<V>transformDeferredContextual(java.util.function.BiFunction< reactor.core.publisher.Flux.<V>windowUntilChanged(java.util.function.Function< reactor.core.publisher.Flux.<V>windowUntilChanged(java.util.function.Function< reactor.core.publisher.Flux.<X>dematerialize reactor.core.publisher.Flux.all(java.util.function.Predicate< reactor.core.publisher.Flux.any(java.util.function.Predicate< reactor.core.publisher.Flux.blockFirst reactor.core.publisher.Flux.blockFirst reactor.core.publisher.Flux.blockLast reactor.core.publisher.Flux.blockLast reactor.core.publisher.Flux.buffer reactor.core.publisher.Flux.buffer reactor.core.publisher.Flux.buffer reactor.core.publisher.Flux.buffer reactor.core.publisher.Flux.buffer reactor.core.publisher.Flux.buffer reactor.core.publisher.Flux.buffer reactor.core.publisher.Flux.buffer(org.reactivestreams.Publisher< reactor.core.publisher.Flux.bufferTimeout reactor.core.publisher.Flux.bufferTimeout reactor.core.publisher.Flux.bufferTimeout reactor.core.publisher.Flux.bufferTimeout reactor.core.publisher.Flux.bufferUntil(java.util.function.Predicate< reactor.core.publisher.Flux.bufferUntil(java.util.function.Predicate< reactor.core.publisher.Flux.bufferUntilChanged reactor.core.publisher.Flux.bufferWhile(java.util.function.Predicate< reactor.core.publisher.Flux.cache reactor.core.publisher.Flux.cache reactor.core.publisher.Flux.cache reactor.core.publisher.Flux.cache reactor.core.publisher.Flux.cache reactor.core.publisher.Flux.cache reactor.core.publisher.Flux.cancelOn reactor.core.publisher.Flux.checkpoint reactor.core.publisher.Flux.checkpoint reactor.core.publisher.Flux.checkpoint reactor.core.publisher.Flux.collectList reactor.core.publisher.Flux.collectSortedList reactor.core.publisher.Flux.collectSortedList(java.util.Comparator< reactor.core.publisher.Flux.concatWith(org.reactivestreams.Publisher< reactor.core.publisher.Flux.concatWithValues reactor.core.publisher.Flux.contextCapture reactor.core.publisher.Flux.contextWrite reactor.core.publisher.Flux.contextWrite reactor.core.publisher.Flux.count reactor.core.publisher.Flux.defaultIfEmpty reactor.core.publisher.Flux.delayElements reactor.core.publisher.Flux.delayElements reactor.core.publisher.Flux.delaySequence reactor.core.publisher.Flux.delaySequence reactor.core.publisher.Flux.delaySubscription reactor.core.publisher.Flux.delaySubscription reactor.core.publisher.Flux.delayUntil(java.util.function.Function< reactor.core.publisher.Flux.distinct reactor.core.publisher.Flux.distinctUntilChanged reactor.core.publisher.Flux.doAfterTerminate reactor.core.publisher.Flux.doFinally reactor.core.publisher.Flux.doFirst reactor.core.publisher.Flux.doOnCancel reactor.core.publisher.Flux.doOnComplete reactor.core.publisher.Flux.doOnEach(java.util.function.Consumer< reactor.core.publisher.Flux.doOnError(java.util.function.Consumer< reactor.core.publisher.Flux.doOnError(java.util.function.Predicate< reactor.core.publisher.Flux.doOnNext(java.util.function.Consumer< reactor.core.publisher.Flux.doOnRequest reactor.core.publisher.Flux.doOnSubscribe(java.util.function.Consumer< reactor.core.publisher.Flux.doOnTerminate reactor.core.publisher.Flux.elapsed reactor.core.publisher.Flux.elapsed reactor.core.publisher.Flux.elementAt reactor.core.publisher.Flux.elementAt reactor.core.publisher.Flux.expand(java.util.function.Function< reactor.core.publisher.Flux.expand(java.util.function.Function< reactor.core.publisher.Flux.expandDeep(java.util.function.Function< reactor.core.publisher.Flux.expandDeep(java.util.function.Function< reactor.core.publisher.Flux.filter(java.util.function.Predicate< reactor.core.publisher.Flux.filterWhen(java.util.function.Function< reactor.core.publisher.Flux.filterWhen(java.util.function.Function< reactor.core.publisher.Flux.getPrefetch reactor.core.publisher.Flux.hasElement reactor.core.publisher.Flux.hasElements reactor.core.publisher.Flux.hide reactor.core.publisher.Flux.ignoreElements reactor.core.publisher.Flux.index reactor.core.publisher.Flux.interval reactor.core.publisher.Flux.interval reactor.core.publisher.Flux.interval reactor.core.publisher.Flux.interval reactor.core.publisher.Flux.last reactor.core.publisher.Flux.last reactor.core.publisher.Flux.limitRate reactor.core.publisher.Flux.limitRate reactor.core.publisher.Flux.limitRequest reactor.core.publisher.Flux.log reactor.core.publisher.Flux.log reactor.core.publisher.Flux.log reactor.core.publisher.Flux.log reactor.core.publisher.Flux.log reactor.core.publisher.Flux.log reactor.core.publisher.Flux.materialize reactor.core.publisher.Flux.mergeComparingWith(org.reactivestreams.Publisher< reactor.core.publisher.Flux.mergeOrderedWith(org.reactivestreams.Publisher< reactor.core.publisher.Flux.mergeWith(org.reactivestreams.Publisher< reactor.core.publisher.Flux.metrics reactor.core.publisher.Flux.name reactor.core.publisher.Flux.next reactor.core.publisher.Flux.onBackpressureBuffer reactor.core.publisher.Flux.onBackpressureBuffer reactor.core.publisher.Flux.onBackpressureBuffer(int,java.util.function.Consumer< reactor.core.publisher.Flux.onBackpressureBuffer(int,java.util.function.Consumer< reactor.core.publisher.Flux.onBackpressureBuffer reactor.core.publisher.Flux.onBackpressureBuffer(java.time.Duration,int,java.util.function.Consumer< reactor.core.publisher.Flux.onBackpressureBuffer(java.time.Duration,int,java.util.function.Consumer< reactor.core.publisher.Flux.onBackpressureDrop reactor.core.publisher.Flux.onBackpressureDrop(java.util.function.Consumer< reactor.core.publisher.Flux.onBackpressureError reactor.core.publisher.Flux.onBackpressureLatest reactor.core.publisher.Flux.onErrorComplete reactor.core.publisher.Flux.onErrorComplete(java.lang.Class< reactor.core.publisher.Flux.onErrorComplete(java.util.function.Predicate< reactor.core.publisher.Flux.onErrorContinue reactor.core.publisher.Flux.onErrorMap(java.util.function.Function< reactor.core.publisher.Flux.onErrorMap(java.util.function.Predicate< reactor.core.publisher.Flux.onErrorResume(java.util.function.Function< reactor.core.publisher.Flux.onErrorResume(java.util.function.Predicate< reactor.core.publisher.Flux.onErrorReturn reactor.core.publisher.Flux.onErrorReturn(java.util.function.Predicate< reactor.core.publisher.Flux.onErrorStop reactor.core.publisher.Flux.onTerminateDetach reactor.core.publisher.Flux.or(org.reactivestreams.Publisher< reactor.core.publisher.Flux.parallel reactor.core.publisher.Flux.parallel reactor.core.publisher.Flux.parallel reactor.core.publisher.Flux.publish reactor.core.publisher.Flux.publish reactor.core.publisher.Flux.publishNext reactor.core.publisher.Flux.publishOn reactor.core.publisher.Flux.publishOn reactor.core.publisher.Flux.publishOn reactor.core.publisher.Flux.range reactor.core.publisher.Flux.reduce reactor.core.publisher.Flux.repeat reactor.core.publisher.Flux.repeat reactor.core.publisher.Flux.repeat reactor.core.publisher.Flux.repeat reactor.core.publisher.Flux.repeatWhen(java.util.function.Function<reactor.core.publisher.Flux<java.lang.Long>, reactor.core.publisher.Flux.replay reactor.core.publisher.Flux.replay reactor.core.publisher.Flux.replay reactor.core.publisher.Flux.replay reactor.core.publisher.Flux.replay reactor.core.publisher.Flux.replay reactor.core.publisher.Flux.retry reactor.core.publisher.Flux.retry reactor.core.publisher.Flux.retryWhen reactor.core.publisher.Flux.sample reactor.core.publisher.Flux.sampleFirst reactor.core.publisher.Flux.scan reactor.core.publisher.Flux.share reactor.core.publisher.Flux.shareNext reactor.core.publisher.Flux.single reactor.core.publisher.Flux.single reactor.core.publisher.Flux.singleOrEmpty reactor.core.publisher.Flux.skip reactor.core.publisher.Flux.skip reactor.core.publisher.Flux.skip reactor.core.publisher.Flux.skipLast reactor.core.publisher.Flux.skipUntil(java.util.function.Predicate< reactor.core.publisher.Flux.skipUntilOther(org.reactivestreams.Publisher< reactor.core.publisher.Flux.skipWhile(java.util.function.Predicate< reactor.core.publisher.Flux.sort reactor.core.publisher.Flux.sort(java.util.Comparator< reactor.core.publisher.Flux.startWith reactor.core.publisher.Flux.startWith(java.lang.Iterable< reactor.core.publisher.Flux.startWith(org.reactivestreams.Publisher< reactor.core.publisher.Flux.subscribe reactor.core.publisher.Flux.subscribe(java.util.function.Consumer< reactor.core.publisher.Flux.subscribe(java.util.function.Consumer< reactor.core.publisher.Flux.subscribe(java.util.function.Consumer< reactor.core.publisher.Flux.subscribe(java.util.function.Consumer< reactor.core.publisher.Flux.subscribe(java.util.function.Consumer< reactor.core.publisher.Flux.subscribe(org.reactivestreams.Subscriber< reactor.core.publisher.Flux.subscribe(reactor.core.CoreSubscriber< reactor.core.publisher.Flux.subscribeOn reactor.core.publisher.Flux.subscribeOn reactor.core.publisher.Flux.switchIfEmpty(org.reactivestreams.Publisher< reactor.core.publisher.Flux.tag reactor.core.publisher.Flux.take reactor.core.publisher.Flux.take reactor.core.publisher.Flux.take reactor.core.publisher.Flux.take reactor.core.publisher.Flux.takeLast reactor.core.publisher.Flux.takeUntil(java.util.function.Predicate< reactor.core.publisher.Flux.takeUntilOther(org.reactivestreams.Publisher< reactor.core.publisher.Flux.takeWhile(java.util.function.Predicate< reactor.core.publisher.Flux.tap reactor.core.publisher.Flux.tap reactor.core.publisher.Flux.tap(reactor.core.observability.SignalListenerFactory<T, reactor.core.publisher.Flux.then reactor.core.publisher.Flux.thenEmpty reactor.core.publisher.Flux.timed reactor.core.publisher.Flux.timed reactor.core.publisher.Flux.timeout reactor.core.publisher.Flux.timeout(java.time.Duration,org.reactivestreams.Publisher< reactor.core.publisher.Flux.timeout(java.time.Duration,org.reactivestreams.Publisher< reactor.core.publisher.Flux.timeout reactor.core.publisher.Flux.timestamp reactor.core.publisher.Flux.timestamp reactor.core.publisher.Flux.toIterable reactor.core.publisher.Flux.toIterable reactor.core.publisher.Flux.toIterable reactor.core.publisher.Flux.toStream reactor.core.publisher.Flux.toStream reactor.core.publisher.Flux.toString reactor.core.publisher.Flux.window reactor.core.publisher.Flux.window reactor.core.publisher.Flux.window reactor.core.publisher.Flux.window reactor.core.publisher.Flux.window reactor.core.publisher.Flux.window reactor.core.publisher.Flux.window(org.reactivestreams.Publisher< reactor.core.publisher.Flux.windowTimeout reactor.core.publisher.Flux.windowTimeout reactor.core.publisher.Flux.windowTimeout reactor.core.publisher.Flux.windowTimeout reactor.core.publisher.Flux.windowUntil reactor.core.publisher.Flux.windowUntil reactor.core.publisher.Flux.windowUntil reactor.core.publisher.Flux.windowUntilChanged reactor.core.publisher.Flux.windowWhile reactor.core.publisher.Flux.windowWhile

Constructor Details

ContinuablePagedFluxCore

protected ContinuablePagedFluxCore(Supplier<PageRetriever<C,P>> pageRetrieverProvider)

Creates an instance of ContinuablePagedFluxCore<C,T,P>.

Parameters:

pageRetrieverProvider - a provider that returns PageRetriever<C,P>.

ContinuablePagedFluxCore

protected ContinuablePagedFluxCore(Supplier<PageRetriever<C,P>> pageRetrieverProvider, int pageSize)

Creates an instance of ContinuablePagedFluxCore<C,T,P>.

Parameters:

pageRetrieverProvider - a provider that returns PageRetriever<C,P>.
pageSize - the preferred page size

ContinuablePagedFluxCore

protected ContinuablePagedFluxCore(Supplier<PageRetriever<C,P>> pageRetrieverProvider, Integer pageSize, Predicate<C> continuationPredicate)

Creates an instance of ContinuablePagedFluxCore<C,T,P>.

Parameters:

pageRetrieverProvider - A provider that returns PageRetriever<C,P>.
pageSize - The preferred page size.
continuationPredicate - A predicate which determines if paging should continue.

Method Details

byPage

public Flux

byPage()

Gets a Flux of ContinuablePage<C,T> starting at the first page.

Overrides:

ContinuablePagedFluxCore<C,T,P>.byPage()

byPage

public Flux

byPage(C continuationToken)

Gets a Flux of ContinuablePage<C,T> beginning at the page identified by the given continuation token.

Overrides:

ContinuablePagedFluxCore<C,T,P>.byPage(C continuationToken)

Parameters:

continuationToken

byPage

public Flux

byPage(C continuationToken, int preferredPageSize)

Gets a Flux of ContinuablePage<C,T> beginning at the page identified by the given continuation token requesting each page to contain the number of elements equal to the preferred page size.

The service may or may not honor the preferred page size therefore the client MUST be prepared to handle pages with different page sizes.

Overrides:

ContinuablePagedFluxCore<C,T,P>.byPage(C continuationToken, int preferredPageSize)

Parameters:

continuationToken
preferredPageSize

byPage

public Flux

byPage(int preferredPageSize)

Gets a Flux of ContinuablePage<C,T> starting at the first page requesting each page to contain a number of elements equal to the preferred page size.

The service may or may not honor the preferred page size therefore the client MUST be prepared to handle pages with different page sizes.

Overrides:

ContinuablePagedFluxCore<C,T,P>.byPage(int preferredPageSize)

Parameters:

preferredPageSize

getPageSize

public Integer getPageSize()

Get the page size configured this ContinuablePagedFluxCore<C,T,P>.

Returns:

the page size configured, null if unspecified.

subscribe

public void subscribe(CoreSubscriber<? super T> coreSubscriber)

Subscribe to consume all items of type T in the sequence respectively. This is recommended for most common scenarios. This will seamlessly fetch next page when required and provide with a Flux of items.

Overrides:

ContinuablePagedFluxCore<C,T,P>.subscribe(CoreSubscriber<? super T> coreSubscriber)

Parameters:

coreSubscriber - The subscriber for this ContinuablePagedFluxCore<C,T,P>

Applies to