public abstract class DatabindContext extends Object
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.Constructor and Description |
---|
DatabindContext() |
Modifier and Type | Method and Description |
---|---|
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:
getConfig().canOverrideAccessModifiers();
|
abstract JavaType |
constructSpecializedType(JavaType baseType,
Class<?> subclass)
Convenience method for constructing subtypes, retaining generic
type parameter (if any).
|
JavaType |
constructType(Type type)
|
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:
getConfig().getAnnotationIntrospector();
|
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 DatatypeFeatures |
getDatatypeFeatures() |
abstract com.fasterxml.jackson.annotation.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(DatatypeFeature feature)
Method for checking whether specified datatype
feature is enabled or not.
|
abstract boolean |
isEnabled(MapperFeature feature)
Convenience method for checking whether specified Mapper
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) |
<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 . |
abstract <T> T |
reportBadTypeDefinition(BeanDescription bean,
String msg,
Object... msgArgs) |
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.
|
public abstract MapperConfig<?> getConfig()
public abstract AnnotationIntrospector getAnnotationIntrospector()
getConfig().getAnnotationIntrospector();
public abstract boolean isEnabled(MapperFeature feature)
getConfig().isEnabled(feature);
public abstract boolean isEnabled(DatatypeFeature feature)
public abstract DatatypeFeatures getDatatypeFeatures()
public abstract boolean canOverrideAccessModifiers()
getConfig().canOverrideAccessModifiers();
public abstract Class<?> getActiveView()
public abstract Locale getLocale()
public abstract TimeZone getTimeZone()
public abstract com.fasterxml.jackson.annotation.JsonFormat.Value getDefaultPropertyFormat(Class<?> baseType)
public abstract Object getAttribute(Object key)
ObjectReader
or ObjectWriter
have lower
precedence.key
- Key of the attribute to getpublic abstract DatabindContext setAttribute(Object key, Object value)
key
- Key of the attribute to setvalue
- Value to set attribute topublic abstract JavaType constructSpecializedType(JavaType baseType, Class<?> subclass)
Note: since 2.11 handling has varied a bit across serialization, deserialization.
public JavaType resolveSubType(JavaType baseType, String subClassName) throws JsonMappingException
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.JsonMappingException
public JavaType resolveAndValidateSubType(JavaType baseType, String subClass, PolymorphicTypeValidator ptv) throws JsonMappingException
resolveSubType(com.fasterxml.jackson.databind.JavaType, java.lang.String)
but one that also validates
that resulting subtype is valid according to given PolymorphicTypeValidator
.JsonMappingException
protected <T> T _throwNotASubtype(JavaType baseType, String subType) throws JsonMappingException
JsonMappingException
protected <T> T _throwSubtypeNameNotAllowed(JavaType baseType, String subType, PolymorphicTypeValidator ptv) throws JsonMappingException
JsonMappingException
protected <T> T _throwSubtypeClassNotAllowed(JavaType baseType, String subType, PolymorphicTypeValidator ptv) throws JsonMappingException
JsonMappingException
protected abstract JsonMappingException invalidTypeIdException(JavaType baseType, String typeId, String extraDesc)
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.
public abstract TypeFactory getTypeFactory()
public com.fasterxml.jackson.annotation.ObjectIdGenerator<?> objectIdGeneratorInstance(Annotated annotated, ObjectIdInfo objectIdInfo) throws JsonMappingException
JsonMappingException
public com.fasterxml.jackson.annotation.ObjectIdResolver objectIdResolverInstance(Annotated annotated, ObjectIdInfo objectIdInfo)
public Converter<Object,Object> converterInstance(Annotated annotated, Object converterDef) throws JsonMappingException
Converter
, given a definition
that may be either actual converter instance, or Class for instantiating one.JsonMappingException
public abstract <T> T reportBadDefinition(JavaType type, String msg) throws JsonMappingException
InvalidDefinitionException
.JsonMappingException
public <T> T reportBadDefinition(Class<?> type, String msg) throws JsonMappingException
JsonMappingException
public abstract <T> T reportBadTypeDefinition(BeanDescription bean, String msg, Object... msgArgs) throws JsonMappingException
JsonMappingException
Copyright © 2008–2024 FasterXML. All rights reserved.