Class ReactiveAdapter

java.lang.Object
org.springframework.core.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 Details

    • ReactiveAdapter

      public ReactiveAdapter(ReactiveTypeDescriptor descriptor, Function<Object,Publisher<?>> toPublisherFunction, Function<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 Details

    • getDescriptor

      public ReactiveTypeDescriptor getDescriptor()
      Return the descriptor of the reactive type for the adapter.
    • getReactiveType

      public Class<?> getReactiveType()
      Shortcut for getDescriptor().getReactiveType().
    • 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> 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(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