org.springframework.web.servlet.mvc.method.annotation
Class AbstractMessageConverterMethodProcessor

java.lang.Object
  extended by org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
      extended by org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor
All Implemented Interfaces:
HandlerMethodArgumentResolver, HandlerMethodReturnValueHandler
Direct Known Subclasses:
HttpEntityMethodProcessor, RequestResponseBodyMethodProcessor

public abstract class AbstractMessageConverterMethodProcessor
extends AbstractMessageConverterMethodArgumentResolver
implements HandlerMethodReturnValueHandler

Extends AbstractMessageConverterMethodArgumentResolver with the ability to handle method return values by writing to the response with HttpMessageConverters.

Since:
3.1
Author:
Arjen Poutsma, Rossen Stoyanchev

Field Summary
 
Fields inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
allSupportedMediaTypes, logger, messageConverters
 
Constructor Summary
protected AbstractMessageConverterMethodProcessor(List<HttpMessageConverter<?>> messageConverters)
           
 
Method Summary
protected  ServletServerHttpResponse createOutputMessage(NativeWebRequest webRequest)
          Creates a new HttpOutputMessage from the given NativeWebRequest.
protected  List<MediaType> getProducibleMediaTypes(HttpServletRequest request, Class<?> returnValueClass)
          Returns the media types that can be produced: The producible media types specified in the request mappings, or Media types of configured converters that can write the specific return value, or MediaType.ALL
protected
<T> void
writeWithMessageConverters(T returnValue, MethodParameter returnType, NativeWebRequest webRequest)
          Writes the given return value to the given web request.
protected
<T> void
writeWithMessageConverters(T returnValue, MethodParameter returnType, ServletServerHttpRequest inputMessage, ServletServerHttpResponse outputMessage)
          Writes the given return type to the given output message.
 
Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
createInputMessage, readWithMessageConverters, readWithMessageConverters
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.springframework.web.method.support.HandlerMethodReturnValueHandler
handleReturnValue, supportsReturnType
 
Methods inherited from interface org.springframework.web.method.support.HandlerMethodArgumentResolver
resolveArgument, supportsParameter
 

Constructor Detail

AbstractMessageConverterMethodProcessor

protected AbstractMessageConverterMethodProcessor(List<HttpMessageConverter<?>> messageConverters)
Method Detail

createOutputMessage

protected ServletServerHttpResponse createOutputMessage(NativeWebRequest webRequest)
Creates a new HttpOutputMessage from the given NativeWebRequest.

Parameters:
webRequest - the web request to create an output message from
Returns:
the output message

writeWithMessageConverters

protected <T> void writeWithMessageConverters(T returnValue,
                                              MethodParameter returnType,
                                              NativeWebRequest webRequest)
                                   throws IOException,
                                          HttpMediaTypeNotAcceptableException
Writes the given return value to the given web request. Delegates to writeWithMessageConverters(Object, MethodParameter, ServletServerHttpRequest, ServletServerHttpResponse)

Throws:
IOException
HttpMediaTypeNotAcceptableException

writeWithMessageConverters

protected <T> void writeWithMessageConverters(T returnValue,
                                              MethodParameter returnType,
                                              ServletServerHttpRequest inputMessage,
                                              ServletServerHttpResponse outputMessage)
                                   throws IOException,
                                          HttpMediaTypeNotAcceptableException
Writes the given return type to the given output message.

Parameters:
returnValue - the value to write to the output message
returnType - the type of the value
inputMessage - the input messages. Used to inspect the Accept header.
outputMessage - the output message to write to
Throws:
IOException - thrown in case of I/O errors
HttpMediaTypeNotAcceptableException - thrown when the conditions indicated by Accept header on the request cannot be met by the message converters

getProducibleMediaTypes

protected List<MediaType> getProducibleMediaTypes(HttpServletRequest request,
                                                  Class<?> returnValueClass)
Returns the media types that can be produced: