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 Details

    • DatabindContext

      public DatabindContext()
  • Method Details

    • 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 Mapper feature is enabled or not. Shortcut for:
        getConfig().isEnabled(feature);
      
    • isEnabled

      public abstract boolean isEnabled(DatatypeFeature feature)
      Method for checking whether specified datatype feature is enabled or not.
      Since:
      2.14
    • getDatatypeFeatures

      public abstract DatatypeFeatures getDatatypeFeatures()
      Since:
      2.15
    • 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 com.fasterxml.jackson.annotation.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(JavaType, String, 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(JavaType, 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 com.fasterxml.jackson.annotation.ObjectIdGenerator<?> objectIdGeneratorInstance(Annotated annotated, ObjectIdInfo objectIdInfo) throws JsonMappingException
      Throws:
      JsonMappingException
    • objectIdResolverInstance

      public com.fasterxml.jackson.annotation.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