Class StdSubtypeResolver
- java.lang.Object
-
- com.fasterxml.jackson.databind.jsontype.SubtypeResolver
-
- com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver
-
- All Implemented Interfaces:
java.io.Serializable
public class StdSubtypeResolver extends SubtypeResolver implements java.io.Serializable
StandardSubtypeResolver
implementation.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.LinkedHashSet<NamedType>
_registeredSubtypes
-
Constructor Summary
Constructors Modifier Constructor Description StdSubtypeResolver()
protected
StdSubtypeResolver(StdSubtypeResolver src)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
_collectAndResolve(AnnotatedClass annotatedType, NamedType namedType, MapperConfig<?> config, AnnotationIntrospector ai, java.util.HashMap<NamedType,NamedType> collectedSubtypes)
Method called to find subtypes for a specific type (class), using type (class) as the unique key (in case of conflicts).protected void
_collectAndResolveByTypeId(AnnotatedClass annotatedType, NamedType namedType, MapperConfig<?> config, java.util.Set<java.lang.Class<?>> typesHandled, java.util.Map<java.lang.String,NamedType> byName)
Method called to find subtypes for a specific type (class), using type id as the unique key (in case of conflicts).protected java.util.Collection<NamedType>
_combineNamedAndUnnamed(java.lang.Class<?> rawBase, java.util.Set<java.lang.Class<?>> typesHandled, java.util.Map<java.lang.String,NamedType> byName)
Helper method used for merging explicitly named types and handled classes without explicit names.java.util.Collection<NamedType>
collectAndResolveSubtypesByClass(MapperConfig<?> config, AnnotatedClass type)
Method for finding out all reachable subtypes for given type, such that access is by type, typically needed for serialization (converting from type to type name).java.util.Collection<NamedType>
collectAndResolveSubtypesByClass(MapperConfig<?> config, AnnotatedMember property, JavaType baseType)
Method for finding out all reachable subtypes for a property specified by given element (method or field), such that access is by type, typically needed for serialization (converting from type to type name).java.util.Collection<NamedType>
collectAndResolveSubtypesByTypeId(MapperConfig<?> config, AnnotatedClass baseType)
Method for finding out all reachable subtypes for given type, such that access is by type id, typically needed for deserialization (converting from type id to type).java.util.Collection<NamedType>
collectAndResolveSubtypesByTypeId(MapperConfig<?> config, AnnotatedMember property, JavaType baseType)
Method for finding out all reachable subtypes for a property specified by given element (method or field), such that access is by type id, typically needed for deserialization (converting from type id to type).SubtypeResolver
copy()
Method called byObjectMapper.copy()
to make sure thatSubtypeResolver
instances used by two independent mappers can not cause thread-safety issues: if resolver is immutable, it may returnthis
, but if not, it should create a copy with same configuration and return that instead.void
registerSubtypes(NamedType... types)
Method for registering specified subtypes (possibly including type names); for type entries without name, non-qualified class name as used as name (unless overridden by annotation).void
registerSubtypes(java.lang.Class<?>... classes)
void
registerSubtypes(java.util.Collection<java.lang.Class<?>> subtypes)
-
Methods inherited from class com.fasterxml.jackson.databind.jsontype.SubtypeResolver
collectAndResolveSubtypes, collectAndResolveSubtypes
-
-
-
-
Field Detail
-
_registeredSubtypes
protected java.util.LinkedHashSet<NamedType> _registeredSubtypes
-
-
Constructor Detail
-
StdSubtypeResolver
public StdSubtypeResolver()
-
StdSubtypeResolver
protected StdSubtypeResolver(StdSubtypeResolver src)
-
-
Method Detail
-
copy
public SubtypeResolver copy()
Description copied from class:SubtypeResolver
Method called byObjectMapper.copy()
to make sure thatSubtypeResolver
instances used by two independent mappers can not cause thread-safety issues: if resolver is immutable, it may returnthis
, but if not, it should create a copy with same configuration and return that instead.- Overrides:
copy
in classSubtypeResolver
- Returns:
- Either new instance with same configuration as this one (if instances are mutable), or this instance (if immutable)
-
registerSubtypes
public void registerSubtypes(NamedType... types)
Description copied from class:SubtypeResolver
Method for registering specified subtypes (possibly including type names); for type entries without name, non-qualified class name as used as name (unless overridden by annotation).- Specified by:
registerSubtypes
in classSubtypeResolver
-
registerSubtypes
public void registerSubtypes(java.lang.Class<?>... classes)
- Specified by:
registerSubtypes
in classSubtypeResolver
-
registerSubtypes
public void registerSubtypes(java.util.Collection<java.lang.Class<?>> subtypes)
- Specified by:
registerSubtypes
in classSubtypeResolver
-
collectAndResolveSubtypesByClass
public java.util.Collection<NamedType> collectAndResolveSubtypesByClass(MapperConfig<?> config, AnnotatedMember property, JavaType baseType)
Description copied from class:SubtypeResolver
Method for finding out all reachable subtypes for a property specified by given element (method or field), such that access is by type, typically needed for serialization (converting from type to type name).- Overrides:
collectAndResolveSubtypesByClass
in classSubtypeResolver
baseType
- Effective property base type to use; may differ from actual type of property; for structured types it is content (value) type and NOT structured type.
-
collectAndResolveSubtypesByClass
public java.util.Collection<NamedType> collectAndResolveSubtypesByClass(MapperConfig<?> config, AnnotatedClass type)
Description copied from class:SubtypeResolver
Method for finding out all reachable subtypes for given type, such that access is by type, typically needed for serialization (converting from type to type name).- Overrides:
collectAndResolveSubtypesByClass
in classSubtypeResolver
type
- Effective property base type to use; may differ from actual type of property; for structured types it is content (value) type and NOT structured type.
-
collectAndResolveSubtypesByTypeId
public java.util.Collection<NamedType> collectAndResolveSubtypesByTypeId(MapperConfig<?> config, AnnotatedMember property, JavaType baseType)
Description copied from class:SubtypeResolver
Method for finding out all reachable subtypes for a property specified by given element (method or field), such that access is by type id, typically needed for deserialization (converting from type id to type).- Overrides:
collectAndResolveSubtypesByTypeId
in classSubtypeResolver
baseType
- Effective property base type to use; may differ from actual type of property; for structured types it is content (value) type and NOT structured type.
-
collectAndResolveSubtypesByTypeId
public java.util.Collection<NamedType> collectAndResolveSubtypesByTypeId(MapperConfig<?> config, AnnotatedClass baseType)
Description copied from class:SubtypeResolver
Method for finding out all reachable subtypes for given type, such that access is by type id, typically needed for deserialization (converting from type id to type).- Overrides:
collectAndResolveSubtypesByTypeId
in classSubtypeResolver
baseType
- Effective property base type to use; may differ from actual type of property; for structured types it is content (value) type and NOT structured type.
-
_collectAndResolve
protected void _collectAndResolve(AnnotatedClass annotatedType, NamedType namedType, MapperConfig<?> config, AnnotationIntrospector ai, java.util.HashMap<NamedType,NamedType> collectedSubtypes)
Method called to find subtypes for a specific type (class), using type (class) as the unique key (in case of conflicts).
-
_collectAndResolveByTypeId
protected void _collectAndResolveByTypeId(AnnotatedClass annotatedType, NamedType namedType, MapperConfig<?> config, java.util.Set<java.lang.Class<?>> typesHandled, java.util.Map<java.lang.String,NamedType> byName)
Method called to find subtypes for a specific type (class), using type id as the unique key (in case of conflicts).
-
_combineNamedAndUnnamed
protected java.util.Collection<NamedType> _combineNamedAndUnnamed(java.lang.Class<?> rawBase, java.util.Set<java.lang.Class<?>> typesHandled, java.util.Map<java.lang.String,NamedType> byName)
Helper method used for merging explicitly named types and handled classes without explicit names.
-
-