Class HandlerMethodReturnValueHandlerComposite
java.lang.Object
org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite
- All Implemented Interfaces:
AsyncHandlerMethodReturnValueHandler
,HandlerMethodReturnValueHandler
public class HandlerMethodReturnValueHandlerComposite
extends Object
implements AsyncHandlerMethodReturnValueHandler
A HandlerMethodReturnValueHandler that wraps and delegates to others.
- Since:
- 4.0
- Author:
- Rossen Stoyanchev
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaddHandler
(HandlerMethodReturnValueHandler returnValueHandler) Add the givenHandlerMethodReturnValueHandler
.addHandlers
(List<? extends HandlerMethodReturnValueHandler> handlers) Add the givenHandlerMethodReturnValueHandlers
.void
clear()
Clear the list of configured handlers.Return the currently configured Logger.Return a read-only list with the configured handlers.void
handleReturnValue
(Object returnValue, MethodParameter returnType, Message<?> message) Handle the given return value.boolean
isAsyncReturnValue
(Object returnValue, MethodParameter returnType) Whether the return value represents an asynchronous, Future-like type with success and error callbacks.void
Set an alternative logger to use than the one based on the class name.boolean
supportsReturnType
(MethodParameter returnType) Whether the given method return type is supported by this handler.toCompletableFuture
(Object returnValue, MethodParameter returnType) Adapt the asynchronous return value to aCompletableFuture
.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.messaging.handler.invocation.AsyncHandlerMethodReturnValueHandler
toListenableFuture
-
Field Details
-
defaultLogger
Public for wrapping with fallback logger.
-
-
Constructor Details
-
HandlerMethodReturnValueHandlerComposite
public HandlerMethodReturnValueHandlerComposite()
-
-
Method Details
-
setLogger
Set an alternative logger to use than the one based on the class name.- Parameters:
logger
- the logger to use- Since:
- 5.1
-
getLogger
Return the currently configured Logger.- Since:
- 5.1
-
getReturnValueHandlers
Return a read-only list with the configured handlers. -
clear
public void clear()Clear the list of configured handlers. -
addHandler
public HandlerMethodReturnValueHandlerComposite addHandler(HandlerMethodReturnValueHandler returnValueHandler) Add the givenHandlerMethodReturnValueHandler
. -
addHandlers
public HandlerMethodReturnValueHandlerComposite addHandlers(@Nullable List<? extends HandlerMethodReturnValueHandler> handlers) Add the givenHandlerMethodReturnValueHandlers
. -
supportsReturnType
Description copied from interface:HandlerMethodReturnValueHandler
Whether the given method return type is supported by this handler.- Specified by:
supportsReturnType
in interfaceHandlerMethodReturnValueHandler
- Parameters:
returnType
- the method return type to check- Returns:
true
if this handler supports the supplied return type;false
otherwise
-
handleReturnValue
public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, Message<?> message) throws Exception Description copied from interface:HandlerMethodReturnValueHandler
Handle the given return value.- Specified by:
handleReturnValue
in interfaceHandlerMethodReturnValueHandler
- Parameters:
returnValue
- the value returned from the handler methodreturnType
- the type of the return value. This type must have previously been passed toHandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)
and it must have returnedtrue
.message
- the message that caused this method to be called- Throws:
Exception
- if the return value handling results in an error
-
isAsyncReturnValue
Description copied from interface:AsyncHandlerMethodReturnValueHandler
Whether the return value represents an asynchronous, Future-like type with success and error callbacks. If this method returnstrue
, thenAsyncHandlerMethodReturnValueHandler.toCompletableFuture(java.lang.Object, org.springframework.core.MethodParameter)
is invoked next. If it returnsfalse
, thenHandlerMethodReturnValueHandler.handleReturnValue(java.lang.Object, org.springframework.core.MethodParameter, org.springframework.messaging.Message<?>)
is called.Note: this method will only be invoked after
HandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)
is called and it returnstrue
.- Specified by:
isAsyncReturnValue
in interfaceAsyncHandlerMethodReturnValueHandler
- Parameters:
returnValue
- the value returned from the handler methodreturnType
- the type of the return value- Returns:
true
if the return value type represents an async value
-
toCompletableFuture
@Nullable public CompletableFuture<?> toCompletableFuture(Object returnValue, MethodParameter returnType) Description copied from interface:AsyncHandlerMethodReturnValueHandler
Adapt the asynchronous return value to aCompletableFuture
.Return value handling will then continue when the CompletableFuture is completed with either success or error.
Note: this method will only be invoked after
HandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)
is called and it returnstrue
.- Specified by:
toCompletableFuture
in interfaceAsyncHandlerMethodReturnValueHandler
- Parameters:
returnValue
- the value returned from the handler methodreturnType
- the type of the return value- Returns:
- the resulting CompletableFuture, or
null
in which case no further handling will be performed
-