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

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

public abstract class AbstractMessageConverterMethodProcessor
extends Object
implements HandlerMethodArgumentResolver, HandlerMethodReturnValueHandler

A base class for resolving method argument values by reading from the body of a request with HttpMessageConverters and for handling method return values by writing to the response with HttpMessageConverters.

Since:
3.1
Author:
Arjen Poutsma, Rossen Stoyanchev

Field Summary
protected  Log logger
           
 
Constructor Summary
protected AbstractMessageConverterMethodProcessor(List<HttpMessageConverter<?>> messageConverters)
           
 
Method Summary
protected  ServletServerHttpRequest createInputMessage(NativeWebRequest webRequest)
          Creates a new HttpInputMessage from the given NativeWebRequest.
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> Object
readWithMessageConverters(NativeWebRequest webRequest, MethodParameter methodParam, Class<T> paramType)
           
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 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.springframework.web.method.support.HandlerMethodArgumentResolver
resolveArgument, supportsParameter
 
Methods inherited from interface org.springframework.web.method.support.HandlerMethodReturnValueHandler
handleReturnValue, supportsReturnType
 

Field Detail

logger

protected final Log logger
Constructor Detail

AbstractMessageConverterMethodProcessor

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

readWithMessageConverters

protected <T> Object readWithMessageConverters(NativeWebRequest webRequest,
                                               MethodParameter methodParam,
                                               Class<T> paramType)
                                    throws IOException,
                                           HttpMediaTypeNotSupportedException
Throws:
IOException
HttpMediaTypeNotSupportedException

createInputMessage

protected ServletServerHttpRequest createInputMessage(NativeWebRequest webRequest)
Creates a new HttpInputMessage from the given NativeWebRequest.

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

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: