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
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddHandler(HandlerMethodReturnValueHandler returnValueHandler) Add the givenHandlerMethodReturnValueHandler.addHandlers(List<? extends HandlerMethodReturnValueHandler> handlers) Add the givenHandlerMethodReturnValueHandlers.voidclear()Clear the list of configured handlers.Return the currently configured Logger.Return a read-only list with the configured handlers.voidhandleReturnValue(Object returnValue, MethodParameter returnType, Message<?> message) Handle the given return value.booleanisAsyncReturnValue(Object returnValue, MethodParameter returnType) Whether the return value represents an asynchronous, Future-like type with success and error callbacks.voidSet an alternative logger to use than the one based on the class name.booleansupportsReturnType(MethodParameter returnType) Whether the given method return type is supported by this handler.toListenableFuture(Object returnValue, MethodParameter returnType) Adapt the asynchronous return value to aListenableFuture.
-
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:HandlerMethodReturnValueHandlerWhether the given method return type is supported by this handler.- Specified by:
supportsReturnTypein interfaceHandlerMethodReturnValueHandler- Parameters:
returnType- the method return type to check- Returns:
trueif this handler supports the supplied return type;falseotherwise
-
handleReturnValue
public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, Message<?> message) throws Exception Description copied from interface:HandlerMethodReturnValueHandlerHandle the given return value.- Specified by:
handleReturnValuein 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:AsyncHandlerMethodReturnValueHandlerWhether the return value represents an asynchronous, Future-like type with success and error callbacks. If this method returnstrue, thenAsyncHandlerMethodReturnValueHandler.toListenableFuture(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:
isAsyncReturnValuein interfaceAsyncHandlerMethodReturnValueHandler- Parameters:
returnValue- the value returned from the handler methodreturnType- the type of the return value- Returns:
trueif the return value type represents an async value
-
toListenableFuture
@Nullable public ListenableFuture<?> toListenableFuture(Object returnValue, MethodParameter returnType) Description copied from interface:AsyncHandlerMethodReturnValueHandlerAdapt the asynchronous return value to aListenableFuture. Implementations should consider returning an instance ofSettableListenableFuture. Return value handling will then continue when the ListenableFuture 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:
toListenableFuturein interfaceAsyncHandlerMethodReturnValueHandler- Parameters:
returnValue- the value returned from the handler methodreturnType- the type of the return value- Returns:
- the resulting ListenableFuture, or
nullin which case no further handling will be performed
-