com.fasterxml.jackson.databind.jsontype.impl
Class AsPropertyTypeDeserializer

java.lang.Object
  extended by com.fasterxml.jackson.databind.jsontype.TypeDeserializer
      extended by com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase
          extended by com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer
              extended by com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer

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

Author:
tatu

Field Summary
 
Fields inherited from class com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase
_baseType, _defaultImpl, _defaultImplDeserializer, _deserializers, _idResolver, _property, _typeIdVisible, _typePropertyName
 
Constructor Summary
AsPropertyTypeDeserializer(AsPropertyTypeDeserializer src, BeanProperty property)
           
AsPropertyTypeDeserializer(JavaType bt, TypeIdResolver idRes, String typePropertyName, boolean typeIdVisible, Class<?> defaultImpl)
           
 
Method Summary
protected  Object _deserializeIfNatural(JsonParser jp, DeserializationContext ctxt)
          Helper method used to check if given parser might be pointing to a "natural" value, and one that would be acceptable as the result value (compatible with declared base type)
protected  Object _deserializeTypedForId(JsonParser jp, DeserializationContext ctxt, TokenBuffer tb)
           
protected  Object _deserializeTypedUsingDefaultImpl(JsonParser jp, DeserializationContext ctxt, TokenBuffer tb)
           
 Object deserializeTypedFromAny(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).
 Object deserializeTypedFromObject(JsonParser jp, 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.
 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
_locateTypeId, deserializeTypedFromArray, deserializeTypedFromScalar
 
Methods inherited from class com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase
_findDefaultImplDeserializer, _findDeserializer, baseTypeName, getDefaultImpl, getPropertyName, getTypeIdResolver, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AsPropertyTypeDeserializer

public AsPropertyTypeDeserializer(JavaType bt,
                                  TypeIdResolver idRes,
                                  String typePropertyName,
                                  boolean typeIdVisible,
                                  Class<?> defaultImpl)

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 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 Object deserializeTypedFromObject(JsonParser jp,
                                         DeserializationContext ctxt)
                                  throws IOException,
                                         JsonProcessingException
This is the trickiest thing to handle, since property we are looking for may be anywhere...

Overrides:
deserializeTypedFromObject in class AsArrayTypeDeserializer
Throws:
IOException
JsonProcessingException

_deserializeTypedForId

protected final Object _deserializeTypedForId(JsonParser jp,
                                              DeserializationContext ctxt,
                                              TokenBuffer tb)
                                       throws IOException,
                                              JsonProcessingException
Throws:
IOException
JsonProcessingException

_deserializeTypedUsingDefaultImpl

protected Object _deserializeTypedUsingDefaultImpl(JsonParser jp,
                                                   DeserializationContext ctxt,
                                                   TokenBuffer tb)
                                            throws IOException,
                                                   JsonProcessingException
Throws:
IOException
JsonProcessingException

deserializeTypedFromAny

public Object deserializeTypedFromAny(JsonParser jp,
                                      DeserializationContext ctxt)
                               throws IOException,
                                      JsonProcessingException
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:
IOException
JsonProcessingException

_deserializeIfNatural

protected Object _deserializeIfNatural(JsonParser jp,
                                       DeserializationContext ctxt)
                                throws IOException,
                                       JsonProcessingException
Helper method used to check if given parser might be pointing to a "natural" value, and one that would be acceptable as the result value (compatible with declared base type)

Throws:
IOException
JsonProcessingException


Copyright © 2012 fasterxml.com. All Rights Reserved.