com.fasterxml.jackson.databind

## Class DatabindContext

- java.lang.Object
- - com.fasterxml.jackson.databind.DatabindContext

Direct Known Subclasses:
  DeserializationContext, SerializerProvider

    public abstract class DatabindContext
    extends Object

Shared base class for `DeserializationContext` and `SerializerProvider`, context objects passed through data-binding process. Designed so that some of implementations can rely on shared aspects like access to secondary contextual objects like type factories or handler instantiators.

Since:
  2.2

### Constructor Summary

Constructors
Constructor and Description
`DatabindContext()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected String` `_colonConcat(String msgBase, String extra)`
`protected String` `_desc(String desc)`
`protected String` `_format(String msg, Object... msgArgs)`
`protected String` `_quotedString(String desc)`
`protected <T> T` `_throwNotASubtype(JavaType baseType, String subType)`
`protected <T> T` `_throwSubtypeClassNotAllowed(JavaType baseType, String subType, PolymorphicTypeValidator ptv)`
`protected <T> T` `_throwSubtypeNameNotAllowed(JavaType baseType, String subType, PolymorphicTypeValidator ptv)`
`protected String` `_truncate(String desc)`
`abstract boolean` `canOverrideAccessModifiers()` Convenience method for accessing serialization view in use (if any); equivalent to:
`abstract JavaType` `constructSpecializedType(JavaType baseType, Class<?> subclass)` Convenience method for constructing subtypes, retaining generic type parameter (if any).
`JavaType` `constructType(Type type)` Convenience method for constructing `JavaType` for given JDK type (usually `Class`)
`Converter<Object,Object>` `converterInstance(Annotated annotated, Object converterDef)` Helper method to use to construct a `Converter`, given a definition that may be either actual converter instance, or Class for instantiating one.
`abstract Class<?>` `getActiveView()` Accessor for locating currently active view, if any; returns null if no view has been set.
`abstract AnnotationIntrospector` `getAnnotationIntrospector()` Convenience method for accessing serialization view in use (if any); equivalent to:
`abstract Object` `getAttribute(Object key)` Method for accessing attributes available in this context.
`abstract MapperConfig<?>` `getConfig()` Accessor to currently active configuration (both per-request configs and per-mapper config).
`abstract JsonFormat.Value` `getDefaultPropertyFormat(Class<?> baseType)`
`abstract Locale` `getLocale()`
`abstract TimeZone` `getTimeZone()`
`abstract TypeFactory` `getTypeFactory()`
`protected abstract JsonMappingException` `invalidTypeIdException(JavaType baseType, String typeId, String extraDesc)` Helper method for constructing exception to indicate that given type id could not be resolved to a valid subtype of specified base type.
`abstract boolean` `isEnabled(MapperFeature feature)` Convenience method for checking whether specified serialization feature is enabled or not.
`ObjectIdGenerator<?>` `objectIdGeneratorInstance(Annotated annotated, ObjectIdInfo objectIdInfo)`
`ObjectIdResolver` `objectIdResolverInstance(Annotated annotated, ObjectIdInfo objectIdInfo)`
`<T> T` `reportBadDefinition(Class<?> type, String msg)`
`abstract <T> T` `reportBadDefinition(JavaType type, String msg)` Helper method called to indicate a generic problem that stems from type definition(s), not input data, or input/output state; typically this means throwing a `InvalidDefinitionException`.
`JavaType` `resolveAndValidateSubType(JavaType baseType, String subClass, PolymorphicTypeValidator ptv)` Lookup method similar to `resolveSubType(com.fasterxml.jackson.databind.JavaType, java.lang.String)` but one that also validates that resulting subtype is valid according to given `PolymorphicTypeValidator`.
`JavaType` `resolveSubType(JavaType baseType, String subClassName)` Lookup method called when code needs to resolve class name from input; usually simple lookup.
`abstract DatabindContext` `setAttribute(Object key, Object value)` Method for setting per-call value of given attribute.

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

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

### Constructor Detail

#### DatabindContext

    public DatabindContext()

### Method Detail

#### getConfig

    public abstract MapperConfig<?> getConfig()

Accessor to currently active configuration (both per-request configs and per-mapper config).

#### getAnnotationIntrospector

    public abstract AnnotationIntrospector getAnnotationIntrospector()

Convenience method for accessing serialization view in use (if any); equivalent to:

       getConfig().getAnnotationIntrospector();

#### isEnabled

    public abstract boolean isEnabled(MapperFeature feature)

Convenience method for checking whether specified serialization feature is enabled or not. Shortcut for:

      getConfig().isEnabled(feature);

#### canOverrideAccessModifiers

    public abstract boolean canOverrideAccessModifiers()

Convenience method for accessing serialization view in use (if any); equivalent to:

       getConfig().canOverrideAccessModifiers();

#### getActiveView

    public abstract Class<?> getActiveView()

Accessor for locating currently active view, if any; returns null if no view has been set.

#### getLocale

    public abstract Locale getLocale()

Since:
  2.6

#### getTimeZone

    public abstract TimeZone getTimeZone()

Since:
  2.6

