org.springframework.http.converter
Class ByteArrayHttpMessageConverter

java.lang.Object
  extended by org.springframework.http.converter.AbstractHttpMessageConverter<byte[]>
      extended by org.springframework.http.converter.ByteArrayHttpMessageConverter
All Implemented Interfaces:
HttpMessageConverter<byte[]>

public class ByteArrayHttpMessageConverter
extends AbstractHttpMessageConverter<byte[]>

Implementation of HttpMessageConverter that can read and write byte arrays.

By default, this converter supports all media types (*/*), and writes with a Content-Type of application/octet-stream. This can be overridden by setting the supportedMediaTypes property, and overridding getContentType(byte[]).

Since:
3.0
Author:
Arjen Poutsma

Field Summary
 
Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
logger
 
Constructor Summary
ByteArrayHttpMessageConverter()
          Creates a new instance of the ByteArrayHttpMessageConverter.
 
Method Summary
protected  Long getContentLength(byte[] bytes)
          Returns the content length for the given type.
protected  MediaType getContentType(byte[] bytes)
          Returns the content type for the given type.
 byte[] readInternal(Class<byte[]> clazz, HttpInputMessage inputMessage)
          Abstract template method that reads the actualy object.
 boolean supports(Class<? extends byte[]> clazz)
          Indicate whether the given class is supported by this converter.
protected  void writeInternal(byte[] bytes, HttpOutputMessage outputMessage)
          Abstract template method that writes the actual body.
 
Methods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
getSupportedMediaTypes, read, setSupportedMediaTypes, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ByteArrayHttpMessageConverter

public ByteArrayHttpMessageConverter()
Creates a new instance of the ByteArrayHttpMessageConverter.

Method Detail

supports

public boolean supports(Class<? extends byte[]> clazz)
Description copied from interface: HttpMessageConverter
Indicate whether the given class is supported by this converter.

Parameters:
clazz - the class to test for support
Returns:
true if supported; false otherwise

readInternal

public byte[] readInternal(Class<byte[]> clazz,
                           HttpInputMessage inputMessage)
                    throws IOException
Description copied from class: AbstractHttpMessageConverter
Abstract template method that reads the actualy object. Invoked from AbstractHttpMessageConverter.read(Class, HttpInputMessage).

Specified by:
readInternal in class AbstractHttpMessageConverter<byte[]>
Parameters:
clazz - the type of object to return
inputMessage - the HTTP input message to read from
Returns:
the converted object
Throws:
IOException - in case of I/O errors

getContentType

protected MediaType getContentType(byte[] bytes)
Description copied from class: AbstractHttpMessageConverter
Returns the content type for the given type.

By default, this returns the first element of the supportedMediaTypes property, if any. Can be overriden in subclasses.

Overrides:
getContentType in class AbstractHttpMessageConverter<byte[]>
Parameters:
bytes - the type to return the content type for
Returns:
the content type, or null if not known

getContentLength

protected Long getContentLength(byte[] bytes)
Description copied from class: AbstractHttpMessageConverter
Returns the content length for the given type.

By default, this returns null. Can be overriden in subclasses.

Overrides:
getContentLength in class AbstractHttpMessageConverter<byte[]>
Parameters:
bytes - the type to return the content length for
Returns:
the content length, or null if not known

writeInternal

protected void writeInternal(byte[] bytes,
                             HttpOutputMessage outputMessage)
                      throws IOException
Description copied from class: AbstractHttpMessageConverter
Abstract template method that writes the actual body. Invoked from AbstractHttpMessageConverter.write(Object, HttpOutputMessage).

Specified by:
writeInternal in class AbstractHttpMessageConverter<byte[]>
Parameters:
bytes - the object to write to the output message
outputMessage - the message to write to
Throws:
IOException - in case of I/O errors