Top Description Fields Constructors Methods
tools.jackson.databind.module

public Class SimpleDeserializers

extends Base
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Imports
java.util.*, tools.jackson.databind.*, tools.jackson.databind.deser.Deserializers, tools.jackson.databind.jsontype.TypeDeserializer, tools.jackson.databind.type.*

Simple implementation 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 Maps and Collections or array types).

Unlike SimpleSerializers, this class does not currently support generic mappings; all mappings must be to exact declared deserialization type.

Field Summary

Modifier and TypeField and Description
protected HashMap<ClassKey, ValueDeserializer<?>>
protected boolean
_hasEnumDeserializer

Flag to help find "generic" enum deserializer, if one has been registered.

private static final long

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Modifier and TypeMethod and Description
private final ValueDeserializer<?>
public <T> SimpleDeserializers
addDeserializer(Class<T> forClass, ValueDeserializer<? extends T> deser)

public SimpleDeserializers
public ValueDeserializer<?>
findArrayDeserializer(ArrayType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef, TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findArrayDeserializer.

Method called to locate deserializer for specified array type.

public ValueDeserializer<?>
findBeanDeserializer(JavaType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef)

Overrides default tools.jackson.databind.deser.Deserializers.findBeanDeserializer.

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)

public ValueDeserializer<?>
findCollectionDeserializer(CollectionType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef, TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findCollectionDeserializer.

Method called to locate deserializer for specified java.util.Collection (List, Set etc) type.

public ValueDeserializer<?>
findCollectionLikeDeserializer(CollectionLikeType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef, TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findCollectionLikeDeserializer.

Method called to locate deserializer for specified "Collection-like" type (one that acts like java.util.Collection but does not implement it).

public ValueDeserializer<?>
findEnumDeserializer(JavaType enumType, DeserializationConfig config, BeanDescription.Supplier beanDescRef)

Overrides default tools.jackson.databind.deser.Deserializers.findEnumDeserializer.

Method called to locate deserializer for specified java.lang.Enum type.

public ValueDeserializer<?>
findMapDeserializer(MapType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef, KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findMapDeserializer.

Method called to locate deserializer for specified java.util.Map type.

public ValueDeserializer<?>
findMapLikeDeserializer(MapLikeType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef, KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findMapLikeDeserializer.

Method called to locate deserializer for specified "Map-like" type (one that acts like java.util.Map but does not implement it).

public ValueDeserializer<?>
findReferenceDeserializer(ReferenceType refType, DeserializationConfig config, BeanDescription.Supplier beanDescRef, TypeDeserializer contentTypeDeserializer, ValueDeserializer<?> contentDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findReferenceDeserializer.

Method called to locate deserializer for value that is of referential type,

public ValueDeserializer<?>
findTreeNodeDeserializer(JavaType nodeType, DeserializationConfig config, BeanDescription.Supplier beanDescRef)

Overrides default tools.jackson.databind.deser.Deserializers.findTreeNodeDeserializer.

Method called to locate deserializer for specified JSON tree node type.

public boolean
hasDeserializerFor(DeserializationConfig config, Class<?> valueType)

Implements abstract tools.jackson.databind.deser.Deserializers.Base.hasDeserializerFor.

Implements tools.jackson.databind.deser.Deserializers.hasDeserializerFor.

Method that may be called to check whether this deserializer provider would provide deserializer for values of given type, without attempting to construct (and possibly fail in some cases) actual deserializer.

Field Detail

_classMappingsback to summary
protected HashMap<ClassKey, ValueDeserializer<?>> _classMappings
_hasEnumDeserializerback to summary
protected boolean _hasEnumDeserializer

Flag to help find "generic" enum deserializer, if one has been registered.

serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

SimpleDeserializersback to summary
public SimpleDeserializers()
SimpleDeserializersback to summary
public SimpleDeserializers(Map<Class<?>, ValueDeserializer<?>> desers)

Method Detail

_findback to summary
private final ValueDeserializer<?> _find(JavaType type)
addDeserializerback to summary
public <T> SimpleDeserializers addDeserializer(Class<T> forClass, ValueDeserializer<? extends T> deser)
addDeserializersback to summary
public SimpleDeserializers addDeserializers(Map<Class<?>, ValueDeserializer<?>> desers)
Annotations
@SuppressWarnings:unchecked
findArrayDeserializerback to summary
public ValueDeserializer<?> findArrayDeserializer(ArrayType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef, TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findArrayDeserializer.

Doc from tools.jackson.databind.deser.Deserializers.findArrayDeserializer.

Method called to locate deserializer for specified array 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).

Annotations
@Override
findBeanDeserializerback to summary
public ValueDeserializer<?> findBeanDeserializer(JavaType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef)

Overrides default tools.jackson.databind.deser.Deserializers.findBeanDeserializer.

Doc from tools.jackson.databind.deser.Deserializers.findBeanDeserializer.

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)

Annotations
@Override
findCollectionDeserializerback to summary
public ValueDeserializer<?> findCollectionDeserializer(CollectionType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef, TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findCollectionDeserializer.

Doc from tools.jackson.databind.deser.Deserializers.findCollectionDeserializer.

Method called to locate deserializer for specified java.util.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).

Annotations
@Override
findCollectionLikeDeserializerback to summary
public ValueDeserializer<?> findCollectionLikeDeserializer(CollectionLikeType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef, TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findCollectionLikeDeserializer.

Doc from tools.jackson.databind.deser.Deserializers.findCollectionLikeDeserializer.

Method called to locate deserializer for specified "Collection-like" type (one that acts like java.util.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).

Annotations
@Override
findEnumDeserializerback to summary
public ValueDeserializer<?> findEnumDeserializer(JavaType enumType, DeserializationConfig config, BeanDescription.Supplier beanDescRef)

Overrides default tools.jackson.databind.deser.Deserializers.findEnumDeserializer.

Doc from tools.jackson.databind.deser.Deserializers.findEnumDeserializer.

Method called to locate deserializer for specified java.lang.Enum type.

Annotations
@Override
findMapDeserializerback to summary
public ValueDeserializer<?> findMapDeserializer(MapType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef, KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findMapDeserializer.

Doc from tools.jackson.databind.deser.Deserializers.findMapDeserializer.

Method called to locate deserializer for specified java.util.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 of map serializer constructed here.

Annotations
@Override
findMapLikeDeserializerback to summary
public ValueDeserializer<?> findMapLikeDeserializer(MapLikeType type, DeserializationConfig config, BeanDescription.Supplier beanDescRef, KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findMapLikeDeserializer.

Doc from tools.jackson.databind.deser.Deserializers.findMapLikeDeserializer.

Method called to locate deserializer for specified "Map-like" type (one that acts like java.util.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, by deserializer constructed here.

Annotations
@Override
findReferenceDeserializerback to summary
public ValueDeserializer<?> findReferenceDeserializer(ReferenceType refType, DeserializationConfig config, BeanDescription.Supplier beanDescRef, TypeDeserializer contentTypeDeserializer, ValueDeserializer<?> contentDeserializer)

Overrides default tools.jackson.databind.deser.Deserializers.findReferenceDeserializer.

Doc from tools.jackson.databind.deser.Deserializers.findReferenceDeserializer.

Method called to locate deserializer for value that is of referential type,

Annotations
@Override
findTreeNodeDeserializerback to summary
public ValueDeserializer<?> findTreeNodeDeserializer(JavaType nodeType, DeserializationConfig config, BeanDescription.Supplier beanDescRef)

Overrides default tools.jackson.databind.deser.Deserializers.findTreeNodeDeserializer.

Doc from tools.jackson.databind.deser.Deserializers.findTreeNodeDeserializer.

Method called to locate deserializer for specified JSON tree node type.

Annotations
@Override
hasDeserializerForback to summary
public boolean hasDeserializerFor(DeserializationConfig config, Class<?> valueType)

Implements abstract tools.jackson.databind.deser.Deserializers.Base.hasDeserializerFor.

Implements tools.jackson.databind.deser.Deserializers.hasDeserializerFor.

Doc from tools.jackson.databind.deser.Deserializers.hasDeserializerFor.

Method that may be called to check whether this deserializer provider would provide deserializer for values of given type, without attempting to construct (and possibly fail in some cases) actual deserializer. Mostly needed to support validation of polymorphic type ids.

Note

implementations should take care NOT to claim supporting types that they do not recognize as this could to incorrect assumption of safe support by caller.

Annotations
@Override