Class MapperConfig<T extends MapperConfig<T>>

java.lang.Object
tools.jackson.databind.cfg.MapperConfig<T>
All Implemented Interfaces:
Serializable, Snapshottable<MixInResolver>, MixInResolver
Direct Known Subclasses:
MapperConfigBase

public abstract class MapperConfig<T extends MapperConfig<T>> extends Object implements MixInResolver, Serializable
Interface that defines functionality accessible through both serialization and deserialization configuration objects; accessors to mode-independent configuration settings and such. In addition, shared features are defined in MapperFeature.

Small part of implementation is included here by aggregating BaseSettings instance that contains configuration that is shared between different types of instances.

See Also:
  • Field Details

    • EMPTY_INCLUDE

      protected static final JsonInclude.Value EMPTY_INCLUDE
    • EMPTY_FORMAT

      protected static final JsonFormat.Value EMPTY_FORMAT
    • _mapperFeatures

      protected final long _mapperFeatures
      Set of shared mapper features enabled.
    • _base

      protected final BaseSettings _base
      Immutable container object for simple configuration settings.
  • Constructor Details

  • Method Details

    • isEnabled

      public final boolean isEnabled(MapperFeature f)
      Accessor for simple mapper features (which are shared for serialization, deserialization)
    • isEnabled

      public abstract boolean isEnabled(DatatypeFeature feature)
      Accessor for checking whether give DatatypeFeature is enabled or not.
      Parameters:
      feature - Feature to check
      Returns:
      True if feature is enabled; false otherwise
    • getDatatypeFeatures

      public abstract DatatypeFeatures getDatatypeFeatures()
    • isAnnotationProcessingEnabled

      public final boolean isAnnotationProcessingEnabled()
      Method for determining whether annotation processing is enabled or not (default settings are typically that it is enabled; must explicitly disable).
      Returns:
      True if annotation processing is enabled; false if not
    • canOverrideAccessModifiers

      public final 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. By default this is enabled, but on some platforms it needs to be prevented since if this would violate security constraints and cause failures.
      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 final boolean shouldSortPropertiesAlphabetically()
      Accessor for checking whether default settings for property handling indicate that properties should be alphabetically ordered or not.
    • useRootWrapping

      public abstract boolean useRootWrapping()
      Accessor for checking whether configuration indicates that "root wrapping" (use of an extra property/name pair at root level) is expected or not.
    • compileString

      public SerializableString compileString(String src)
      Method for constructing a specialized textual object that can typically be serialized faster than basic String (depending on escaping needed if any, char-to-byte encoding if needed).
      Parameters:
      src - Text to represent
      Returns:
      Optimized text object constructed, if src not null; null otherwise
    • classIntrospectorInstance

      public abstract ClassIntrospector classIntrospectorInstance()
      Accessor for getting a new ClassIntrospector instance initialized for per-call usage (with possible local caching)
    • getAnnotationIntrospector

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

      Non-final since it is actually overridden by sub-classes (for now?)

    • getPropertyNamingStrategy

      public final PropertyNamingStrategy getPropertyNamingStrategy()
    • getEnumNamingStrategy

      public final EnumNamingStrategy getEnumNamingStrategy()
      Since:
      2.19
    • getAccessorNaming

      public final AccessorNamingStrategy.Provider getAccessorNaming()
    • getHandlerInstantiator

      public final HandlerInstantiator getHandlerInstantiator()
    • getDefaultTyper

      public final TypeResolverBuilder<?> getDefaultTyper(JavaType baseType)
      Method called to locate a type info handler for types that do not have one explicitly declared via annotations (or other configuration). If such a default handler is configured, it is returned; otherwise null is returned.
    • getTypeResolverProvider

      public abstract TypeResolverProvider getTypeResolverProvider()
      Since:
      3.0
    • getSubtypeResolver

      public abstract SubtypeResolver getSubtypeResolver()
    • getTypeFactory

      public abstract TypeFactory getTypeFactory()
    • getPolymorphicTypeValidator

      public final PolymorphicTypeValidator getPolymorphicTypeValidator()
    • constructType

      public abstract JavaType constructType(Class<?> cls)
      Helper method that will construct JavaType for given raw class. This is a simple short-cut for:
          getTypeFactory().constructType(cls);
      
    • constructType

      public abstract JavaType constructType(TypeReference<?> valueTypeRef)
      Helper method that will construct JavaType for given type reference This is a simple short-cut for:
          getTypeFactory().constructType(valueTypeRef);
      
    • findConfigOverride

      public abstract ConfigOverride findConfigOverride(Class<?> type)
      Accessor for finding ConfigOverride to use for properties of given type, if any exist; or return `null` if not.

      Note that only directly associated override is found; no type hierarchy traversal is performed.

      Returns:
      Override object to use for the type, if defined; null if none.
    • getConfigOverride

      public abstract ConfigOverride getConfigOverride(Class<?> type)
      Accessor for finding ConfigOverride to use for properties of given type, if any exist; or if none, return an immutable "empty" instance with no overrides.

      Note that only directly associated override is found; no type hierarchy traversal is performed.

      Returns:
      Override object to use for the type, never null (but may be empty)
    • getDefaultPropertyInclusion

      public abstract JsonInclude.Value getDefaultPropertyInclusion()
      Accessor for default property inclusion to use for serialization, used unless overridden by per-type or per-property overrides.
    • getDefaultPropertyInclusion

      public abstract JsonInclude.Value getDefaultPropertyInclusion(Class<?> baseType)
      Accessor for default property inclusion to use for serialization, considering possible per-type override for given base type.
      NOTE: if no override found, defaults to value returned by getDefaultPropertyInclusion().
    • getDefaultPropertyInclusion

      public JsonInclude.Value getDefaultPropertyInclusion(Class<?> baseType, JsonInclude.Value defaultIncl)
      Accessor for default property inclusion to use for serialization, considering possible per-type override for given base type; but if none found, returning given defaultIncl
      Parameters:
      defaultIncl - Inclusion setting to return if no overrides found.
    • getDefaultInclusion

      public abstract JsonInclude.Value getDefaultInclusion(Class<?> baseType, Class<?> propertyType)
      Accessor for default property inclusion to use for serialization, considering possible per-type override for given base type and possible per-type override for given property type.
      NOTE: if no override found, defaults to value returned by getDefaultPropertyInclusion().
      Parameters:
      baseType - Type of the instance containing the targeted property.
      propertyType - Type of the property to look up inclusion setting for.
    • getDefaultInclusion

      public JsonInclude.Value getDefaultInclusion(Class<?> baseType, Class<?> propertyType, JsonInclude.Value defaultIncl)
      Accessor for default property inclusion to use for serialization, considering possible per-type override for given base type and possible per-type override for given property type; but if none found, returning given defaultIncl
      Parameters:
      baseType - Type of the instance containing the targeted property.
      propertyType - Type of the property to look up inclusion setting for.
      defaultIncl - Inclusion setting to return if no overrides found.
    • getDefaultPropertyFormat

      public abstract JsonFormat.Value getDefaultPropertyFormat(Class<?> baseType)
      Accessor for default format settings to use for serialization (and, to a degree deserialization), considering baseline settings and per-type defaults for given base type (if any).
      Returns:
      (non-null) Format settings to use, possibly `JsonFormat.Value.empty()`
    • getDefaultPropertyIgnorals

      public abstract JsonIgnoreProperties.Value getDefaultPropertyIgnorals(Class<?> baseType)
      Accessor for default property ignorals to use, if any, for given base type, based on config overrides settings (see findConfigOverride(Class)).
    • getDefaultPropertyIgnorals

      public abstract JsonIgnoreProperties.Value getDefaultPropertyIgnorals(Class<?> baseType, AnnotatedClass actualClass)
      Helper method that may be called to see if there are property ignoral definitions from annotations (via AnnotatedClass) or through "config overrides". If both exist, config overrides have precedence over class annotations.
    • getDefaultPropertyInclusions

      public abstract JsonIncludeProperties.Value getDefaultPropertyInclusions(Class<?> baseType, AnnotatedClass actualClass)
      Helper method that may be called to see if there are property inclusion definitions from annotations (via AnnotatedClass). TODO: config override.
      Since:
      2.12
    • getDefaultVisibilityChecker

      public abstract 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). 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 (using JsonAutoDetect annotation)
    • getDefaultVisibilityChecker

      public abstract VisibilityChecker getDefaultVisibilityChecker(Class<?> baseType, AnnotatedClass actualClass)
      Accessor for object used for determining whether specific property elements (method, constructors, fields) can be auto-detected based on their visibility (access modifiers). This is based on global defaults (as would be returned by getDefaultVisibilityChecker(), but then modified by possible class annotation (see JsonAutoDetect) and/or per-type config override (see ConfigOverride.getVisibility()).
    • getDefaultNullHandling

      public abstract JsonSetter.Value getDefaultNullHandling()
      Accessor for the baseline setter info used as the global baseline, not considering possible per-type overrides.
      Returns:
      Global base settings; never null
      Since:
      3.0
    • getDefaultMergeable

      public abstract Boolean getDefaultMergeable()
      Accessor for the baseline merge info used as the global baseline, not considering possible per-type overrides.
      Returns:
      Global base settings, if any; `null` if none.
    • getDefaultMergeable

      public abstract Boolean getDefaultMergeable(Class<?> baseType)
      Accessor for the baseline merge info used for given type, including global defaults if no type-specific overrides defined.
      Returns:
      Type-specific settings (if any); global defaults (same as getDefaultMergeable()) otherwise, if any defined; or `null` if neither defined
    • getDateFormat

      public final DateFormat getDateFormat()
      Method for accessing currently configured (textual) date format that will be used for reading or writing date values (in case of writing, only if textual output is configured; not if dates are to be serialized as time stamps).

      Note that typically DateFormat instances are not thread-safe (at least ones provided by JDK): this means that calling code should clone format instance before using it.

      This method is usually only called by framework itself, since there are convenience methods available via DeserializationContext and SerializationContext that take care of cloning and thread-safe reuse.

    • getLocale

      public final Locale getLocale()
      Method for accessing the default Locale to use for formatting, unless overridden by local annotations. Initially set to Locale.getDefault().
    • getTimeZone

      public final TimeZone getTimeZone()
      Method for accessing the default TimeZone to use for formatting, unless overridden by local annotations. Initially set to TimeZone.getDefault().
    • hasExplicitTimeZone

      public boolean hasExplicitTimeZone()
      Method for checking whether a TimeZone has been explicitly set for this configuring during construction of ObjectMapper or if it still has the default timezone/offset (zero-offset, "zulu").
      Returns:
      true if this configuration has explicitly specified TimeZone, or false if it uses the default time zone
      Since:
      2.12
    • getActiveView

      public abstract Class<?> getActiveView()
      Accessor for finding currently active view, if any (null if none)
    • 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); but this can be configured on ObjectWriter.
    • getNodeFactory

      public final JsonNodeFactory getNodeFactory()
    • getAttributes

      public abstract ContextAttributes getAttributes()
      Method for accessing per-instance shared (baseline/default) attribute values; these are used as the basis for per-call attributes.
    • findRootName

      public abstract PropertyName findRootName(DatabindContext ctxt, JavaType rootType)
    • findRootName

      public abstract PropertyName findRootName(DatabindContext ctxt, Class<?> rawRootType)
    • getCacheProvider

      public final CacheProvider getCacheProvider()
      Since:
      2.16
    • getConstructorDetector

      public final ConstructorDetector getConstructorDetector()
      Since:
      2.18 (in DeserializationConfig-only since 2.12)
    • typeResolverBuilderInstance

      public TypeResolverBuilder<?> typeResolverBuilderInstance(Annotated annotated, Class<? extends TypeResolverBuilder<?>> builderClass)
      Method that can be called to obtain an instance of TypeIdResolver of specified type.
    • typeIdResolverInstance

      public TypeIdResolver typeIdResolverInstance(Annotated annotated, Class<? extends TypeIdResolver> resolverClass)
      Method that can be called to obtain an instance of TypeIdResolver of specified type.