|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.fasterxml.jackson.databind.deser.DeserializerFactory com.fasterxml.jackson.databind.deser.BasicDeserializerFactory
public abstract class BasicDeserializerFactory
Abstract factory base class that can provide deserializers for standard
JDK classes, including collection classes and simple heuristics for
"upcasting" commmon collection interface types
(such as Collection
).
Since all simple deserializers are eagerly instantiated, and there is no additional introspection or customizability of these types, this factory is stateless.
Field Summary | |
---|---|
protected static HashMap<JavaType,JsonDeserializer<Object>> |
_arrayDeserializers
Also special array deserializers for primitive array types. |
protected DeserializerFactoryConfig |
_factoryConfig
Configuration settings for this factory; immutable instance (just like this factory), new version created via copy-constructor (fluent-style) |
protected static HashMap<JavaType,KeyDeserializer> |
_keyDeserializers
Set of available key deserializers is currently limited to standard types; and all known instances are storing in this map. |
protected static HashMap<ClassKey,JsonDeserializer<Object>> |
_simpleDeserializers
We will pre-create serializers for common non-structured (that is things other than Collection, Map or array) types. |
protected OptionalHandlerFactory |
optionalHandlers
To support external/optional deserializers, we'll use a helper class |
Fields inherited from class com.fasterxml.jackson.databind.deser.DeserializerFactory |
---|
NO_DESERIALIZERS |
Constructor Summary | |
---|---|
protected |
BasicDeserializerFactory(DeserializerFactoryConfig config)
|
Method Summary | ||
---|---|---|
protected void |
_addDeserializerConstructors(DeserializationContext ctxt,
BeanDescription beanDesc,
VisibilityChecker<?> vchecker,
AnnotationIntrospector intr,
CreatorCollector creators)
|
|
protected void |
_addDeserializerFactoryMethods(DeserializationContext ctxt,
BeanDescription beanDesc,
VisibilityChecker<?> vchecker,
AnnotationIntrospector intr,
CreatorCollector creators)
|
|
protected ValueInstantiator |
_constructDefaultValueInstantiator(DeserializationContext ctxt,
BeanDescription beanDesc)
Method that will construct standard default ValueInstantiator
using annotations (like @JsonCreator) and visibility rules |
|
protected JsonDeserializer<?> |
_findCustomArrayDeserializer(ArrayType type,
DeserializationConfig config,
BeanDescription beanDesc,
TypeDeserializer elementTypeDeserializer,
JsonDeserializer<?> elementDeserializer)
|
|
protected JsonDeserializer<?> |
_findCustomCollectionDeserializer(CollectionType type,
DeserializationConfig config,
BeanDescription beanDesc,
TypeDeserializer elementTypeDeserializer,
JsonDeserializer<?> elementDeserializer)
|
|
protected JsonDeserializer<?> |
_findCustomCollectionLikeDeserializer(CollectionLikeType type,
DeserializationConfig config,
BeanDescription beanDesc,
TypeDeserializer elementTypeDeserializer,
JsonDeserializer<?> elementDeserializer)
|
|
protected JsonDeserializer<?> |
_findCustomEnumDeserializer(Class<?> type,
DeserializationConfig config,
BeanDescription beanDesc)
|
|
protected JsonDeserializer<?> |
_findCustomMapDeserializer(MapType type,
DeserializationConfig config,
BeanDescription beanDesc,
KeyDeserializer keyDeserializer,
TypeDeserializer elementTypeDeserializer,
JsonDeserializer<?> elementDeserializer)
|
|
protected JsonDeserializer<?> |
_findCustomMapLikeDeserializer(MapLikeType type,
DeserializationConfig config,
BeanDescription beanDesc,
KeyDeserializer keyDeserializer,
TypeDeserializer elementTypeDeserializer,
JsonDeserializer<?> elementDeserializer)
|
|
protected JsonDeserializer<?> |
_findCustomTreeNodeDeserializer(Class<? extends JsonNode> type,
DeserializationConfig config,
BeanDescription beanDesc)
|
|
protected AnnotatedMethod |
_findJsonValueFor(DeserializationConfig config,
JavaType enumType)
|
|
protected boolean |
_handleSingleArgumentConstructor(DeserializationContext ctxt,
BeanDescription beanDesc,
VisibilityChecker<?> vchecker,
AnnotationIntrospector intr,
CreatorCollector creators,
AnnotatedConstructor ctor,
boolean isCreator,
boolean isVisible)
|
|
protected boolean |
_handleSingleArgumentFactory(DeserializationConfig config,
BeanDescription beanDesc,
VisibilityChecker<?> vchecker,
AnnotationIntrospector intr,
CreatorCollector creators,
AnnotatedMethod factory,
boolean isCreator)
|
|
ValueInstantiator |
_valueInstantiatorInstance(DeserializationConfig config,
Annotated annotated,
Object instDef)
|
|
protected CreatorProperty |
constructCreatorProperty(DeserializationContext ctxt,
BeanDescription beanDesc,
String name,
int index,
AnnotatedParameter param,
Object injectableValueId)
Method that will construct a property object that represents a logical property passed via Creator (constructor or static factory method) |
|
protected EnumResolver<?> |
constructEnumResolver(Class<?> enumClass,
DeserializationConfig config,
AnnotatedMethod jsonValueMethod)
|
|
JsonDeserializer<?> |
createArrayDeserializer(DeserializationContext ctxt,
ArrayType type,
BeanDescription beanDesc)
Method called to create (or, for completely immutable deserializers, reuse) a deserializer that can convert JSON content into values of specified Java type. |
|
JsonDeserializer<?> |
createCollectionDeserializer(DeserializationContext ctxt,
CollectionType type,
BeanDescription beanDesc)
|
|
JsonDeserializer<?> |
createCollectionLikeDeserializer(DeserializationContext ctxt,
CollectionLikeType type,
BeanDescription beanDesc)
|
|
JsonDeserializer<?> |
createEnumDeserializer(DeserializationContext ctxt,
JavaType type,
BeanDescription beanDesc)
Factory method for constructing serializers of Enum types. |
|
KeyDeserializer |
createKeyDeserializer(DeserializationContext ctxt,
JavaType type)
Method called to find if factory knows how to create a key deserializer for specified type; currently this means checking if a module has registered possible deserializers. |
|
JsonDeserializer<?> |
createMapDeserializer(DeserializationContext ctxt,
MapType type,
BeanDescription beanDesc)
|
|
JsonDeserializer<?> |
createMapLikeDeserializer(DeserializationContext ctxt,
MapLikeType type,
BeanDescription beanDesc)
|
|
JsonDeserializer<?> |
createTreeDeserializer(DeserializationConfig config,
JavaType nodeType,
BeanDescription beanDesc)
Method called to create and return a deserializer that can construct JsonNode(s) from JSON content. |
|
protected JsonDeserializer<Object> |
findDeserializerFromAnnotation(DeserializationContext ctxt,
Annotated ann)
Helper method called to check if a class or method has annotation that tells which class to use for deserialization. |
|
TypeDeserializer |
findPropertyContentTypeDeserializer(DeserializationConfig config,
JavaType containerType,
AnnotatedMember propertyEntity)
Method called to find and create a type information deserializer for values of given container (list, array, map) property, if one is needed. |
|
TypeDeserializer |
findPropertyTypeDeserializer(DeserializationConfig config,
JavaType baseType,
AnnotatedMember annotated)
Method called to create a type information deserializer for values of given non-container property, if one is needed. |
|
TypeDeserializer |
findTypeDeserializer(DeserializationConfig config,
JavaType baseType)
Method called to find and create a type information deserializer for given base type, if one is needed. |
|
ValueInstantiator |
findValueInstantiator(DeserializationContext ctxt,
BeanDescription beanDesc)
Value instantiator is created both based on creator annotations, and on optional externally provided instantiators (registered through module interface). |
|
JavaType |
mapAbstractType(DeserializationConfig config,
JavaType type)
Method that can be called to try to resolve an abstract type (interface, abstract class) into a concrete type, or at least something "more concrete" (abstract class instead of interface). |
|
protected
|
modifyTypeByAnnotation(DeserializationContext ctxt,
Annotated a,
T type)
Method called to see if given method has annotations that indicate a more specific type than what the argument specifies. |
|
protected JavaType |
resolveType(DeserializationContext ctxt,
BeanDescription beanDesc,
JavaType type,
AnnotatedMember member)
Helper method used to resolve method return types and field types. |
|
DeserializerFactory |
withAbstractTypeResolver(AbstractTypeResolver resolver)
Convenience method for creating a new factory instance with additional AbstractTypeResolver . |
|
DeserializerFactory |
withAdditionalDeserializers(Deserializers additional)
Convenience method for creating a new factory instance with additional deserializer provider. |
|
DeserializerFactory |
withAdditionalKeyDeserializers(KeyDeserializers additional)
Convenience method for creating a new factory instance with additional KeyDeserializers . |
|
protected abstract DeserializerFactory |
withConfig(DeserializerFactoryConfig config)
|
|
DeserializerFactory |
withDeserializerModifier(BeanDeserializerModifier modifier)
Convenience method for creating a new factory instance with additional BeanDeserializerModifier . |
|
DeserializerFactory |
withValueInstantiators(ValueInstantiators instantiators)
Convenience method for creating a new factory instance with additional ValueInstantiators . |
Methods inherited from class com.fasterxml.jackson.databind.deser.DeserializerFactory |
---|
createBeanDeserializer, createBuilderBasedDeserializer |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static final HashMap<ClassKey,JsonDeserializer<Object>> _simpleDeserializers
protected static final HashMap<JavaType,JsonDeserializer<Object>> _arrayDeserializers
protected static final HashMap<JavaType,KeyDeserializer> _keyDeserializers
protected OptionalHandlerFactory optionalHandlers
protected final DeserializerFactoryConfig _factoryConfig
Constructor Detail |
---|
protected BasicDeserializerFactory(DeserializerFactoryConfig config)
Method Detail |
---|
protected abstract DeserializerFactory withConfig(DeserializerFactoryConfig config)
public final DeserializerFactory withAdditionalDeserializers(Deserializers additional)
withAdditionalDeserializers
in class DeserializerFactory
public final DeserializerFactory withAdditionalKeyDeserializers(KeyDeserializers additional)
KeyDeserializers
.
withAdditionalKeyDeserializers
in class DeserializerFactory
public final DeserializerFactory withDeserializerModifier(BeanDeserializerModifier modifier)
BeanDeserializerModifier
.
withDeserializerModifier
in class DeserializerFactory
public final DeserializerFactory withAbstractTypeResolver(AbstractTypeResolver resolver)
AbstractTypeResolver
.
withAbstractTypeResolver
in class DeserializerFactory
public final DeserializerFactory withValueInstantiators(ValueInstantiators instantiators)
ValueInstantiators
.
withValueInstantiators
in class DeserializerFactory
public JavaType mapAbstractType(DeserializationConfig config, JavaType type) throws JsonMappingException
DeserializerFactory
mapAbstractType
in class DeserializerFactory
JsonMappingException
public ValueInstantiator findValueInstantiator(DeserializationContext ctxt, BeanDescription beanDesc) throws JsonMappingException
findValueInstantiator
in class DeserializerFactory
JsonMappingException
protected ValueInstantiator _constructDefaultValueInstantiator(DeserializationContext ctxt, BeanDescription beanDesc) throws JsonMappingException
ValueInstantiator
using annotations (like @JsonCreator) and visibility rules
JsonMappingException
public ValueInstantiator _valueInstantiatorInstance(DeserializationConfig config, Annotated annotated, Object instDef) throws JsonMappingException
JsonMappingException
protected void _addDeserializerConstructors(DeserializationContext ctxt, BeanDescription beanDesc, VisibilityChecker<?> vchecker, AnnotationIntrospector intr, CreatorCollector creators) throws JsonMappingException
JsonMappingException
protected boolean _handleSingleArgumentConstructor(DeserializationContext ctxt, BeanDescription beanDesc, VisibilityChecker<?> vchecker, AnnotationIntrospector intr, CreatorCollector creators, AnnotatedConstructor ctor, boolean isCreator, boolean isVisible) throws JsonMappingException
JsonMappingException
protected void _addDeserializerFactoryMethods(DeserializationContext ctxt, BeanDescription beanDesc, VisibilityChecker<?> vchecker, AnnotationIntrospector intr, CreatorCollector creators) throws JsonMappingException
JsonMappingException
protected boolean _handleSingleArgumentFactory(DeserializationConfig config, BeanDescription beanDesc, VisibilityChecker<?> vchecker, AnnotationIntrospector intr, CreatorCollector creators, AnnotatedMethod factory, boolean isCreator) throws JsonMappingException
JsonMappingException
protected CreatorProperty constructCreatorProperty(DeserializationContext ctxt, BeanDescription beanDesc, String name, int index, AnnotatedParameter param, Object injectableValueId) throws JsonMappingException
JsonMappingException
public JsonDeserializer<?> createArrayDeserializer(DeserializationContext ctxt, ArrayType type, BeanDescription beanDesc) throws JsonMappingException
DeserializerFactory
createArrayDeserializer
in class DeserializerFactory
type
- Type to be deserialized
JsonMappingException
protected JsonDeserializer<?> _findCustomArrayDeserializer(ArrayType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
JsonMappingException
public JsonDeserializer<?> createCollectionDeserializer(DeserializationContext ctxt, CollectionType type, BeanDescription beanDesc) throws JsonMappingException
createCollectionDeserializer
in class DeserializerFactory
JsonMappingException
public JsonDeserializer<?> createCollectionLikeDeserializer(DeserializationContext ctxt, CollectionLikeType type, BeanDescription beanDesc) throws JsonMappingException
createCollectionLikeDeserializer
in class DeserializerFactory
JsonMappingException
protected JsonDeserializer<?> _findCustomCollectionDeserializer(CollectionType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
JsonMappingException
protected JsonDeserializer<?> _findCustomCollectionLikeDeserializer(CollectionLikeType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
JsonMappingException
public JsonDeserializer<?> createMapDeserializer(DeserializationContext ctxt, MapType type, BeanDescription beanDesc) throws JsonMappingException
createMapDeserializer
in class DeserializerFactory
JsonMappingException
public JsonDeserializer<?> createMapLikeDeserializer(DeserializationContext ctxt, MapLikeType type, BeanDescription beanDesc) throws JsonMappingException
createMapLikeDeserializer
in class DeserializerFactory
JsonMappingException
protected JsonDeserializer<?> _findCustomMapDeserializer(MapType type, DeserializationConfig config, BeanDescription beanDesc, KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
JsonMappingException
protected JsonDeserializer<?> _findCustomMapLikeDeserializer(MapLikeType type, DeserializationConfig config, BeanDescription beanDesc, KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
JsonMappingException
public JsonDeserializer<?> createEnumDeserializer(DeserializationContext ctxt, JavaType type, BeanDescription beanDesc) throws JsonMappingException
Enum
types.
createEnumDeserializer
in class DeserializerFactory
JsonMappingException
protected JsonDeserializer<?> _findCustomEnumDeserializer(Class<?> type, DeserializationConfig config, BeanDescription beanDesc) throws JsonMappingException
JsonMappingException
public JsonDeserializer<?> createTreeDeserializer(DeserializationConfig config, JavaType nodeType, BeanDescription beanDesc) throws JsonMappingException
DeserializerFactory
createTreeDeserializer
in class DeserializerFactory
JsonMappingException
protected JsonDeserializer<?> _findCustomTreeNodeDeserializer(Class<? extends JsonNode> type, DeserializationConfig config, BeanDescription beanDesc) throws JsonMappingException
JsonMappingException
public TypeDeserializer findTypeDeserializer(DeserializationConfig config, JavaType baseType) throws JsonMappingException
DeserializerFactory
Note that this method is usually only directly called for values of container (Collection, array, Map) types and root values, but not for bean property values.
findTypeDeserializer
in class DeserializerFactory
baseType
- Declared base type of the value to deserializer (actual
deserializer type will be this type or its subtype)
JsonMappingException
public KeyDeserializer createKeyDeserializer(DeserializationContext ctxt, JavaType type) throws JsonMappingException
DeserializerFactory
createKeyDeserializer
in class DeserializerFactory
JsonMappingException
public TypeDeserializer findPropertyTypeDeserializer(DeserializationConfig config, JavaType baseType, AnnotatedMember annotated) throws JsonMappingException
Note that this method is only called for non-container bean properties, and not for values in container types or root values (or container properties)
baseType
- Declared base type of the value to deserializer (actual
deserializer type will be this type or its subtype)
JsonMappingException
public TypeDeserializer findPropertyContentTypeDeserializer(DeserializationConfig config, JavaType containerType, AnnotatedMember propertyEntity) throws JsonMappingException
Note that this method is only called for container bean properties, and not for values in container types or root values (or non-container properties)
containerType
- Type of property; must be a container typepropertyEntity
- Field or method that contains container property
JsonMappingException
protected JsonDeserializer<Object> findDeserializerFromAnnotation(DeserializationContext ctxt, Annotated ann) throws JsonMappingException
JsonMappingException
protected <T extends JavaType> T modifyTypeByAnnotation(DeserializationContext ctxt, Annotated a, T type) throws JsonMappingException
a
- Method or field that the type is associated withtype
- Type of field, or the setter argument
JsonMappingException
- if invalid annotation is foundprotected JavaType resolveType(DeserializationContext ctxt, BeanDescription beanDesc, JavaType type, AnnotatedMember member) throws JsonMappingException
JsonMappingException
protected EnumResolver<?> constructEnumResolver(Class<?> enumClass, DeserializationConfig config, AnnotatedMethod jsonValueMethod)
protected AnnotatedMethod _findJsonValueFor(DeserializationConfig config, JavaType enumType)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |