Interface GenericHttpMessageConverter<T>

Type Parameters:
T - the converted object type
All Superinterfaces:
HttpMessageConverter<T>
All Known Implementing Classes:
AbstractGenericHttpMessageConverter, AbstractJackson2HttpMessageConverter, AbstractJsonHttpMessageConverter, GsonHttpMessageConverter, Jaxb2CollectionHttpMessageConverter, JsonbHttpMessageConverter, KotlinSerializationJsonHttpMessageConverter, MappingJackson2CborHttpMessageConverter, MappingJackson2HttpMessageConverter, MappingJackson2SmileHttpMessageConverter, MappingJackson2XmlHttpMessageConverter, ResourceRegionHttpMessageConverter

public interface GenericHttpMessageConverter<T> extends HttpMessageConverter<T>
A specialization of HttpMessageConverter that can convert an HTTP request into a target object of a specified generic type and a source object of a specified generic type into an HTTP response.
Since:
3.2
Author:
Arjen Poutsma, Rossen Stoyanchev, Sebastien Deleuze
See Also:
  • Method Details

    • canRead

      boolean canRead(Type type, @Nullable Class<?> contextClass, @Nullable MediaType mediaType)
      Indicates whether the given type can be read by this converter. This method should perform the same checks as HttpMessageConverter.canRead(Class, MediaType) with additional ones related to the generic type.
      Parameters:
      type - the (potentially generic) type to test for readability
      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)
      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
    • read

      T read(Type type, @Nullable Class<?> contextClass, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException
      Read an object of the given type form the given input message, and returns it.
      Parameters:
      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 from
      Returns:
      the converted object
      Throws:
      IOException - in case of I/O errors
      HttpMessageNotReadableException - in case of conversion errors
    • canWrite

      boolean canWrite(@Nullable Type type, Class<?> clazz, @Nullable MediaType mediaType)
      Indicates whether the given class can be written by this converter.

      This method should perform the same checks as HttpMessageConverter.canWrite(Class, MediaType) with additional ones related to the generic type.

      Parameters:
      type - the (potentially generic) type to test for writability (can be null if not specified)
      clazz - the source object 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
      Since:
      4.2
    • write

      void write(T t, @Nullable Type type, @Nullable MediaType contentType, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException
      Write a given object to the given output message.
      Parameters:
      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 to
      Throws:
      IOException - in case of I/O errors
      HttpMessageNotWritableException - in case of conversion errors
      Since:
      4.2