DeserializerFactoryConfig
Date: 2016-12-04

com.fasterxml.jackson.databind.cfg

## Class DeserializerFactoryConfig

- java.lang.Object
- - com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig

- All Implemented Interfaces:
    java.io.Serializable

      public class DeserializerFactoryConfig
      extends java.lang.Object
      implements java.io.Serializable

  Configuration settings container class for `DeserializerFactory`.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected AbstractTypeResolver[]` | `_abstractTypeResolvers` List of objects that may be able to resolve abstract types to concrete types.
    `protected Deserializers[]` | `_additionalDeserializers` List of providers for additional deserializers, checked before considering default basic or bean deserializers.
    `protected KeyDeserializers[]` | `_additionalKeyDeserializers` List of providers for additional key deserializers, checked before considering standard key deserializers.
    `protected BeanDeserializerModifier[]` | `_modifiers` List of modifiers that can change the way `BeanDeserializer` instances are configured and constructed.
    `protected ValueInstantiators[]` | `_valueInstantiators` List of objects that know how to create instances of POJO types; possibly using custom construction (non-annoted constructors; factory methods external to value type etc).
    `protected static KeyDeserializers[]` | `DEFAULT_KEY_DESERIALIZERS` By default we plug default key deserializers using as "just another" set of of key deserializers.
    `protected static AbstractTypeResolver[]` | `NO_ABSTRACT_TYPE_RESOLVERS`
    `protected static Deserializers[]` | `NO_DESERIALIZERS`
    `protected static BeanDeserializerModifier[]` | `NO_MODIFIERS`
    `protected static ValueInstantiators[]` | `NO_VALUE_INSTANTIATORS`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `DeserializerFactoryConfig()` Constructor for creating basic configuration with no additional handlers.
    `protected` | `DeserializerFactoryConfig(Deserializers[] allAdditionalDeserializers, KeyDeserializers[] allAdditionalKeyDeserializers, BeanDeserializerModifier[] modifiers, AbstractTypeResolver[] atr, ValueInstantiators[] vi)` Copy-constructor that will create an instance that contains defined set of additional deserializer providers.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Iterable<AbstractTypeResolver>` | `abstractTypeResolvers()`
    `java.lang.Iterable<BeanDeserializerModifier>` | `deserializerModifiers()`
    `java.lang.Iterable<Deserializers>` | `deserializers()`
    `boolean` | `hasAbstractTypeResolvers()`
    `boolean` | `hasDeserializerModifiers()`
    `boolean` | `hasDeserializers()`
    `boolean` | `hasKeyDeserializers()`
    `boolean` | `hasValueInstantiators()`
    `java.lang.Iterable<KeyDeserializers>` | `keyDeserializers()`
    `java.lang.Iterable<ValueInstantiators>` | `valueInstantiators()`
    `DeserializerFactoryConfig` | `withAbstractTypeResolver(AbstractTypeResolver resolver)` Fluent/factory method used to construct a configuration object that has same configuration as this instance plus one additional abstract type resolver.
    `DeserializerFactoryConfig` | `withAdditionalDeserializers(Deserializers additional)` Fluent/factory method used to construct a configuration object that has same deserializer providers as this instance, plus one specified as argument.
    `DeserializerFactoryConfig` | `withAdditionalKeyDeserializers(KeyDeserializers additional)` Fluent/factory method used to construct a configuration object that has same key deserializer providers as this instance, plus one specified as argument.
    `DeserializerFactoryConfig` | `withDeserializerModifier(BeanDeserializerModifier modifier)` Fluent/factory method used to construct a configuration object that has same configuration as this instance plus one additional deserialiazer modifier.
    `DeserializerFactoryConfig` | `withValueInstantiators(ValueInstantiators instantiators)` Fluent/factory method used to construct a configuration object that has same configuration as this instance plus specified additional value instantiator provider object.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### NO_DESERIALIZERS

          protected static final Deserializers[] NO_DESERIALIZERS

    - #### NO_MODIFIERS

          protected static final BeanDeserializerModifier[] NO_MODIFIERS

    - #### NO_ABSTRACT_TYPE_RESOLVERS

          protected static final AbstractTypeResolver[] NO_ABSTRACT_TYPE_RESOLVERS

    - #### NO_VALUE_INSTANTIATORS

          protected static final ValueInstantiators[] NO_VALUE_INSTANTIATORS

    - #### DEFAULT_KEY_DESERIALIZERS

          protected static final KeyDeserializers[] DEFAULT_KEY_DESERIALIZERS

      By default we plug default key deserializers using as "just another" set of of key deserializers.
      Since:
        2.2

    - #### _additionalDeserializers

          protected final Deserializers[] _additionalDeserializers

      List of providers for additional deserializers, checked before considering default basic or bean deserializers.

    - #### _additionalKeyDeserializers

          protected final KeyDeserializers[] _additionalKeyDeserializers

      List of providers for additional key deserializers, checked before considering standard key deserializers.

    - #### _modifiers

          protected final BeanDeserializerModifier[] _modifiers

      List of modifiers that can change the way `BeanDeserializer` instances are configured and constructed.

    - #### _abstractTypeResolvers

          protected final AbstractTypeResolver[] _abstractTypeResolvers

      List of objects that may be able to resolve abstract types to concrete types. Used by functionality like "mr Bean" to materialize types as needed.

    - #### _valueInstantiators

          protected final ValueInstantiators[] _valueInstantiators

      List of objects that know how to create instances of POJO types; possibly using custom construction (non-annoted constructors; factory methods external to value type etc). Used to support objects that are created using non-standard methods; or to support post-constructor functionality.

  - ### Constructor Detail

    - #### DeserializerFactoryConfig

          public DeserializerFactoryConfig()

      Constructor for creating basic configuration with no additional handlers.

    - #### DeserializerFactoryConfig

          protected DeserializerFactoryConfig(Deserializers[] allAdditionalDeserializers,
                                   KeyDeserializers[] allAdditionalKeyDeserializers,
                                   BeanDeserializerModifier[] modifiers,
                                   AbstractTypeResolver[] atr,
                                   ValueInstantiators[] vi)

      Copy-constructor that will create an instance that contains defined set of additional deserializer providers.

  - ### Method Detail

    - #### withAdditionalDeserializers

          public DeserializerFactoryConfig withAdditionalDeserializers(Deserializers additional)

      Fluent/factory method used to construct a configuration object that has same deserializer providers as this instance, plus one specified as argument. Additional provider will be added before existing ones, meaning it has priority over existing definitions.

    - #### withAdditionalKeyDeserializers

          public DeserializerFactoryConfig withAdditionalKeyDeserializers(KeyDeserializers additional)

      Fluent/factory method used to construct a configuration object that has same key deserializer providers as this instance, plus one specified as argument. Additional provider will be added before existing ones, meaning it has priority over existing definitions.

    - #### withDeserializerModifier

          public DeserializerFactoryConfig withDeserializerModifier(BeanDeserializerModifier modifier)

      Fluent/factory method used to construct a configuration object that has same configuration as this instance plus one additional deserialiazer modifier. Added modifier has the highest priority (that is, it gets called before any already registered modifier).

    - #### withAbstractTypeResolver

          public DeserializerFactoryConfig withAbstractTypeResolver(AbstractTypeResolver resolver)

      Fluent/factory method used to construct a configuration object that has same configuration as this instance plus one additional abstract type resolver. Added resolver has the highest priority (that is, it gets called before any already registered resolver).

    - #### withValueInstantiators

          public DeserializerFactoryConfig withValueInstantiators(ValueInstantiators instantiators)

      Fluent/factory method used to construct a configuration object that has same configuration as this instance plus specified additional value instantiator provider object. Added instantiator provider has the highest priority (that is, it gets called before any already registered resolver).
      Parameters:
        `instantiators` - Object that can provide `ValueInstantiator`s for constructing POJO values during deserialization

    - #### hasDeserializers

          public boolean hasDeserializers()

    - #### hasKeyDeserializers

          public boolean hasKeyDeserializers()

    - #### hasDeserializerModifiers

          public boolean hasDeserializerModifiers()

    - #### hasAbstractTypeResolvers

          public boolean hasAbstractTypeResolvers()

    - #### hasValueInstantiators

          public boolean hasValueInstantiators()

    - #### deserializers

          public java.lang.Iterable<Deserializers> deserializers()

    - #### keyDeserializers

          public java.lang.Iterable<KeyDeserializers> keyDeserializers()

    - #### deserializerModifiers

          public java.lang.Iterable<BeanDeserializerModifier> deserializerModifiers()

    - #### abstractTypeResolvers

          public java.lang.Iterable<AbstractTypeResolver> abstractTypeResolvers()

    - #### valueInstantiators

          public java.lang.Iterable<ValueInstantiators> valueInstantiators()