Top Inners Fields Constructors Methods
reactor.core.publisher

pack-priv final Class FluxJoin<TLeft, TRight, TLeftEnd, TRightEnd, R>

extends InternalFluxOperator<TLeft, R>
Class Inheritance
Imports
java.util.LinkedHashMap, .Map, .Objects, .Queue, java.util.concurrent.atomic.AtomicIntegerFieldUpdater, .AtomicLongFieldUpdater, .AtomicReferenceFieldUpdater, java.util.function.BiFunction, .BiPredicate, .Function, .Supplier, java.util.stream.Stream, org.reactivestreams.Publisher, .Subscriber, reactor.core.CoreSubscriber, .Disposable, .Disposables, .Exceptions, .Scannable, reactor.core.publisher.FluxGroupJoin.JoinSupport, .FluxGroupJoin.LeftRightEndSubscriber, .FluxGroupJoin.LeftRightSubscriber, reactor.util.annotation.Nullable, reactor.util.concurrent.Queues

Since
3.0
See Also
https://github.com/reactor/reactive-streams-commons

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class
FluxJoin.JoinSubscription<TLeft, TRight, TLeftEnd, TRightEnd, R>

Field Summary

Modifier and TypeField and Description
pack-priv final Function<? super TLeft, ? extends Publisher<TLeftEnd>>
pack-priv final Publisher<? extends TRight>
pack-priv final BiFunction<? super TLeft, ? super TRight, ? extends R>
pack-priv final Function<? super TRight, ? extends Publisher<TRightEnd>>
Inherited from reactor.core.publisher.InternalFluxOperator:
optimizableOperator

Constructor Summary

AccessConstructor and Description
pack-priv
FluxJoin(Flux<TLeft> source, Publisher<? extends TRight> other, Function<? super TLeft, ? extends Publisher<TLeftEnd>> leftEnd, Function<? super TRight, ? extends Publisher<TRightEnd>> rightEnd, BiFunction<? super TLeft, ? super TRight, ? extends R> resultSelector)

Method Summary

Modifier and TypeMethod and Description
public Object
scanUnsafe(Scannable.Attr<T>
a Attr to resolve for the component.
key
)

Overrides reactor.core.publisher.InternalFluxOperator.scanUnsafe.

Implements reactor.core.Scannable.scanUnsafe.

This method is used internally by components to define their key-value mappings in a single place.
public CoreSubscriber<? super TLeft>
subscribeOrReturn(CoreSubscriber<? super R> actual)

Implements abstract reactor.core.publisher.InternalFluxOperator.subscribeOrReturn.

Implements reactor.core.publisher.OptimizableOperator.subscribeOrReturn.

Allow delegation of the subscription by returning a CoreSubscriber, or force subscription encapsulation by returning null.
Inherited from reactor.core.publisher.InternalFluxOperator:
nextOptimizableSourcesourcesubscribe

Field Detail

leftEndback to summary
pack-priv final Function<? super TLeft, ? extends Publisher<TLeftEnd>> leftEnd
otherback to summary
pack-priv final Publisher<? extends TRight> other
resultSelectorback to summary
pack-priv final BiFunction<? super TLeft, ? super TRight, ? extends R> resultSelector
rightEndback to summary
pack-priv final Function<? super TRight, ? extends Publisher<TRightEnd>> rightEnd

Constructor Detail

FluxJoinback to summary
pack-priv FluxJoin(Flux<TLeft> source, Publisher<? extends TRight> other, Function<? super TLeft, ? extends Publisher<TLeftEnd>> leftEnd, Function<? super TRight, ? extends Publisher<TRightEnd>> rightEnd, BiFunction<? super TLeft, ? super TRight, ? extends R> resultSelector)

Method Detail

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

Overrides reactor.core.publisher.InternalFluxOperator.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
subscribeOrReturnback to summary
public CoreSubscriber<? super TLeft> subscribeOrReturn(CoreSubscriber<? super R> actual)

Implements abstract reactor.core.publisher.InternalFluxOperator.subscribeOrReturn.

Implements 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 TLeft>

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

Annotations
@Override
reactor.core.publisher back to summary

pack-priv final Class FluxJoin.JoinSubscription<TLeft, TRight, TLeftEnd, TRightEnd, R>

