org.springframework.messaging.converter

## Class CompositeMessageConverter

- java.lang.Object
- - org.springframework.messaging.converter.CompositeMessageConverter

- All Implemented Interfaces:
    MessageConverter

      public class CompositeMessageConverter
      extends Object
      implements MessageConverter

  A `MessageConverter` that delegates to a list of other converters to be invoked until one of them returns a non-null result.
  Since:
    4.0
  Author:
    Rossen Stoyanchev

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CompositeMessageConverter(Collection<MessageConverter> converters)` Create an instance with the given converters.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `fromMessage(Message<?> message, Class<?> targetClass)` Convert the payload of a `Message` from serialized form to a typed Object of the specified target class.
    `List<MessageConverter>` | `getConverters()`
    `Message<?>` | `toMessage(Object payload, MessageHeaders headers)` Create a `Message` whose payload is the result of converting the given payload Object to serialized form.
    `String` | `toString()`

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

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

- - ### Constructor Detail

    - #### CompositeMessageConverter

          public CompositeMessageConverter(Collection<MessageConverter> converters)

      Create an instance with the given converters.

  - ### Method Detail

    - #### getConverters

          public List<MessageConverter> getConverters()

    - #### fromMessage

          public Object fromMessage(Message<?> message,
                                    Class<?> targetClass)

      Description copied from interface: `MessageConverter`
      Convert the payload of a `Message` from serialized form to a typed Object of the specified target class. The `MessageHeaders.CONTENT_TYPE` header should indicate the MIME type to convert from.

      If the converter does not support the specified media type or cannot perform the conversion, it should return `null`.

      Specified by:
        `fromMessage` in interface `MessageConverter`
      Parameters:
        `message` - the input message
        `targetClass` - the target class for the conversion
      Returns:
        the result of the conversion or `null` if the converter cannot perform the conversion

    - #### toMessage

          public Message<?> toMessage(Object payload,
                                      MessageHeaders headers)

      Description copied from interface: `MessageConverter`
      Create a `Message` whose payload is the result of converting the given payload Object to serialized form. The optional `MessageHeaders` parameter may contain a `MessageHeaders.CONTENT_TYPE` header to specify the target media type for the conversion and it may contain additional headers to be added to the message.

      If the converter does not support the specified media type or cannot perform the conversion, it should return `null`.

      Specified by:
        `toMessage` in interface `MessageConverter`
      Parameters:
        `payload` - the Object to convert
        `headers` - optional headers for the message, may be `null`
      Returns:
        the new message or `null` if the converter does not support the Object type or the target media type

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`