|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.http.converter.AbstractHttpMessageConverter<T>
public abstract class AbstractHttpMessageConverter<T>
Abstract base class for most HttpMessageConverter implementations.
This base class adds support for setting supported MediaTypes, through the
supportedMediaTypes bean property. It also adds
support for Content-Type and Content-Length when writing to output messages.
| Field Summary | |
|---|---|
protected Log |
logger
Logger available to subclasses |
| Constructor Summary | |
|---|---|
protected |
AbstractHttpMessageConverter()
Construct an AbstractHttpMessageConverter with no supported media types. |
protected |
AbstractHttpMessageConverter(MediaType... supportedMediaTypes)
Construct an AbstractHttpMessageConverter with multiple supported media type. |
protected |
AbstractHttpMessageConverter(MediaType supportedMediaType)
Construct an AbstractHttpMessageConverter with one supported media type. |
| Method Summary | |
|---|---|
boolean |
canRead(Class<?> clazz,
MediaType mediaType)
This implementation checks if the given class is supported, and if the supported media types include the given media type. |
protected boolean |
canRead(MediaType mediaType)
Returns true if any of the supported media types include the given media type. |
boolean |
canWrite(Class<?> clazz,
MediaType mediaType)
This implementation checks if the given class is supported, and if the supported media types include the given media type. |
protected boolean |
canWrite(MediaType mediaType)
Returns true if the given media type includes any of the
supported media types. |
protected Long |
getContentLength(T t,
MediaType contentType)
Returns the content length for the given type. |
protected MediaType |
getDefaultContentType(T t)
Returns the default content type for the given type. |
List<MediaType> |
getSupportedMediaTypes()
Return the list of MediaType objects supported by this converter. |
T |
read(Class<? extends T> clazz,
HttpInputMessage inputMessage)
This implementation simple delegates to readInternal(Class, HttpInputMessage). |
protected abstract T |
readInternal(Class<? extends T> clazz,
HttpInputMessage inputMessage)
Abstract template method that reads the actualy object. |
void |
setSupportedMediaTypes(List<MediaType> supportedMediaTypes)
Set the list of MediaType objects supported by this converter. |
protected abstract boolean |
supports(Class<?> clazz)
Indicates whether the given class is supported by this converter. |
void |
write(T t,
MediaType contentType,
HttpOutputMessage outputMessage)
This implementation delegates to getDefaultContentType(Object) if a content
type was not provided, calls getContentLength(T, org.springframework.http.MediaType), and sets the corresponding headers
on the output message. |
protected abstract void |
writeInternal(T t,
HttpOutputMessage outputMessage)
Abstract template method that writes the actual body. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected final Log logger
| Constructor Detail |
|---|
protected AbstractHttpMessageConverter()
AbstractHttpMessageConverter with no supported media types.
setSupportedMediaTypes(java.util.List) protected AbstractHttpMessageConverter(MediaType supportedMediaType)
AbstractHttpMessageConverter with one supported media type.
supportedMediaType - the supported media typeprotected AbstractHttpMessageConverter(MediaType... supportedMediaTypes)
AbstractHttpMessageConverter with multiple supported media type.
supportedMediaTypes - the supported media types| Method Detail |
|---|
public void setSupportedMediaTypes(List<MediaType> supportedMediaTypes)
MediaType objects supported by this converter.
public List<MediaType> getSupportedMediaTypes()
HttpMessageConverterMediaType objects supported by this converter.
getSupportedMediaTypes in interface HttpMessageConverter<T>
public boolean canRead(Class<?> clazz,
MediaType mediaType)
canRead in interface HttpMessageConverter<T>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 otherwiseprotected boolean canRead(MediaType mediaType)
mediaType - the media type to read, can be null if not specified.
Typically the value of a Content-Type header.
true if the supported media types include the media type,
or if the media type is null
public boolean canWrite(Class<?> clazz,
MediaType mediaType)
canWrite in interface HttpMessageConverter<T>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 otherwiseprotected boolean canWrite(MediaType mediaType)
true if the given media type includes any of the
supported media types.
mediaType - the media type to write, can be null if not specified.
Typically the value of an Accept header.
true if the supported media types are compatible with the media type,
or if the media type is null
public final T read(Class<? extends T> clazz,
HttpInputMessage inputMessage)
throws IOException
readInternal(Class, HttpInputMessage).
Future implementations might add some default behavior, however.
read in interface HttpMessageConverter<T>clazz - the type of object to return. This type must have previously been passed to the
canRead method of this interface, which must have returned true.inputMessage - the HTTP input message to read from
IOException - in case of I/O errors
public final void write(T t,
MediaType contentType,
HttpOutputMessage outputMessage)
throws IOException,
HttpMessageNotWritableException
getDefaultContentType(Object) if a content
type was not provided, calls getContentLength(T, org.springframework.http.MediaType), and sets the corresponding headers
on the output message. It then calls writeInternal(T, org.springframework.http.HttpOutputMessage).
write in interface HttpMessageConverter<T>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.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 to
IOException - in case of I/O errors
HttpMessageNotWritableException - in case of conversion errors
protected MediaType getDefaultContentType(T t)
throws IOException
write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)
is invoked without a specified content type parameter.
By default, this returns the first element of the
supportedMediaTypes property, if any.
Can be overridden in subclasses.
t - the type to return the content type for
null if not known
IOException
protected Long getContentLength(T t,
MediaType contentType)
throws IOException
By default, this returns null, meaning that the content length is unknown.
Can be overridden in subclasses.
t - the type to return the content length for
null if not known
IOExceptionprotected abstract boolean supports(Class<?> clazz)
clazz - the class to test for support
true if supported; false otherwise
protected abstract T readInternal(Class<? extends T> clazz,
HttpInputMessage inputMessage)
throws IOException,
HttpMessageNotReadableException
read(java.lang.Class extends T>, org.springframework.http.HttpInputMessage).
clazz - the type of object to returninputMessage - the HTTP input message to read from
IOException - in case of I/O errors
HttpMessageNotReadableException - in case of conversion errors
protected abstract void writeInternal(T t,
HttpOutputMessage outputMessage)
throws IOException,
HttpMessageNotWritableException
write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage).
t - the object to write to the output messageoutputMessage - the message to write to
IOException - in case of I/O errors
HttpMessageNotWritableException - in case of conversion errors
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||