org.codehaus.jackson.map
Class DeserializationConfig

java.lang.Object
  extended by org.codehaus.jackson.map.MapperConfig<DeserializationConfig>
      extended by org.codehaus.jackson.map.DeserializationConfig
All Implemented Interfaces:
ClassIntrospector.MixInResolver

public class DeserializationConfig
extends MapperConfig<DeserializationConfig>

Object that contains baseline configuration for deserialization process. An instance is owned by ObjectMapper, which makes a copy that is passed during serialization process to DeserializerProvider and DeserializerFactory.

Note: although configuration settings can be changed at any time (for factories and instances), they are not guaranteed to have effect if called after constructing relevant mapper or deserializer instance. This because some objects may be configured, constructed and cached first time they are needed.


Nested Class Summary
static class DeserializationConfig.Feature
          Enumeration that defines togglable features that guide the serialization feature.
 
Nested classes/interfaces inherited from class org.codehaus.jackson.map.MapperConfig
MapperConfig.Base
 
Field Summary
protected  AbstractTypeResolver _abstractTypeResolver
          To support on-the-fly class generation for interface and abstract classes it is possible to register "abstract type resolver".
protected  int _featureFlags
          Bit set that contains all enabled features
protected  JsonNodeFactory _nodeFactory
          Factory used for constructing JsonNode instances.
protected  LinkedNode<DeserializationProblemHandler> _problemHandlers
          Linked list that contains all registered problem handlers.
protected static int DEFAULT_FEATURE_FLAGS
          Bitfield (set of flags) of all Features that are enabled by default.
 
Fields inherited from class org.codehaus.jackson.map.MapperConfig
_base, _mixInAnnotations, _mixInAnnotationsShared, _subtypeResolver, DEFAULT_DATE_FORMAT
 
Constructor Summary
  DeserializationConfig(ClassIntrospector<? extends BeanDescription> intr, AnnotationIntrospector annIntr, VisibilityChecker<?> vc, SubtypeResolver subtypeResolver, PropertyNamingStrategy propertyNamingStrategy, TypeFactory typeFactory, HandlerInstantiator handlerInstantiator)
          Constructor used by ObjectMapper to create default configuration object instance.
protected DeserializationConfig(DeserializationConfig src)
           
protected DeserializationConfig(DeserializationConfig src, JsonNodeFactory f)
           
protected DeserializationConfig(DeserializationConfig src, MapperConfig.Base base)
           
 
Method Summary
 void addHandler(DeserializationProblemHandler h)
          Method that can be used to add a handler that can (try to) resolve non-fatal deserialization problems.
 boolean canOverrideAccessModifiers()
          Accessor for determining whether it is ok to try to force override of access modifiers to be able to get or set values of non-public Methods, Fields; to invoke non-public Constructors, Methods; or to instantiate non-public Classes.
 void clearHandlers()
          Method for removing all configuring problem handlers; usually done to replace existing handler(s) with different one(s)
 DeserializationConfig createUnshared(SubtypeResolver subtypeResolver)
          Method that is called to create a non-shared copy of the configuration to be used for a deserialization operation.
 DeserializationConfig createUnshared(TypeResolverBuilder<?> typer, VisibilityChecker<?> vc, SubtypeResolver str)
          Deprecated. Since 1.8 should use variant without arguments
 JsonDeserializer<Object> deserializerInstance(Annotated annotated, Class<? extends JsonDeserializer<?>> deserClass)
           
 void disable(DeserializationConfig.Feature f)
          Method for disabling specified feature.
 void enable(DeserializationConfig.Feature f)
          Method for enabling specified feature.
 void fromAnnotations(Class<?> cls)
          Method that checks class annotations that the argument Object has, and modifies settings of this configuration object accordingly, similar to how those annotations would affect actual value classes annotated with them, but with global scope.
 AbstractTypeResolver getAbstractTypeResolver()
          Deprecated. Since 1.8 resolvers should be registered using Module interface Will be removed from Jackson 2.0
 AnnotationIntrospector getAnnotationIntrospector()
          Method for getting AnnotationIntrospector configured to introspect annotation values used for configuration.
 Base64Variant getBase64Variant()
          Method called during deserialization if Base64 encoded content needs to be decoded.
 JsonNodeFactory getNodeFactory()
           
 LinkedNode<DeserializationProblemHandler> getProblemHandlers()
          Method for getting head of the problem handler chain.
<T extends BeanDescription>
T
introspect(JavaType type)
          Method that will introspect full bean properties for the purpose of building a bean deserializer
