com.fasterxml.jackson.databind.cfg

## Class MapperBuilder<M extends ObjectMapper,B extends MapperBuilder<M,B>>

- java.lang.Object
- - com.fasterxml.jackson.databind.cfg.MapperBuilder<M,B>

- Direct Known Subclasses:
    JsonMapper.Builder

      public abstract class MapperBuilder<M extends ObjectMapper,B extends MapperBuilder<M,B>>
      extends Object

  Jackson 3 will introduce fully immutable, builder-based system for constructing `ObjectMapper`s. Same can not be done with 2.10 for backwards-compatibility reasons; but we can offer sort of "fake" builder, which simply encapsulates configuration calls. The main (and only) point is to allow gradual upgrade.
  Since:
    2.10

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected M` | `_mapper`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `MapperBuilder(M mapper)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected B` | `_this()`
    `B` | `activateDefaultTyping(PolymorphicTypeValidator subtypeValidator)` Convenience method that is equivalent to calling
    `B` | `activateDefaultTyping(PolymorphicTypeValidator subtypeValidator, ObjectMapper.DefaultTyping dti)` Convenience method that is equivalent to calling
    `B` | `activateDefaultTyping(PolymorphicTypeValidator subtypeValidator, ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs)` Method for enabling automatic inclusion of type information, needed for proper deserialization of polymorphic types (unless types have been annotated with `JsonTypeInfo`).
    `B` | `activateDefaultTypingAsProperty(PolymorphicTypeValidator subtypeValidator, ObjectMapper.DefaultTyping applicability, String propertyName)` Method for enabling automatic inclusion of type information -- needed for proper deserialization of polymorphic types (unless types have been annotated with `JsonTypeInfo`) -- using "As.PROPERTY" inclusion mechanism and specified property name to use for inclusion (default being "@class" since default type information always uses class name as type identifier)
    `B` | `addHandler(DeserializationProblemHandler h)` Method used for adding a `DeserializationProblemHandler` for this builder, at the head of the list (meaning it has priority over handler registered earlier).
    `B` | `addMixIn(Class<?> target, Class<?> mixinSource)` Method to use for defining mix-in annotations to use for augmenting annotations that classes have, for purpose of configuration serialization and/or deserialization processing.
    `B` | `addModule(Module module)`
    `B` | `addModules(Iterable<? extends Module> modules)`
    `B` | `addModules(Module... modules)`
    `B` | `annotationIntrospector(AnnotationIntrospector intr)` Method for replacing `AnnotationIntrospector` used by the mapper instance to be built.
    `M` | `build()` Method to call to create actual mapper instance.
    `B` | `clearProblemHandlers()` Method that may be used to remove all `DeserializationProblemHandler`s added to this builder (if any).
    `B` | `configure(DeserializationFeature feature, boolean state)`
    `B` | `configure(JsonGenerator.Feature feature, boolean state)`
    `B` | `configure(JsonParser.Feature feature, boolean state)`
    `B` | `configure(MapperFeature feature, boolean state)`
    `B` | `configure(SerializationFeature feature, boolean state)`
    `B` | `configure(StreamReadFeature feature, boolean state)`
    `B` | `configure(StreamWriteFeature feature, boolean state)`
    `B` | `deactivateDefaultTyping()` Method for disabling automatic inclusion of type information; if so, only explicitly annotated types (ones with `JsonTypeInfo`) will have additional embedded type information.
    `B` | `defaultBase64Variant(Base64Variant v)` Method that will configure default `Base64Variant` that `byte[]` serializers and deserializers will use.
    `B` | `defaultDateFormat(DateFormat df)` Method for configuring the default `DateFormat` to use when serializing time values as Strings, and deserializing from JSON Strings.
    `B` | `defaultLeniency(Boolean b)` Method for setting default Setter configuration, regarding things like merging, null-handling; used for properties for which there are no per-type or per-property overrides (via annotations or config overrides).
    `B` | `defaultLocale(Locale locale)` Method for overriding default locale to use for formatting.
    `B` | `defaultMergeable(Boolean b)` Method for setting default Setter configuration, regarding things like merging, null-handling; used for properties for which there are no per-type or per-property overrides (via annotations or config overrides).
    `B` | `defaultPrettyPrinter(PrettyPrinter pp)`
    `B` | `defaultPropertyInclusion(JsonInclude.Value incl)` Method for configured default property inclusion to use for serialization.
    `B` | `defaultSetterInfo(JsonSetter.Value v)`
    `B` | `defaultTimeZone(TimeZone tz)` Method for overriding default TimeZone to use for formatting.
    `B` | `disable(DeserializationFeature... features)`
    `B` | `disable(JsonGenerator.Feature... features)`
    `B` | `disable(JsonParser.Feature... features)`
    `B` | `disable(MapperFeature... features)`
    `B` | `disable(SerializationFeature... features)`
    `B` | `disable(StreamReadFeature... features)`
    `B` | `disable(StreamWriteFeature... features)`
    `B` | `enable(DeserializationFeature... features)`
    `B` | `enable(JsonGenerator.Feature... features)`
    `B` | `enable(JsonParser.Feature... features)`
    `B` | `enable(MapperFeature... features)`
    `B` | `enable(SerializationFeature... features)`
    `B` | `enable(StreamReadFeature... features)`
    `B` | `enable(StreamWriteFeature... features)`
    `B` | `filterProvider(FilterProvider prov)` Method for configuring this mapper to use specified `FilterProvider` for mapping Filter Ids to actual filter instances.
    `B` | `findAndAddModules()` Convenience method that is functionally equivalent to: `addModules(builder.findModules());`
    `static List<Module>` | `findModules()` Method for locating available methods, using JDK `ServiceLoader` facility, along with module-provided SPI.
    `static List<Module>` | `findModules(ClassLoader classLoader)` Method for locating available methods, using JDK `ServiceLoader` facility, along with module-provided SPI.
    `B` | `handlerInstantiator(HandlerInstantiator hi)` Method for configuring `HandlerInstantiator` to use for creating instances of handlers (such as serializers, deserializers, type and type id resolvers), given a class.
    `B` | `injectableValues(InjectableValues v)`
    `boolean` | `isEnabled(DeserializationFeature f)`
    `boolean` | `isEnabled(JsonGenerator.Feature f)`
    `boolean` | `isEnabled(JsonParser.Feature f)`
    `boolean` | `isEnabled(MapperFeature f)`
    `boolean` | `isEnabled(SerializationFeature f)`
    `B` | `nodeFactory(JsonNodeFactory f)`
    `B` | `polymorphicTypeValidator(PolymorphicTypeValidator ptv)` Method for assigning `PolymorphicTypeValidator` to use for validating subtypes when using Class name - based polymorphic deserialization using annotations (validator used with "Default Typing" is specified by passing in `activateDefaultTyping(PolymorphicTypeValidator)` instead).
    `B` | `propertyNamingStrategy(PropertyNamingStrategy s)`
    `B` | `registerSubtypes(Class<?>... subtypes)`
    `B` | `registerSubtypes(Collection<Class<?>> subtypes)`
    `B` | `registerSubtypes(NamedType... subtypes)`
    `B` | `serializationInclusion(JsonInclude.Include incl)` Method for configured default property inclusion to use for serialization.
    `B` | `serializerFactory(SerializerFactory f)`
    `TokenStreamFactory` | `streamFactory()`
    `B` | `subtypeResolver(SubtypeResolver r)`
    `B` | `typeFactory(TypeFactory f)`
    `B` | `visibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility)`
    `B` | `visibility(VisibilityChecker<?> vc)`

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

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

- - ### Field Detail

    - #### _mapper

          protected final M extends ObjectMapper _mapper

  - ### Constructor Detail

    - #### MapperBuilder

          protected MapperBuilder(M mapper)

  - ### Method Detail

    - #### build

          public M build()

      Method to call to create actual mapper instance.

      Implementation detail: in 2.10 (but not 3.x) underlying mapper is eagerly constructed when builder is constructed, and method simply returns that instance.

    - #### isEnabled

          public boolean isEnabled(MapperFeature f)

    - #### isEnabled

          public boolean isEnabled(DeserializationFeature f)

    - #### isEnabled

          public boolean isEnabled(SerializationFeature f)

    - #### isEnabled

          public boolean isEnabled(JsonParser.Feature f)

    - #### isEnabled

          public boolean isEnabled(JsonGenerator.Feature f)

    - #### streamFactory

          public TokenStreamFactory streamFactory()

    - #### enable

          public B enable(MapperFeature... features)

    - #### disable

          public B disable(MapperFeature... features)

    - #### configure

          public B configure(MapperFeature feature,
                             boolean state)

    - #### enable

          public B enable(SerializationFeature... features)

    - #### disable

          public B disable(SerializationFeature... features)

    - #### configure

          public B configure(SerializationFeature feature,
                             boolean state)

    - #### enable

          public B enable(DeserializationFeature... features)

    - #### disable

          public B disable(DeserializationFeature... features)

    - #### configure

          public B configure(DeserializationFeature feature,
                             boolean state)

    - #### enable

          public B enable(JsonParser.Feature... features)

    - #### disable

          public B disable(JsonParser.Feature... features)

    - #### configure

          public B configure(JsonParser.Feature feature,
                             boolean state)

    - #### enable

          public B enable(JsonGenerator.Feature... features)

    - #### disable

          public B disable(JsonGenerator.Feature... features)

    - #### configure

          public B configure(JsonGenerator.Feature feature,
                             boolean state)

    - #### enable

          public B enable(StreamReadFeature... features)

    - #### disable

          public B disable(StreamReadFeature... features)

    - #### configure

          public B configure(StreamReadFeature feature,
                             boolean state)

    - #### enable

          public B enable(StreamWriteFeature... features)

    - #### disable

          public B disable(StreamWriteFeature... features)

    - #### configure

          public B configure(StreamWriteFeature feature,
                             boolean state)

    - #### addModule

          public B addModule(Module module)

    - #### addModules

          public B addModules(Module... modules)

    - #### addModules

          public B addModules(Iterable<? extends Module> modules)

    - #### findModules

          public static List<Module> findModules()

      Method for locating available methods, using JDK `ServiceLoader` facility, along with module-provided SPI.

      Note that method does not do any caching, so calls should be considered potentially expensive.

    - #### findModules

          public static List<Module> findModules(ClassLoader classLoader)

      Method for locating available methods, using JDK `ServiceLoader` facility, along with module-provided SPI.

      Note that method does not do any caching, so calls should be considered potentially expensive.

    - #### findAndAddModules

          public B findAndAddModules()

      Convenience method that is functionally equivalent to: `addModules(builder.findModules());`

      As with `findModules()`, no caching is done for modules, so care needs to be taken to either create and share a single mapper instance; or to cache introspected set of modules.

    - #### annotationIntrospector

          public B annotationIntrospector(AnnotationIntrospector intr)

      Method for replacing `AnnotationIntrospector` used by the mapper instance to be built. Note that doing this will replace the current introspector, which may lead to unavailability of core Jackson annotations. If you want to combine handling of multiple introspectors, have a look at `AnnotationIntrospectorPair`.
      See Also:
        `AnnotationIntrospectorPair`

    - #### nodeFactory

          public B nodeFactory(JsonNodeFactory f)

    - #### typeFactory

          public B typeFactory(TypeFactory f)

    - #### subtypeResolver

          public B subtypeResolver(SubtypeResolver r)

    - #### visibility

          public B visibility(VisibilityChecker<?> vc)

    - #### visibility

          public B visibility(PropertyAccessor forMethod,
                              JsonAutoDetect.Visibility visibility)

    - #### handlerInstantiator

          public B handlerInstantiator(HandlerInstantiator hi)

      Method for configuring `HandlerInstantiator` to use for creating instances of handlers (such as serializers, deserializers, type and type id resolvers), given a class.
      Parameters:
        `hi` - Instantiator to use; if null, use the default implementation

    - #### propertyNamingStrategy

          public B propertyNamingStrategy(PropertyNamingStrategy s)

    - #### serializerFactory

          public B serializerFactory(SerializerFactory f)

    - #### filterProvider

          public B filterProvider(FilterProvider prov)

      Method for configuring this mapper to use specified `FilterProvider` for mapping Filter Ids to actual filter instances.

      Note that usually it is better to use method in `ObjectWriter`, but sometimes this method is more convenient. For example, some frameworks only allow configuring of ObjectMapper instances and not `ObjectWriter`s.

    - #### defaultPrettyPrinter

          public B defaultPrettyPrinter(PrettyPrinter pp)

    - #### injectableValues

          public B injectableValues(InjectableValues v)

    - #### addHandler

          public B addHandler(DeserializationProblemHandler h)

      Method used for adding a `DeserializationProblemHandler` for this builder, at the head of the list (meaning it has priority over handler registered earlier).

    - #### clearProblemHandlers

          public B clearProblemHandlers()

      Method that may be used to remove all `DeserializationProblemHandler`s added to this builder (if any).

    - #### defaultSetterInfo

          public B defaultSetterInfo(JsonSetter.Value v)

    - #### defaultMergeable

          public B defaultMergeable(Boolean b)

      Method for setting default Setter configuration, regarding things like merging, null-handling; used for properties for which there are no per-type or per-property overrides (via annotations or config overrides).

    - #### defaultLeniency

          public B defaultLeniency(Boolean b)

      Method for setting default Setter configuration, regarding things like merging, null-handling; used for properties for which there are no per-type or per-property overrides (via annotations or config overrides).

    - #### defaultDateFormat

          public B defaultDateFormat(DateFormat df)

      Method for configuring the default `DateFormat` to use when serializing time values as Strings, and deserializing from JSON Strings. If you need per-request configuration, factory methods in `ObjectReader` and `ObjectWriter` instead.

    - #### defaultTimeZone

          public B defaultTimeZone(TimeZone tz)

      Method for overriding default TimeZone to use for formatting. Default value used is UTC (NOT default TimeZone of JVM).

    - #### defaultLocale

          public B defaultLocale(Locale locale)

      Method for overriding default locale to use for formatting. Default value used is `Locale.getDefault()`.

    - #### defaultBase64Variant

          public B defaultBase64Variant(Base64Variant v)

      Method that will configure default `Base64Variant` that `byte[]` serializers and deserializers will use.
      Parameters:
        `v` - Base64 variant to use
      Returns:
        This builder instance to allow call chaining

    - #### serializationInclusion

          public B serializationInclusion(JsonInclude.Include incl)

      Method for configured default property inclusion to use for serialization.
      Parameters:
        `incl` - Default property inclusion to set
      Returns:
        This builder instance to allow call chaining

    - #### defaultPropertyInclusion

          public B defaultPropertyInclusion(JsonInclude.Value incl)

      Method for configured default property inclusion to use for serialization.
      Parameters:
        `incl` - Default property inclusion to set
      Returns:
        This builder instance to allow call chaining
      Since:
        2.11

    - #### addMixIn

          public B addMixIn(Class<?> target,
                            Class<?> mixinSource)

      Method to use for defining mix-in annotations to use for augmenting annotations that classes have, for purpose of configuration serialization and/or deserialization processing. Mixing in is done when introspecting class annotations and properties. Annotations from "mixin" class (and its supertypes) will override annotations that target classes (and their super-types) have.

      Note that standard mixin handler implementations will only allow a single mix-in source class per target, so if there was a previous mix-in defined target it will be cleared. This also means that you can remove mix-in definition by specifying `mixinSource` of `null`

    - #### registerSubtypes

          public B registerSubtypes(Class<?>... subtypes)

    - #### registerSubtypes

          public B registerSubtypes(NamedType... subtypes)

    - #### registerSubtypes

          public B registerSubtypes(Collection<Class<?>> subtypes)

    - #### polymorphicTypeValidator

          public B polymorphicTypeValidator(PolymorphicTypeValidator ptv)

      Method for assigning `PolymorphicTypeValidator` to use for validating subtypes when using Class name - based polymorphic deserialization using annotations (validator used with "Default Typing" is specified by passing in `activateDefaultTyping(PolymorphicTypeValidator)` instead).

      Validator will be called on validating types for which no default databind deserializer, or module-provided deserializer is found: typically this includes "POJO" (aka Bean) types, but not (for example) most container types.

      Since:
        2.10

    - #### activateDefaultTyping

          public B activateDefaultTyping(PolymorphicTypeValidator subtypeValidator)

      Convenience method that is equivalent to calling

            activateDefaultTyping(subtypeValidator, DefaultTyping.OBJECT_AND_NON_CONCRETE);

      NOTE: choice of `PolymorphicTypeValidator` to pass is critical for security as allowing all subtypes can be risky for untrusted content.

    - #### activateDefaultTyping

          public B activateDefaultTyping(PolymorphicTypeValidator subtypeValidator,
                                         ObjectMapper.DefaultTyping dti)

      Convenience method that is equivalent to calling

            activateDefaultTyping(subtypeValidator, dti, JsonTypeInfo.As.WRAPPER_ARRAY);

      NOTE: choice of `PolymorphicTypeValidator` to pass is critical for security as allowing all subtypes can be risky for untrusted content.

    - #### activateDefaultTyping

          public B activateDefaultTyping(PolymorphicTypeValidator subtypeValidator,
                                         ObjectMapper.DefaultTyping applicability,
                                         JsonTypeInfo.As includeAs)

      Method for enabling automatic inclusion of type information, needed for proper deserialization of polymorphic types (unless types have been annotated with `JsonTypeInfo`).

      NOTE: use of `JsonTypeInfo.As#EXTERNAL_PROPERTY` NOT SUPPORTED; and attempts of do so will throw an `IllegalArgumentException` to make this limitation explicit.

      NOTE: choice of `PolymorphicTypeValidator` to pass is critical for security as allowing all subtypes can be risky for untrusted content.

      Parameters:
        `applicability` - Defines kinds of types for which additional type information is added; see `ObjectMapper.DefaultTyping` for more information.

    - #### activateDefaultTypingAsProperty

          public B activateDefaultTypingAsProperty(PolymorphicTypeValidator subtypeValidator,
                                                   ObjectMapper.DefaultTyping applicability,
                                                   String propertyName)

      Method for enabling automatic inclusion of type information -- needed for proper deserialization of polymorphic types (unless types have been annotated with `JsonTypeInfo`) -- using "As.PROPERTY" inclusion mechanism and specified property name to use for inclusion (default being "@class" since default type information always uses class name as type identifier)

      NOTE: choice of `PolymorphicTypeValidator` to pass is critical for security as allowing all subtypes can be risky for untrusted content.

    - #### deactivateDefaultTyping

          public B deactivateDefaultTyping()

      Method for disabling automatic inclusion of type information; if so, only explicitly annotated types (ones with `JsonTypeInfo`) will have additional embedded type information.

    - #### _this

          protected final B _this()

Copyright © 2008–2020 FasterXML. All rights reserved.