AsExternalTypeDeserializer
Date: 2016-12-04

com.fasterxml.jackson.databind.jsontype.impl

## Class AsExternalTypeDeserializer

- java.lang.Object
- - com.fasterxml.jackson.databind.jsontype.TypeDeserializer
  - - com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase
    - - com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer
      - - com.fasterxml.jackson.databind.jsontype.impl.AsExternalTypeDeserializer

- All Implemented Interfaces:
    java.io.Serializable

      public class AsExternalTypeDeserializer
      extends AsArrayTypeDeserializer

  Type deserializer used with `JsonTypeInfo.As.EXTERNAL_PROPERTY` inclusion mechanism. Actual implementation may look bit strange since it depends on comprehensive pre-processing done by `BeanDeserializer` to basically transform external type id into structure that looks more like "wrapper-array" style inclusion. This intermediate form is chosen to allow supporting all possible JSON structures.
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase

      `_baseType, _defaultImpl, _defaultImplDeserializer, _deserializers, _idResolver, _property, _typeIdVisible, _typePropertyName`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AsExternalTypeDeserializer(AsExternalTypeDeserializer src, BeanProperty property)`
    `AsExternalTypeDeserializer(JavaType bt, TypeIdResolver idRes, java.lang.String typePropertyName, boolean typeIdVisible, JavaType defaultImpl)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `_usesExternalId()`
    `TypeDeserializer` | `forProperty(BeanProperty prop)` Method called to create contextual version, to be used for values of given property.
    `com.fasterxml.jackson.annotation.JsonTypeInfo.As` | `getTypeInclusion()` Accessor for type information inclusion method that deserializer uses; indicates how type information is (expected to be) embedded in JSON input.

    - ### Methods inherited from class com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer

      `_deserialize, _locateTypeId, deserializeTypedFromAny, deserializeTypedFromArray, deserializeTypedFromObject, deserializeTypedFromScalar`

    - ### Methods inherited from class com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase

      `_deserializeWithNativeTypeId, _deserializeWithNativeTypeId, _findDefaultImplDeserializer, _findDeserializer, _handleUnknownTypeId, baseTypeName, getDefaultImpl, getPropertyName, getTypeIdResolver, toString`

    - ### Methods inherited from class com.fasterxml.jackson.databind.jsontype.TypeDeserializer

      `deserializeIfNatural, deserializeIfNatural`

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

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

- - ### Constructor Detail

    - #### AsExternalTypeDeserializer

          public AsExternalTypeDeserializer(JavaType bt,
                                    TypeIdResolver idRes,
                                    java.lang.String typePropertyName,
                                    boolean typeIdVisible,
                                    JavaType defaultImpl)

      Since:
        2.8

    - #### AsExternalTypeDeserializer

          public AsExternalTypeDeserializer(AsExternalTypeDeserializer src,
                                    BeanProperty property)

  - ### Method Detail

    - #### forProperty

          public TypeDeserializer forProperty(BeanProperty prop)

      Description copied from class: `TypeDeserializer`
      Method called to create contextual version, to be used for values of given property. This may be the type itself (as is the case for bean properties), or values contained (for `Collection` or `Map` valued properties).
      Overrides:
        `forProperty` in class `AsArrayTypeDeserializer`

    - #### getTypeInclusion

          public com.fasterxml.jackson.annotation.JsonTypeInfo.As getTypeInclusion()

      Description copied from class: `TypeDeserializer`
      Accessor for type information inclusion method that deserializer uses; indicates how type information is (expected to be) embedded in JSON input.
      Overrides:
        `getTypeInclusion` in class `AsArrayTypeDeserializer`

    - #### _usesExternalId

          protected boolean _usesExternalId()

      Overrides:
        `_usesExternalId` in class `AsArrayTypeDeserializer`