org.springframework.core

## 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 Summary

    Constructors
    Constructor and Description
    `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.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `fromPublisher(Publisher<?> publisher)` Adapt from the given Reactive Streams Publisher.
    `ReactiveTypeDescriptor` | `getDescriptor()` Return the descriptor of the reactive type for the adapter.
    `Class<?>` | `getReactiveType()` Shortcut for `getDescriptor().getReactiveType()`.
    `boolean` | `isMultiValue()` Shortcut for `getDescriptor().isMultiValue()`.
    `boolean` | `isNoValue()` Shortcut for `getDescriptor().isNoValue()`.
    `boolean` | `supportsEmpty()` Shortcut for `getDescriptor().supportsEmpty()`.
    `<T> Publisher<T>` | `toPublisher(Object source)` Adapt the given instance to a Reactive Streams `Publisher`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### 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 Detail

    - #### 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