org.codehaus.jackson.map.jsontype.impl
Class AsWrapperTypeDeserializer

java.lang.Object
  extended by org.codehaus.jackson.map.TypeDeserializer
      extended by org.codehaus.jackson.map.jsontype.impl.TypeDeserializerBase
          extended by org.codehaus.jackson.map.jsontype.impl.AsWrapperTypeDeserializer

public class AsWrapperTypeDeserializer
extends TypeDeserializerBase

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.

Author:
tatus

Field Summary
 
Fields inherited from class org.codehaus.jackson.map.jsontype.impl.TypeDeserializerBase
_baseType, _deserializers, _idResolver, _property
 
Constructor Summary
AsWrapperTypeDeserializer(JavaType bt, TypeIdResolver idRes, BeanProperty property)
           
 
Method Summary
 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 deserializeTypedFromArray(JsonParser jp, DeserializationContext ctxt)
          Method called to let this type deserializer handle deserialization of "typed" object, when value itself is serialized as JSON Array (regardless of Java type).
 Object deserializeTypedFromObject(JsonParser jp, DeserializationContext ctxt)
          Deserializing type id enclosed using WRAPPER_OBJECT style is straightforward
 Object deserializeTypedFromScalar(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.
 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 org.codehaus.jackson.map.jsontype.impl.TypeDeserializerBase
_findDeserializer, baseTypeName, getPropertyName, getTypeIdResolver, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AsWrapperTypeDeserializer

public AsWrapperTypeDeserializer(JavaType bt,
                                 TypeIdResolver idRes,
                                 BeanProperty property)
Method Detail

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.

Specified by:
getTypeInclusion in class TypeDeserializerBase

deserializeTypedFromObject

public Object deserializeTypedFromObject(JsonParser jp,
                                         DeserializationContext ctxt)
                                  throws IOException,
                                         JsonProcessingException
Deserializing type id enclosed using WRAPPER_OBJECT style is straightforward

Specified by:
deserializeTypedFromObject in class TypeDeserializer
Throws:
IOException
JsonProcessingException

deserializeTypedFromArray

public Object deserializeTypedFromArray(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 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:
IOException
JsonProcessingException

deserializeTypedFromScalar

public Object deserializeTypedFromScalar(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 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:
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).

Specified by:
deserializeTypedFromAny in class TypeDeserializer
Throws:
IOException
JsonProcessingException