Top Fields Constructors Methods
reactor.core.publisher

pack-priv abstract Class InternalFluxOperator<I, O>

extends FluxOperator<I, O>
implements Scannable, OptimizableOperator<O, I>
Class Inheritance
All Implemented Interfaces
reactor.core.publisher.OptimizableOperator, reactor.core.CorePublisher, org.reactivestreams.Publisher, reactor.core.Scannable
Known Direct Subclasses
reactor.core.publisher.FluxBuffer, reactor.core.publisher.FluxBufferBoundary, reactor.core.publisher.FluxBufferPredicate, reactor.core.publisher.FluxBufferTimeout, reactor.core.publisher.FluxBufferWhen, reactor.core.publisher.FluxCallableOnAssembly, reactor.core.publisher.FluxCancelOn, reactor.core.publisher.FluxConcatMap, reactor.core.publisher.FluxConcatMapNoPrefetch, reactor.core.publisher.FluxGroupBy, reactor.core.publisher.FluxGroupJoin, reactor.core.publisher.FluxHandle, reactor.core.publisher.FluxHandleFuseable, reactor.core.publisher.FluxHide, reactor.core.publisher.FluxIndex, reactor.core.publisher.FluxIndexFuseable, reactor.core.publisher.FluxJoin, reactor.core.publisher.FluxLift, reactor.core.publisher.FluxLiftFuseable, reactor.core.publisher.FluxLimitRequest, reactor.core.publisher.FluxLog, reactor.core.publisher.FluxLogFuseable, reactor.core.publisher.FluxMap, reactor.core.publisher.FluxMapFuseable, reactor.core.publisher.FluxMapSignal, reactor.core.publisher.FluxMaterialize, reactor.core.publisher.FluxMergeSequential, reactor.core.publisher.FluxMetrics, reactor.core.publisher.FluxRepeat, reactor.core.publisher.FluxRepeatPredicate, reactor.core.publisher.FluxRepeatWhen, reactor.core.publisher.FluxRetry, reactor.core.publisher.FluxRetryWhen, reactor.core.publisher.FluxSample, reactor.core.publisher.FluxSampleFirst, reactor.core.publisher.FluxSampleTimeout, reactor.core.publisher.FluxScan, reactor.core.publisher.FluxScanSeed, reactor.core.publisher.FluxSkip, reactor.core.publisher.FluxSkipLast, reactor.core.publisher.FluxSkipUntil, reactor.core.publisher.FluxSkipUntilOther, reactor.core.publisher.FluxSkipWhile, reactor.core.publisher.FluxSubscribeOn, reactor.core.publisher.FluxWindow, reactor.core.publisher.FluxWindowBoundary, reactor.core.publisher.FluxWindowPredicate, reactor.core.publisher.FluxWindowTimeout, reactor.core.publisher.FluxWindowWhen, reactor.core.publisher.FluxWithLatestFrom, reactor.core.publisher.FluxZipIterable, reactor.core.publisher.FluxName, reactor.core.publisher.FluxNameFuseable, reactor.core.publisher.FluxOnAssembly, reactor.core.publisher.FluxOnBackpressureBuffer, reactor.core.publisher.FluxOnBackpressureBufferStrategy, reactor.core.publisher.FluxOnBackpressureBufferTimeout, reactor.core.publisher.FluxOnBackpressureDrop, reactor.core.publisher.FluxOnBackpressureLatest, reactor.core.publisher.FluxOnErrorResume, reactor.core.publisher.FluxOnErrorReturn, reactor.core.publisher.FluxPeek, reactor.core.publisher.FluxPeekFuseable, reactor.core.publisher.FluxPublishMulticast, reactor.core.publisher.FluxPublishOn, reactor.core.publisher.FluxContextWrite, reactor.core.publisher.FluxMetricsFuseable, reactor.core.publisher.FluxTimeout, reactor.core.publisher.FluxDefaultIfEmpty, reactor.core.publisher.FluxDelaySequence, reactor.core.publisher.FluxDelaySubscription, reactor.core.publisher.FluxDematerialize, reactor.core.publisher.FluxDetach, reactor.core.publisher.FluxDistinct, reactor.core.publisher.FluxDistinctFuseable, reactor.core.publisher.FluxDistinctUntilChanged, reactor.core.publisher.FluxDoFinally, reactor.core.publisher.FluxDoFirst, reactor.core.publisher.FluxDoFirstFuseable, reactor.core.publisher.FluxDoOnEach, reactor.core.publisher.FluxDoOnEachFuseable, reactor.core.publisher.FluxElapsed, reactor.core.publisher.FluxExpand, reactor.core.publisher.FluxFilter, reactor.core.publisher.FluxFilterFuseable, reactor.core.publisher.FluxFilterWhen, reactor.core.publisher.FluxFlatMap, reactor.core.publisher.FluxFlattenIterable, reactor.core.publisher.FluxSwitchIfEmpty, reactor.core.publisher.FluxSwitchMap, reactor.core.publisher.FluxSwitchMapNoPrefetch, reactor.core.publisher.FluxSwitchOnFirst, reactor.core.publisher.FluxTake, reactor.core.publisher.FluxTakeFuseable, reactor.core.publisher.FluxTakeLast, reactor.core.publisher.FluxTakeLastOne, reactor.core.publisher.FluxTakeUntil, reactor.core.publisher.FluxTakeUntilOther, reactor.core.publisher.FluxTakeWhile, reactor.core.publisher.FluxTap, reactor.core.publisher.FluxTapFuseable, reactor.core.publisher.FluxTimed
Imports
org.reactivestreams.Publisher, reactor.core.CorePublisher, .CoreSubscriber, .Scannable, reactor.util.annotation.Nullable

