public class CompositeMessageConverter extends Object implements SmartMessageConverter
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.
| Constructor and Description |
|---|
CompositeMessageConverter(Collection<MessageConverter> converters)
Create an instance with the given converters.
|
| Modifier and Type | Method and Description |
|---|---|
Object |
fromMessage(Message<?> message,
Class<?> targetClass)
Convert the payload of a
Message from a serialized form to a typed Object
of the specified target class. |
Object |
fromMessage(Message<?> message,
Class<?> targetClass,
Object conversionHint)
A variant of
MessageConverter.fromMessage(Message, Class) which takes an extra
conversion context as an argument, allowing to take e.g. |
List<MessageConverter> |
getConverters()
Return the underlying list of delegate converters.
|
Message<?> |
toMessage(Object payload,
MessageHeaders headers)
Create a
Message whose payload is the result of converting the given
payload Object to serialized form. |
Message<?> |
toMessage(Object payload,
MessageHeaders headers,
Object conversionHint)
A variant of
MessageConverter.toMessage(Object, MessageHeaders) which takes an extra
conversion context as an argument, allowing to take e.g. |
String |
toString() |
public CompositeMessageConverter(Collection<MessageConverter> converters)
@Nullable public Object fromMessage(Message<?> message, Class<?> targetClass)
MessageConverterMessage 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.
fromMessage in interface MessageConvertermessage - the input messagetargetClass - the target class for the conversionnull if the converter cannot
perform the conversion@Nullable public Object fromMessage(Message<?> message, Class<?> targetClass, @Nullable Object conversionHint)
SmartMessageConverterMessageConverter.fromMessage(Message, Class) which takes an extra
conversion context as an argument, allowing to take e.g. annotations
on a payload parameter into account.fromMessage in interface SmartMessageConvertermessage - the input messagetargetClass - the target class for the conversionconversionHint - an extra object passed to the MessageConverter,
e.g. the associated MethodParameter (may be null}null if the converter cannot
perform the conversionMessageConverter.fromMessage(Message, Class)@Nullable public Message<?> toMessage(Object payload, @Nullable MessageHeaders headers)
MessageConverterMessage 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.
toMessage in interface MessageConverterpayload - the Object to convertheaders - optional headers for the message (may be null)null if the converter does not support the
Object type or the target media type@Nullable public Message<?> toMessage(Object payload, @Nullable MessageHeaders headers, @Nullable Object conversionHint)
SmartMessageConverterMessageConverter.toMessage(Object, MessageHeaders) which takes an extra
conversion context as an argument, allowing to take e.g. annotations
on a return type into account.toMessage in interface SmartMessageConverterpayload - the Object to convertheaders - optional headers for the message (may be null)conversionHint - an extra object passed to the MessageConverter,
e.g. the associated MethodParameter (may be null}null if the converter does not support the
Object type or the target media typeMessageConverter.toMessage(Object, MessageHeaders)public List<MessageConverter> getConverters()