PagedFluxBase<T,P> Class
- java.
lang. Object - reactor.
core. publisher. Flux - com.
azure. core. util. paging. ContinuablePagedFlux<C,T,P> - com.
azure. core. util. paging. ContinuablePagedFluxCore<C,T,P> - com.
azure. core. http. rest. PagedFluxBase<T,P>
- com.
- com.
- com.
- reactor.
Type Parameters
- T
The type of items in
P
.
- P
The PagedResponse holding items of type
T
.
@Deprecated
public class PagedFluxBase<T,P>
extends ContinuablePagedFluxCore<String,T,P>
Note
This class has been deprecated. use ContinuablePagedFluxCore<C,T,P>.
This class is a flux that can operate on any type that extends PagedResponse<T> 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 byPage(String continuationToken).
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."));
Constructor Summary
Constructor | Description |
---|---|
PagedFluxBase(Supplier<Mono<P>> firstPageRetriever) |
Creates an instance of PagedFluxBase<T,P> that consists of only a single page. |
PagedFluxBase(Supplier<Mono<P>> firstPageRetriever, Function<String,Mono<P>> nextPageRetriever) |
Creates an instance of PagedFluxBase<T,P>. |
Method Summary
Modifier and Type | Method and Description |
---|---|
Flux<P> |
byPage()
Creates a Flux of PagedResponse<T> starting from the first page. |
Flux<P> |
byPage(String continuationToken)
Creates a Flux of PagedResponse<T> starting from the next page associated with the given continuation token. |
void |
subscribe(CoreSubscriber<? super T> coreSubscriber)
Subscribe to consume all items of type |
Methods inherited from ContinuablePagedFlux
Methods inherited from ContinuablePagedFluxCore
Methods inherited from java.lang.Object
Methods inherited from reactor.core.publisher.Flux
Constructor Details
PagedFluxBase
public PagedFluxBase(Supplier
Creates an instance of PagedFluxBase<T,P> 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);
Parameters:
PagedFluxBase
public PagedFluxBase(Supplier
Creates an instance of PagedFluxBase<T,P>. 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);
Parameters:
Method Details
byPage
public Flux
byPage()
Creates a Flux of PagedResponse<T> 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."));
Overrides:
PagedFluxBase<T,P>.byPage()Returns:
byPage
public Flux
byPage(String continuationToken)
Creates a Flux of PagedResponse<T> starting from the next page associated with the given continuation token. To start from first page, use 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."));
Overrides:
PagedFluxBase<T,P>.byPage(String continuationToken)Parameters:
Returns:
subscribe
public void subscribe(CoreSubscriber 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.
Code sample
pagedFluxBase.subscribe(new BaseSubscriber<Integer>() {
@Override
protected void hookOnSubscribe(Subscription subscription) {
System.out.println("Subscribed to paged flux processing items");
super.hookOnSubscribe(subscription);
}
@Override
protected void hookOnNext(Integer value) {
System.out.println("Processing item with value: " + value);
}
@Override
protected void hookOnComplete() {
System.out.println("Processing complete.");
}
});
Overrides:
PagedFluxBase<T,P>.subscribe(CoreSubscriber<? super T> coreSubscriber)Parameters:
Applies to
Azure SDK for Java