com.fasterxml.jackson.databind.cfg

## Class BaseSettings

- java.lang.Object
- - com.fasterxml.jackson.databind.cfg.BaseSettings

All Implemented Interfaces:
  Serializable

    public final class BaseSettings
    extends Object
    implements Serializable

Immutable container class used to store simple configuration settings. Since instances are fully immutable, instances can be freely shared and used without synchronization.

See Also:
  Serialized Form

### Field Summary

Fields
`protected AnnotationIntrospector` `_annotationIntrospector` Introspector used for accessing annotation value based configuration.
`protected ClassIntrospector` `_classIntrospector` Introspector used to figure out Bean properties needed for bean serialization and deserialization.
`protected DateFormat` `_dateFormat` Custom date format to use for de-serialization.
`protected com.fasterxml.jackson.core.Base64Variant` `_defaultBase64` Explicitly default `Base64Variant` to use for handling binary data (`byte[]`), used with data formats that use base64 encoding (like JSON, CSV).
`protected HandlerInstantiator` `_handlerInstantiator` Object used for creating instances of handlers (serializers, deserializers, type and type id resolvers), given class to instantiate.
`protected Locale` `_locale` Default `Locale` used with serialization formats.
`protected PropertyNamingStrategy` `_propertyNamingStrategy` Custom property naming strategy in use, if any.
`protected TimeZone` `_timeZone` Default `TimeZone` used with serialization formats.
`protected TypeFactory` `_typeFactory` Specific factory used for creating `JavaType` instances; needed to allow modules to add more custom type handling (mostly to support types of non-Java JVM languages)
`protected TypeResolverBuilder<?>` `_typeResolverBuilder` Type information handler used for "untyped" values (ones declared to have type `Object.class`)
`protected VisibilityChecker<?>` `_visibilityChecker` Object used for determining whether specific property elements (method, constructors, fields) can be auto-detected based on their visibility (access modifiers).

### Constructor Summary

Constructors
Constructor and Description
`BaseSettings(ClassIntrospector ci, AnnotationIntrospector ai, VisibilityChecker<?> vc, PropertyNamingStrategy pns, TypeFactory tf, TypeResolverBuilder<?> typer, DateFormat dateFormat, HandlerInstantiator hi, Locale locale, TimeZone tz, com.fasterxml.jackson.core.Base64Variant defaultBase64)`

### Method Summary

