public class ReactiveAdapterRegistry
extends java.lang.Object
Publisher
to/from
various async/reactive types such as CompletableFuture
, RxJava
Observable
, and others.
By default, depending on classpath availability, adapters are registered
for Reactor, RxJava 1, RxJava 2 types, CompletableFuture
, and Java 9+
Flow.Publisher.
Constructor and Description |
---|
ReactiveAdapterRegistry()
Create a registry and auto-register default adapters.
|
Modifier and Type | Method and Description |
---|---|
ReactiveAdapter |
getAdapter(java.lang.Class<?> reactiveType)
Get the adapter for the given reactive type.
|
ReactiveAdapter |
getAdapter(java.lang.Class<?> reactiveType,
java.lang.Object source)
Get the adapter for the given reactive type.
|
boolean |
hasAdapters()
Whether the registry has any adapters which would be the case if any of
Reactor, RxJava 2, or RxJava 1 (+ RxJava Reactive Streams bridge) are
present on the classpath.
|
void |
registerReactiveType(ReactiveTypeDescriptor descriptor,
java.util.function.Function<java.lang.Object,org.reactivestreams.Publisher<?>> toAdapter,
java.util.function.Function<org.reactivestreams.Publisher<?>,java.lang.Object> fromAdapter)
Register a reactive type along with functions to adapt to and from a
Reactive Streams
Publisher . |
public ReactiveAdapterRegistry()
public boolean hasAdapters()
public void registerReactiveType(ReactiveTypeDescriptor descriptor, java.util.function.Function<java.lang.Object,org.reactivestreams.Publisher<?>> toAdapter, java.util.function.Function<org.reactivestreams.Publisher<?>,java.lang.Object> fromAdapter)
Publisher
. The functions can assume their
input is never be null
nor Optional
.@Nullable public ReactiveAdapter getAdapter(java.lang.Class<?> reactiveType)
@Nullable public ReactiveAdapter getAdapter(@Nullable java.lang.Class<?> reactiveType, @Nullable java.lang.Object source)
reactiveType
- the reactive type
(may be null
if a concrete source object is given)source
- an instance of the reactive type
(i.e. to adapt from; may be null
if the reactive type is specified)