Field Summary

Modifier and TypeField and Description
pack-priv final OptimizableOperator<?, I>
Inherited from reactor.core.publisher.FluxOperator:
source

Constructor Summary

AccessConstructor and Description
protected
InternalFluxOperator(Flux<? extends I>
the Publisher to decorate
source
)

Build a InternalFluxOperator wrapper around the passed parent Publisher

Method Summary

Modifier and TypeMethod and Description
public final OptimizableOperator<?, ? extends I>
nextOptimizableSource()

Implements reactor.core.publisher.OptimizableOperator.nextOptimizableSource.

Allow delegation of the subscription by returning the next OptimizableOperator UP in the chain, to be subscribed to next.
public Object
scanUnsafe(Scannable.Attr<T>
a Attr to resolve for the component.
key
)

Overrides reactor.core.publisher.FluxOperator.scanUnsafe.

Implements reactor.core.Scannable.scanUnsafe.

This method is used internally by components to define their key-value mappings in a single place.
public final CorePublisher<? extends I>
public final void
subscribe(CoreSubscriber<? super O>
the Subscriber interested into the published sequence
subscriber
)

Implements abstract reactor.core.publisher.Flux.subscribe.

Implements reactor.core.CorePublisher.subscribe.

An internal Publisher#subscribe(Subscriber) that will bypass Hooks#onLastOperator(Function) pointcut.
public abstract CoreSubscriber<? super I>
subscribeOrReturn(CoreSubscriber<? super O> actual)

Redeclares reactor.core.publisher.OptimizableOperator.subscribeOrReturn.

Allow delegation of the subscription by returning a CoreSubscriber, or force subscription encapsulation by returning null.

Field Detail

optimizableOperatorback to summary
pack-priv final OptimizableOperator<?, I> optimizableOperator
Annotations
@Nullable

Constructor Detail

InternalFluxOperatorback to summary
protected InternalFluxOperator(Flux<? extends I> source)

Build a InternalFluxOperator wrapper around the passed parent Publisher

Parameters
source:Flux<? extends I>

the Publisher to decorate

Method Detail

nextOptimizableSourceback to summary
public final OptimizableOperator<?, ? extends I> nextOptimizableSource()

Implements reactor.core.publisher.OptimizableOperator.nextOptimizableSource.

Doc from reactor.core.publisher.OptimizableOperator.nextOptimizableSource.

Allow delegation of the subscription by returning the next OptimizableOperator UP in the chain, to be subscribed to next. This method MUST return a non-null value if the subscribeOrReturn(CoreSubscriber) method returned a non null value. In that case, this next operator can be used in conjunction with subscribeOrReturn(CoreSubscriber) to perform subscription in a loop instead of by recursion.

Returns:OptimizableOperator<?, ? extends I>

next OptimizableOperator if subscribeOrReturn(CoreSubscriber) have returned non-null result

Annotations
@Override
scanUnsafeback to summary
public Object scanUnsafe(Scannable.Attr<T> key)

Overrides reactor.core.publisher.FluxOperator.scanUnsafe.

Implements reactor.core.Scannable.scanUnsafe.

Doc from reactor.core.Scannable.scanUnsafe.

This method is used internally by components to define their key-value mappings in a single place. Although it is ignoring the generic type of the Attr key, implementors should take care to return values of the correct type, and return null if no specific value is available.

For public consumption of attributes, prefer using scan(Attr), which will return a typed value and fall back to the key's default if the component didn't define any mapping.

Parameters
key:Scannable.Attr<T>

a Attr to resolve for the component.

Returns:Object

the value associated to the key for that specific component, or null if none.

Annotations
@Override
@Nullable
sourceback to summary
public final CorePublisher<? extends I> source()

Implements reactor.core.publisher.OptimizableOperator.source.

Returns:CorePublisher<? extends I>

Doc from reactor.core.publisher.OptimizableOperator.source.

CorePublisher to call CorePublisher#subscribe(CoreSubscriber) on if nextOptimizableSource() have returned null result

Annotations
@Override
subscribeback to summary
public final void subscribe(CoreSubscriber<? super O> subscriber)

Implements abstract reactor.core.publisher.Flux.subscribe.

Implements reactor.core.CorePublisher.subscribe.

Doc from reactor.core.CorePublisher.subscribe.

An internal Publisher#subscribe(Subscriber) that will bypass Hooks#onLastOperator(Function) pointcut.

In addition to behave as expected by Publisher#subscribe(Subscriber) in a controlled manner, it supports direct subscribe-time Context passing.

Parameters
subscriber:CoreSubscriber<? super O>

the Subscriber interested into the published sequence

Annotations
@Override
@SuppressWarnings:unchecked
subscribeOrReturnback to summary
public abstract CoreSubscriber<? super I> subscribeOrReturn(CoreSubscriber<? super O> actual) throws Throwable

Redeclares reactor.core.publisher.OptimizableOperator.subscribeOrReturn.

Doc from reactor.core.publisher.OptimizableOperator.subscribeOrReturn.

Allow delegation of the subscription by returning a CoreSubscriber, or force subscription encapsulation by returning null. This can be used in conjunction with nextOptimizableSource() to perform subscription in a loop instead of by recursion.

Returns:CoreSubscriber<? super I>

next CoreSubscriber or "null" if the subscription was already done inside the method

Annotations
@Nullable