public abstract class DeserializationContext extends DatabindContext implements Serializable
 Instance life-cycle is such that an partially configured "blueprint" object
 is registered with ObjectMapper (and ObjectReader,
 and when an actual instance is needed for deserialization,
 a fully configured instance will
 be created using a method in excented API of sub-class
 (DefaultDeserializationContext.createInstance(com.fasterxml.jackson.databind.DeserializationConfig, com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.InjectableValues)).
 Each instance is guaranteed to only be used from single-threaded context;
 instances may be reused iff no configuration has changed.
Defined as abstract class so that implementations must define methods for reconfiguring blueprints and creating instances.
| Modifier and Type | Field and Description | 
|---|---|
| protected ArrayBuilders | _arrayBuilders | 
| protected ContextAttributes | _attributesLazily-constructed holder for per-call attributes. | 
| protected DeserializerCache | _cacheObject that handle details of  JsonDeserializercaching. | 
| protected DeserializationConfig | _configGeneric deserialization processing configuration | 
| protected LinkedNode<JavaType> | _currentTypeType of  JsonDeserializer(or, more specifically,ContextualizableDeserializer) that is being
   contextualized currently. | 
| protected DateFormat | _dateFormat | 
| protected DeserializerFactory | _factoryRead-only factory instance; exposed to let
 owners ( ObjectMapper,ObjectReader)
 access it. | 
| protected int | _featureFlagsBitmap of  DeserializationFeatures that are enabled | 
| protected InjectableValues | _injectableValuesObject used for resolving references to injectable
 values. | 
| protected ObjectBuffer | _objectBuffer | 
| protected com.fasterxml.jackson.core.JsonParser | _parserCurrently active parser used for deserialization. | 
| protected Class<?> | _viewCurrently active view, if any. | 
| Modifier | Constructor and Description | 
|---|---|
| protected  | DeserializationContext(DeserializationContext src)Copy-constructor for use with  copy()byObjectMapper.copy() | 
| protected  | DeserializationContext(DeserializationContext src,
                      DeserializationConfig config,
                      com.fasterxml.jackson.core.JsonParser p,
                      InjectableValues injectableValues)Constructor used for creating actual per-call instances. | 
| protected  | DeserializationContext(DeserializationContext src,
                      DeserializerFactory factory) | 
| protected  | DeserializationContext(DeserializerFactory df) | 
| protected  | DeserializationContext(DeserializerFactory df,
                      DeserializerCache cache) | 
| Modifier and Type | Method and Description | 
|---|---|
| protected String | _calcName(Class<?> cls) | 
| protected String | _desc(String desc) | 
| protected String | _valueDesc() | 
| abstract void | checkUnresolvedObjectId()Method called to ensure that every object id encounter during processing
 are resolved. | 
| Calendar | constructCalendar(Date d)Convenience method for constructing Calendar instance set
 to specified time, to be modified and used by caller. | 
| JavaType | constructType(Class<?> cls)Convenience method, functionally equivalent to: | 
| abstract JsonDeserializer<Object> | deserializerInstance(Annotated annotated,
                    Object deserDef) | 
| protected String | determineClassName(Object instance) | 
| JsonMappingException | endOfInputException(Class<?> instClass) | 
| Class<?> | findClass(String className)Helper method to use for locating Class for given name. | 
| JsonDeserializer<Object> | findContextualValueDeserializer(JavaType type,
                               BeanProperty prop)Method for finding a value deserializer, and creating a contextual
 version if necessary, for value reached via specified property. | 
| Object | findInjectableValue(Object valueId,
                   BeanProperty forProperty,
                   Object beanInstance) | 
| KeyDeserializer | findKeyDeserializer(JavaType keyType,
                   BeanProperty prop)Convenience method, functionally same as: | 
| JsonDeserializer<Object> | findNonContextualValueDeserializer(JavaType type)Variant that will try to locate deserializer for current type, but without
 performing any contextualization (unlike  findContextualValueDeserializer(com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.databind.BeanProperty))
 or checking for need to create aTypeDeserializer(unlikefindRootValueDeserializer(JavaType). | 
| abstract ReadableObjectId | findObjectId(Object id,
            com.fasterxml.jackson.annotation.ObjectIdGenerator<?> generator)Deprecated.  | 
| abstract ReadableObjectId | findObjectId(Object id,
            com.fasterxml.jackson.annotation.ObjectIdGenerator<?> generator,
            com.fasterxml.jackson.annotation.ObjectIdResolver resolver)Method called to find and return entry corresponding to given
 Object Id: will add an entry if necessary, and never returns null | 
| JsonDeserializer<Object> | findRootValueDeserializer(JavaType type)Method for finding a deserializer for root-level value. | 
| Class<?> | getActiveView()Accessor for locating currently active view, if any;
 returns null if no view has been set. | 
| AnnotationIntrospector | getAnnotationIntrospector()Convenience method for accessing serialization view in use (if any); equivalent to: | 
| ArrayBuilders | getArrayBuilders()Method for accessing object useful for building arrays of
 primitive types (such as int[]). | 
| Object | getAttribute(Object key)Method for accessing attributes available in this context. | 
| com.fasterxml.jackson.core.Base64Variant | getBase64Variant()Convenience method for accessing the default Base64 encoding
 used for decoding base64 encoded binary content. | 
| DeserializationConfig | getConfig()Accessor to currently active configuration (both per-request configs
 and per-mapper config). | 
| JavaType | getContextualType()Accessor to  JavaTypeof currently contextualizedContextualDeserializer, if any. | 
| protected DateFormat | getDateFormat() | 
| DeserializerFactory | getFactory()Method for getting current  DeserializerFactory. | 
| Locale | getLocale()Method for accessing default Locale to use: convenience method for | 
| JsonNodeFactory | getNodeFactory()Convenience method, functionally equivalent to: | 
| com.fasterxml.jackson.core.JsonParser | getParser()Method for accessing the currently active parser. | 
| TimeZone | getTimeZone()Method for accessing default TimeZone to use: convenience method for | 
| TypeFactory | getTypeFactory() | 
| JsonDeserializer<?> | handlePrimaryContextualization(JsonDeserializer<?> deser,
                              BeanProperty prop)Deprecated.  | 
| JsonDeserializer<?> | handlePrimaryContextualization(JsonDeserializer<?> deser,
                              BeanProperty prop,
                              JavaType type)Method called for primary property deserializers (ones
 directly created to deserialize values of a POJO property),
 to handle details of resolving
  ContextualDeserializerwith given property context. | 
| JsonDeserializer<?> | handleSecondaryContextualization(JsonDeserializer<?> deser,
                                BeanProperty prop)Deprecated.  | 
| JsonDeserializer<?> | handleSecondaryContextualization(JsonDeserializer<?> deser,
                                BeanProperty prop,
                                JavaType type)Method called for secondary property deserializers (ones
 NOT directly created to deal with an annotatable POJO property,
 but instead created as a component -- such as value deserializers
 for structured types, or deserializers for root values)
 to handle details of resolving
  ContextualDeserializerwith given property context. | 
| boolean | handleUnknownProperty(com.fasterxml.jackson.core.JsonParser p,
                     JsonDeserializer<?> deser,
                     Object instanceOrClass,
                     String propName)Method deserializers can call to inform configured  DeserializationProblemHandlers
 of an unrecognized property. | 
| boolean | hasDeserializationFeatures(int featureMask)"Bulk" access method for checking that all features specified by
 mask are enabled. | 
| boolean | hasValueDeserializerFor(JavaType type)Deprecated.  | 
| boolean | hasValueDeserializerFor(JavaType type,
                       AtomicReference<Throwable> cause)Method for checking whether we could find a deserializer
 for given type. | 
| JsonMappingException | instantiationException(Class<?> instClass,
                      String msg) | 
| JsonMappingException | instantiationException(Class<?> instClass,
                      Throwable t)Helper method for constructing instantiation exception for specified type,
 to indicate problem with physically constructing instance of
 specified class (missing constructor, exception from constructor) | 
| boolean | isEnabled(DeserializationFeature feat)Convenience method for checking whether specified on/off
 feature is enabled | 
| abstract KeyDeserializer | keyDeserializerInstance(Annotated annotated,
                       Object deserDef) | 
| ObjectBuffer | leaseObjectBuffer()Method that can be used to get access to a reusable ObjectBuffer,
 useful for efficiently constructing Object arrays and Lists. | 
| JsonMappingException | mappingException(Class<?> targetClass)Helper method for constructing generic mapping exception for specified type | 
| JsonMappingException | mappingException(Class<?> targetClass,
                com.fasterxml.jackson.core.JsonToken token) | 
| JsonMappingException | mappingException(String message)Helper method for constructing generic mapping exception with specified
 message and current location information | 
| Date | parseDate(String dateStr)Convenience method for parsing a Date from given String, using
 currently configured date format (accessed using
  MapperConfig.getDateFormat()). | 
| <T> T | readPropertyValue(com.fasterxml.jackson.core.JsonParser p,
                 BeanProperty prop,
                 Class<T> type)Convenience method that may be used by composite or container deserializers,
 for reading one-off values for the composite type, taking into account
 annotations that the property (passed to this method -- usually property that
 has custom serializer that called this method) has. | 
| <T> T | readPropertyValue(com.fasterxml.jackson.core.JsonParser p,
                 BeanProperty prop,
                 JavaType type) | 
| <T> T | readValue(com.fasterxml.jackson.core.JsonParser p,
         Class<T> type)Convenience method that may be used by composite or container deserializers,
 for reading one-off values contained (for sequences, it is more efficient
 to actually fetch deserializer once for the whole collection). | 
| <T> T | readValue(com.fasterxml.jackson.core.JsonParser p,
         JavaType type) | 
| void | reportUnknownProperty(Object instanceOrClass,
                     String fieldName,
                     JsonDeserializer<?> deser)Helper method for reporting a problem with unhandled unknown exception | 
| void | returnObjectBuffer(ObjectBuffer buf)Method to call to return object buffer previously leased with
  leaseObjectBuffer(). | 
| DeserializationContext | setAttribute(Object key,
            Object value)Method for setting per-call value of given attribute. | 
| JsonMappingException | unknownTypeException(JavaType type,
                    String id)Deprecated.  | 
| JsonMappingException | unknownTypeException(JavaType type,
                    String id,
                    String extraDesc) | 
| JsonMappingException | weirdKeyException(Class<?> keyClass,
                 String keyValue,
                 String msg)Helper method for constructing exception to indicate that given JSON
 Object field name was not in format to be able to deserialize specified
 key type. | 
| JsonMappingException | weirdNumberException(Class<?> instClass,
                    String msg)Deprecated.  | 
| JsonMappingException | weirdNumberException(Number value,
                    Class<?> instClass,
                    String msg)Helper method for constructing exception to indicate that input JSON
 Number was not suitable for deserializing into given target type. | 
| JsonMappingException | weirdStringException(Class<?> instClass,
                    String msg)Deprecated. 
 Since 2.1 should use variant that takes value | 
| JsonMappingException | weirdStringException(String value,
                    Class<?> instClass,
                    String msg)Method that will construct an exception suitable for throwing when
 some String values are acceptable, but the one encountered is not. | 
| JsonMappingException | wrongTokenException(com.fasterxml.jackson.core.JsonParser p,
                   com.fasterxml.jackson.core.JsonToken expToken,
                   String msg0)Helper method for indicating that the current token was expected to be another
 token. | 
canOverrideAccessModifiers, constructSpecializedType, constructType, converterInstance, isEnabled, objectIdGeneratorInstance, objectIdResolverInstanceprotected final DeserializerCache _cache
JsonDeserializer caching.protected final DeserializerFactory _factory
ObjectMapper, ObjectReader)
 access it.protected final DeserializationConfig _config
protected final int _featureFlags
DeserializationFeatures that are enabledprotected final Class<?> _view
protected transient com.fasterxml.jackson.core.JsonParser _parser
protected final InjectableValues _injectableValues
protected transient ArrayBuilders _arrayBuilders
protected transient ObjectBuffer _objectBuffer
protected transient DateFormat _dateFormat
protected transient ContextAttributes _attributes
protected LinkedNode<JavaType> _currentType
JsonDeserializer (or, more specifically,
   ContextualizableDeserializer) that is being
   contextualized currently.protected DeserializationContext(DeserializerFactory df)
protected DeserializationContext(DeserializerFactory df, DeserializerCache cache)
protected DeserializationContext(DeserializationContext src, DeserializerFactory factory)
protected DeserializationContext(DeserializationContext src, DeserializationConfig config, com.fasterxml.jackson.core.JsonParser p, InjectableValues injectableValues)
protected DeserializationContext(DeserializationContext src)
copy() by ObjectMapper.copy()public DeserializationConfig getConfig()
DatabindContextgetConfig in class DatabindContextpublic final Class<?> getActiveView()
DatabindContextgetActiveView in class DatabindContextpublic final AnnotationIntrospector getAnnotationIntrospector()
DatabindContextgetConfig().getAnnotationIntrospector();
getAnnotationIntrospector in class DatabindContextpublic final TypeFactory getTypeFactory()
getTypeFactory in class DatabindContextpublic Object getAttribute(Object key)
DatabindContextObjectReader or ObjectWriter have lower
 precedence.getAttribute in class DatabindContextkey - Key of the attribute to getpublic DeserializationContext setAttribute(Object key, Object value)
DatabindContextsetAttribute in class DatabindContextkey - Key of the attribute to setvalue - Value to set attribute topublic JavaType getContextualType()
JavaType of currently contextualized
 ContextualDeserializer, if any.
 This is sometimes useful for generic JsonDeserializers that
 do not get passed (or do not retain) type information when being
 constructed: happens for example for deserializers constructed
 from annotations.ContextualDeserializer being contextualized,
   if process is on-going; null if not.public DeserializerFactory getFactory()
DeserializerFactory.public final boolean isEnabled(DeserializationFeature feat)
public final boolean hasDeserializationFeatures(int featureMask)
public final com.fasterxml.jackson.core.JsonParser getParser()
Use of this method is discouraged: if code has direct access to the active parser, that should be used instead.
public final Object findInjectableValue(Object valueId, BeanProperty forProperty, Object beanInstance)
public final com.fasterxml.jackson.core.Base64Variant getBase64Variant()
getConfig().getBase64Variant();
public final JsonNodeFactory getNodeFactory()
getConfig().getNodeFactory();
public Locale getLocale()
getConfig().getLocale();
public TimeZone getTimeZone()
getConfig().getTimeZone();
@Deprecated public boolean hasValueDeserializerFor(JavaType type)
public boolean hasValueDeserializerFor(JavaType type, AtomicReference<Throwable> cause)
type - public final JsonDeserializer<Object> findContextualValueDeserializer(JavaType type, BeanProperty prop) throws JsonMappingException
JsonMappingExceptionpublic final JsonDeserializer<Object> findNonContextualValueDeserializer(JavaType type) throws JsonMappingException
findContextualValueDeserializer(com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.databind.BeanProperty))
 or checking for need to create a TypeDeserializer (unlike
 findRootValueDeserializer(JavaType).
 This method is usually called from within ResolvableDeserializer.resolve(com.fasterxml.jackson.databind.DeserializationContext),
 and expectation is that caller then calls either
 handlePrimaryContextualization(JsonDeserializer, BeanProperty, JavaType) or
 handleSecondaryContextualization(JsonDeserializer, BeanProperty, JavaType) at a
 later point, as necessary.JsonMappingExceptionpublic final JsonDeserializer<Object> findRootValueDeserializer(JavaType type) throws JsonMappingException
JsonMappingExceptionpublic final KeyDeserializer findKeyDeserializer(JavaType keyType, BeanProperty prop) throws JsonMappingException
getDeserializerProvider().findKeyDeserializer(getConfig(), prop.getType(), prop);
JsonMappingExceptionpublic abstract ReadableObjectId findObjectId(Object id, com.fasterxml.jackson.annotation.ObjectIdGenerator<?> generator, com.fasterxml.jackson.annotation.ObjectIdResolver resolver)
@Deprecated public abstract ReadableObjectId findObjectId(Object id, com.fasterxml.jackson.annotation.ObjectIdGenerator<?> generator)
public abstract void checkUnresolvedObjectId()
                                      throws UnresolvedForwardReference
UnresolvedForwardReferencepublic final JavaType constructType(Class<?> cls)
getConfig().constructType(cls);
public Class<?> findClass(String className) throws ClassNotFoundException
Class.forName(className); as it can
 try using contextual class loader, or use platform-specific workarounds
 (like on Android, GAE).ClassNotFoundExceptionpublic final ObjectBuffer leaseObjectBuffer()
public final void returnObjectBuffer(ObjectBuffer buf)
leaseObjectBuffer().buf - Returned object bufferpublic final ArrayBuilders getArrayBuilders()
public abstract JsonDeserializer<Object> deserializerInstance(Annotated annotated, Object deserDef) throws JsonMappingException
JsonMappingExceptionpublic abstract KeyDeserializer keyDeserializerInstance(Annotated annotated, Object deserDef) throws JsonMappingException
JsonMappingExceptionpublic JsonDeserializer<?> handlePrimaryContextualization(JsonDeserializer<?> deser, BeanProperty prop, JavaType type) throws JsonMappingException
ContextualDeserializer with given property context.prop - Property for which the given primary deserializer is used; never null.JsonMappingException@Deprecated public JsonDeserializer<?> handlePrimaryContextualization(JsonDeserializer<?> deser, BeanProperty prop) throws JsonMappingException
JsonMappingExceptionpublic JsonDeserializer<?> handleSecondaryContextualization(JsonDeserializer<?> deser, BeanProperty prop, JavaType type) throws JsonMappingException
ContextualDeserializer with given property context.
 Given that these deserializers are not directly related to given property
 (or, in case of root value property, to any property), annotations
 accessible may or may not be relevant.prop - Property for which deserializer is used, if any; null
    when deserializing root valuesJsonMappingException@Deprecated public JsonDeserializer<?> handleSecondaryContextualization(JsonDeserializer<?> deser, BeanProperty prop) throws JsonMappingException
JsonMappingExceptionpublic Date parseDate(String dateStr) throws IllegalArgumentException
MapperConfig.getDateFormat()).
Implementation will handle thread-safety issues related to date formats such that first time this method is called, date format is cloned, and cloned instance will be retained for use during this deserialization round.
IllegalArgumentExceptionpublic Calendar constructCalendar(Date d)
public <T> T readValue(com.fasterxml.jackson.core.JsonParser p,
              Class<T> type)
            throws IOException
 NOTE: when deserializing values of properties contained in composite types,
 rather use readPropertyValue(JsonParser, BeanProperty, Class);
 this method does not allow use of contextual annotations.
