Class ReactiveAdapter


  • public class ReactiveAdapter
    extends Object
    Adapter for a Reactive Streams Publisher to and from an async/reactive type such as CompletableFuture, RxJava Observable, and others.

    An adapter is typically obtained via ReactiveAdapterRegistry.

    Since:
    5.0
    Author:
    Rossen Stoyanchev
    • Constructor Detail

      • ReactiveAdapter

        public ReactiveAdapter​(ReactiveTypeDescriptor descriptor,
                               Function<Object,​org.reactivestreams.Publisher<?>> toPublisherFunction,
                               Function<org.reactivestreams.Publisher<?>,​Object> fromPublisherFunction)
        Constructor for an adapter with functions to convert the target reactive or async type to and from a Reactive Streams Publisher.
        Parameters:
        descriptor - the reactive type descriptor
        toPublisherFunction - adapter to a Publisher
        fromPublisherFunction - adapter from a Publisher
    • Method Detail

      • isMultiValue

        public boolean isMultiValue()
        Shortcut for getDescriptor().isMultiValue().
      • isNoValue

        public boolean isNoValue()
        Shortcut for getDescriptor().isNoValue().
      • supportsEmpty

        public boolean supportsEmpty()
        Shortcut for getDescriptor().supportsEmpty().
      • toPublisher

        public <T> org.reactivestreams.Publisher<T> toPublisher​(@Nullable
                                                                Object source)
        Adapt the given instance to a Reactive Streams Publisher.
        Parameters:
        source - the source object to adapt from; if the given object is null, ReactiveTypeDescriptor.getEmptyValue() is used.
        Returns:
        the Publisher representing the adaptation
      • fromPublisher

        public Object fromPublisher​(org.reactivestreams.Publisher<?> publisher)
        Adapt from the given Reactive Streams Publisher.
        Parameters:
        publisher - the publisher to adapt from
        Returns:
        the reactive type instance representing the adapted publisher