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

Modifier and Type
Method
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 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