T - The type of items in P.P - The PagedResponse holding items of type T.@Deprecated public class PagedFluxBase<T,P extends PagedResponse<T>> extends ContinuablePagedFluxCore<String,T,P>
PagedResponse and
also provides the ability to operate on individual items. When processing the response by page,
each response will contain the items in the page as well as the request details like
status code and headers.
Process each item in Flux
To process one item at a time, simply subscribe to this Flux.
pagedFluxBase
.log()
.subscribe(item -> System.out.println("Processing item with value: " + item),
error -> System.err.println("An error occurred: " + error),
() -> System.out.println("Processing complete."));
Process one page at a time
To process one page at a time, starting from the beginning, use byPage() method.
pagedFluxBase
.byPage()
.log()
.subscribe(page -> System.out.printf("Processing page containing item values: %s%n",
page.getElements().stream().map(String::valueOf).collect(Collectors.joining(", "))),
error -> System.err.println("An error occurred: " + error),
() -> System.out.println("Processing complete."));
Process items starting from a continuation token
To process items one page at a time starting from any page associated with a continuation token, use
PagedFluxBase.byPage(String).
String continuationToken = getContinuationToken();
pagedFluxBase
.byPage(continuationToken)
.log()
.doOnSubscribe(ignored -> System.out.println(
"Subscribed to paged flux processing pages starting from: " + continuationToken))
.subscribe(page -> System.out.printf("Processing page containing item values: %s%n",
page.getElements().stream().map(String::valueOf).collect(Collectors.joining(", "))),
error -> System.err.println("An error occurred: " + error),
() -> System.out.println("Processing complete."));
PagedResponse,
Page,
Flux| Constructor and Description |
|---|
PagedFluxBase(Supplier<Mono<P>> firstPageRetriever)
Deprecated.
Creates an instance of
PagedFluxBase that consists of only a single page. |
PagedFluxBase(Supplier<Mono<P>> firstPageRetriever,
Function<String,Mono<P>> nextPageRetriever)
Deprecated.
Creates an instance of
PagedFluxBase. |
| Modifier and Type | Method and Description |
|---|---|
Flux<P> |
byPage()
Deprecated.
Creates a Flux of
PagedResponse starting from the first page. |
Flux<P> |
byPage(String continuationToken)
Deprecated.
Creates a Flux of
PagedResponse starting from the next page associated with the given
continuation token. |
void |
subscribe(CoreSubscriber<? super T> coreSubscriber)
Deprecated.
Subscribe to consume all items of type
T in the sequence respectively. |
byPage, byPage, getPageSizeall, any, as, blockFirst, blockFirst, blockLast, blockLast, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, bufferTimeout, bufferTimeout, bufferTimeout, bufferTimeout, bufferUntil, bufferUntil, bufferUntilChanged, bufferUntilChanged, bufferUntilChanged, bufferWhen, bufferWhen, bufferWhile, cache, cache, cache, cache, cache, cache, cancelOn, cast, checkpoint, checkpoint, checkpoint, collect, collect, collectList, collectMap, collectMap, collectMap, collectMultimap, collectMultimap, collectMultimap, collectSortedList, collectSortedList, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, compose, concat, concat, concat, concat, concatDelayError, concatDelayError, concatDelayError, concatDelayError, concatMap, concatMap, concatMapDelayError, concatMapDelayError, concatMapDelayError, concatMapIterable, concatMapIterable, concatWith, concatWithValues, count, create, create, defaultIfEmpty, defer, deferWithContext, delayElements, delayElements, delaySequence, delaySequence, delaySubscription, delaySubscription, delaySubscription, delayUntil, dematerialize, distinct, distinct, distinct, distinct, distinctUntilChanged, distinctUntilChanged, distinctUntilChanged, doAfterTerminate, doFinally, doFirst, doOnCancel, doOnComplete, doOnDiscard, doOnEach, doOnError, doOnError, doOnError, doOnNext, doOnRequest, doOnSubscribe, doOnTerminate, elapsed, elapsed, elementAt, elementAt, empty, error, error, error, expand, expand, expandDeep, expandDeep, filter, filterWhen, filterWhen, first, first, flatMap, flatMap, flatMap, flatMap, flatMapDelayError, flatMapIterable, flatMapIterable, flatMapSequential, flatMapSequential, flatMapSequential, flatMapSequentialDelayError, from, fromArray, fromIterable, fromStream, fromStream, generate, generate, generate, getPrefetch, groupBy, groupBy, groupBy, groupBy, groupJoin, handle, hasElement, hasElements, hide, ignoreElements, index, index, interval, interval, interval, interval, join, just, just, last, last, limitRate, limitRate, limitRequest, log, log, log, log, log, log, map, materialize, merge, merge, merge, merge, merge, merge, mergeDelayError, mergeOrdered, mergeOrdered, mergeOrdered, mergeOrderedWith, mergeSequential, mergeSequential, mergeSequential, mergeSequential, mergeSequential, mergeSequential, mergeSequentialDelayError, mergeSequentialDelayError, mergeSequentialDelayError, mergeWith, metrics, name, never, next, ofType, onAssembly, onAssembly, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureDrop, onBackpressureDrop, onBackpressureError, onBackpressureLatest, onErrorContinue, onErrorContinue, onErrorContinue, onErrorMap, onErrorMap, onErrorMap, onErrorResume, onErrorResume, onErrorResume, onErrorReturn, onErrorReturn, onErrorReturn, onErrorStop, onLastAssembly, onTerminateDetach, or, parallel, parallel, parallel, publish, publish, publish, publish, publishNext, publishOn, publishOn, publishOn, push, push, range, reduce, reduce, reduceWith, repeat, repeat, repeat, repeat, repeatWhen, replay, replay, replay, replay, replay, replay, retry, retry, retry, retry, retryBackoff, retryBackoff, retryBackoff, retryBackoff, retryBackoff, retryWhen, retryWhen, sample, sample, sampleFirst, sampleFirst, sampleTimeout, sampleTimeout, scan, scan, scanWith, share, single, single, singleOrEmpty, skip, skip, skip, skipLast, skipUntil, skipUntilOther, skipWhile, sort, sort, startWith, startWith, startWith, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, subscribeOn, subscriberContext, subscriberContext, subscribeWith, switchIfEmpty, switchMap, switchMap, switchOnFirst, switchOnFirst, switchOnNext, switchOnNext, tag, take, take, take, takeLast, takeUntil, takeUntilOther, takeWhile, then, then, thenEmpty, thenMany, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timestamp, timestamp, toIterable, toIterable, toIterable, toStream, toStream, toString, transform, transformDeferred, using, using, usingWhen, usingWhen, usingWhen, usingWhen, window, window, window, window, window, window, window, windowTimeout, windowTimeout, windowUntil, windowUntil, windowUntil, windowUntilChanged, windowUntilChanged, windowUntilChanged, windowWhen, windowWhile, windowWhile, withLatestFrom, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zipWith, zipWith, zipWith, zipWith, zipWithIterable, zipWithIterablepublic PagedFluxBase(Supplier<Mono<P>> firstPageRetriever)
PagedFluxBase that consists of only a single page.
This constructor takes a Supplier that return the single page of T.
Code sample
// A supplier that fetches the first page of data from source/service
Supplier<Mono<PagedResponse<Integer>>> firstPageRetrieverFunction = () -> getFirstPage();
PagedFluxBase<Integer, PagedResponse<Integer>> pagedFluxBaseInstance = new PagedFluxBase<>(firstPageRetrieverFunction,
nextPageRetriever);
firstPageRetriever - Supplier that retrieves the first page.public PagedFluxBase(Supplier<Mono<P>> firstPageRetriever, Function<String,Mono<P>> nextPageRetriever)
PagedFluxBase. The constructor takes a Supplier and
Function. The Supplier returns the first page of T,
the Function retrieves subsequent pages of T.
Code sample
// A supplier that fetches the first page of data from source/service
Supplier<Mono<PagedResponse<Integer>>> firstPageRetriever = () -> getFirstPage();
// A function that fetches subsequent pages of data from source/service given a continuation token
Function<String, Mono<PagedResponse<Integer>>> nextPageRetriever =
continuationToken -> getNextPage(continuationToken);
PagedFluxBase<Integer, PagedResponse<Integer>> pagedFluxBase = new PagedFluxBase<>(firstPageRetriever,
nextPageRetriever);
firstPageRetriever - Supplier that retrieves the first pagenextPageRetriever - Function that retrieves the next page given a continuation tokenpublic Flux<P> byPage()
PagedResponse starting from the first page.
Code sample
// Start processing the results from first page
pagedFluxBase.byPage()
.log()
.doOnSubscribe(ignoredVal -> System.out.println(
"Subscribed to paged flux processing pages starting from first page"))
.subscribe(page -> System.out.printf("Processing page containing item values: %s%n",
page.getElements().stream().map(String::valueOf).collect(Collectors.joining(", "))),
error -> System.err.println("An error occurred: " + error),
() -> System.out.println("Processing complete."));
byPage in class ContinuablePagedFluxCore<String,T,P extends PagedResponse<T>>PagedFluxBase starting from the first pagepublic Flux<P> byPage(String continuationToken)
PagedResponse starting from the next page associated with the given
continuation token. To start from first page, use PagedFluxBase.byPage() instead.
Code sample
// Start processing the results from a page associated with the continuation token
String continuationToken = getContinuationToken();
pagedFluxBase.byPage(continuationToken)
.log()
.doOnSubscribe(ignoredVal -> System.out.println(
"Subscribed to paged flux processing page starting from " + continuationToken))
.subscribe(page -> System.out.printf("Processing page containing item values: %s%n",
page.getElements().stream().map(String::valueOf).collect(Collectors.joining(", "))),
error -> System.err.println("An error occurred: " + error),
() -> System.out.println("Processing complete."));
byPage in class ContinuablePagedFluxCore<String,T,P extends PagedResponse<T>>continuationToken - The continuation token used to fetch the next pagePagedFluxBase starting from the page associated with the continuation tokenpublic void subscribe(CoreSubscriber<? super T> coreSubscriber)
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.
Code sample
pagedFluxBase.subscribe(new BaseSubscriber<Integer>() {
{@literal @}Override
protected void hookOnSubscribe(Subscription subscription) {
System.out.println("Subscribed to paged flux processing items");
super.hookOnSubscribe(subscription);
}
{@literal @}Override
protected void hookOnNext(Integer value) {
System.out.println("Processing item with value: " + value);
}
{@literal @}Override
protected void hookOnComplete() {
System.out.println("Processing complete.");
}
});
subscribe in interface CorePublisher<T>subscribe in class ContinuablePagedFluxCore<String,T,P extends PagedResponse<T>>coreSubscriber - The subscriber for this PagedFluxBaseCopyright © 2020 Microsoft Corporation. All rights reserved.