IOExceptionpublic <T> T readValue(com.fasterxml.jackson.core.JsonParser p,
              JavaType type)
            throws IOException
IOExceptionpublic <T> T readPropertyValue(com.fasterxml.jackson.core.JsonParser p,
                      BeanProperty prop,
                      Class<T> type)
                    throws IOException
IOExceptionpublic <T> T readPropertyValue(com.fasterxml.jackson.core.JsonParser p,
                      BeanProperty prop,
                      JavaType type)
                    throws IOException
IOExceptionpublic boolean handleUnknownProperty(com.fasterxml.jackson.core.JsonParser p,
                            JsonDeserializer<?> deser,
                            Object instanceOrClass,
                            String propName)
                              throws IOException,
                                     com.fasterxml.jackson.core.JsonProcessingException
DeserializationProblemHandlers
 of an unrecognized property.IOExceptioncom.fasterxml.jackson.core.JsonProcessingExceptionpublic void reportUnknownProperty(Object instanceOrClass, String fieldName, JsonDeserializer<?> deser) throws JsonMappingException
instanceOrClass - Either value being populated (if one has been
   instantiated), or Class that indicates type that would be (or
   have been) instantiateddeser - Deserializer that had the problem, if called by deserializer
   (or on behalf of one)JsonMappingExceptionpublic JsonMappingException mappingException(Class<?> targetClass)