#### getDefaultPropertyFormat

    public abstract JsonFormat.Value getDefaultPropertyFormat(Class<?> baseType)

Since:
  2.7

#### getAttribute

    public abstract Object getAttribute(Object key)

Method for accessing attributes available in this context. Per-call attributes have highest precedence; attributes set via `ObjectReader` or `ObjectWriter` have lower precedence.

Parameters:
  `key` - Key of the attribute to get
Returns:
  Value of the attribute, if any; null otherwise
Since:
  2.3

#### setAttribute

    public abstract DatabindContext setAttribute(Object key,
                                                 Object value)

Method for setting per-call value of given attribute. This will override any previously defined value for the attribute within this context.

Parameters:
  `key` - Key of the attribute to set
  `value` - Value to set attribute to
Returns:
  This context object, to allow chaining
Since:
  2.3

#### constructType

    public JavaType constructType(Type type)

Convenience method for constructing `JavaType` for given JDK type (usually `Class`)

#### constructSpecializedType

    public abstract JavaType constructSpecializedType(JavaType baseType,
                                                      Class<?> subclass)

Convenience method for constructing subtypes, retaining generic type parameter (if any).

Note: since 2.11 handling has varied a bit across serialization, deserialization.

#### resolveSubType

    public JavaType resolveSubType(JavaType baseType,
                                   String subClassName)
                            throws JsonMappingException

Lookup method called when code needs to resolve class name from input; usually simple lookup. Note that unlike `resolveAndValidateSubType(com.fasterxml.jackson.databind.JavaType, java.lang.String, com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator)` this method DOES NOT validate subtype against configured `PolymorphicTypeValidator`: usually because such check has already been made.

Throws:
  `JsonMappingException`
Since:
  2.9

#### resolveAndValidateSubType

    public JavaType resolveAndValidateSubType(JavaType baseType,
                                              String subClass,
                                              PolymorphicTypeValidator ptv)
                                       throws JsonMappingException

Lookup method similar to `resolveSubType(com.fasterxml.jackson.databind.JavaType, java.lang.String)` but one that also validates that resulting subtype is valid according to given `PolymorphicTypeValidator`.

Throws:
  `JsonMappingException`
Since:
  2.10

#### _throwNotASubtype

    protected <T> T _throwNotASubtype(JavaType baseType,
                                      String subType)
                               throws JsonMappingException

Throws:
  `JsonMappingException`

#### _throwSubtypeNameNotAllowed

    protected <T> T _throwSubtypeNameNotAllowed(JavaType baseType,
                                                String subType,
                                                PolymorphicTypeValidator ptv)
                                         throws JsonMappingException

Throws:
  `JsonMappingException`

#### _throwSubtypeClassNotAllowed

    protected <T> T _throwSubtypeClassNotAllowed(JavaType baseType,
                                                 String subType,
                                                 PolymorphicTypeValidator ptv)
                                          throws JsonMappingException

Throws:
  `JsonMappingException`

#### invalidTypeIdException

    protected abstract JsonMappingException invalidTypeIdException(JavaType baseType,
                                                                   String typeId,
                                                                   String extraDesc)

Helper method for constructing exception to indicate that given type id could not be resolved to a valid subtype of specified base type. Most commonly called during polymorphic deserialization.

Note that most of the time this method should NOT be called directly: instead, method `handleUnknownTypeId()` should be called which will call this method if necessary.

Since:
  2.9

#### getTypeFactory

    public abstract TypeFactory getTypeFactory()

#### objectIdGeneratorInstance

    public ObjectIdGenerator<?> objectIdGeneratorInstance(Annotated annotated,
                                                          ObjectIdInfo objectIdInfo)
                                                   throws JsonMappingException

Throws:
  `JsonMappingException`

#### objectIdResolverInstance

    public ObjectIdResolver objectIdResolverInstance(Annotated annotated,
                                                     ObjectIdInfo objectIdInfo)

#### converterInstance

    public Converter<Object,Object> converterInstance(Annotated annotated,
                                                      Object converterDef)
                                               throws JsonMappingException

Helper method to use to construct a `Converter`, given a definition that may be either actual converter instance, or Class for instantiating one.

Throws:
  `JsonMappingException`
Since:
  2.2

#### reportBadDefinition

    public abstract <T> T reportBadDefinition(JavaType type,
                                              String msg)
                                       throws JsonMappingException

Helper method called to indicate a generic problem that stems from type definition(s), not input data, or input/output state; typically this means throwing a `InvalidDefinitionException`.

Throws:
  `JsonMappingException`
Since:
  2.9

#### reportBadDefinition

    public <T> T reportBadDefinition(Class<?> type,
                                     String msg)
                              throws JsonMappingException

Throws:
  `JsonMappingException`
Since:
  2.9

#### _format

    protected final String _format(String msg,
                                   Object... msgArgs)

Since:
  2.9

#### _truncate

    protected final String _truncate(String desc)

Since:
  2.9

#### _quotedString

    protected String _quotedString(String desc)

Since:
  2.9

#### _colonConcat

    protected String _colonConcat(String msgBase,
                                  String extra)

Since:
  2.9

#### _desc

    protected String _desc(String desc)

Since:
  2.9