extends Object
implements FluxGroupJoin.JoinSupport<R>
Class Inheritance
All Implemented Interfaces
reactor.core.publisher.FluxGroupJoin.JoinSupport, reactor.core.publisher.InnerProducer, org.reactivestreams.Subscription, reactor.core.Scannable

Field Summary

Modifier and TypeField and Description
pack-priv volatile int
pack-priv static final AtomicIntegerFieldUpdater<FluxJoin.JoinSubscription<TLeft, TRight, TLeftEnd, TRightEnd, R>>
pack-priv final CoreSubscriber<? super R>
pack-priv final Disposable.Composite
pack-priv volatile Throwable
pack-priv static final AtomicReferenceFieldUpdater<FluxJoin.JoinSubscription<TLeft, TRight, TLeftEnd, TRightEnd, R>, Throwable>
pack-priv static final Integer
pack-priv static final Integer
pack-priv final Function<? super TLeft, ? extends Publisher<TLeftEnd>>
pack-priv int
pack-priv final Map<Integer, TLeft>
pack-priv final Queue<Object>
pack-priv final BiPredicate<Object, Object>
pack-priv volatile long
pack-priv static final AtomicLongFieldUpdater<FluxJoin.JoinSubscription<TLeft, TRight, TLeftEnd, TRightEnd, R>>
pack-priv final BiFunction<? super TLeft, ? super TRight, ? extends R>
pack-priv static final Integer
pack-priv static final Integer
pack-priv final Function<? super TRight, ? extends Publisher<TRightEnd>>
pack-priv int
pack-priv final Map<Integer, TRight>
pack-priv volatile int
pack-priv static final AtomicIntegerFieldUpdater<FluxJoin.JoinSubscription<TLeft, TRight, TLeftEnd, TRightEnd, R>>

Constructor Summary

AccessConstructor and Description
pack-priv
JoinSubscription(CoreSubscriber<? super R> actual, Function<? super TLeft, ? extends Publisher<TLeftEnd>> leftEnd, Function<? super TRight, ? extends Publisher<TRightEnd>> rightEnd, BiFunction<? super TLeft, ? super TRight, ? extends R> resultSelector)

Method Summary

Modifier and TypeMethod and Description
public final CoreSubscriber<? super R>
public void
cancel()

Implements org.reactivestreams.Subscription.cancel.

Request the Publisher to stop sending data and clean up resources.
pack-priv void
pack-priv void
public void
public void
public void
public void
public Stream<? extends Scannable>
inners()

Overrides default reactor.core.Scannable.inners.

Return a Stream of referenced inners (flatmap, multicast etc)
public void
public void
request(long
the strictly positive number of elements to requests to the upstream Publisher
n
)

Implements org.reactivestreams.Subscription.request.

No events will be sent by a Publisher until demand is signaled via this method.
public Object
scanUnsafe(Scannable.Attr<T>
a Attr to resolve for the component.
key
)

Overrides default reactor.core.publisher.InnerProducer.scanUnsafe.

This method is used internally by components to define their key-value mappings in a single place.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

activeback to summary
pack-priv volatile int active
ACTIVEback to summary
pack-priv static final AtomicIntegerFieldUpdater<FluxJoin.JoinSubscription<TLeft, TRight, TLeftEnd, TRightEnd, R>> ACTIVE
actualback to summary
pack-priv final CoreSubscriber<? super R> actual
cancellationsback to summary
pack-priv final Disposable.Composite cancellations
errorback to summary
pack-priv volatile Throwable error
ERRORback to summary
pack-priv static final AtomicReferenceFieldUpdater<FluxJoin.JoinSubscription<TLeft, TRight, TLeftEnd, TRightEnd, R>, Throwable> ERROR
LEFT_CLOSEback to summary
pack-priv static final Integer LEFT_CLOSE
LEFT_VALUEback to summary
pack-priv static final Integer LEFT_VALUE
leftEndback to summary
pack-priv final Function<? super TLeft, ? extends Publisher<TLeftEnd>> leftEnd
leftIndexback to summary
pack-priv int leftIndex
leftsback to summary
pack-priv final Map<Integer, TLeft> lefts
queueback to summary
pack-priv final Queue<Object> queue
queueBiOfferback to summary
pack-priv final BiPredicate<Object, Object> queueBiOffer
requestedback to summary
pack-priv volatile long requested
REQUESTEDback to summary
pack-priv static final AtomicLongFieldUpdater<FluxJoin.JoinSubscription<TLeft, TRight, TLeftEnd, TRightEnd, R>> REQUESTED
resultSelectorback to summary
pack-priv final BiFunction<? super TLeft, ? super TRight, ? extends R> resultSelector
RIGHT_CLOSEback to summary
pack-priv static final Integer RIGHT_CLOSE
RIGHT_VALUEback to summary
pack-priv static final Integer RIGHT_VALUE
rightEndback to summary
pack-priv final Function<? super TRight, ? extends Publisher<TRightEnd>> rightEnd
rightIndexback to summary
pack-priv int rightIndex
rightsback to summary
pack-priv final Map<Integer, TRight> rights
wipback to summary
pack-priv volatile int wip
WIPback to summary
pack-priv static final AtomicIntegerFieldUpdater<FluxJoin.JoinSubscription<TLeft, TRight, TLeftEnd, TRightEnd, R>> WIP