<T extends BeanDescription>
T
introspectClassAnnotations(Class<?> cls)
          Accessor for getting bean description that only contains class annotations: useful if no getter/setter/creator information is needed.
<T extends BeanDescription>
T
introspectDirectClassAnnotations(Class<?> cls)
          Accessor for getting bean description that only contains immediate class annotations: ones from the class, and its direct mix-in, if any, but not from super types.
<T extends BeanDescription>
T
introspectForCreation(JavaType type)
          Method that will introspect subset of bean properties needed to construct bean instance.
 boolean isAnnotationProcessingEnabled()
          Method for determining whether annotation processing is enabled or not (default settings are typically that it is enabled; must explicitly disable).
 boolean isEnabled(DeserializationConfig.Feature f)
          Method for checking whether given feature is enabled or not
 KeyDeserializer keyDeserializerInstance(Annotated annotated, Class<? extends KeyDeserializer> keyDeserClass)
           
 void set(DeserializationConfig.Feature f, boolean state)
          Method for enabling or disabling specified feature.
 void setAbstractTypeResolver(AbstractTypeResolver atr)
          Deprecated. Since 1.8 resolvers should be registered using Module interface. Will be removed from Jackson 2.0
 void setNodeFactory(JsonNodeFactory nf)
          Deprecated. Since 1.8 should use withNodeFactory(org.codehaus.jackson.node.JsonNodeFactory) instead
 DeserializationConfig withAnnotationIntrospector(AnnotationIntrospector ai)
          Method for constructing and returning a new instance with different AnnotationIntrospector to use (replacing old one).
 DeserializationConfig withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci)
          Method for constructing and returning a new instance with different ClassIntrospector to use.
 DeserializationConfig withDateFormat(DateFormat df)
          Method for constructing and returning a new instance with different DateFormat to use.
 DeserializationConfig withHandlerInstantiator(HandlerInstantiator hi)
          Method for constructing and returning a new instance with different HandlerInstantiator to use.
 DeserializationConfig withNodeFactory(JsonNodeFactory f)
           
 DeserializationConfig withPropertyNamingStrategy(PropertyNamingStrategy pns)
          Method for constructing and returning a new instance with different PropertyNamingStrategy to use.
 DeserializationConfig withSubtypeResolver(SubtypeResolver str)
          Method for constructing and returning a new instance with different SubtypeResolver to use.
 DeserializationConfig withTypeFactory(TypeFactory tf)
          Method for constructing and returning a new instance with different TypeFactory to use.
 DeserializationConfig withTypeResolverBuilder(TypeResolverBuilder<?> trb)
          Method for constructing and returning a new instance with different TypeResolverBuilder to use.
 DeserializationConfig withVisibilityChecker(VisibilityChecker<?> vc)
          Method for constructing and returning a new instance with different VisibilityChecker to use.
 
Methods inherited from class org.codehaus.jackson.map.MapperConfig
addMixInAnnotations, appendAnnotationIntrospector, constructType, findMixInClassFor, getClassIntrospector, getDateFormat, getDefaultTyper, getDefaultVisibilityChecker, getHandlerInstantiator, getPropertyNamingStrategy, getSubtypeResolver, getTypeFactory, insertAnnotationIntrospector, mixInCount, setAnnotationIntrospector, setDateFormat, setIntrospector, setMixInAnnotations, setSubtypeResolver, typeIdResolverInstance, typeResolverBuilderInstance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_FEATURE_FLAGS

protected static final int DEFAULT_FEATURE_FLAGS
Bitfield (set of flags) of all Features that are enabled by default.


_featureFlags

protected int _featureFlags
Bit set that contains all enabled features


_problemHandlers

protected LinkedNode<DeserializationProblemHandler> _problemHandlers
Linked list that contains all registered problem handlers. Implementation as front-added linked list allows for sharing of the list (tail) without copying the list.


_abstractTypeResolver

protected AbstractTypeResolver _abstractTypeResolver
To support on-the-fly class generation for interface and abstract classes it is possible to register "abstract type resolver".

Non-final to support deprecated legacy methods; should be made final for 2.0

Since:
1.6

_nodeFactory

protected JsonNodeFactory _nodeFactory
Factory used for constructing JsonNode instances.

Non-final to support deprecated legacy methods; should be made final for 2.0

Since:
1.6
Constructor Detail

DeserializationConfig

public DeserializationConfig(ClassIntrospector<? extends BeanDescription> intr,
                             AnnotationIntrospector annIntr,
                             VisibilityChecker<?> vc,
                             SubtypeResolver subtypeResolver,
                             PropertyNamingStrategy propertyNamingStrategy,
                             TypeFactory typeFactory,
                             HandlerInstantiator handlerInstantiator)
