Package org.springframework.web.method.support

# Class HandlerMethodReturnValueHandlerComposite

java.lang.Object
org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite

All Implemented Interfaces:
  `HandlerMethodReturnValueHandler`

public class HandlerMethodReturnValueHandlerComposite extends Object implements HandlerMethodReturnValueHandler
Handles method return values by delegating to a list of registered `HandlerMethodReturnValueHandlers`. Previously resolved return types are cached for faster lookups.

Since:
  3.1
Author:
  Rossen Stoyanchev

## Constructor Summary

Constructors
Constructor
Description
`HandlerMethodReturnValueHandlerComposite()`

## Method Summary

Modifier and Type
Method
Description
`HandlerMethodReturnValueHandlerComposite`
`addHandler(HandlerMethodReturnValueHandler handler)`
Add the given `HandlerMethodReturnValueHandler`.
`HandlerMethodReturnValueHandlerComposite`
`addHandlers(List<? extends HandlerMethodReturnValueHandler> handlers)`
Add the given `HandlerMethodReturnValueHandlers`.
`List<HandlerMethodReturnValueHandler>`
`getHandlers()`
Return a read-only list with the registered handlers, or an empty list.
`void`
`handleReturnValue(Object returnValue, org.springframework.core.MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest)`
Iterate over registered `HandlerMethodReturnValueHandlers` and invoke the one that supports it.
`boolean`
`supportsReturnType(org.springframework.core.MethodParameter returnType)`
Whether the given method return type is supported by any registered `HandlerMethodReturnValueHandler`.

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

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

## Constructor Details

### HandlerMethodReturnValueHandlerComposite

public HandlerMethodReturnValueHandlerComposite()

## Method Details

### getHandlers

public List<HandlerMethodReturnValueHandler> getHandlers()
Return a read-only list with the registered handlers, or an empty list.

### supportsReturnType

public boolean supportsReturnType(org.springframework.core.MethodParameter returnType)
Whether the given method return type is supported by any registered `HandlerMethodReturnValueHandler`.

Specified by:
  `supportsReturnType` in interface `HandlerMethodReturnValueHandler`
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, org.springframework.core.MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception
Iterate over registered `HandlerMethodReturnValueHandlers` and invoke the one that supports it.

Specified by:
  `handleReturnValue` in interface `HandlerMethodReturnValueHandler`
Parameters:
  `returnValue` - the value returned from the handler method
  `returnType` - the type of the return value. This type must have previously been passed to `HandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)` which must have returned `true`.
  `mavContainer` - the ModelAndViewContainer for the current request
  `webRequest` - the current request
Throws:
  `IllegalStateException` - if no suitable `HandlerMethodReturnValueHandler` is found.
  `Exception` - if the return value handling results in an error

### addHandler

public HandlerMethodReturnValueHandlerComposite addHandler(HandlerMethodReturnValueHandler handler)
Add the given `HandlerMethodReturnValueHandler`.

### addHandlers

public HandlerMethodReturnValueHandlerComposite addHandlers(@Nullable List<? extends HandlerMethodReturnValueHandler> handlers)
Add the given `HandlerMethodReturnValueHandlers`.