Constructor Detail

JoinSubscriptionback to summary
pack-priv JoinSubscription(CoreSubscriber<? super R> actual, Function<? super TLeft, ? extends Publisher<TLeftEnd>> leftEnd, Function<? super TRight, ? extends Publisher<TRightEnd>> rightEnd, BiFunction<? super TLeft, ? super TRight, ? extends R> resultSelector)
Annotations
@SuppressWarnings:unchecked

Method Detail

actualback to summary
public final CoreSubscriber<? super R> actual()

Implements reactor.core.publisher.InnerProducer.actual.

Annotations
@Override
cancelback to summary
public void cancel()

Implements org.reactivestreams.Subscription.cancel.

Doc from org.reactivestreams.Subscription.cancel.

Request the Publisher to stop sending data and clean up resources.

Data may still be sent to meet previously signalled demand after calling cancel.

Annotations
@Override
drainback to summary
pack-priv void drain()
errorAllback to summary
pack-priv void errorAll(Subscriber<?> a)
innerCloseback to summary
public void innerClose(boolean isLeft, FluxGroupJoin.LeftRightEndSubscriber index)

Implements reactor.core.publisher.FluxGroupJoin.JoinSupport.innerClose.

Annotations
@Override
innerCloseErrorback to summary
public void innerCloseError(Throwable ex)

Implements reactor.core.publisher.FluxGroupJoin.JoinSupport.innerCloseError.

Annotations
@Override
innerCompleteback to summary
public void innerComplete(FluxGroupJoin.LeftRightSubscriber sender)

Implements reactor.core.publisher.FluxGroupJoin.JoinSupport.innerComplete.

Annotations
@Override
innerErrorback to summary
public void innerError(Throwable ex)

Implements reactor.core.publisher.FluxGroupJoin.JoinSupport.innerError.

Annotations
@Override
innersback to summary
public Stream<? extends Scannable> inners()

Overrides default reactor.core.Scannable.inners.

Doc from reactor.core.Scannable.inners.

Return a Stream of referenced inners (flatmap, multicast etc)

Returns:Stream<? extends Scannable>

a Stream of referenced inners (flatmap, multicast etc)

Annotations
@Override
innerValueback to summary
public void innerValue(boolean isLeft, Object o)

Implements reactor.core.publisher.FluxGroupJoin.JoinSupport.innerValue.

Annotations
@Override
requestback to summary
public void request(long n)

Implements org.reactivestreams.Subscription.request.

Doc from org.reactivestreams.Subscription.request.

No events will be sent by a Publisher until demand is signaled via this method.

It can be called however often and whenever needed—but if the outstanding cumulative demand ever becomes Long.MAX_VALUE or more, it may be treated by the Publisher as "effectively unbounded".

Whatever has been requested can be sent by the Publisher so only signal demand for what can be safely handled.

A Publisher can send less than is requested if the stream ends but then must emit either Subscriber#onError(Throwable) or Subscriber#onComplete().

Parameters
n:long

the strictly positive number of elements to requests to the upstream Publisher

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

Overrides default reactor.core.publisher.InnerProducer.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