Package com.fasterxml.jackson.databind.jsontype
Package that contains interfaces that define how to implement
functionality for dynamically resolving type during deserialization.
This is needed for complete handling of polymorphic types, where
actual type cannot be determined statically (declared type is
a supertype of actual polymorphic serialized types).
-
Interface Summary Interface Description TypeIdResolver Interface that defines standard API for converting types to type identifiers and vice versa.TypeResolverBuilder<T extends TypeResolverBuilder<T>> Interface that defines builders that are configured based on annotations (likeJsonTypeInfo
or JAXB annotations), and produce type serializers and deserializers used for handling type information embedded in JSON to allow for safe polymorphic type handling. -
Class Summary Class Description BasicPolymorphicTypeValidator StandardBasicPolymorphicTypeValidator
implementation that users may want to use for constructing validators based on simple class hierarchy and/or name patterns to allow and/or deny certain subtypes.BasicPolymorphicTypeValidator.Builder Builder class for configuring and constructing immutableBasicPolymorphicTypeValidator
instances.BasicPolymorphicTypeValidator.NameMatcher General matcher interface (predicate) for validating unresolved subclass class name.BasicPolymorphicTypeValidator.TypeMatcher General matcher interface (predicate) for validating class values (base type or resolved subtype)DefaultBaseTypeLimitingValidator PolymorphicTypeValidator
that will only allow polymorphic handling if the base type is NOT one of potential dangerous base types (seeDefaultBaseTypeLimitingValidator.isUnsafeBaseType(com.fasterxml.jackson.databind.cfg.MapperConfig<?>, com.fasterxml.jackson.databind.JavaType)
for specific list of such base types).NamedType Simple container class for types with optional logical name, used as external identifierPolymorphicTypeValidator Interface for classes that handle validation of class-name - based subtypes used with Polymorphic Deserialization: both via "default typing" and explicit@JsonTypeInfo
when using Java Class name as Type Identifier.PolymorphicTypeValidator.Base Shared base class with partial implementation (with all validation calls returningPolymorphicTypeValidator.Validity.INDETERMINATE
) and convenience methods for indicating failure reasons.SubtypeResolver Helper object used for handling registration on resolving of super-types to sub-types.TypeDeserializer Interface for deserializing type information from JSON content, to type-safely deserialize data into correct polymorphic instance (when type inclusion has been enabled for type handled).TypeSerializer Interface for serializing type information regarding instances of specified base type (super class), so that exact subtype can be properly deserialized later on. -
Enum Summary Enum Description PolymorphicTypeValidator.Validity Definition of return values to indicate determination regarding validity.