Module id.xfunction

Class FixedCollectorSubscriber<T,C extends Collection<T>>

Object
SimpleSubscriber<T>
FixedCollectorSubscriber<T,C>
All Implemented Interfaces:
ReplayableSubscriber<T>, Flow.Subscriber<T>

public class FixedCollectorSubscriber<T,C extends Collection<T>> extends SimpleSubscriber<T>
Subscriber which collects fixed number of items to target collection.

When target collection size reaches maxSize:

  • subscription is canceled
  • future which is maintained by this subscriber completes

Example:


 // subscriber collects 5 items to ArrayList and then cancels subscription
 var subscriber = new FixedCollectorSubscriber<>(new ArrayList<String>(), 5);
 publisher.subscribe(subscriber);
 // wait for 5 items and print them to console
 System.out.println(subscriber.getFuture().get().toString());