public class Jaxb2CollectionHttpMessageConverter<T extends Collection> extends AbstractJaxb2HttpMessageConverter<T> implements GenericHttpMessageConverter<T>
HttpMessageConverter that can read XML collections using JAXB2.
This converter can read collections that contain classes
annotated with XmlRootElement and XmlType. Note that this converter
does not support writing.
logger| Constructor and Description |
|---|
Jaxb2CollectionHttpMessageConverter() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canRead(Class<?> clazz,
MediaType mediaType)
Always returns
false since Jaxb2CollectionHttpMessageConverter
required generic type information in order to read a Collection. |
boolean |
canRead(Type type,
Class<?> contextClass,
MediaType mediaType)
Indicates whether the given type can be read by this converter.
|
boolean |
canWrite(Class<?> clazz,
MediaType mediaType)
Always returns
false since Jaxb2CollectionHttpMessageConverter
does not convert collections to XML. |
boolean |
canWrite(Type type,
Class<?> clazz,
MediaType mediaType)
Always returns
false since Jaxb2CollectionHttpMessageConverter
does not convert collections to XML. |
protected T |
createCollection(Class<?> collectionClass)
Create a Collection of the given type, with the given initial capacity
(if supported by the Collection type).
|
protected XMLInputFactory |
createXmlInputFactory()
Create a
XMLInputFactory that this converter will use to create XMLStreamReader and XMLEventReader objects. |
T |
read(Type type,
Class<?> contextClass,
HttpInputMessage inputMessage)
Read an object of the given type form the given input message, and returns it.
|
protected T |
readFromSource(Class<? extends T> 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.
|
void |
write(T t,
Type type,
MediaType contentType,
HttpOutputMessage outputMessage)
Write an given object to the given output message.
|
protected void |
writeToResult(T t,
HttpHeaders headers,
Result result)
Abstract template method called from
AbstractXmlHttpMessageConverter.writeInternal(Object, HttpOutputMessage). |
createMarshaller, createUnmarshaller, customizeMarshaller, customizeUnmarshaller, getJaxbContextreadInternal, transform, writeInternaladdDefaultHeaders, canRead, canWrite, getContentLength, getDefaultCharset, getDefaultContentType, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, writeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetSupportedMediaTypes, read, writepublic boolean canRead(Class<?> clazz, MediaType mediaType)
false since Jaxb2CollectionHttpMessageConverter
required generic type information in order to read a Collection.canRead in interface HttpMessageConverter<T extends Collection>canRead in class AbstractHttpMessageConverter<T extends Collection>clazz - the class to test for readabilitymediaType - the media type to read (can be null if not specified);
typically the value of a Content-Type header.true if readable; false otherwisepublic boolean canRead(Type type, Class<?> contextClass, MediaType mediaType)
HttpMessageConverter.canRead(Class, MediaType) with additional ones
related to the generic type.
Jaxb2CollectionHttpMessageConverter can read a generic
Collection where the generic type is a JAXB type annotated with
XmlRootElement or XmlType.
canRead in interface GenericHttpMessageConverter<T extends Collection>type - the (potentially generic) type to test for readabilitycontextClass - a context class for the target type, for example a class
in which the target type appears in a method signature (can be null)mediaType - the media type to read, can be null if not specified.
Typically the value of a Content-Type header.true if readable; false otherwisepublic boolean canWrite(Class<?> clazz, MediaType mediaType)
false since Jaxb2CollectionHttpMessageConverter
does not convert collections to XML.canWrite in interface HttpMessageConverter<T extends Collection>canWrite in class AbstractHttpMessageConverter<T extends Collection>clazz - the class to test for writabilitymediaType - the media type to write (can be null if not specified);
typically the value of an Accept header.true if writable; false otherwisepublic boolean canWrite(Type type, Class<?> clazz, MediaType mediaType)
false since Jaxb2CollectionHttpMessageConverter
does not convert collections to XML.canWrite in interface GenericHttpMessageConverter<T extends Collection>type - the (potentially generic) type to test for writability
(can be null if not specified)clazz - the source object class to test for writabilitymediaType - the media type to write (can be null if not specified);
typically the value of an Accept header.true if writable; false otherwiseprotected boolean supports(Class<?> clazz)
AbstractHttpMessageConvertersupports in class AbstractHttpMessageConverter<T extends Collection>clazz - the class to test for supporttrue if supported; false otherwiseprotected T readFromSource(Class<? extends T> clazz, HttpHeaders headers, Source source) throws IOException
AbstractXmlHttpMessageConverterAbstractHttpMessageConverter.read(Class, HttpInputMessage).readFromSource in class AbstractXmlHttpMessageConverter<T extends Collection>clazz - the type of object to returnheaders - the HTTP input headerssource - the HTTP input bodyIOException - in case of I/O errorspublic T read(Type type, Class<?> contextClass, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException
GenericHttpMessageConverterread in interface GenericHttpMessageConverter<T extends Collection>type - the (potentially generic) type of object to return. This type must have
previously been passed to the canRead method of this interface,
which must have returned true.contextClass - a context class for the target type, for example a class
in which the target type appears in a method signature (can be null)inputMessage - the HTTP input message to read fromIOException - in case of I/O errorsHttpMessageNotReadableException - in case of conversion errorsprotected T createCollection(Class<?> collectionClass)
collectionClass - the type of Collection to instantiatepublic void write(T t, Type type, MediaType contentType, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException
GenericHttpMessageConverterwrite in interface GenericHttpMessageConverter<T extends Collection>t - the object to write to the output message. The type of this object must
have previously been passed to the canWrite method of this
interface, which must have returned true.type - the (potentially generic) type of object to write. This type must have
previously been passed to the canWrite method of this interface,
which must have returned true. Can be null if not specified.contentType - the content type to use when writing. May be null to
indicate that the default content type of the converter must be used. If not
null, this media type must have previously been passed to the
canWrite method of this interface, which must have returned
true.outputMessage - the message to write toIOException - in case of I/O errorsHttpMessageNotWritableException - in case of conversion errorsprotected void writeToResult(T t, HttpHeaders headers, Result result) throws IOException
AbstractXmlHttpMessageConverterAbstractXmlHttpMessageConverter.writeInternal(Object, HttpOutputMessage).writeToResult in class AbstractXmlHttpMessageConverter<T extends Collection>t - the object to write to the output messageheaders - the HTTP output headersresult - the HTTP output bodyIOException - in case of I/O errorsprotected XMLInputFactory createXmlInputFactory()
XMLInputFactory that this converter will use to create XMLStreamReader and XMLEventReader objects.
Can be overridden in subclasses, adding further initialization of the factory. The resulting factory is cached, so this method will only be called once.