public class SimpleDeserializers extends Object implements Deserializers, Serializable
Deserializers
which allows registration of
deserializers based on raw (type erased class).
It can work well for basic bean and scalar type deserializers, but is not
a good fit for handling generic types (like Map
s and Collection
s
or array types).
Unlike SimpleSerializers
, this class does not currently support generic mappings;
all mappings must be to exact declared deserialization type.
Deserializers.Base
Modifier and Type | Field and Description |
---|---|
protected HashMap<ClassKey,JsonDeserializer<?>> |
_classMappings |
protected boolean |
_hasEnumDeserializer
Flag to help find "generic" enum deserializer, if one has been registered.
|
Constructor and Description |
---|
SimpleDeserializers() |
SimpleDeserializers(Map<Class<?>,JsonDeserializer<?>> desers) |
Modifier and Type | Method and Description |
---|---|
<T> void |
addDeserializer(Class<T> forClass,
JsonDeserializer<? extends T> deser) |
void |
addDeserializers(Map<Class<?>,JsonDeserializer<?>> desers) |
JsonDeserializer<?> |
findArrayDeserializer(ArrayType type,
DeserializationConfig config,
BeanDescription beanDesc,
TypeDeserializer elementTypeDeserializer,
JsonDeserializer<?> elementDeserializer)
Method called to locate serializer for specified array type.
|
JsonDeserializer<?> |
findBeanDeserializer(JavaType type,
DeserializationConfig config,
BeanDescription beanDesc)
Method called to locate deserializer for specified value type which does not belong to any other
category (not an Enum, Collection, Map, Array, reference value or tree node)
|
JsonDeserializer<?> |
findCollectionDeserializer(CollectionType type,
DeserializationConfig config,
BeanDescription beanDesc,
TypeDeserializer elementTypeDeserializer,
JsonDeserializer<?> elementDeserializer)
Method called to locate serializer for specified
Collection (List, Set etc) type. |
JsonDeserializer<?> |
findCollectionLikeDeserializer(CollectionLikeType type,
DeserializationConfig config,
BeanDescription beanDesc,
TypeDeserializer elementTypeDeserializer,
JsonDeserializer<?> elementDeserializer)
Method called to locate serializer for specified
"Collection-like" type (one that acts
like
Collection but does not implement it). |
JsonDeserializer<?> |
findEnumDeserializer(Class<?> type,
DeserializationConfig config,
BeanDescription beanDesc)
Method called to locate deserializer for specified
Enum type. |
JsonDeserializer<?> |
findMapDeserializer(MapType type,
DeserializationConfig config,
BeanDescription beanDesc,
KeyDeserializer keyDeserializer,
TypeDeserializer elementTypeDeserializer,
JsonDeserializer<?> elementDeserializer)
Method called to locate deserializer for specified
Map type. |
JsonDeserializer<?> |
findMapLikeDeserializer(MapLikeType type,
DeserializationConfig config,
BeanDescription beanDesc,
KeyDeserializer keyDeserializer,
TypeDeserializer elementTypeDeserializer,
JsonDeserializer<?> elementDeserializer)
Method called to locate serializer for specified
"Map-like" type (one that acts
like
Map but does not implement it). |
JsonDeserializer<?> |
findReferenceDeserializer(ReferenceType refType,
DeserializationConfig config,
BeanDescription beanDesc,
TypeDeserializer contentTypeDeserializer,
JsonDeserializer<?> contentDeserializer)
Method called to locate deserializer for value that is of referential
type,
|
JsonDeserializer<?> |
findTreeNodeDeserializer(Class<? extends JsonNode> nodeType,
DeserializationConfig config,
BeanDescription beanDesc)
Method called to locate deserializer for specified JSON tree node type.
|
protected HashMap<ClassKey,JsonDeserializer<?>> _classMappings
protected boolean _hasEnumDeserializer
public SimpleDeserializers()
public SimpleDeserializers(Map<Class<?>,JsonDeserializer<?>> desers)
public <T> void addDeserializer(Class<T> forClass, JsonDeserializer<? extends T> deser)
public void addDeserializers(Map<Class<?>,JsonDeserializer<?>> desers)
public JsonDeserializer<?> findArrayDeserializer(ArrayType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
Deserializers
Deserializer for element type may be passed, if configured explicitly at higher level (by annotations, typically), but usually are not. Type deserializer for element is passed if one is needed based on contextual information (annotations on declared element class; or on field or method type is associated with).
findArrayDeserializer
in interface Deserializers
type
- Type of array instances to deserializeconfig
- Configuration in effectbeanDesc
- Definition of the enumeration type that contains class annotations and
other information typically needed for building deserializerselementTypeDeserializer
- If element type needs polymorphic type handling, this is
the type information deserializer to use; should usually be used as is when constructing
array deserializer.elementDeserializer
- Deserializer to use for elements, if explicitly defined (by using
annotations, for exmple). May be null, in which case it should be resolved here (or using
ResolvableDeserializer
callback)JsonMappingException
public JsonDeserializer<?> findBeanDeserializer(JavaType type, DeserializationConfig config, BeanDescription beanDesc) throws JsonMappingException
Deserializers
findBeanDeserializer
in interface Deserializers
type
- Bean type to deserializeconfig
- Configuration in effectbeanDesc
- Definition of the enumeration type that contains class annotations and
other information typically needed for building deserializersJsonMappingException
public JsonDeserializer<?> findCollectionDeserializer(CollectionType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
Deserializers
Collection
(List, Set etc) type.
Deserializer for element type may be passed, if configured explicitly at higher level (by annotations, typically), but usually are not. Type deserializer for element is passed if one is needed based on contextual information (annotations on declared element class; or on field or method type is associated with).
findCollectionDeserializer
in interface Deserializers
type
- Type of collection instances to deserializeconfig
- Configuration in effectbeanDesc
- Definition of the enumeration type that contains class annotations and
other information typically needed for building deserializerselementTypeDeserializer
- If element type needs polymorphic type handling, this is
the type information deserializer to use; should usually be used as is when constructing
array deserializer.elementDeserializer
- Deserializer to use for elements, if explicitly defined (by using
annotations, for exmple). May be null, in which case it should be resolved here (or using
ResolvableDeserializer
callback)JsonMappingException
public JsonDeserializer<?> findCollectionLikeDeserializer(CollectionLikeType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
Deserializers
Collection
but does not implement it).
Deserializer for element type may be passed, if configured explicitly at higher level (by annotations, typically), but usually are not. Type deserializer for element is passed if one is needed based on contextual information (annotations on declared element class; or on field or method type is associated with).
findCollectionLikeDeserializer
in interface Deserializers
type
- Type of instances to deserializeconfig
- Configuration in effectbeanDesc
- Definition of the enumeration type that contains class annotations and
other information typically needed for building deserializerselementTypeDeserializer
- If element type needs polymorphic type handling, this is
the type information deserializer to use; should usually be used as is when constructing
array deserializer.elementDeserializer
- Deserializer to use for elements, if explicitly defined (by using
annotations, for exmple). May be null, in which case it should be resolved here (or using
ResolvableDeserializer
callback)JsonMappingException
public JsonDeserializer<?> findEnumDeserializer(Class<?> type, DeserializationConfig config, BeanDescription beanDesc) throws JsonMappingException
Deserializers
Enum
type.findEnumDeserializer
in interface Deserializers
type
- Type of Enum
instances to deserializeconfig
- Configuration in effectbeanDesc
- Definition of the enumeration type that contains class annotations and
other information typically needed for building deserializersJsonMappingException
public JsonDeserializer<?> findTreeNodeDeserializer(Class<? extends JsonNode> nodeType, DeserializationConfig config, BeanDescription beanDesc) throws JsonMappingException
Deserializers
findTreeNodeDeserializer
in interface Deserializers
nodeType
- Specific type of JSON tree nodes to deserialize
(subtype of JsonNode
)config
- Configuration in effectJsonMappingException
public JsonDeserializer<?> findReferenceDeserializer(ReferenceType refType, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer contentTypeDeserializer, JsonDeserializer<?> contentDeserializer) throws JsonMappingException
Deserializers
findReferenceDeserializer
in interface Deserializers
refType
- Specific referential type to deserializeconfig
- Configuration in effectbeanDesc
- Definition of the reference type that contains class annotations and
other information typically needed for building deserializerscontentTypeDeserializer
- Possible type deserializer for referenced valuecontentDeserializer
- Value deserializer to use for referenced value, if indicated
by property annotationJsonMappingException
public JsonDeserializer<?> findMapDeserializer(MapType type, DeserializationConfig config, BeanDescription beanDesc, KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
Deserializers
Map
type.
Deserializer for element type may be passed, if configured explicitly at higher level (by annotations, typically), but usually are not. Type deserializer for element is passed if one is needed based on contextual information (annotations on declared element class; or on field or method type is associated with).
Similarly, a KeyDeserializer
may be passed, but this is only done if there is
a specific configuration override (annotations) to indicate instance to use.
Otherwise null is passed, and key deserializer needs to be obtained later during
resolution (using ResolvableDeserializer.resolve(com.fasterxml.jackson.databind.DeserializationContext)
).
findMapDeserializer
in interface Deserializers
type
- Type of Map
instances to deserializeconfig
- Configuration in effectbeanDesc
- Definition of the enumeration type that contains class annotations and
other information typically needed for building deserializerskeyDeserializer
- Key deserializer use, if it is defined via annotations or other configuration;
null if default key deserializer for key type can be used.elementTypeDeserializer
- If element type needs polymorphic type handling, this is
the type information deserializer to use; should usually be used as is when constructing
array deserializer.elementDeserializer
- Deserializer to use for elements, if explicitly defined (by using
annotations, for exmple). May be null, in which case it should be resolved here (or using
ResolvableDeserializer
callback)JsonMappingException
public JsonDeserializer<?> findMapLikeDeserializer(MapLikeType type, DeserializationConfig config, BeanDescription beanDesc, KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
Deserializers
Map
but does not implement it).
Deserializer for element type may be passed, if configured explicitly at higher level (by annotations, typically), but usually are not. Type deserializer for element is passed if one is needed based on contextual information (annotations on declared element class; or on field or method type is associated with).
Similarly, a KeyDeserializer
may be passed, but this is only done if there is
a specific configuration override (annotations) to indicate instance to use.
Otherwise null is passed, and key deserializer needs to be obtained later during
resolution (using ResolvableDeserializer.resolve(com.fasterxml.jackson.databind.DeserializationContext)
).
findMapLikeDeserializer
in interface Deserializers
type
- Type of Map
instances to deserializeconfig
- Configuration in effectbeanDesc
- Definition of the enumeration type that contains class annotations and
other information typically needed for building deserializerskeyDeserializer
- Key deserializer use, if it is defined via annotations or other configuration;
null if default key deserializer for key type can be used.elementTypeDeserializer
- If element type needs polymorphic type handling, this is
the type information deserializer to use; should usually be used as is when constructing
array deserializer.elementDeserializer
- Deserializer to use for elements, if explicitly defined (by using
annotations, for exmple). May be null, in which case it should be resolved here (or using
ResolvableDeserializer
callback)JsonMappingException
Copyright © 2008–2018 FasterXML. All rights reserved.