## Uses of Interface
com.fasterxml.jackson.databind.deser.ContextualDeserializer

Packages that use ContextualDeserializer
com.fasterxml.jackson.databind.deser: Contains implementation classes of deserialization part of data binding.
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.
com.fasterxml.jackson.databind.deser.std: Contains public standard implementations of abstraction that Jackson uses.

### Uses of ContextualDeserializer in com.fasterxml.jackson.databind.deser

Classes in com.fasterxml.jackson.databind.deser that implement ContextualDeserializer
`class` `AbstractDeserializer` Deserializer only used for abstract types used as placeholders during polymorphic type handling deserialization.
`class` `BeanDeserializer` Deserializer class that can deserialize instances of arbitrary bean objects, usually from JSON Object structs,
`class` `BeanDeserializerBase` Base class for `BeanDeserializer`.
`class` `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.

### Uses of ContextualDeserializer in com.fasterxml.jackson.databind.deser.impl

Classes in com.fasterxml.jackson.databind.deser.impl that implement ContextualDeserializer
`class` `BeanAsArrayBuilderDeserializer`
`class` `BeanAsArrayDeserializer` Variant of `BeanDeserializer` used for handling deserialization of POJOs when serialized as JSON Arrays, instead of JSON Objects.

### Uses of ContextualDeserializer in com.fasterxml.jackson.databind.deser.std

Classes in com.fasterxml.jackson.databind.deser.std that implement ContextualDeserializer
`class` `ArrayBlockingQueueDeserializer` We need a custom deserializer both because `ArrayBlockingQueue` has no default constructor AND because it has size limit used for constructing underlying storage automatically.
`class` `AtomicReferenceDeserializer`
`class` `CollectionDeserializer` Basic serializer that can take JSON "Array" structure and construct a `Collection` instance, with typed contents.
`static class` `DateDeserializers.CalendarDeserializer`
`protected static class` `DateDeserializers.DateBasedDeserializer<T>`
`static class` `DateDeserializers.DateDeserializer` Simple deserializer for handling `Date` values.
`static class` `DateDeserializers.SqlDateDeserializer` Compared to plain old `Date`, SQL version is easier to deal with: mostly because it is more limited.
`static class` `DateDeserializers.TimestampDeserializer` Simple deserializer for handling `Timestamp` values.
`class` `DelegatingDeserializer` Base class that simplifies implementations of `JsonDeserializer`s that mostly delegate functionality to another deserializer implementation (possibly forming a chaining of deserializers delegating functionality in some cases)
`class` `EnumDeserializer` Deserializer class that can deserialize instances of specified Enum class from Strings and Integers.
`class` `EnumMapDeserializer` Deserializer for `EnumMap` values.
`class` `EnumSetDeserializer` Standard deserializer for `EnumSet`s.
`class` `JsonNodeDeserializer` Deserializer that can build instances of `JsonNode` from any JSON content, using appropriate `JsonNode` type.
`class` `MapDeserializer` Basic deserializer that can take JSON "Object" structure and construct a `Map` instance, with typed contents.
`class` `MapEntryDeserializer` Basic serializer that can take JSON "Object" structure and construct a `Map` instance, with typed contents.
`class` `ObjectArrayDeserializer` Basic serializer that can serialize non-primitive arrays.
`class` `PrimitiveArrayDeserializers<T>` Container for deserializers used for instantiating "primitive arrays", arrays that contain non-object java primitive types.
`class` `ReferenceTypeDeserializer<T>` Base deserializer implementation for properties `ReferenceType` values.
`class` `StdDelegatingDeserializer<T>` Deserializer implementation where given Java type is first deserialized by a standard Jackson deserializer into a delegate type; and then this delegate type is converted using a configured `Converter` into desired target type.
`class` `StringArrayDeserializer` Separate implementation for serializing String arrays (instead of using `ObjectArrayDeserializer`.
`class` `StringCollectionDeserializer` Specifically optimized version for `Collection`s that contain String values; reason is that this is a very common type and we can make use of the fact that Strings are final.
`class` `ThrowableDeserializer` Deserializer that builds on basic `BeanDeserializer` but override some aspects like instance construction.
`class` `UntypedObjectDeserializer` Deserializer implementation that is used if it is necessary to bind content of "unknown" type; something declared as basic `Object` (either explicitly, or due to type erasure).