AsPropertyTypeDeserializer
Date: 2016-12-04

com.fasterxml.jackson.databind.jsontype.impl

## Class AsPropertyTypeDeserializer

- 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.AsPropertyTypeDeserializer

- All Implemented Interfaces:
    java.io.Serializable

      public class AsPropertyTypeDeserializer
      extends AsArrayTypeDeserializer

  Type deserializer used with `JsonTypeInfo.As.PROPERTY` inclusion mechanism. Uses regular form (additional key/value entry before actual data) when typed object is expressed as JSON Object; otherwise behaves similar to how `JsonTypeInfo.As.WRAPPER_ARRAY` works. Latter is used if JSON representation is polymorphic
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected com.fasterxml.jackson.annotation.JsonTypeInfo.As` | `_inclusion`

    - ### 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
    `AsPropertyTypeDeserializer(AsPropertyTypeDeserializer src, BeanProperty property)`
    `AsPropertyTypeDeserializer(JavaType bt, TypeIdResolver idRes, java.lang.String typePropertyName, boolean typeIdVisible, JavaType defaultImpl)`
    `AsPropertyTypeDeserializer(JavaType bt, TypeIdResolver idRes, java.lang.String typePropertyName, boolean typeIdVisible, JavaType defaultImpl, com.fasterxml.jackson.annotation.JsonTypeInfo.As inclusion)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected java.lang.Object` | `_deserializeTypedForId(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, TokenBuffer tb)`
    `protected java.lang.Object` | `_deserializeTypedUsingDefaultImpl(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, TokenBuffer tb)`
    `java.lang.Object` | `deserializeTypedFromAny(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt)` Method called to let this type deserializer handle deserialization of "typed" object, when value itself may have been serialized using any kind of JSON value (Array, Object, scalar).
    `java.lang.Object` | `deserializeTypedFromObject(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt)` This is the trickiest thing to handle, since property we are looking for may be anywhere...
    `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, _usesExternalId, deserializeTypedFromArray, 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`

- - ### Field Detail

    - #### _inclusion

          protected final com.fasterxml.jackson.annotation.JsonTypeInfo.As _inclusion

  - ### Constructor Detail

    - #### AsPropertyTypeDeserializer

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

      Since:
        2.8

    - #### AsPropertyTypeDeserializer

          public AsPropertyTypeDeserializer(JavaType bt,
                                    TypeIdResolver idRes,
                                    java.lang.String typePropertyName,
                                    boolean typeIdVisible,
                                    JavaType defaultImpl,
                                    com.fasterxml.jackson.annotation.JsonTypeInfo.As inclusion)

      Since:
        2.8

    - #### AsPropertyTypeDeserializer

          public AsPropertyTypeDeserializer(AsPropertyTypeDeserializer 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`

    - #### deserializeTypedFromObject

          public java.lang.Object deserializeTypedFromObject(com.fasterxml.jackson.core.JsonParser p,
                                                    DeserializationContext ctxt)
                                                      throws java.io.IOException

      This is the trickiest thing to handle, since property we are looking for may be anywhere...
      Overrides:
        `deserializeTypedFromObject` in class `AsArrayTypeDeserializer`
      Throws:
        `java.io.IOException`

    - #### _deserializeTypedForId

          protected java.lang.Object _deserializeTypedForId(com.fasterxml.jackson.core.JsonParser p,
                                                DeserializationContext ctxt,
                                                TokenBuffer tb)
                                                     throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### _deserializeTypedUsingDefaultImpl

          protected java.lang.Object _deserializeTypedUsingDefaultImpl(com.fasterxml.jackson.core.JsonParser p,
                                                           DeserializationContext ctxt,
                                                           TokenBuffer tb)
                                                                throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### deserializeTypedFromAny

          public java.lang.Object deserializeTypedFromAny(com.fasterxml.jackson.core.JsonParser p,
                                                 DeserializationContext ctxt)
                                                   throws java.io.IOException

      Description copied from class: `TypeDeserializer`
      Method called to let this type deserializer handle deserialization of "typed" object, when value itself may have been serialized using any kind of JSON value (Array, Object, scalar). Should only be called if JSON serialization is polymorphic (not Java type); for example when using JSON node representation, or "untyped" Java object (which may be Map, Collection, wrapper/primitive etc).
      Overrides:
        `deserializeTypedFromAny` in class `AsArrayTypeDeserializer`
      Throws:
        `java.io.IOException`