Class SerializationConfig
- java.lang.Object
-
- org.codehaus.jackson.map.MapperConfig<T>
-
- org.codehaus.jackson.map.SerializationConfig
-
- All Implemented Interfaces:
ClassIntrospector.MixInResolver
public class SerializationConfig extends MapperConfig<T>
Object that contains baseline configuration for serialization process. An instance is owned byObjectMapper
, which makes a copy that is passed during serialization process toSerializerProvider
andSerializerFactory
.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 serializer instance. This because some objects may be configured, constructed and cached first time they are needed.
As of version 1.9, the goal is to make this class eventually immutable. Because of this, existing methods that allow changing state of this instance are deprecated in favor of methods that create new instances with different configuration ("fluent factories")
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SerializationConfig.Feature
Enumeration that defines togglable features that guide the serialization feature.-
Nested classes/interfaces inherited from class org.codehaus.jackson.map.MapperConfig
MapperConfig.Base, MapperConfig.ConfigFeature
-
-
Field Summary
Fields Modifier and Type Field Description protected int
_featureFlags
Note: moved to base class in 1.9; was stored by sub-class earlierprotected FilterProvider
_filterProvider
Object used for resolving filter ids to filter instances.protected JsonSerialize.Inclusion
_serializationInclusion
Which Bean/Map properties are to be included in serialization? Default settings is to include all regardless of value; can be changed to only include non-null properties, or properties with non-default values.protected Class<?>
_serializationView
View to use for filtering out properties to serialize.-
Fields inherited from class org.codehaus.jackson.map.MapperConfig
_base, _mixInAnnotations, _mixInAnnotationsShared, _subtypeResolver, DEFAULT_DATE_FORMAT
-
-
Constructor Summary
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description 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.SerializationConfig
createUnshared(SubtypeResolver subtypeResolver)
Method to use for constructing an instance that is not shared between multiple operations but only used for a single one (which may be this instance, if it is immutable; if not, a copy is constructed with same settings)void
disable(SerializationConfig.Feature f)
Deprecated.Since 1.9, it is preferable to usewithout(org.codehaus.jackson.map.SerializationConfig.Feature...)
instead; this method is deprecated as it modifies current instance instead of creating a new one (as the goal is to make this class immutable)void
enable(SerializationConfig.Feature f)
Deprecated.Since 1.9, it is preferable to usewith(org.codehaus.jackson.map.SerializationConfig.Feature...)
instead; this method is deprecated as it modifies current instance instead of creating a new one (as the goal is to make this class immutable)void
fromAnnotations(Class<?> cls)
Deprecated.Since 1.9, it is preferably to explicitly configure instances; this method also modifies existing instance which is against immutable design goals of this class.AnnotationIntrospector
getAnnotationIntrospector()
Method for gettingAnnotationIntrospector
configured to introspect annotation values used for configuration.VisibilityChecker<?>
getDefaultVisibilityChecker()
Accessor for object used for determining whether specific property elements (method, constructors, fields) can be auto-detected based on their visibility (access modifiers).FilterProvider
getFilterProvider()
Method for getting provider used for locating filters given id (which is usually provided with filter annotations).JsonSerialize.Inclusion
getSerializationInclusion()
Class<?>
getSerializationView()
Method for checking which serialization view is being used, if any; null if none.<T extends BeanDescription>
Tintrospect(JavaType type)
Method that will introspect full bean properties for the purpose of building a bean serializer<T extends BeanDescription>
TintrospectClassAnnotations(JavaType type)
Accessor for getting bean description that only contains class annotations: useful if no getter/setter/creator information is needed.<T extends BeanDescription>
TintrospectDirectClassAnnotations(JavaType type)
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.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(MapperConfig.ConfigFeature f)
Method for checking whether given feature is enabled or notboolean
isEnabled(SerializationConfig.Feature f)
JsonSerializer<Object>
serializerInstance(Annotated annotated, Class<? extends JsonSerializer<?>> serClass)
void
set(SerializationConfig.Feature f, boolean state)
Deprecated.Since 1.9, it is preferable to usewithout(org.codehaus.jackson.map.SerializationConfig.Feature...)
andwith(org.codehaus.jackson.map.SerializationConfig.Feature...)
instead; this method is deprecated as it modifies current instance instead of creating a new one (as the goal is to make this class immutable)void
setDateFormat(DateFormat df)
Deprecated.Since 1.8, usewithDateFormat(java.text.DateFormat)
instead.void
setSerializationInclusion(JsonSerialize.Inclusion props)
Deprecated.since 1.9 should either usewithSerializationInclusion(org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion)
to construct new instance, or configure throughObjectMapper
void
setSerializationView(Class<?> view)
Deprecated.Since 1.8, usewithView(java.lang.Class<?>)
insteadboolean
shouldSortPropertiesAlphabetically()
Accessor for checking whether default settings for property handling indicate that properties should be alphabetically ordered or not.String
toString()
SerializationConfig
with(SerializationConfig.Feature... features)
Fluent factory method that will construct and return a new configuration object instance with specified features enabled.SerializationConfig
withAnnotationIntrospector(AnnotationIntrospector ai)
Method for constructing and returning a new instance with differentAnnotationIntrospector
to use (replacing old one).SerializationConfig
withAppendedAnnotationIntrospector(AnnotationIntrospector ai)
Method for constructing and returning a new instance with additionalAnnotationIntrospector
appended (as the lowest priority one)SerializationConfig
withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci)
Method for constructing and returning a new instance with differentClassIntrospector
to use.SerializationConfig
withDateFormat(DateFormat df)
In addition to constructing instance with specified date format, will enable or disableFeature.WRITE_DATES_AS_TIMESTAMPS
(enable if format set as null; disable if non-null)SerializationConfig
withFilters(FilterProvider filterProvider)
SerializationConfig
withHandlerInstantiator(HandlerInstantiator hi)
Method for constructing and returning a new instance with differentHandlerInstantiator
to use.SerializationConfig
withInsertedAnnotationIntrospector(AnnotationIntrospector ai)
Method for constructing and returning a new instance with additionalAnnotationIntrospector
inserted (as the highest priority one)SerializationConfig
without(SerializationConfig.Feature... features)
Fluent factory method that will construct and return a new configuration object instance with specified features disabled.SerializationConfig
withPropertyNamingStrategy(PropertyNamingStrategy pns)
Method for constructing and returning a new instance with differentPropertyNamingStrategy
to use.SerializationConfig
withSerializationInclusion(JsonSerialize.Inclusion incl)
SerializationConfig
withSubtypeResolver(SubtypeResolver str)
Method for constructing and returning a new instance with differentSubtypeResolver
to use.SerializationConfig
withTypeFactory(TypeFactory tf)
Method for constructing and returning a new instance with differentTypeFactory
to use.SerializationConfig
withTypeResolverBuilder(TypeResolverBuilder<?> trb)
Method for constructing and returning a new instance with differentTypeResolverBuilder
to use.SerializationConfig
withView(Class<?> view)
SerializationConfig
withVisibility(JsonMethod forMethod, JsonAutoDetect.Visibility visibility)
Method for constructing and returning a new instance with different minimal visibility level for specified property typeSerializationConfig
withVisibilityChecker(VisibilityChecker<?> vc)
Method for constructing and returning a new instance with differentVisibilityChecker
to use.-
Methods inherited from class org.codehaus.jackson.map.MapperConfig
addMixInAnnotations, appendAnnotationIntrospector, constructSpecializedType, constructType, constructType, findMixInClassFor, getClassIntrospector, getDateFormat, getDefaultTyper, getHandlerInstantiator, getPropertyNamingStrategy, getSubtypeResolver, getTypeFactory, insertAnnotationIntrospector, introspectClassAnnotations, introspectDirectClassAnnotations, mixInCount, setAnnotationIntrospector, setMixInAnnotations, typeIdResolverInstance, typeResolverBuilderInstance
-
-
-
-
Field Detail
-
_serializationInclusion
protected JsonSerialize.Inclusion _serializationInclusion
Which Bean/Map properties are to be included in serialization? Default settings is to include all regardless of value; can be changed to only include non-null properties, or properties with non-default values.Defaults to null for backwards compatibility; if left as null, will check deprecated
SerializationConfig.Feature.WRITE_NULL_PROPERTIES
to choose betweenJsonSerialize.Inclusion.ALWAYS
andJsonSerialize.Inclusion.NON_NULL
.
-
_serializationView
protected Class<?> _serializationView
View to use for filtering out properties to serialize. Null if none (will also be assigned null ifObject.class
is defined), meaning that all properties are to be included.
-
_filterProvider
protected FilterProvider _filterProvider
Object used for resolving filter ids to filter instances. Non-null if explicitly defined; null by default.- Since:
- 1.7
-
_featureFlags
protected int _featureFlags
Note: moved to base class in 1.9; was stored by sub-class earlier
-
-
Constructor Detail
-
SerializationConfig
public SerializationConfig(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.
-
SerializationConfig
protected SerializationConfig(SerializationConfig src)
- Since:
- 1.8
-
SerializationConfig
protected SerializationConfig(SerializationConfig src, HashMap<ClassKey,Class<?>> mixins, SubtypeResolver str)
Constructor used to make a private copy of specific mix-in definitions.- Since:
- 1.8
-
SerializationConfig
protected SerializationConfig(SerializationConfig src, MapperConfig.Base base)
- Since:
- 1.8
-
SerializationConfig
protected SerializationConfig(SerializationConfig src, FilterProvider filters)
- Since:
- 1.8
-
SerializationConfig
protected SerializationConfig(SerializationConfig src, Class<?> view)
- Since:
- 1.8
-
SerializationConfig
protected SerializationConfig(SerializationConfig src, JsonSerialize.Inclusion incl)
- Since:
- 1.9
-
SerializationConfig
protected SerializationConfig(SerializationConfig src, int features)
- Since:
- 1.9
-
-
Method Detail
-
withClassIntrospector
public SerializationConfig withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci)
Description copied from class:MapperConfig
Method for constructing and returning a new instance with differentClassIntrospector
to use.NOTE: make sure to register new instance with
ObjectMapper
if directly calling this method.- Specified by:
withClassIntrospector
in classMapperConfig<SerializationConfig>
-
withAnnotationIntrospector
public SerializationConfig withAnnotationIntrospector(AnnotationIntrospector ai)
Description copied from class:MapperConfig
Method for constructing and returning a new instance with differentAnnotationIntrospector
to use (replacing old one).NOTE: make sure to register new instance with
ObjectMapper
if directly calling this method.- Specified by:
withAnnotationIntrospector
in classMapperConfig<SerializationConfig>
-
withInsertedAnnotationIntrospector
public SerializationConfig withInsertedAnnotationIntrospector(AnnotationIntrospector ai)
Description copied from class:MapperConfig
Method for constructing and returning a new instance with additionalAnnotationIntrospector
inserted (as the highest priority one)- Specified by:
withInsertedAnnotationIntrospector
in classMapperConfig<SerializationConfig>
-
withAppendedAnnotationIntrospector
public SerializationConfig withAppendedAnnotationIntrospector(AnnotationIntrospector ai)
Description copied from class:MapperConfig
Method for constructing and returning a new instance with additionalAnnotationIntrospector
appended (as the lowest priority one)- Specified by:
withAppendedAnnotationIntrospector
in classMapperConfig<SerializationConfig>
-
withVisibilityChecker
public SerializationConfig withVisibilityChecker(VisibilityChecker<?> vc)
Description copied from class:MapperConfig
Method for constructing and returning a new instance with differentVisibilityChecker
to use.NOTE: make sure to register new instance with
ObjectMapper
if directly calling this method.- Specified by:
withVisibilityChecker
in classMapperConfig<SerializationConfig>
-
withVisibility
public SerializationConfig withVisibility(JsonMethod forMethod, JsonAutoDetect.Visibility visibility)
Description copied from class:MapperConfig
Method for constructing and returning a new instance with different minimal visibility level for specified property typeNOTE: make sure to register new instance with
ObjectMapper
if directly calling this method.- Specified by:
withVisibility
in classMapperConfig<SerializationConfig>
-
withTypeResolverBuilder
public SerializationConfig withTypeResolverBuilder(TypeResolverBuilder<?> trb)
Description copied from class:MapperConfig
Method for constructing and returning a new instance with differentTypeResolverBuilder
to use.NOTE: make sure to register new instance with
ObjectMapper
if directly calling this method.- Specified by:
withTypeResolverBuilder
in classMapperConfig<SerializationConfig>
-
withSubtypeResolver
public SerializationConfig withSubtypeResolver(SubtypeResolver str)
Description copied from class:MapperConfig
Method for constructing and returning a new instance with differentSubtypeResolver
to use.NOTE: make sure to register new instance with
ObjectMapper
if directly calling this method.- Specified by:
withSubtypeResolver
in classMapperConfig<SerializationConfig>
-
withPropertyNamingStrategy
public SerializationConfig withPropertyNamingStrategy(PropertyNamingStrategy pns)
Description copied from class:MapperConfig
Method for constructing and returning a new instance with differentPropertyNamingStrategy
to use.NOTE: make sure to register new instance with
ObjectMapper
if directly calling this method.- Specified by:
withPropertyNamingStrategy
in classMapperConfig<SerializationConfig>
-
withTypeFactory
public SerializationConfig withTypeFactory(TypeFactory tf)
Description copied from class:MapperConfig
Method for constructing and returning a new instance with differentTypeFactory
to use.NOTE: make sure to register new instance with
ObjectMapper
if directly calling this method.- Specified by:
withTypeFactory
in classMapperConfig<SerializationConfig>
-
withDateFormat
public SerializationConfig withDateFormat(DateFormat df)
In addition to constructing instance with specified date format, will enable or disableFeature.WRITE_DATES_AS_TIMESTAMPS
(enable if format set as null; disable if non-null)- Specified by:
withDateFormat
in classMapperConfig<SerializationConfig>
-
withHandlerInstantiator
public SerializationConfig withHandlerInstantiator(HandlerInstantiator hi)
Description copied from class:MapperConfig
Method for constructing and returning a new instance with differentHandlerInstantiator
to use.NOTE: make sure to register new instance with
ObjectMapper
if directly calling this method.- Specified by:
withHandlerInstantiator
in classMapperConfig<SerializationConfig>
-
withFilters
public SerializationConfig withFilters(FilterProvider filterProvider)
- Since:
- 1.7
-
withView
public SerializationConfig withView(Class<?> view)
- Since:
- 1.8
-
withSerializationInclusion
public SerializationConfig withSerializationInclusion(JsonSerialize.Inclusion incl)
- Since:
- 1.9
-
with
public SerializationConfig with(SerializationConfig.Feature... features)
Fluent factory method that will construct and return a new configuration object instance with specified features enabled.- Since:
- 1.9
-
without
public SerializationConfig without(SerializationConfig.Feature... features)
Fluent factory method that will construct and return a new configuration object instance with specified features disabled.- Since:
- 1.9
-
fromAnnotations
@Deprecated public void fromAnnotations(Class<?> cls)
Deprecated.Since 1.9, it is preferably to explicitly configure instances; this method also modifies existing instance which is against immutable design goals of this class.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.Serialization annotations that are known to have effect are:
- Specified by:
fromAnnotations
in classMapperConfig<SerializationConfig>
- Parameters:
cls
- Class of which class annotations to use for changing configuration settings
-
createUnshared
public SerializationConfig createUnshared(SubtypeResolver subtypeResolver)
Description copied from class:MapperConfig
Method to use for constructing an instance that is not shared between multiple operations but only used for a single one (which may be this instance, if it is immutable; if not, a copy is constructed with same settings)- Specified by:
createUnshared
in classMapperConfig<SerializationConfig>
-
getAnnotationIntrospector
public AnnotationIntrospector getAnnotationIntrospector()
Description copied from class:MapperConfig
Method for gettingAnnotationIntrospector
configured to introspect annotation values used for configuration.Non-final since it is actually overridden by sub-classes (for now?)
- Overrides:
getAnnotationIntrospector
in classMapperConfig<SerializationConfig>
-
introspectClassAnnotations
public <T extends BeanDescription> T introspectClassAnnotations(JavaType type)
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 classMapperConfig<SerializationConfig>
-
introspectDirectClassAnnotations
public <T extends BeanDescription> T introspectDirectClassAnnotations(JavaType type)
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 classMapperConfig<SerializationConfig>
-
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 classMapperConfig<SerializationConfig>
- 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 classMapperConfig<SerializationConfig>
- 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.
-
shouldSortPropertiesAlphabetically
public boolean shouldSortPropertiesAlphabetically()
Description copied from class:MapperConfig
Accessor for checking whether default settings for property handling indicate that properties should be alphabetically ordered or not.- Specified by:
shouldSortPropertiesAlphabetically
in classMapperConfig<SerializationConfig>
-
getDefaultVisibilityChecker
public VisibilityChecker<?> getDefaultVisibilityChecker()
Description copied from class:MapperConfig
Accessor for object used for determining whether specific property elements (method, constructors, fields) can be auto-detected based on their visibility (access modifiers). Can be changed to allow different minimum visibility levels for auto-detection. Note that this is the global handler; individual types (classes) can further override active checker used (usingJsonAutoDetect
annotation)- Overrides:
getDefaultVisibilityChecker
in classMapperConfig<SerializationConfig>
-
isEnabled
public boolean isEnabled(SerializationConfig.Feature f)
- Since:
- 1.0 However, note that version 1.9.0 and 1.9.1 accidentally missed this overloaded variant
-
enable
@Deprecated public void enable(SerializationConfig.Feature f)
Deprecated.Since 1.9, it is preferable to usewith(org.codehaus.jackson.map.SerializationConfig.Feature...)
instead; this method is deprecated as it modifies current instance instead of creating a new one (as the goal is to make this class immutable)Method for enabling specified feature.
-
disable
@Deprecated public void disable(SerializationConfig.Feature f)
Deprecated.Since 1.9, it is preferable to usewithout(org.codehaus.jackson.map.SerializationConfig.Feature...)
instead; this method is deprecated as it modifies current instance instead of creating a new one (as the goal is to make this class immutable)Method for disabling specified feature.
-
set
@Deprecated public void set(SerializationConfig.Feature f, boolean state)
Deprecated.Since 1.9, it is preferable to usewithout(org.codehaus.jackson.map.SerializationConfig.Feature...)
andwith(org.codehaus.jackson.map.SerializationConfig.Feature...)
instead; this method is deprecated as it modifies current instance instead of creating a new one (as the goal is to make this class immutable)Method for enabling or disabling specified feature.
-
getSerializationView
public Class<?> getSerializationView()
Method for checking which serialization view is being used, if any; null if none.- Since:
- 1.4
-
getSerializationInclusion
public JsonSerialize.Inclusion getSerializationInclusion()
-
setSerializationInclusion
@Deprecated public void setSerializationInclusion(JsonSerialize.Inclusion props)
Deprecated.since 1.9 should either usewithSerializationInclusion(org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion)
to construct new instance, or configure throughObjectMapper
Method that will define global setting of which bean/map properties are to be included in serialization. Can be overridden by class annotations (overriding settings to use for instances of that class) and method/field annotations (overriding settings for the value bean for that getter method or field)
-
getFilterProvider
public FilterProvider getFilterProvider()
Method for getting provider used for locating filters given id (which is usually provided with filter annotations). Will be null if no provided was set forObjectWriter
(or if serialization directly called fromObjectMapper
)- Since:
- 1.7
-
introspect
public <T extends BeanDescription> T introspect(JavaType type)
Method that will introspect full bean properties for the purpose of building a bean serializer
-
serializerInstance
public JsonSerializer<Object> serializerInstance(Annotated annotated, Class<? extends JsonSerializer<?>> serClass)
-
setDateFormat
@Deprecated public final void setDateFormat(DateFormat df)
Deprecated.Since 1.8, usewithDateFormat(java.text.DateFormat)
instead.One thing to note is that this will setSerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS
to false (if null format set), or true (if non-null format)- Overrides:
setDateFormat
in classMapperConfig<SerializationConfig>
-
setSerializationView
@Deprecated public void setSerializationView(Class<?> view)
Deprecated.Since 1.8, usewithView(java.lang.Class<?>)
insteadMethod for checking which serialization view is being used, if any; null if none.- Since:
- 1.4
-
isEnabled
public boolean isEnabled(MapperConfig.ConfigFeature f)
Description copied from class:MapperConfig
Method for checking whether given feature is enabled or not- Specified by:
isEnabled
in classMapperConfig<T extends org.codehaus.jackson.map.MapperConfig.Impl<CFG,T>>
-
-