public class DefaultClassMapper extends Object implements ClassMapper, InitializingBean
MessageProperties
; the default
name of the message property containing the type is
"__TypeId__". An optional property
setDefaultType(Class)
is provided that allows mapping to a statically defined
type, if no message property is found in the message properties.
setIdClassMapping(Map)
can be used to map tokens in the
"__TypeId__" header to classes. If this class is not a
Spring-managed bean, call afterPropertiesSet()
to set up the class to id
mapping.Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_CLASSID_FIELD_NAME |
Constructor and Description |
---|
DefaultClassMapper() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
void |
fromClass(Class<?> clazz,
MessageProperties properties) |
String |
getClassIdFieldName()
The name of the header that contains the type id.
|
void |
setDefaultMapClass(Class<?> defaultMapClass)
Set the type of
Map to use. |
void |
setDefaultType(Class<?> defaultType)
The type returned by
toClass(MessageProperties) if no type information
is found in the message properties. |
void |
setIdClassMapping(Map<String,Class<?>> idClassMapping)
Set a map of type Ids (in the "__TypeId__" header) to
classes.
|
void |
setTrustedPackages(String... trustedPackages)
Specify a set of packages to trust during deserialization.
|
Class<?> |
toClass(MessageProperties properties) |
public static final String DEFAULT_CLASSID_FIELD_NAME
public void setDefaultType(Class<?> defaultType)
toClass(MessageProperties)
if no type information
is found in the message properties.defaultType
- the defaultType to set.public void setDefaultMapClass(Class<?> defaultMapClass)
Map
to use. For outbound messages, set the
"__TypeId__" header to HashTable
. For inbound messages,
if the "__TypeId__" header is Hashtable
convert to this
class.defaultMapClass
- the map class.DEFAULT_CLASSID_FIELD_NAME
public String getClassIdFieldName()
DEFAULT_CLASSID_FIELD_NAME
public void setIdClassMapping(Map<String,Class<?>> idClassMapping)
idClassMapping
- the map of IDs to classes.public void setTrustedPackages(@Nullable String... trustedPackages)
*
) means trust all.trustedPackages
- the trusted Java packages for deserializationpublic void afterPropertiesSet()
Creates the reverse mapping from class to type id.
afterPropertiesSet
in interface InitializingBean
public void fromClass(Class<?> clazz, MessageProperties properties)
fromClass
in interface ClassMapper
public Class<?> toClass(MessageProperties properties)
toClass
in interface ClassMapper