Constructor used by ObjectMapper to create default configuration object instance.


DeserializationConfig

protected DeserializationConfig(DeserializationConfig src)
Since:
1.8

DeserializationConfig

protected DeserializationConfig(DeserializationConfig src,
                                MapperConfig.Base base)
Since:
1.8

DeserializationConfig

protected DeserializationConfig(DeserializationConfig src,
                                JsonNodeFactory f)
Since:
1.8
Method Detail

withClassIntrospector

public DeserializationConfig withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci)
Description copied from class: MapperConfig
Method for constructing and returning a new instance with different ClassIntrospector to use.

Specified by:
withClassIntrospector in class MapperConfig<DeserializationConfig>

withAnnotationIntrospector

public DeserializationConfig withAnnotationIntrospector(AnnotationIntrospector ai)
Description copied from class: MapperConfig
Method for constructing and returning a new instance with different AnnotationIntrospector to use (replacing old one).

Specified by:
withAnnotationIntrospector in class MapperConfig<DeserializationConfig>

withVisibilityChecker

public DeserializationConfig withVisibilityChecker(VisibilityChecker<?> vc)
Description copied from class: MapperConfig
Method for constructing and returning a new instance with different VisibilityChecker to use.

Specified by:
withVisibilityChecker in class MapperConfig<DeserializationConfig>

withTypeResolverBuilder

public DeserializationConfig withTypeResolverBuilder(TypeResolverBuilder<?> trb)
Description copied from class: MapperConfig
Method for constructing and returning a new instance with different TypeResolverBuilder to use.

Specified by:
withTypeResolverBuilder in class MapperConfig<DeserializationConfig>

withSubtypeResolver

public DeserializationConfig withSubtypeResolver(SubtypeResolver str)
Description copied from class: MapperConfig
Method for constructing and returning a new instance with different SubtypeResolver to use.

Specified by:
withSubtypeResolver in class MapperConfig<DeserializationConfig>

withPropertyNamingStrategy

public DeserializationConfig withPropertyNamingStrategy(PropertyNamingStrategy pns)
Description copied from class: MapperConfig
Method for constructing and returning a new instance with different PropertyNamingStrategy to use.

Specified by:
withPropertyNamingStrategy in class MapperConfig<DeserializationConfig>

withTypeFactory

public DeserializationConfig withTypeFactory(TypeFactory tf)
Description copied from class: MapperConfig
Method for constructing and returning a new instance with different TypeFactory to use.

Specified by:
withTypeFactory in class MapperConfig<DeserializationConfig>

withDateFormat

public DeserializationConfig withDateFormat(DateFormat df)
Description copied from class: MapperConfig
Method for constructing and returning a new instance with different DateFormat to use.

Specified by:
withDateFormat in class MapperConfig<DeserializationConfig>

withHandlerInstantiator

public DeserializationConfig withHandlerInstantiator(HandlerInstantiator hi)
Description copied from class: MapperConfig
Method for constructing and returning a new instance with different HandlerInstantiator to use.

Specified by:
withHandlerInstantiator in class MapperConfig<DeserializationConfig>

withNodeFactory

public DeserializationConfig withNodeFactory(JsonNodeFactory f)
Since:
1.8

enable

public void enable(DeserializationConfig.Feature f)
Method for enabling specified feature.


disable

public void disable(DeserializationConfig.Feature f)
Method for disabling specified feature.


set

public void set(DeserializationConfig.Feature f,
                boolean state)
Method for enabling or disabling specified feature.


isEnabled

public final boolean isEnabled(DeserializationConfig.Feature f)
Method for checking whether given feature is enabled or not


fromAnnotations

public void fromAnnotations(Class<?> cls)
Method that checks class annotations that the argument Object has, and modifies settings of this configuration object accordingly, similar to how those annotations would affect actual value classes annotated with them, but with global scope. Note that not all annotations have global significance, and thus only subset of Jackson annotations will have any effect.

Ones that are known to have effect are:

Specified by:
fromAnnotations in class MapperConfig<DeserializationConfig>
Parameters:
cls - Class of which class annotations to use for changing configuration settings

createUnshared

public DeserializationConfig createUnshared(SubtypeResolver subtypeResolver)
Method that is called to create a non-shared copy of the configuration to be used for a deserialization operation. Note that if sub-classing and sub-class has additional instance methods, this method must be overridden to produce proper sub-class instance.

Specified by:
createUnshared in class MapperConfig<DeserializationConfig>

getAnnotationIntrospector

public AnnotationIntrospector getAnnotationIntrospector()
Method for getting AnnotationIntrospector configured to introspect annotation values used for configuration.

