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

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
Direct Known Subclasses:
AsExternalTypeDeserializer, AsPropertyTypeDeserializer

public class AsArrayTypeDeserializer
extends TypeDeserializerBase

Type deserializer used with JsonTypeInfo.As.WRAPPER_ARRAY inclusion mechanism. Simple since JSON structure used is always the same, regardless of structure used for actual value: wrapping is done using a 2-element JSON Array where type id is the first element, and actual object data as second element.

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
AsArrayTypeDeserializer(AsArrayTypeDeserializer src, BeanProperty property)
           
AsArrayTypeDeserializer(JavaType bt, TypeIdResolver idRes, String typePropertyName, boolean typeIdVisible, Class<?> defaultImpl)
           
 
Method Summary
protected  String _locateTypeId(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt)
           
 Object deserializeTypedFromAny(com.fasterxml.jackson.core.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(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt)
          Method called when actual object is serialized as JSON Array.
 Object deserializeTypedFromObject(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt)
          Method called when actual object is serialized as JSON Object
 Object deserializeTypedFromScalar(com.fasterxml.jackson.core.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.
 TypeDeserializer forProperty(BeanProperty prop)
          Method called to create contextual version, to be used for values of given property.
 com.fasterxml.jackson.annotation.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.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

AsArrayTypeDeserializer

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

AsArrayTypeDeserializer

public AsArrayTypeDeserializer(AsArrayTypeDeserializer 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).

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

deserializeTypedFromArray

public Object deserializeTypedFromArray(com.fasterxml.jackson.core.JsonParser jp,
                                        DeserializationContext ctxt)
                                 throws IOException,
                                        com.fasterxml.jackson.core.JsonProcessingException
Method called when actual object is serialized as JSON Array.

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

deserializeTypedFromObject

public Object deserializeTypedFromObject(com.fasterxml.jackson.core.JsonParser jp,
                                         DeserializationContext ctxt)
                                  throws IOException,
                                         com.fasterxml.jackson.core.JsonProcessingException
Method called when actual object is serialized as JSON Object

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

deserializeTypedFromScalar

public Object deserializeTypedFromScalar(com.fasterxml.jackson.core.JsonParser jp,
                                         DeserializationContext ctxt)
                                  throws IOException,
                                         com.fasterxml.jackson.core.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
com.fasterxml.jackson.core.JsonProcessingException

deserializeTypedFromAny

public Object deserializeTypedFromAny(com.fasterxml.jackson.core.JsonParser jp,
                                      DeserializationContext ctxt)
                               throws IOException,
                                      com.fasterxml.jackson.core.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
com.fasterxml.jackson.core.JsonProcessingException

_locateTypeId

protected final String _locateTypeId(com.fasterxml.jackson.core.JsonParser jp,
                                     DeserializationContext ctxt)
                              throws IOException,
                                     com.fasterxml.jackson.core.JsonProcessingException
Throws:
IOException
com.fasterxml.jackson.core.JsonProcessingException


Copyright © 2012 fasterxml.com. All Rights Reserved.