org.springframework.messaging.converter

Class CompositeMessageConverter

  • java.lang.Object
    • org.springframework.messaging.converter.CompositeMessageConverter
  • All Implemented Interfaces:
    MessageConverter, SmartMessageConverter


    public class CompositeMessageConverter
    extends java.lang.Object
    implements SmartMessageConverter
    A MessageConverter that delegates to a list of registered converters to be invoked until one of them returns a non-null result.

    As of 4.2.1, this composite converter implements SmartMessageConverter in order to support the delegation of conversion hints.

    Since:
    4.0
    Author:
    Rossen Stoyanchev, Juergen Hoeller
    • Constructor Detail

      • CompositeMessageConverter

        public CompositeMessageConverter(java.util.Collection<MessageConverter> converters)
        Create an instance with the given converters.
    • Method Detail

      • fromMessage

        @Nullable
        public java.lang.Object fromMessage(Message<?> message,
                                                      java.lang.Class<?> targetClass)
        Description copied from interface: MessageConverter
        Convert the payload of a Message from a 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

        @Nullable
        public Message<?> toMessage(java.lang.Object payload,
                                              @Nullable
                                              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
      • getConverters

        public java.util.List<MessageConverter> getConverters()
        Return the underlying list of delegate converters.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object