Top Description Inners Fields Constructors Methods
com.fasterxml.jackson.databind.deser

public abstract Class BasicDeserializerFactory

extends DeserializerFactory
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Known Direct Subclasses
com.fasterxml.jackson.databind.deser.BeanDeserializerFactory
Annotations
@SuppressWarnings:serial
Imports
java.io.Serializable, java.math.BigDecimal, .BigInteger, java.util.*, java.util.concurrent.*, java.util.concurrent.atomic.AtomicReference, com.fasterxml.jackson.annotation.*, com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.*, com.fasterxml.jackson.databind.cfg.*, com.fasterxml.jackson.databind.deser.impl.CreatorCandidate, .CreatorCollector, .JDKValueInstantiators, .JavaUtilCollectionsDeserializers, com.fasterxml.jackson.databind.deser.std.*, com.fasterxml.jackson.databind.exc.InvalidDefinitionException, com.fasterxml.jackson.databind.ext.OptionalHandlerFactory, com.fasterxml.jackson.databind.introspect.*, com.fasterxml.jackson.databind.jsontype.NamedType, .TypeDeserializer, .TypeResolverBuilder, com.fasterxml.jackson.databind.type.*, com.fasterxml.jackson.databind.util.*

Abstract factory base class that can provide deserializers for standard JDK classes, including collection classes and simple heuristics for "upcasting" common collection interface types (such as java.util.Collection).

Since all simple deserializers are eagerly instantiated, and there is no additional introspection or customizability of these types, this factory is stateless.

Nested and Inner Type Summary

Modifier and TypeClass and Description
protected static class
BasicDeserializerFactory.ContainerDefaultMappings

Helper class to contain default mappings for abstract JDK java.util.Collection and java.util.Map types.

Field Summary

Modifier and TypeField and Description
protected final DeserializerFactoryConfig
_factoryConfig

Configuration settings for this factory; immutable instance (just like this factory), new version created via copy-constructor (fluent-style)

private static final Class<?>
private static final Class<?>
private static final Class<?>
private static final Class<?>
private static final Class<?>
private static final Class<?>
protected static final PropertyName
UNWRAPPED_CREATOR_PARAM_NAME

We need a placeholder for creator properties that don't have name but are marked with `@JsonWrapped` annotation.

Inherited from com.fasterxml.jackson.databind.deser.DeserializerFactory:
NO_DESERIALIZERS

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
private boolean
_addExplicitDelegatingCreator(DeserializationContext ctxt, BeanDescription beanDesc, CreatorCollector creators, CreatorCandidate candidate)

Helper method called when there is the explicit "is-creator" with mode of "delegating"

private boolean
private void
private void
private void
_addSelectedPropertiesBasedCreator(DeserializationContext ctxt, BeanDescription beanDesc, CreatorCollector creators, CreatorCandidate candidate)

Helper method called the single chosen "properties-based" Creator (if any)

protected ValueInstantiator
_constructDefaultValueInstantiator(DeserializationContext ctxt, BeanDescription beanDesc)

Method that will construct standard default ValueInstantiator using annotations (like @JsonCreator) and visibility rules

private KeyDeserializer
protected JsonDeserializer<?>
_findCustomArrayDeserializer(ArrayType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer)

protected JsonDeserializer<Object>
protected JsonDeserializer<?>
_findCustomCollectionDeserializer(CollectionType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer)

protected JsonDeserializer<?>
protected JsonDeserializer<?>
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<?>
_findCustomReferenceDeserializer(ReferenceType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer contentTypeDeserializer, JsonDeserializer<?> contentDeserializer)

protected JsonDeserializer<?>
protected JavaType
private PropertyMetadata
_getSetterInfo(MapperConfig<?> config, BeanProperty prop, PropertyMetadata metadata)

Helper method copied from POJOPropertyBuilder since that won't be applied to creator parameters

private boolean
_handleSingleArgumentCreator(CreatorCollector creators, AnnotatedWithParams ctor, boolean isCreator, boolean isVisible)

protected boolean
protected CollectionType
protected MapType
private JavaType
_mapAbstractType2(DeserializationConfig config, JavaType type)

Method that will find abstract type mapping for specified type, doing a single lookup through registered abstract type resolvers; will not do recursive lookups.

private void
public ValueInstantiator
protected SettableBeanProperty
constructCreatorProperty(DeserializationContext ctxt, BeanDescription beanDesc, PropertyName name, int index, AnnotatedParameter param, JacksonInject.Value injectable)

Method that will construct a property object that represents a logical property passed via Creator (constructor or static factory method)

protected EnumResolver
constructEnumNamingStrategyResolver(DeserializationConfig config, AnnotatedClass annotatedClass)

Factory method used to resolve an instance of CompactStringObjectMap with EnumNamingStrategy applied for the target class.

protected EnumResolver
constructEnumNamingStrategyResolver(DeserializationConfig config, Class<?> enumClass, AnnotatedClass annotatedClass)

