Package org.springframework.http.converter

# Class ObjectToStringHttpMessageConverter

java.lang.Object
org.springframework.http.converter.AbstractHttpMessageConverter<Object>
org.springframework.http.converter.ObjectToStringHttpMessageConverter

All Implemented Interfaces:
  `HttpMessageConverter<Object>`

public class ObjectToStringHttpMessageConverter extends AbstractHttpMessageConverter<Object>
An `HttpMessageConverter` that uses `StringHttpMessageConverter` for reading and writing content and a `ConversionService` for converting the String content to and from the target object type.

By default, this converter supports the media type `text/plain` only. This can be overridden through the `supportedMediaTypes` property.

A usage example:

     <bean class="org.springframework.http.converter.ObjectToStringHttpMessageConverter">
       <constructor-arg>
         <bean class="org.springframework.context.support.ConversionServiceFactoryBean"/>
       </constructor-arg>
     </bean>

Since:
  3.2
Author:
  Dmitry Katsubo, Rossen Stoyanchev

## Field Summary

### Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter

`logger`

## Constructor Summary

Constructors
Constructor
Description
`ObjectToStringHttpMessageConverter(org.springframework.core.convert.ConversionService conversionService)`
A constructor accepting a `ConversionService` to use to convert the (String) message body to/from the target class type.
`ObjectToStringHttpMessageConverter(org.springframework.core.convert.ConversionService conversionService, Charset defaultCharset)`
A constructor accepting a `ConversionService` as well as a default charset.

## Method Summary

Modifier and Type
Method
Description
`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.
`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 Long`
`getContentLength(Object obj, MediaType contentType)`
Returns the content length for the given type.
`protected Object`
`readInternal(Class<?> clazz, HttpInputMessage inputMessage)`
Abstract template method that reads the actual object.
`void`
`setWriteAcceptCharset(boolean writeAcceptCharset)`
Delegates to `StringHttpMessageConverter.setWriteAcceptCharset(boolean)`.
`protected boolean`
`supports(Class<?> clazz)`
Indicates whether the given class is supported by this converter.
`protected boolean`
`supportsRepeatableWrites(Object o)`
Indicates whether this message converter can write the given object multiple times.
`protected void`
`writeInternal(Object obj, HttpOutputMessage outputMessage)`
Abstract template method that writes the actual body.

### Methods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter

`addDefaultHeaders, canRead, canWrite, getDefaultCharset, getDefaultContentType, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, write`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.springframework.http.converter.HttpMessageConverter

`getSupportedMediaTypes`

## Constructor Details

### ObjectToStringHttpMessageConverter

public ObjectToStringHttpMessageConverter(org.springframework.core.convert.ConversionService conversionService)
A constructor accepting a `ConversionService` to use to convert the (String) message body to/from the target class type. This constructor uses `StringHttpMessageConverter.DEFAULT_CHARSET` as the default charset.

Parameters:
  `conversionService` - the conversion service

### ObjectToStringHttpMessageConverter

public ObjectToStringHttpMessageConverter(org.springframework.core.convert.ConversionService conversionService, Charset defaultCharset)
A constructor accepting a `ConversionService` as well as a default charset.

Parameters:
  `conversionService` - the conversion service
  `defaultCharset` - the default charset

## Method Details

### setWriteAcceptCharset

public void setWriteAcceptCharset(boolean writeAcceptCharset)
Delegates to `StringHttpMessageConverter.setWriteAcceptCharset(boolean)`.

### canRead

public boolean canRead(Class<?> clazz, @Nullable MediaType mediaType)
Description copied from class: `AbstractHttpMessageConverter`
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, @Nullable MediaType mediaType)
Description copied from class: `AbstractHttpMessageConverter`
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

### readInternal

protected Object readInternal(Class<?> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException
Description copied from class: `AbstractHttpMessageConverter`
Abstract template method that reads the actual object. Invoked from `AbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage)`.

Specified by:
  `readInternal` in class `AbstractHttpMessageConverter<Object>`
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
  `HttpMessageNotReadableException` - in case of conversion errors

### writeInternal

protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException
Description copied from class: `AbstractHttpMessageConverter`
Abstract template method that writes the actual body. Invoked from `AbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)`.

Specified by:
  `writeInternal` in class `AbstractHttpMessageConverter<Object>`
Parameters:
  `obj` - the object to write to the output message
  `outputMessage` - the HTTP output message to write to
Throws:
  `IOException` - in case of I/O errors

### getContentLength

protected Long getContentLength(Object obj, @Nullable MediaType contentType)
Description copied from class: `AbstractHttpMessageConverter`
Returns the content length for the given type.

By default, this returns `null`, meaning that the content length is unknown. Can be overridden in subclasses.

Overrides:
  `getContentLength` in class `AbstractHttpMessageConverter<Object>`
Parameters:
  `obj` - the type to return the content length for
Returns:
  the content length, or `null` if not known

### supportsRepeatableWrites

protected boolean supportsRepeatableWrites(Object o)
Description copied from class: `AbstractHttpMessageConverter`
Indicates whether this message converter can write the given object multiple times.

The default implementation returns `false`.

Overrides:
  `supportsRepeatableWrites` in class `AbstractHttpMessageConverter<Object>`
Parameters:
  `o` - the object t
Returns:
  `true` if `t` can be written repeatedly; `false` otherwise