Package com.fasterxml.jackson.databind
Class DatabindContext
- java.lang.Object
-
- com.fasterxml.jackson.databind.DatabindContext
-
- Direct Known Subclasses:
DeserializationContext
,SerializerProvider
public abstract class DatabindContext extends java.lang.Object
Shared base class forDeserializationContext
andSerializerProvider
, 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 Description DatabindContext()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected java.lang.String
_colonConcat(java.lang.String msgBase, java.lang.String extra)
protected java.lang.String
_desc(java.lang.String desc)
protected java.lang.String
_format(java.lang.String msg, java.lang.Object... msgArgs)
protected java.lang.String
_quotedString(java.lang.String desc)
protected <T> T
_throwNotASubtype(JavaType baseType, java.lang.String subType)
protected <T> T
_throwSubtypeClassNotAllowed(JavaType baseType, java.lang.String subType, PolymorphicTypeValidator ptv)
protected <T> T
_throwSubtypeNameNotAllowed(JavaType baseType, java.lang.String subType, PolymorphicTypeValidator ptv)
protected java.lang.String
_truncate(java.lang.String desc)
abstract boolean
canOverrideAccessModifiers()
Convenience method for accessing serialization view in use (if any); equivalent to:abstract JavaType
constructSpecializedType(JavaType baseType, java.lang.Class<?> subclass)
Convenience method for constructing subtypes, retaining generic type parameter (if any).JavaType
constructType(java.lang.reflect.Type type)
Convenience method for constructingJavaType
for given JDK type (usuallyClass
)Converter<java.lang.Object,java.lang.Object>
converterInstance(Annotated annotated, java.lang.Object converterDef)
Helper method to use to construct aConverter
, given a definition that may be either actual converter instance, or Class for instantiating one.abstract java.lang.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 java.lang.Object
getAttribute(java.lang.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 com.fasterxml.jackson.annotation.JsonFormat.Value
getDefaultPropertyFormat(java.lang.Class<?> baseType)
abstract java.util.Locale
getLocale()
abstract java.util.TimeZone
getTimeZone()
abstract TypeFactory
getTypeFactory()
protected abstract JsonMappingException
invalidTypeIdException(JavaType baseType, java.lang.String typeId, java.lang.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.com.fasterxml.jackson.annotation.ObjectIdGenerator<?>
objectIdGeneratorInstance(Annotated annotated, ObjectIdInfo objectIdInfo)
com.fasterxml.jackson.annotation.ObjectIdResolver
objectIdResolverInstance(Annotated annotated, ObjectIdInfo objectIdInfo)
abstract <T> T
reportBadDefinition(JavaType type, java.lang.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 aInvalidDefinitionException
.<T> T
reportBadDefinition(java.lang.Class<?> type, java.lang.String msg)
JavaType
resolveAndValidateSubType(JavaType baseType, java.lang.String subClass, PolymorphicTypeValidator ptv)
Lookup method similar toresolveSubType(com.fasterxml.jackson.databind.JavaType, java.lang.String)
but one that also validates that resulting subtype is valid according to givenPolymorphicTypeValidator
.JavaType
resolveSubType(JavaType baseType, java.lang.String subClassName)
Lookup method called when code needs to resolve class name from input; usually simple lookup.abstract DatabindContext
setAttribute(java.lang.Object key, java.lang.Object value)
Method for setting per-call value of given attribute.
-
-
-
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 java.lang.Class<?> getActiveView()
Accessor for locating currently active view, if any; returns null if no view has been set.
-
getLocale
public abstract java.util.Locale getLocale()
- Since:
- 2.6
-
getTimeZone
public abstract java.util.TimeZone getTimeZone()
- Since:
- 2.6
-
getDefaultPropertyFormat
public abstract com.fasterxml.jackson.annotation.JsonFormat.Value getDefaultPropertyFormat(java.lang.Class<?> baseType)
- Since:
- 2.7
-
getAttribute
public abstract java.lang.Object getAttribute(java.lang.Object key)
Method for accessing attributes available in this context. Per-call attributes have highest precedence; attributes set viaObjectReader
orObjectWriter
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(java.lang.Object key, java.lang.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 setvalue
- Value to set attribute to- Returns:
- This context object, to allow chaining
- Since:
- 2.3
-
constructType
public JavaType constructType(java.lang.reflect.Type type)
Convenience method for constructingJavaType
for given JDK type (usuallyClass
)
-
constructSpecializedType
public abstract JavaType constructSpecializedType(JavaType baseType, java.lang.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, java.lang.String subClassName) throws JsonMappingException
Lookup method called when code needs to resolve class name from input; usually simple lookup. Note that unlikeresolveAndValidateSubType(com.fasterxml.jackson.databind.JavaType, java.lang.String, com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator)
this method DOES NOT validate subtype against configuredPolymorphicTypeValidator
: usually because such check has already been made.- Throws:
JsonMappingException
- Since:
- 2.9
-
resolveAndValidateSubType
public JavaType resolveAndValidateSubType(JavaType baseType, java.lang.String subClass, PolymorphicTypeValidator ptv) throws JsonMappingException
Lookup method similar toresolveSubType(com.fasterxml.jackson.databind.JavaType, java.lang.String)
but one that also validates that resulting subtype is valid according to givenPolymorphicTypeValidator
.- Throws:
JsonMappingException
- Since:
- 2.10
-
_throwNotASubtype
protected <T> T _throwNotASubtype(JavaType baseType, java.lang.String subType) throws JsonMappingException
- Throws:
JsonMappingException
-
_throwSubtypeNameNotAllowed
protected <T> T _throwSubtypeNameNotAllowed(JavaType baseType, java.lang.String subType, PolymorphicTypeValidator ptv) throws JsonMappingException
- Throws:
JsonMappingException
-
_throwSubtypeClassNotAllowed
protected <T> T _throwSubtypeClassNotAllowed(JavaType baseType, java.lang.String subType, PolymorphicTypeValidator ptv) throws JsonMappingException
- Throws:
JsonMappingException
-
invalidTypeIdException
protected abstract JsonMappingException invalidTypeIdException(JavaType baseType, java.lang.String typeId, java.lang.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<java.lang.Object,java.lang.Object> converterInstance(Annotated annotated, java.lang.Object converterDef) throws JsonMappingException
Helper method to use to construct aConverter
, 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, java.lang.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 aInvalidDefinitionException
.- Throws:
JsonMappingException
- Since:
- 2.9
-
reportBadDefinition
public <T> T reportBadDefinition(java.lang.Class<?> type, java.lang.String msg) throws JsonMappingException
- Throws:
JsonMappingException
- Since:
- 2.9
-
_format
protected final java.lang.String _format(java.lang.String msg, java.lang.Object... msgArgs)
- Since:
- 2.9
-
_truncate
protected final java.lang.String _truncate(java.lang.String desc)
- Since:
- 2.9
-
_quotedString
protected java.lang.String _quotedString(java.lang.String desc)
- Since:
- 2.9
-
_colonConcat
protected java.lang.String _colonConcat(java.lang.String msgBase, java.lang.String extra)
- Since:
- 2.9
-
_desc
protected java.lang.String _desc(java.lang.String desc)
- Since:
- 2.9
-
-