-
- Type Parameters:
T- item type
- All Superinterfaces:
Flow.Publisher<T>,Subscribable<T>
- All Known Implementing Classes:
ConcatPublisher,MultiCoupledProcessor,MultiDistinctProcessor,MultiDropWhileProcessor,MultiFilterProcessor,MultiFlatMapProcessor,MultiLimitProcessor,MultiMapProcessor,MultiOnErrorResumeProcessor,MultiPeekProcessor,MultiSkipProcessor,MultiTakeWhileProcessor,MultiTappedProcessor
public interface Multi<T> extends Subscribable<T>
Multiple items publisher facility.
-
-
Method Summary
All Methods Static Methods Instance Methods Default Methods Modifier and Type Method Description default <U> Single<U>collect(Collector<T,U> collector)default Single<List<T>>collectList()static <T> Multi<T>concat(Multi<T> firstMulti, Multi<T> secondMulti)Concat streams to one.default Multi<T>distinct()Filter out all duplicates.default Multi<T>dropWhile(Predicate<T> predicate)Drop the longest prefix of elements from this stream that satisfy the given predicate.static <T> Multi<T>empty()Get aMultiinstance that completes immediately.static <T> Multi<T>error(Throwable error)Create aMultiinstance that reports the given exception to its subscriber(s).default Multi<T>filter(Predicate<T> predicate)Filter stream items with provided predicate.default Single<T>first()default Multi<T>flatMap(Function<T,Flow.Publisher<T>> publisherMapper)Transform item with supplied function and flatten resultingFlow.Publisherto downstream.default Multi<T>flatMapIterable(Function<T,Iterable<T>> iterableMapper)Transform item with supplied function and flatten resultingIterableto downstream.default voidforEach(Consumer<T> consumer)Terminal stage, invokes provided consumer for every item in the stream.static <T> Multi<T>from(Iterable<T> iterable)Create aMultiinstance that publishes the given iterable.static <T> Multi<T>from(Flow.Publisher<T> source)Create aMultiinstance wrapped around the given publisher.static <T> Multi<T>just(Collection<T> items)Create aMultiinstance that publishes the given items to a single subscriber.static <T> Multi<T>just(T... items)Create aMultiinstance that publishes the given items to a single subscriber.default Multi<T>limit(long limit)Limit stream to allow only specified number of items to pass.default <U> Multi<U>map(Mapper<T,U> mapper)static <T> Multi<T>never()Get aMultiinstance that never completes.default Multi<T>peek(Consumer<T> consumer)Invoke provided consumer for every item in stream.default Multi<T>skip(long skip)Skip first n items, all the others are emitted.default Multi<T>takeWhile(Predicate<T> predicate)Take the longest prefix of elements from this stream that satisfy the given predicate.-
Methods inherited from interface java.util.concurrent.Flow.Publisher
subscribe
-
Methods inherited from interface io.helidon.common.reactive.Subscribable
onComplete, onError, onErrorResume, onErrorResumeWith, onTerminate, subscribe, subscribe, subscribe, subscribe
-
-
-
-
Method Detail
-
map
default <U> Multi<U> map(Mapper<T,U> mapper)
- Type Parameters:
U- mapped item type- Parameters:
mapper- mapper- Returns:
- Multi
- Throws:
NullPointerException- if mapper isnull
-
peek
default Multi<T> peek(Consumer<T> consumer)
Invoke provided consumer for every item in stream.- Parameters:
consumer- consumer to be invoked- Returns:
- Multi
-
filter
default Multi<T> filter(Predicate<T> predicate)
Filter stream items with provided predicate.- Parameters:
predicate- predicate to filter stream with- Returns:
- Multi
-
takeWhile
default Multi<T> takeWhile(Predicate<T> predicate)
Take the longest prefix of elements from this stream that satisfy the given predicate. As long as predicate returns true, items from upstream are sent to downstream, when predicate returns false stream is completed.- Parameters:
predicate- predicate to filter stream with- Returns:
- Multi
-
dropWhile
default Multi<T> dropWhile(Predicate<T> predicate)
Drop the longest prefix of elements from this stream that satisfy the given predicate. As long as predicate returns true, items from upstream are NOT sent to downstream but being dropped, predicate is never called again after it returns false for the first time.- Parameters:
predicate- predicate to filter stream with- Returns:
- Multi
-
limit
default Multi<T> limit(long limit)
Limit stream to allow only specified number of items to pass.- Parameters:
limit- with expected number of items to be produced- Returns:
- Multi
-
skip
default Multi<T> skip(long skip)
Skip first n items, all the others are emitted.- Parameters:
skip- number of items to be skipped- Returns:
- Multi
-
flatMap
default Multi<T> flatMap(Function<T,Flow.Publisher<T>> publisherMapper)
Transform item with supplied function and flatten resultingFlow.Publisherto downstream.- Parameters:
publisherMapper-Functionreceiving item as parameter and returningFlow.Publisher- Returns:
- Multi
-
flatMapIterable
default Multi<T> flatMapIterable(Function<T,Iterable<T>> iterableMapper)
Transform item with supplied function and flatten resultingIterableto downstream.
-
forEach
default void forEach(Consumer<T> consumer)
Terminal stage, invokes provided consumer for every item in the stream.- Parameters:
consumer- consumer to be invoked for each item
-
collect
default <U> Single<U> collect(Collector<T,U> collector)
- Type Parameters:
U- collector container type- Parameters:
collector- collector to use- Returns:
- Single
- Throws:
NullPointerException- if collector isnull
-
from
static <T> Multi<T> from(Flow.Publisher<T> source)
Create aMultiinstance wrapped around the given publisher.- Type Parameters:
T- item type- Parameters:
source- source publisher- Returns:
- Multi
- Throws:
NullPointerException- if source isnull
-
from
static <T> Multi<T> from(Iterable<T> iterable)
Create aMultiinstance that publishes the given iterable.- Type Parameters:
T- item type- Parameters:
iterable- iterable to publish- Returns:
- Multi
- Throws:
NullPointerException- if iterable isnull
-
just
static <T> Multi<T> just(Collection<T> items)
Create aMultiinstance that publishes the given items to a single subscriber.- Type Parameters:
T- item type- Parameters:
items- items to publish- Returns:
- Multi
- Throws:
NullPointerException- if items isnull
-
just
@SafeVarargs static <T> Multi<T> just(T... items)
Create aMultiinstance that publishes the given items to a single subscriber.- Type Parameters:
T- item type- Parameters:
items- items to publish- Returns:
- Multi
- Throws:
NullPointerException- if items isnull
-
error
static <T> Multi<T> error(Throwable error)
Create aMultiinstance that reports the given exception to its subscriber(s). The exception is reported by invokingFlow.Subscriber.onError(java.lang.Throwable)whenFlow.Publisher.subscribe(Subscriber)is called.- Type Parameters:
T- item type- Parameters:
error- exception to hold- Returns:
- Multi
- Throws:
NullPointerException- if error isnull
-
empty
static <T> Multi<T> empty()
Get aMultiinstance that completes immediately.- Type Parameters:
T- item type- Returns:
- Multi
-
never
static <T> Multi<T> never()
Get aMultiinstance that never completes.- Type Parameters:
T- item type- Returns:
- Multi
-
-