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

Contains those implementation classes of deserialization part of data binding that are not considered part of public or semi-public interfaces.

See: Description

Class Summary
BeanAsArrayBuilderDeserializer
BeanAsArrayDeserializer: Variant of `BeanDeserializer` used for handling deserialization of POJOs when serialized as JSON Arrays, instead of JSON Objects.
BeanPropertyMap: Helper class used for storing mapping from property name to `SettableBeanProperty` instances.
CreatorCandidate
CreatorCandidate.Param
CreatorCollector: Container class for storing information on creators (based on annotations, visibility), to be able to build actual instantiator later on.
ErrorThrowingDeserializer: A deserializer that stores an `Error` caught during constructing of the deserializer, which needs to be deferred and only during actual attempt to deserialize a value of given type.
ExternalTypeHandler: Helper class that is used to flatten JSON structure when using "external type id" (see `JsonTypeInfo.As.EXTERNAL_PROPERTY`).
ExternalTypeHandler.Builder
FailingDeserializer: Special bogus "serializer" that will throw `MismatchedInputException` if an attempt is made to deserialize a value.
FieldProperty: This concrete sub-class implements property that is set directly assigning to a Field.
InnerClassProperty: This sub-class is used to handle special case of value being a non-static inner class.
JavaUtilCollectionsDeserializers: Helper class used to contain logic for deserializing "special" containers from `java.util.Collections` and `java.util.Arrays`.
JDKValueInstantiators: Container for a set of `ValueInstantiator`s used for certain critical JDK value types, either as performance optimization for initialization time observed by profiling, or due to difficulty in otherwise finding constructors.
ManagedReferenceProperty: Wrapper property that is used to handle managed (forward) properties Basically just needs to delegate first to actual forward property, and then to back property.
MergingSettableBeanProperty: `SettableBeanProperty` implementation that will try to access value of the property first, and if non-null value found, pass that for update (using `JsonDeserializer.deserialize(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, Object)`) instead of constructing a new value.
MethodProperty: This concrete sub-class implements property that is set using regular "setter" method.
NullsAsEmptyProvider: Simple `NullValueProvider` that will always throw a `InvalidNullException` when a null is encountered.
NullsConstantProvider: Simple `NullValueProvider` that will always throw a `InvalidNullException` when a null is encountered.
NullsFailProvider: Simple `NullValueProvider` that will always throw a `InvalidNullException` when a null is encountered.
ObjectIdReader: Object that knows how to deserialize Object Ids.
ObjectIdReferenceProperty
ObjectIdReferenceProperty.PropertyReferring
ObjectIdValueProperty: Specialized `SettableBeanProperty` implementation used for virtual property that represents Object Id that is used for some POJO types (or properties).
PropertyBasedCreator: Object that is used to collect arguments for non-default creator (non-default-constructor, or argument-taking factory method) before creator can be called.
PropertyBasedObjectIdGenerator
PropertyValue: Base class for property values that need to be buffered during deserialization.
PropertyValueBuffer: Simple container used for temporarily buffering a set of `PropertyValue`s.
ReadableObjectId: Simple value container for containing information about single Object Id during deserialization
ReadableObjectId.Referring
SetterlessProperty: This concrete sub-class implements Collection or Map property that is indirectly by getting the property value and directly modifying it.
TypeWrappedDeserializer: Simple deserializer that will call configured type deserializer, passing in configured data deserializer, and exposing it all as a simple deserializer.
UnsupportedTypeDeserializer: Special bogus "serializer" that will throw `MismatchedInputException` if an attempt is made to deserialize a value.
UnwrappedPropertyHandler: Object that is responsible for handling acrobatics related to deserializing "unwrapped" values; sets of properties that are embedded (inlined) as properties of parent JSON object.
ValueInjector: Class that encapsulates details of value injection that occurs before deserialization of a POJO.

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

Contains those implementation classes of deserialization part of data binding that are not considered part of public or semi-public interfaces. Use of these classes by non-core classes is discouraged, although occasionally this may be necessary. Note that backwards-compatibility of these classes is not guaranteed between minor releases (but is between patch releases).