Class AsWrapperTypeDeserializer

  • All Implemented Interfaces:
    java.io.Serializable

    public class AsWrapperTypeDeserializer
    extends TypeDeserializerBase
    implements java.io.Serializable
    Type deserializer used with JsonTypeInfo.As.WRAPPER_OBJECT inclusion mechanism. Simple since JSON structure used is always the same, regardless of structure used for actual value: wrapping is done using a single-element JSON Object where type id is the key, and actual object data as the value.
    See Also:
    Serialized Form
    • 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
      • deserializeTypedFromObject

        public java.lang.Object deserializeTypedFromObject​(com.fasterxml.jackson.core.JsonParser jp,
                                                           DeserializationContext ctxt)
                                                    throws java.io.IOException
        Deserializing type id enclosed using WRAPPER_OBJECT style is straightforward
        Specified by:
        deserializeTypedFromObject in class TypeDeserializer
        Throws:
        java.io.IOException
      • deserializeTypedFromArray

        public java.lang.Object deserializeTypedFromArray​(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 JSON Array (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:
        deserializeTypedFromArray 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