Class PagedFluxBase<T,P extends PagedResponse<T>>

Type Parameters:
T - The type of items in P.
P - The PagedResponse holding items of type T.
All Implemented Interfaces:
org.reactivestreams.Publisher<T>, CorePublisher<T>
Direct Known Subclasses:
AutocompletePagedFlux, PagedFlux, SearchPagedFlux, SuggestPagedFlux

@Deprecated public class PagedFluxBase<T,P extends PagedResponse<T>> extends ContinuablePagedFluxCore<String,T,P>
Deprecated.
This class is a flux that can operate on any type that extends 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 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."));
 
See Also:
  • Constructor Details

    • PagedFluxBase

      public PagedFluxBase(Supplier<Mono<P>> firstPageRetriever)
      Deprecated.
      Creates an instance of 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);
       
      Parameters:
      firstPageRetriever - Supplier that retrieves the first page.
    • PagedFluxBase

      public PagedFluxBase(Supplier<Mono<P>> firstPageRetriever, Function<String,Mono<P>> nextPageRetriever)
      Deprecated.
      Creates an instance of 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);
       
      Parameters:
      firstPageRetriever - Supplier that retrieves the first page
      nextPageRetriever - Function that retrieves the next page given a continuation token
  • Method Details

    • byPage

      public Flux<P> byPage()
      Deprecated.
      Creates a Flux of 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."));
       
      Overrides:
      byPage in class ContinuablePagedFluxCore<String,T,P extends PagedResponse<T>>
      Returns:
      A PagedFluxBase starting from the first page
    • byPage

      public Flux<P> byPage(String continuationToken)
      Deprecated.
      Creates a Flux of PagedResponse 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:
      byPage in class ContinuablePagedFluxCore<String,T,P extends PagedResponse<T>>
      Parameters:
      continuationToken - The continuation token used to fetch the next page
      Returns:
      A PagedFluxBase starting from the page associated with the continuation token
    • subscribe

      public void subscribe(CoreSubscriber<? super T> coreSubscriber)
      Deprecated.
      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.");
           }
       });
       
      Specified by:
      subscribe in interface CorePublisher<T>
      Overrides:
      subscribe in class ContinuablePagedFluxCore<String,T,P extends PagedResponse<T>>
      Parameters:
      coreSubscriber - The subscriber for this PagedFluxBase