public abstract class BasicDeserializerFactory extends DeserializerFactory implements Serializable
Collection).
Since all simple deserializers are eagerly instantiated, and there is no additional introspection or customizability of these types, this factory is stateless.
| Modifier and Type | Field and Description |
|---|---|
protected DeserializerFactoryConfig |
_factoryConfig
Configuration settings for this factory; immutable instance (just like this
factory), new version created via copy-constructor (fluent-style)
|
protected static PropertyName |
UNWRAPPED_CREATOR_PARAM_NAME
We need a placeholder for creator properties that don't have name
but are marked with `@JsonWrapped` annotation.
|
NO_DESERIALIZERS| Modifier | Constructor and Description |
|---|---|
protected |
BasicDeserializerFactory(DeserializerFactoryConfig config) |
| Modifier and Type | Method and Description |
|---|---|
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 PropertyName |
_findParamName(AnnotatedParameter param,
AnnotationIntrospector intr) |
protected boolean |
_handleSingleArgumentConstructor(DeserializationContext ctxt,
BeanDescription beanDesc,
VisibilityChecker<?> vchecker,
AnnotationIntrospector intr,
CreatorCollector creators,
AnnotatedConstructor ctor,
boolean isCreator,
boolean isVisible,
PropertyName name) |
protected boolean |
_handleSingleArgumentFactory(DeserializationConfig config,
BeanDescription beanDesc,
VisibilityChecker<?> vchecker,
AnnotationIntrospector intr,
CreatorCollector creators,
AnnotatedMethod factory,
boolean isCreator) |
protected CollectionType |
_mapAbstractCollectionType(JavaType type,
DeserializationConfig config) |
ValueInstantiator |
_valueInstantiatorInstance(DeserializationConfig config,
Annotated annotated,
Object instDef) |
protected CreatorProperty |
constructCreatorProperty(DeserializationContext ctxt,
BeanDescription beanDesc,
PropertyName 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.
|
JsonDeserializer<?> |
findDefaultDeserializer(DeserializationContext ctxt,
JavaType type,
BeanDescription beanDesc)
Helper method called to find one of default serializers for "well-known"
platform types: JDK-provided types, and small number of public Jackson
API types.
|
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).
|
DeserializerFactoryConfig |
getFactoryConfig()
Method for getting current
DeserializerFactoryConfig. |
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 <T extends JavaType> |
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. |
createBeanDeserializer, createBuilderBasedDeserializerprotected static final PropertyName UNWRAPPED_CREATOR_PARAM_NAME
protected final DeserializerFactoryConfig _factoryConfig
protected BasicDeserializerFactory(DeserializerFactoryConfig config)
public DeserializerFactoryConfig getFactoryConfig()
DeserializerFactoryConfig.
Note that since instances are immutable, you can NOT change settings by accessing an instance and calling methods: this will simply create new instance of config object.
protected abstract DeserializerFactory withConfig(DeserializerFactoryConfig config)
public final DeserializerFactory withAdditionalDeserializers(Deserializers additional)
withAdditionalDeserializers in class DeserializerFactorypublic final DeserializerFactory withAdditionalKeyDeserializers(KeyDeserializers additional)
KeyDeserializers.withAdditionalKeyDeserializers in class DeserializerFactorypublic final DeserializerFactory withDeserializerModifier(BeanDeserializerModifier modifier)
BeanDeserializerModifier.withDeserializerModifier in class DeserializerFactorypublic final DeserializerFactory withAbstractTypeResolver(AbstractTypeResolver resolver)
AbstractTypeResolver.withAbstractTypeResolver in class DeserializerFactorypublic final DeserializerFactory withValueInstantiators(ValueInstantiators instantiators)
ValueInstantiators.withValueInstantiators in class DeserializerFactorypublic JavaType mapAbstractType(DeserializationConfig config, JavaType type) throws JsonMappingException
DeserializerFactorymapAbstractType in class DeserializerFactoryJsonMappingExceptionpublic ValueInstantiator findValueInstantiator(DeserializationContext ctxt, BeanDescription beanDesc) throws JsonMappingException
findValueInstantiator in class DeserializerFactoryJsonMappingExceptionprotected ValueInstantiator _constructDefaultValueInstantiator(DeserializationContext ctxt, BeanDescription beanDesc) throws JsonMappingException
ValueInstantiator
using annotations (like @JsonCreator) and visibility rulesJsonMappingExceptionpublic ValueInstantiator _valueInstantiatorInstance(DeserializationConfig config, Annotated annotated, Object instDef) throws JsonMappingException
JsonMappingExceptionprotected void _addDeserializerConstructors(DeserializationContext ctxt, BeanDescription beanDesc, VisibilityChecker<?> vchecker, AnnotationIntrospector intr, CreatorCollector creators) throws JsonMappingException
JsonMappingExceptionprotected boolean _handleSingleArgumentConstructor(DeserializationContext ctxt, BeanDescription beanDesc, VisibilityChecker<?> vchecker, AnnotationIntrospector intr, CreatorCollector creators, AnnotatedConstructor ctor, boolean isCreator, boolean isVisible, PropertyName name) throws JsonMappingException
JsonMappingExceptionprotected void _addDeserializerFactoryMethods(DeserializationContext ctxt, BeanDescription beanDesc, VisibilityChecker<?> vchecker, AnnotationIntrospector intr, CreatorCollector creators) throws JsonMappingException
JsonMappingExceptionprotected boolean _handleSingleArgumentFactory(DeserializationConfig config, BeanDescription beanDesc, VisibilityChecker<?> vchecker, AnnotationIntrospector intr, CreatorCollector creators, AnnotatedMethod factory, boolean isCreator) throws JsonMappingException
JsonMappingExceptionprotected CreatorProperty constructCreatorProperty(DeserializationContext ctxt, BeanDescription beanDesc, PropertyName name, int index, AnnotatedParameter param, Object injectableValueId) throws JsonMappingException
JsonMappingExceptionprotected PropertyName _findParamName(AnnotatedParameter param, AnnotationIntrospector intr)
public JsonDeserializer<?> createArrayDeserializer(DeserializationContext ctxt, ArrayType type, BeanDescription beanDesc) throws JsonMappingException
DeserializerFactorycreateArrayDeserializer in class DeserializerFactorytype - Type to be deserializedJsonMappingExceptionprotected JsonDeserializer<?> _findCustomArrayDeserializer(ArrayType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
JsonMappingExceptionpublic JsonDeserializer<?> createCollectionDeserializer(DeserializationContext ctxt, CollectionType type, BeanDescription beanDesc) throws JsonMappingException
createCollectionDeserializer in class DeserializerFactoryJsonMappingExceptionprotected CollectionType _mapAbstractCollectionType(JavaType type, DeserializationConfig config)
protected JsonDeserializer<?> _findCustomCollectionDeserializer(CollectionType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
JsonMappingExceptionpublic JsonDeserializer<?> createCollectionLikeDeserializer(DeserializationContext ctxt, CollectionLikeType type, BeanDescription beanDesc) throws JsonMappingException
createCollectionLikeDeserializer in class DeserializerFactoryJsonMappingExceptionprotected JsonDeserializer<?> _findCustomCollectionLikeDeserializer(CollectionLikeType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
JsonMappingExceptionpublic JsonDeserializer<?> createMapDeserializer(DeserializationContext ctxt, MapType type, BeanDescription beanDesc) throws JsonMappingException
createMapDeserializer in class DeserializerFactoryJsonMappingExceptionpublic JsonDeserializer<?> createMapLikeDeserializer(DeserializationContext ctxt, MapLikeType type, BeanDescription beanDesc) throws JsonMappingException
createMapLikeDeserializer in class DeserializerFactoryJsonMappingExceptionprotected JsonDeserializer<?> _findCustomMapDeserializer(MapType type, DeserializationConfig config, BeanDescription beanDesc, KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
JsonMappingExceptionprotected JsonDeserializer<?> _findCustomMapLikeDeserializer(MapLikeType type, DeserializationConfig config, BeanDescription beanDesc, KeyDeserializer keyDeserializer, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException
JsonMappingExceptionpublic JsonDeserializer<?> createEnumDeserializer(DeserializationContext ctxt, JavaType type, BeanDescription beanDesc) throws JsonMappingException
Enum types.createEnumDeserializer in class DeserializerFactoryJsonMappingExceptionprotected JsonDeserializer<?> _findCustomEnumDeserializer(Class<?> type, DeserializationConfig config, BeanDescription beanDesc) throws JsonMappingException
JsonMappingExceptionpublic JsonDeserializer<?> createTreeDeserializer(DeserializationConfig config, JavaType nodeType, BeanDescription beanDesc) throws JsonMappingException
DeserializerFactorycreateTreeDeserializer in class DeserializerFactoryJsonMappingExceptionprotected JsonDeserializer<?> _findCustomTreeNodeDeserializer(Class<? extends JsonNode> type, DeserializationConfig config, BeanDescription beanDesc) throws JsonMappingException
JsonMappingExceptionpublic TypeDeserializer findTypeDeserializer(DeserializationConfig config, JavaType baseType) throws JsonMappingException
DeserializerFactoryNote 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 DeserializerFactorybaseType - Declared base type of the value to deserializer (actual
deserializer type will be this type or its subtype)JsonMappingExceptionpublic KeyDeserializer createKeyDeserializer(DeserializationContext ctxt, JavaType type) throws JsonMappingException
DeserializerFactorycreateKeyDeserializer in class DeserializerFactoryJsonMappingExceptionpublic 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)JsonMappingExceptionpublic 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 propertyJsonMappingExceptionpublic JsonDeserializer<?> findDefaultDeserializer(DeserializationContext ctxt, JavaType type, BeanDescription beanDesc) throws JsonMappingException
JsonMappingExceptionprotected JsonDeserializer<Object> findDeserializerFromAnnotation(DeserializationContext ctxt, Annotated ann) throws JsonMappingException
JsonMappingExceptionprotected <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 argumentJsonMappingException - if invalid annotation is foundprotected JavaType resolveType(DeserializationContext ctxt, BeanDescription beanDesc, JavaType type, AnnotatedMember member) throws JsonMappingException
JsonMappingExceptionprotected EnumResolver<?> constructEnumResolver(Class<?> enumClass, DeserializationConfig config, AnnotatedMethod jsonValueMethod)
protected AnnotatedMethod _findJsonValueFor(DeserializationConfig config, JavaType enumType)
Copyright © 2014 FasterXML. All Rights Reserved.