Class AsPropertyTypeDeserializer

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    AsDeductionTypeDeserializer

    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 Detail

      • _inclusion

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

        protected final java.lang.String _msgForMissingId
    • 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
    • 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,
                                                          java.lang.String typeId)
                                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • _deserializeTypedUsingDefaultImpl

        @Deprecated
        protected java.lang.Object _deserializeTypedUsingDefaultImpl​(com.fasterxml.jackson.core.JsonParser p,
                                                                     DeserializationContext ctxt,
                                                                     TokenBuffer tb)
                                                              throws java.io.IOException
        Deprecated.
        Throws:
        java.io.IOException
      • _deserializeTypedUsingDefaultImpl

        protected java.lang.Object _deserializeTypedUsingDefaultImpl​(com.fasterxml.jackson.core.JsonParser p,
                                                                     DeserializationContext ctxt,
                                                                     TokenBuffer tb,
                                                                     java.lang.String priorFailureMsg)
                                                              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