public JsonMappingException mappingException(Class<?> targetClass, com.fasterxml.jackson.core.JsonToken token)
public JsonMappingException mappingException(String message)
public JsonMappingException instantiationException(Class<?> instClass, Throwable t)
public JsonMappingException instantiationException(Class<?> instClass, String msg)
@Deprecated public JsonMappingException weirdStringException(Class<?> instClass, String msg)
public JsonMappingException weirdStringException(String value, Class<?> instClass, String msg)
value - String value from input being deserializedinstClass - Type that String should be deserialized intomsg - Message that describes specific problem@Deprecated public JsonMappingException weirdNumberException(Class<?> instClass, String msg)
public JsonMappingException weirdNumberException(Number value, Class<?> instClass, String msg)
public JsonMappingException weirdKeyException(Class<?> keyClass, String keyValue, String msg)
public JsonMappingException wrongTokenException(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.core.JsonToken expToken, String msg0)
@Deprecated public JsonMappingException unknownTypeException(JavaType type, String id)
public JsonMappingException unknownTypeException(JavaType type, String id, String extraDesc)
public JsonMappingException endOfInputException(Class<?> instClass)
protected DateFormat getDateFormat()
protected String _valueDesc()
Copyright © 2014-2015 FasterXML. All Rights Reserved.