Overrides:
getAnnotationIntrospector in class MapperConfig<DeserializationConfig>

introspectClassAnnotations

public <T extends BeanDescription> T introspectClassAnnotations(Class<?> cls)
Accessor for getting bean description that only contains class annotations: useful if no getter/setter/creator information is needed.

Note: part of MapperConfig since 1.7

Specified by:
introspectClassAnnotations in class MapperConfig<DeserializationConfig>

introspectDirectClassAnnotations

public <T extends BeanDescription> T introspectDirectClassAnnotations(Class<?> cls)
Accessor for getting bean description that only contains immediate class annotations: ones from the class, and its direct mix-in, if any, but not from super types.

Note: part of MapperConfig since 1.7

Specified by:
introspectDirectClassAnnotations in class MapperConfig<DeserializationConfig>

isAnnotationProcessingEnabled

public boolean isAnnotationProcessingEnabled()
Description copied from class: MapperConfig
Method for determining whether annotation processing is enabled or not (default settings are typically that it is enabled; must explicitly disable).

Specified by:
isAnnotationProcessingEnabled in class MapperConfig<DeserializationConfig>
Returns:
True if annotation processing is enabled; false if not

canOverrideAccessModifiers

public boolean canOverrideAccessModifiers()
Description copied from class: MapperConfig
Accessor for determining whether it is ok to try to force override of access modifiers to be able to get or set values of non-public Methods, Fields; to invoke non-public Constructors, Methods; or to instantiate non-public Classes. By default this is enabled, but on some platforms it needs to be prevented since if this would violate security constraints and cause failures.

Specified by:
canOverrideAccessModifiers in class MapperConfig<DeserializationConfig>
Returns:
True if access modifier overriding is allowed (and may be done for any Field, Method, Constructor or Class); false to prevent any attempts to override.

getProblemHandlers

public LinkedNode<DeserializationProblemHandler> getProblemHandlers()
Method for getting head of the problem handler chain. May be null, if no handlers have been added.


addHandler

public void addHandler(DeserializationProblemHandler h)
Method that can be used to add a handler that can (try to) resolve non-fatal deserialization problems.


clearHandlers

public void clearHandlers()
Method for removing all configuring problem handlers; usually done to replace existing handler(s) with different one(s)

Since:
1.1

getBase64Variant

public Base64Variant getBase64Variant()
Method called during deserialization if Base64 encoded content needs to be decoded. Default version just returns default Jackson uses, which is modified-mime which does not add linefeeds (because those would have to be escaped in JSON strings).


getNodeFactory

public final JsonNodeFactory getNodeFactory()
Since:
1.6

introspect

public <T extends BeanDescription> T introspect(JavaType type)
Method that will introspect full bean properties for the purpose of building a bean deserializer

Parameters:
type - Type of class to be introspected

introspectForCreation

public <T extends BeanDescription> T introspectForCreation(JavaType type)
Method that will introspect subset of bean properties needed to construct bean instance.


deserializerInstance

public JsonDeserializer<Object> deserializerInstance(Annotated annotated,
                                                     Class<? extends JsonDeserializer<?>> deserClass)

keyDeserializerInstance

public KeyDeserializer keyDeserializerInstance(Annotated annotated,
                                               Class<? extends KeyDeserializer> keyDeserClass)

createUnshared

@Deprecated
public DeserializationConfig createUnshared(TypeResolverBuilder<?> typer,
                                                       VisibilityChecker<?> vc,
                                                       SubtypeResolver str)
Deprecated. Since 1.8 should use variant without arguments

Specified by:
createUnshared in class MapperConfig<DeserializationConfig>

setNodeFactory

@Deprecated
public void setNodeFactory(JsonNodeFactory nf)
Deprecated. Since 1.8 should use withNodeFactory(org.codehaus.jackson.node.JsonNodeFactory) instead

Since:
1.6

getAbstractTypeResolver

@Deprecated
public AbstractTypeResolver getAbstractTypeResolver()
Deprecated. Since 1.8 resolvers should be registered using Module interface Will be removed from Jackson 2.0

Method for accessing AbstractTypeResolver configured, if any (no default) used for resolving abstract types into concrete types (either by mapping or materializing new classes).

Since:
1.6

setAbstractTypeResolver

@Deprecated
public void setAbstractTypeResolver(AbstractTypeResolver atr)
Deprecated. Since 1.8 resolvers should be registered using Module interface. Will be removed from Jackson 2.0

Method for specifying AbstractTypeResolver to use for resolving references to abstract types into concrete types (if possible).

Since:
1.6