# Package com.fasterxml.jackson.databind.deser

Contains implementation classes of deserialization part of data binding.

See: Description

Interface Summary
ContextualDeserializer: Add-on interface that `JsonDeserializer`s can implement to get a callback that can be used to create contextual (context-dependent) instances of deserializer to use for handling properties of supported type.
ContextualKeyDeserializer: Add-on interface that `KeyDeserializer`s can implement to get a callback that can be used to create contextual instances of key deserializer to use for handling Map keys of supported type.
Deserializers: Interface that defines API for simple extensions that can provide additional deserializers for various types.
KeyDeserializers: Interface that defines API for simple extensions that can provide additional deserializers for deserializer Map keys of various types, from JSON property names.
NullValueProvider: Helper interface implemented by classes that are to be used as null providers during deserialization.
ResolvableDeserializer: Interface used to indicate deserializers that want to do post-processing after construction but before being returned to caller (and possibly cached) and used.
ValueInstantiator.Gettable
ValueInstantiators: Interface for providers of `ValueInstantiator` instances.

Class Summary
AbstractDeserializer: Deserializer only used for abstract types used as placeholders during polymorphic type handling deserialization.
BasicDeserializerFactory: 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 `Collection`).
BasicDeserializerFactory.ContainerDefaultMappings: Helper class to contain default mappings for abstract JDK `Collection` and `Map` types.
BasicDeserializerFactory.CreatorCollectionState: Helper class to contain largish number of parameters that need to be passed during Creator introspection.
BeanDeserializer: Deserializer class that can deserialize instances of arbitrary bean objects, usually from JSON Object structs,
BeanDeserializerBase: Base class for `BeanDeserializer`.
BeanDeserializerBuilder: Builder class used for aggregating deserialization information about a POJO, in order to build a `JsonDeserializer` for deserializing instances.
BeanDeserializerFactory: Concrete deserializer factory class that adds full Bean deserializer construction logic using class introspection.
BeanDeserializerModifier: Abstract class that defines API for objects that can be registered to participate in constructing `JsonDeserializer` instances (via `DeserializerFactory`).
BuilderBasedDeserializer: Class that handles deserialization using a separate Builder class, which is used for data binding and produces actual deserialized value at the end of data binding.
CreatorProperty: This concrete sub-class implements property that is passed via Creator (constructor or static factory method).
DataFormatReaders: Alternative to `DataFormatDetector` that needs to be used when using data-binding.
DataFormatReaders.AccessorForReader: We need sub-class here as well, to be able to access efficiently.
DataFormatReaders.Match: Result class, similar to `DataFormatMatcher`
DefaultDeserializationContext: Complete `DeserializationContext` implementation that adds extended API for `ObjectMapper` (and `ObjectReader`) to call, as well as implements certain parts that base class has left abstract.
DefaultDeserializationContext.Impl: Actual full concrete implementation
DeserializationProblemHandler: This is the class that can be registered (via `DeserializationConfig` object owner by `ObjectMapper`) to get called when a potentially recoverable problem is encountered during deserialization process.
DeserializerCache: Class that defines caching layer between callers (like `ObjectMapper`, `DeserializationContext`) and classes that construct deserializers (`DeserializerFactory`).
DeserializerFactory: Abstract class that defines API used by `DeserializationContext` to construct actual `JsonDeserializer` instances (which are then cached by context and/or dedicated cache).
Deserializers.Base: Basic `Deserializers` implementation that implements all methods but provides no deserializers.
SettableAnyProperty: Class that represents a "wildcard" set method which can be used to generically set values of otherwise unmapped (aka "unknown") properties read from JSON content.
SettableAnyProperty.JsonNodeFieldAnyProperty
SettableAnyProperty.MapFieldAnyProperty
SettableAnyProperty.MethodAnyProperty
SettableBeanProperty: Base class for deserializable properties of a bean: contains both type and name definitions, and reflection-based set functionality.
SettableBeanProperty.Delegating: Helper class that is designed to both make it easier to sub-class delegating subtypes and to reduce likelihood of breakage when new methods are added.
UnresolvedId: Helper class for `UnresolvedForwardReference`, to contain information about unresolved ids.
ValueInstantiator: Class that defines simple API implemented by objects that create value instances.
ValueInstantiator.Base: Partial `ValueInstantiator` implementation that is strongly recommended to be used instead of directly extending `ValueInstantiator` itself.
ValueInstantiator.Delegating: Delegating `ValueInstantiator` implementation meant as a base type that by default delegates methods to specified fallback instantiator.
ValueInstantiators.Base: Basic "NOP" implementation that can be used as the base class for custom implementations.

Exception Summary
UnresolvedForwardReference: Exception thrown during deserialization when there are object id that can't be resolved.

## Package com.fasterxml.jackson.databind.deser Description

Contains implementation classes of deserialization part of data binding.