Package org.springframework.core
Class ReactiveTypeDescriptor
java.lang.Object
org.springframework.core.ReactiveTypeDescriptor
Describes the semantics of a reactive type including boolean checks for
isMultiValue()
, isNoValue()
, and supportsEmpty()
.- Since:
- 5.0
- Author:
- Rossen Stoyanchev
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Return an empty-value instance for the underlying reactive or async type.Class<?>
Return the reactive type for this descriptor.int
hashCode()
boolean
Whether the underlying operation is deferred and needs to be started explicitly, e.g.boolean
Returntrue
if the reactive type can produce more than 1 value can be produced and is therefore a good fit to adapt toFlux
.boolean
Returntrue
if the reactive type does not produce any values and only provides completion and error signals.static ReactiveTypeDescriptor
multiValue
(Class<?> type, Supplier<?> emptySupplier) Descriptor for a reactive type that can produce 0..N values.static ReactiveTypeDescriptor
nonDeferredAsyncValue
(Class<?> type, Supplier<?> emptySupplier) The same assingleOptionalValue(Class, Supplier)
but for a non-deferred, async type such asCompletableFuture
.static ReactiveTypeDescriptor
Descriptor for a reactive type that does not produce any values.static ReactiveTypeDescriptor
singleOptionalValue
(Class<?> type, Supplier<?> emptySupplier) Descriptor for a reactive type that can produce 0..1 values.static ReactiveTypeDescriptor
singleRequiredValue
(Class<?> type) Descriptor for a reactive type that must produce 1 value to complete.boolean
Returntrue
if the reactive type can complete with no values.
-
Method Details
-
getReactiveType
Return the reactive type for this descriptor. -
isMultiValue
public boolean isMultiValue()Returntrue
if the reactive type can produce more than 1 value can be produced and is therefore a good fit to adapt toFlux
. Afalse
return value implies the reactive type can produce 1 value at most and is therefore a good fit to adapt toMono
. -
isNoValue
public boolean isNoValue()Returntrue
if the reactive type does not produce any values and only provides completion and error signals. -
supportsEmpty
public boolean supportsEmpty()Returntrue
if the reactive type can complete with no values. -
getEmptyValue
Return an empty-value instance for the underlying reactive or async type.Use of this type implies
supportsEmpty()
istrue
. -
isDeferred
public boolean isDeferred()Whether the underlying operation is deferred and needs to be started explicitly, e.g. via subscribing (or similar), or whether it is triggered without the consumer having any control.- Since:
- 5.2.7
-
equals
-
hashCode
public int hashCode() -
multiValue
Descriptor for a reactive type that can produce 0..N values.- Parameters:
type
- the reactive typeemptySupplier
- a supplier of an empty-value instance of the reactive type
-
singleOptionalValue
Descriptor for a reactive type that can produce 0..1 values.- Parameters:
type
- the reactive typeemptySupplier
- a supplier of an empty-value instance of the reactive type
-
singleRequiredValue
Descriptor for a reactive type that must produce 1 value to complete.- Parameters:
type
- the reactive type
-
noValue
Descriptor for a reactive type that does not produce any values.- Parameters:
type
- the reactive typeemptySupplier
- a supplier of an empty-value instance of the reactive type
-
nonDeferredAsyncValue
public static ReactiveTypeDescriptor nonDeferredAsyncValue(Class<?> type, Supplier<?> emptySupplier) The same assingleOptionalValue(Class, Supplier)
but for a non-deferred, async type such asCompletableFuture
.- Parameters:
type
- the reactive typeemptySupplier
- a supplier of an empty-value instance of the reactive type- Since:
- 5.2.7
-