Factory method used to resolve an instance of CompactStringObjectMap with EnumNamingStrategy applied for the target class.

protected EnumResolver
public JsonDeserializer<?>
createArrayDeserializer(DeserializationContext ctxt, ArrayType
Type to be deserialized
type
,
final BeanDescription beanDesc)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.createArrayDeserializer.

Method called to create (or, for completely immutable deserializers, reuse) a deserializer that can convert JSON content into values of specified Java type.

public JsonDeserializer<?>
public JsonDeserializer<?>
public JsonDeserializer<?>
createEnumDeserializer(DeserializationContext ctxt, JavaType type, BeanDescription beanDesc)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.createEnumDeserializer.

Factory method for constructing deserializers of Enum types.

public KeyDeserializer
createKeyDeserializer(DeserializationContext ctxt, JavaType type)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.createKeyDeserializer.

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.

public JsonDeserializer<?>
public JsonDeserializer<?>
public JsonDeserializer<?>
public JsonDeserializer<?>
createTreeDeserializer(DeserializationConfig config, JavaType nodeType, BeanDescription beanDesc)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.createTreeDeserializer.

Method called to create and return a deserializer that can construct JsonNode(s) from JSON content.

protected JsonDeserializer<Object>
public JsonDeserializer<?>
findDefaultDeserializer(DeserializationContext ctxt, JavaType type, BeanDescription beanDesc)

Helper method called to find one of default deserializers 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; and if so, to instantiate, that deserializer to use.

protected KeyDeserializer
findKeyDeserializerFromAnnotation(DeserializationContext ctxt, Annotated ann)

Helper method called to check if a class or method has annotation that tells which class to use for deserialization of java.util.Map keys.

protected JsonDeserializer<?>
findOptionalStdDeserializer(DeserializationContext ctxt, JavaType type, BeanDescription beanDesc)

Overridable method called after checking all other types.

public TypeDeserializer
findPropertyContentTypeDeserializer(DeserializationConfig config, JavaType
Type of property; must be a container type
containerType
,
AnnotatedMember
Field or method that contains container property
propertyEntity
)

Method called to find and create a type information deserializer for values of given container (list, array, map) property, if one is needed.

public TypeDeserializer

Returns:

Type deserializer to use for given base type, if one is needed; null if not.
findPropertyTypeDeserializer
(DeserializationConfig config, JavaType
Declared base type of the value to deserializer (actual deserializer type will be this type or its subtype)
baseType
,
AnnotatedMember annotated)

Method called to create a type information deserializer for values of given non-container property, if one is needed.

public TypeDeserializer
findTypeDeserializer(DeserializationConfig config, JavaType
Declared base type of the value to deserializer (actual deserializer type will be this type or its subtype)
baseType
)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.findTypeDeserializer.

Method called to find and create a type information deserializer for given base type, if one is needed.

public ValueInstantiator
findValueInstantiator(DeserializationContext ctxt, BeanDescription beanDesc)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.findValueInstantiator.

Value instantiator is created both based on creator annotations, and on optional externally provided instantiators (registered through module interface).

public DeserializerFactoryConfig
getFactoryConfig()

Method for getting current DeserializerFactoryConfig.

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

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.hasExplicitDeserializerFor.

Method that can be used to check if databind module has explicitly declared deserializer for given (likely JDK) type, explicit meaning that there is specific deserializer for given type as opposed to auto-generated "Bean" deserializer.

public JavaType
mapAbstractType(DeserializationConfig config, JavaType type)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.mapAbstractType.

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 JavaType
resolveMemberAndTypeAnnotations(DeserializationContext ctxt, AnnotatedMember member, JavaType type)

Helper method used to resolve additional type-related annotation information like type overrides, or handler (serializer, deserializer) overrides, so that from declared field, property or constructor parameter type is used as the base and modified based on annotations, if any.

public final DeserializerFactory
withAbstractTypeResolver(AbstractTypeResolver resolver)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.withAbstractTypeResolver.

Convenience method for creating a new factory instance with additional AbstractTypeResolver.

public final DeserializerFactory
withAdditionalDeserializers(Deserializers additional)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.withAdditionalDeserializers.

Convenience method for creating a new factory instance with additional deserializer provider.

public final DeserializerFactory
withAdditionalKeyDeserializers(KeyDeserializers additional)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.withAdditionalKeyDeserializers.

Convenience method for creating a new factory instance with additional KeyDeserializers.

protected abstract DeserializerFactory
public final DeserializerFactory
withDeserializerModifier(BeanDeserializerModifier modifier)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.withDeserializerModifier.

Convenience method for creating a new factory instance with additional BeanDeserializerModifier.

public final DeserializerFactory
withValueInstantiators(ValueInstantiators instantiators)

Implements abstract com.fasterxml.jackson.databind.deser.DeserializerFactory.withValueInstantiators.

Convenience method for creating a new factory instance with additional ValueInstantiators.

Inherited from com.fasterxml.jackson.databind.deser.DeserializerFactory:
createBeanDeserializercreateBuilderBasedDeserializer