Methods
`AnnotationIntrospector` `getAnnotationIntrospector()`
`com.fasterxml.jackson.core.Base64Variant` `getBase64Variant()`
`ClassIntrospector` `getClassIntrospector()`
`DateFormat` `getDateFormat()`
`HandlerInstantiator` `getHandlerInstantiator()`
`Locale` `getLocale()`
`PropertyNamingStrategy` `getPropertyNamingStrategy()`
`TimeZone` `getTimeZone()`
`TypeFactory` `getTypeFactory()`
`TypeResolverBuilder<?>` `getTypeResolverBuilder()`
`VisibilityChecker<?>` `getVisibilityChecker()`
`BaseSettings` `with(com.fasterxml.jackson.core.Base64Variant base64)`
`BaseSettings` `with(Locale l)`
`BaseSettings` `with(TimeZone tz)` Fluent factory for constructing a new instance that uses specified TimeZone.
`BaseSettings` `withAnnotationIntrospector(AnnotationIntrospector ai)`
`BaseSettings` `withAppendedAnnotationIntrospector(AnnotationIntrospector ai)`
`BaseSettings` `withClassIntrospector(ClassIntrospector ci)`
`BaseSettings` `withDateFormat(DateFormat df)`
`BaseSettings` `withHandlerInstantiator(HandlerInstantiator hi)`
`BaseSettings` `withInsertedAnnotationIntrospector(AnnotationIntrospector ai)`
`BaseSettings` `withPropertyNamingStrategy(PropertyNamingStrategy pns)`
`BaseSettings` `withTypeFactory(TypeFactory tf)`
`BaseSettings` `withTypeResolverBuilder(TypeResolverBuilder<?> typer)`
`BaseSettings` `withVisibility(com.fasterxml.jackson.annotation.PropertyAccessor forMethod, com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility visibility)`
`BaseSettings` `withVisibilityChecker(VisibilityChecker<?> vc)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### _classIntrospector

    protected final ClassIntrospector _classIntrospector

Introspector used to figure out Bean properties needed for bean serialization and deserialization. Overridable so that it is possible to change low-level details of introspection, like adding new annotation types.

#### _annotationIntrospector

    protected final AnnotationIntrospector _annotationIntrospector

Introspector used for accessing annotation value based configuration.

#### _visibilityChecker

    protected final VisibilityChecker<?> _visibilityChecker

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)

#### _propertyNamingStrategy

    protected final PropertyNamingStrategy _propertyNamingStrategy

Custom property naming strategy in use, if any.

#### _typeFactory

    protected final TypeFactory _typeFactory

Specific factory used for creating `JavaType` instances; needed to allow modules to add more custom type handling (mostly to support types of non-Java JVM languages)

#### _typeResolverBuilder

    protected final TypeResolverBuilder<?> _typeResolverBuilder

Type information handler used for "untyped" values (ones declared to have type `Object.class`)

#### _dateFormat

    protected final DateFormat _dateFormat

Custom date format to use for de-serialization. If specified, will be used instead of `StdDateFormat`.

Note that the configured format object will be cloned once per deserialization process (first time it is needed)

#### _handlerInstantiator

    protected final HandlerInstantiator _handlerInstantiator

Object used for creating instances of handlers (serializers, deserializers, type and type id resolvers), given class to instantiate. This is typically used to do additional configuration (with dependency injection, for example) beyond simply construction of instances; or to use alternative constructors.

#### _locale

    protected final Locale _locale

Default `Locale` used with serialization formats. Default value is `Locale.getDefault()`.

#### _timeZone

    protected final TimeZone _timeZone

Default `TimeZone` used with serialization formats. Default value is `TimeZone.getDefault()`, which is typically the local time zone (unless overridden for JVM).

Note that if a new value is set, time zone is also assigned to `_dateFormat` of this object.

#### _defaultBase64

    protected final com.fasterxml.jackson.core.Base64Variant _defaultBase64

Explicitly default `Base64Variant` to use for handling binary data (`byte[]`), used with data formats that use base64 encoding (like JSON, CSV).

Since:
  2.1

### Constructor Detail

#### BaseSettings

    public BaseSettings(ClassIntrospector ci,
                AnnotationIntrospector ai,
                VisibilityChecker<?> vc,
                PropertyNamingStrategy pns,
                TypeFactory tf,
                TypeResolverBuilder<?> typer,
                DateFormat dateFormat,
                HandlerInstantiator hi,
                Locale locale,
                TimeZone tz,
                com.fasterxml.jackson.core.Base64Variant defaultBase64)

### Method Detail

#### withClassIntrospector

    public BaseSettings withClassIntrospector(ClassIntrospector ci)

#### withAnnotationIntrospector

    public BaseSettings withAnnotationIntrospector(AnnotationIntrospector ai)

#### withInsertedAnnotationIntrospector

    public BaseSettings withInsertedAnnotationIntrospector(AnnotationIntrospector ai)

#### withAppendedAnnotationIntrospector

    public BaseSettings withAppendedAnnotationIntrospector(AnnotationIntrospector ai)

#### withVisibilityChecker

    public BaseSettings withVisibilityChecker(VisibilityChecker<?> vc)

#### withVisibility

    public BaseSettings withVisibility(com.fasterxml.jackson.annotation.PropertyAccessor forMethod,
                              com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility visibility)

#### withPropertyNamingStrategy

    public BaseSettings withPropertyNamingStrategy(PropertyNamingStrategy pns)

#### withTypeFactory

    public BaseSettings withTypeFactory(TypeFactory tf)

#### withTypeResolverBuilder

    public BaseSettings withTypeResolverBuilder(TypeResolverBuilder<?> typer)

#### withDateFormat

    public BaseSettings withDateFormat(DateFormat df)

#### withHandlerInstantiator

    public BaseSettings withHandlerInstantiator(HandlerInstantiator hi)

#### with

    public BaseSettings with(Locale l)

#### with

    public BaseSettings with(TimeZone tz)

Fluent factory for constructing a new instance that uses specified TimeZone. Note that timezone used with also be assigned to configured `DateFormat`, changing time formatting defaults.

#### with

    public BaseSettings with(com.fasterxml.jackson.core.Base64Variant base64)

Since:
  2.1

#### getClassIntrospector

    public ClassIntrospector getClassIntrospector()

#### getAnnotationIntrospector

    public AnnotationIntrospector getAnnotationIntrospector()

#### getVisibilityChecker

    public VisibilityChecker<?> getVisibilityChecker()

#### getPropertyNamingStrategy

    public PropertyNamingStrategy getPropertyNamingStrategy()

#### getTypeFactory

    public TypeFactory getTypeFactory()

#### getTypeResolverBuilder

    public TypeResolverBuilder<?> getTypeResolverBuilder()

#### getDateFormat

    public DateFormat getDateFormat()

#### getHandlerInstantiator

    public HandlerInstantiator getHandlerInstantiator()

#### getLocale

    public Locale getLocale()

#### getTimeZone

    public TimeZone getTimeZone()

#### getBase64Variant

    public com.fasterxml.jackson.core.Base64Variant getBase64Variant()