AsArrayTypeDeserializer
Date: 2016-12-04

com.fasterxml.jackson.databind.jsontype.impl

## Class AsArrayTypeDeserializer

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

- All Implemented Interfaces:
    java.io.Serializable
  Direct Known Subclasses:
    AsExternalTypeDeserializer, AsPropertyTypeDeserializer

      public class AsArrayTypeDeserializer
      extends TypeDeserializerBase
      implements java.io.Serializable

  Type deserializer used with `JsonTypeInfo.As.WRAPPER_ARRAY` inclusion mechanism. Simple since JSON structure used is always the same, regardless of structure used for actual value: wrapping is done using a 2-element JSON Array where type id is the first element, and actual object data as second element.
  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
    `AsArrayTypeDeserializer(AsArrayTypeDeserializer src, BeanProperty property)`
    `AsArrayTypeDeserializer(JavaType bt, TypeIdResolver idRes, java.lang.String typePropertyName, boolean typeIdVisible, JavaType defaultImpl)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected java.lang.Object` | `_deserialize(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt)` Method that handles type information wrapper, locates actual subtype deserializer to use, and calls it to do actual deserialization.
    `protected java.lang.String` | `_locateTypeId(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt)`
    `protected boolean` | `_usesExternalId()`
    `java.lang.Object` | `deserializeTypedFromAny(com.fasterxml.jackson.core.JsonParser jp, 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` | `deserializeTypedFromArray(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt)` Method called when actual object is serialized as JSON Array.
    `java.lang.Object` | `deserializeTypedFromObject(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt)` Method called when actual object is serialized as JSON Object
    `java.lang.Object` | `deserializeTypedFromScalar(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt)` Method called to let this type deserializer handle deserialization of "typed" object, when value itself is serialized as a scalar JSON value (something other than Array or Object), regardless of Java type.
    `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.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

    - #### AsArrayTypeDeserializer

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

      Since:
        2.8

    - #### AsArrayTypeDeserializer

          public AsArrayTypeDeserializer(AsArrayTypeDeserializer 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).
      Specified by:
        `forProperty` in class `TypeDeserializerBase`

    - #### 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.
      Specified by:
        `getTypeInclusion` in class `TypeDeserializerBase`

    - #### deserializeTypedFromArray

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

      Method called when actual object is serialized as JSON Array.
      Specified by:
        `deserializeTypedFromArray` in class `TypeDeserializer`
      Throws:
        `java.io.IOException`

    - #### deserializeTypedFromObject

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

      Method called when actual object is serialized as JSON Object
      Specified by:
        `deserializeTypedFromObject` in class `TypeDeserializer`
      Throws:
        `java.io.IOException`

    - #### deserializeTypedFromScalar

          public java.lang.Object deserializeTypedFromScalar(com.fasterxml.jackson.core.JsonParser jp,
                                                    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 is serialized as a scalar JSON value (something other than Array or Object), regardless of Java type. Method needs to figure out intended polymorphic type, locate `JsonDeserializer` to use, and call it with JSON data to deserializer (which does not contain type information).
      Specified by:
        `deserializeTypedFromScalar` in class `TypeDeserializer`
      Throws:
        `java.io.IOException`

    - #### deserializeTypedFromAny

          public java.lang.Object deserializeTypedFromAny(com.fasterxml.jackson.core.JsonParser jp,
                                                 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).
      Specified by:
        `deserializeTypedFromAny` in class `TypeDeserializer`
      Throws:
        `java.io.IOException`

    - #### _deserialize

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

      Method that handles type information wrapper, locates actual subtype deserializer to use, and calls it to do actual deserialization.
      Throws:
        `java.io.IOException`

    - #### _locateTypeId

          protected java.lang.String _locateTypeId(com.fasterxml.jackson.core.JsonParser p,
                                       DeserializationContext ctxt)
                                            throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### _usesExternalId

          protected boolean _usesExternalId()

      Since:
        2.5