org.springframework.http.converter.xml
Class Jaxb2RootElementHttpMessageConverter

java.lang.Object
  extended by org.springframework.http.converter.AbstractHttpMessageConverter<T>
      extended by org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter<T>
          extended by org.springframework.http.converter.xml.AbstractJaxb2HttpMessageConverter<Object>
              extended by org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter
All Implemented Interfaces:
HttpMessageConverter<Object>

public class Jaxb2RootElementHttpMessageConverter
extends AbstractJaxb2HttpMessageConverter<Object>

Implementation of HttpMessageConverter that can read and write XML using JAXB2.

This converter can read classes annotated with XmlRootElement and XmlType, and write classes annotated with with XmlRootElement, or subclasses thereof.

Since:
3.0
Author:
Arjen Poutsma

Field Summary
 
Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
logger
 
Constructor Summary
Jaxb2RootElementHttpMessageConverter()
           
 
Method Summary
 boolean canRead(Class<?> clazz, MediaType mediaType)
          Indicates whether the given class can be read by this converter.
 boolean canWrite(Class<?> clazz, MediaType mediaType)
          Indicates whether the given class can be written by this converter.
protected  Object readFromSource(Class<?> clazz, HttpHeaders headers, Source source)
          Abstract template method called from AbstractHttpMessageConverter.read(Class, HttpInputMessage).
protected  boolean supports(Class<?> clazz)
          Indicates whether the given class is supported by this converter.
protected  void writeToResult(Object o, HttpHeaders headers, Result result)
          Abstract template method called from AbstractXmlHttpMessageConverter.writeInternal(Object, HttpOutputMessage).
 
Methods inherited from class org.springframework.http.converter.xml.AbstractJaxb2HttpMessageConverter
createMarshaller, createUnmarshaller, getJaxbContext
 
Methods inherited from class org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter
readInternal, transform, writeInternal
 
Methods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
canRead, canWrite, getContentLength, getDefaultContentType, getSupportedMediaTypes, read, setSupportedMediaTypes, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Jaxb2RootElementHttpMessageConverter

public Jaxb2RootElementHttpMessageConverter()
Method Detail

canRead

public boolean canRead(Class<?> clazz,
                       MediaType mediaType)
Description copied from class: AbstractHttpMessageConverter
Indicates whether the given class can be read by this converter.

This implementation checks if the given class is supported, and if the supported media types include the given media type.

Specified by:
canRead in interface HttpMessageConverter<Object>
Overrides:
canRead in class AbstractHttpMessageConverter<Object>
Parameters:
clazz - the class to test for readability
mediaType - the media type to read, can be null if not specified. Typically the value of a Content-Type header.
Returns:
true if readable; false otherwise

canWrite

public boolean canWrite(Class<?> clazz,
                        MediaType mediaType)
Description copied from class: AbstractHttpMessageConverter
Indicates whether the given class can be written by this converter.

This implementation checks if the given class is supported, and if the supported media types include the given media type.

Specified by:
canWrite in interface HttpMessageConverter<Object>
Overrides:
canWrite in class AbstractHttpMessageConverter<Object>
Parameters:
clazz - the class to test for writability
mediaType - the media type to write, can be null if not specified. Typically the value of an Accept header.
Returns:
true if writable; false otherwise

supports

protected boolean supports(Class<?> clazz)
Description copied from class: AbstractHttpMessageConverter
Indicates whether the given class is supported by this converter.

Specified by:
supports in class AbstractHttpMessageConverter<Object>
Parameters:
clazz - the class to test for support
Returns:
true if supported; false otherwise

readFromSource

protected Object readFromSource(Class<?> clazz,
                                HttpHeaders headers,
                                Source source)
                         throws IOException
Description copied from class: AbstractXmlHttpMessageConverter
Abstract template method called from AbstractHttpMessageConverter.read(Class, HttpInputMessage).

Specified by:
readFromSource in class AbstractXmlHttpMessageConverter<Object>
Parameters:
clazz - the type of object to return
headers - the HTTP input headers
source - the HTTP input body
Returns:
the converted object
Throws:
IOException - in case of I/O errors

writeToResult

protected void writeToResult(Object o,
                             HttpHeaders headers,
                             Result result)
                      throws IOException
Description copied from class: AbstractXmlHttpMessageConverter
Abstract template method called from AbstractXmlHttpMessageConverter.writeInternal(Object, HttpOutputMessage).

Specified by:
writeToResult in class AbstractXmlHttpMessageConverter<Object>
Parameters:
o - the object to write to the output message
headers - the HTTP output headers
result - the HTTP output body
Throws:
IOException - in case of I/O errors