com.fasterxml.jackson.dataformat.ion.polymorphism

## Class IonAnnotationTypeDeserializer

- java.lang.Object
- - com.fasterxml.jackson.databind.jsontype.TypeDeserializer
  - - com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase
    - - com.fasterxml.jackson.dataformat.ion.polymorphism.IonAnnotationTypeDeserializer

- All Implemented Interfaces:
    Serializable

      public class IonAnnotationTypeDeserializer
      extends com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase

  This is a `TypeDeserializer` that reads typing metadata from Ion type annotations. Annotations found are processed by the configured `TypeIdResolver` to provide a concrete Java class, which is in turn used to find the appropriate `JsonDeserializer`, and execute it.

  If multiple annotations are found, the first annotation to resolve to a non-null `JavaType` using the configured `TypeIdResolver` is used. Ion provides type annotations in alphabetic order.
  See Also:
    `MultipleTypeIdResolver`, 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
    `IonAnnotationTypeDeserializer(com.fasterxml.jackson.databind.JavaType baseType, com.fasterxml.jackson.databind.jsontype.TypeIdResolver idRes, String typePropertyName, boolean typeIdVisible, com.fasterxml.jackson.databind.JavaType defaultImpl)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `deserializeTypedFromAny(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt)`
    `Object` | `deserializeTypedFromArray(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt)`
    `Object` | `deserializeTypedFromObject(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt)`
    `Object` | `deserializeTypedFromScalar(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt)`
    `com.fasterxml.jackson.databind.jsontype.TypeDeserializer` | `forProperty(com.fasterxml.jackson.databind.BeanProperty prop)`
    `com.fasterxml.jackson.annotation.JsonTypeInfo.As` | `getTypeInclusion()` Used for informational purposes and some serialization-implementation-specific logics (which do not concern us).

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

      `_deserializeWithNativeTypeId, _deserializeWithNativeTypeId, _findDefaultImplDeserializer, _findDeserializer, _handleMissingTypeId, _handleUnknownTypeId, baseType, 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

    - #### IonAnnotationTypeDeserializer

          public IonAnnotationTypeDeserializer(com.fasterxml.jackson.databind.JavaType baseType,
                                               com.fasterxml.jackson.databind.jsontype.TypeIdResolver idRes,
                                               String typePropertyName,
                                               boolean typeIdVisible,
                                               com.fasterxml.jackson.databind.JavaType defaultImpl)

  - ### Method Detail

    - #### getTypeInclusion

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

      Used for informational purposes and some serialization-implementation-specific logics (which do not concern us). We have to return an enum which we cannot extend, and none of them accurately reflect what we do.
      Specified by:
        `getTypeInclusion` in class `com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase`
      Returns:
        null

    - #### deserializeTypedFromObject

          public Object deserializeTypedFromObject(com.fasterxml.jackson.core.JsonParser p,
                                                   com.fasterxml.jackson.databind.DeserializationContext ctxt)
                                            throws IOException,
                                                   com.fasterxml.jackson.core.JsonProcessingException

      Specified by:
        `deserializeTypedFromObject` in class `com.fasterxml.jackson.databind.jsontype.TypeDeserializer`
      Throws:
        `IOException`
        `com.fasterxml.jackson.core.JsonProcessingException`

    - #### deserializeTypedFromArray

          public Object deserializeTypedFromArray(com.fasterxml.jackson.core.JsonParser p,
                                                  com.fasterxml.jackson.databind.DeserializationContext ctxt)
                                           throws IOException,
                                                  com.fasterxml.jackson.core.JsonProcessingException

      Specified by:
        `deserializeTypedFromArray` in class `com.fasterxml.jackson.databind.jsontype.TypeDeserializer`
      Throws:
        `IOException`
        `com.fasterxml.jackson.core.JsonProcessingException`

    - #### deserializeTypedFromScalar

          public Object deserializeTypedFromScalar(com.fasterxml.jackson.core.JsonParser p,
                                                   com.fasterxml.jackson.databind.DeserializationContext ctxt)
                                            throws IOException,
                                                   com.fasterxml.jackson.core.JsonProcessingException

      Specified by:
        `deserializeTypedFromScalar` in class `com.fasterxml.jackson.databind.jsontype.TypeDeserializer`
      Throws:
        `IOException`
        `com.fasterxml.jackson.core.JsonProcessingException`

    - #### deserializeTypedFromAny

          public Object deserializeTypedFromAny(com.fasterxml.jackson.core.JsonParser p,
                                                com.fasterxml.jackson.databind.DeserializationContext ctxt)
                                         throws IOException,
                                                com.fasterxml.jackson.core.JsonProcessingException

      Specified by:
        `deserializeTypedFromAny` in class `com.fasterxml.jackson.databind.jsontype.TypeDeserializer`
      Throws:
        `IOException`
        `com.fasterxml.jackson.core.JsonProcessingException`

    - #### forProperty

          public com.fasterxml.jackson.databind.jsontype.TypeDeserializer forProperty(com.fasterxml.jackson.databind.BeanProperty prop)

      Specified by:
        `forProperty` in class `com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase`

Copyright © 2019 FasterXML. All rights reserved.