public class SimpleAbstractTypeResolver extends AbstractTypeResolver implements java.io.Serializable
AbstractTypeResolverimplementation, which is based on static mapping from abstract super types into sub types (concrete or abstract), but retaining generic parameterization. Can be used for things like specifying which implementation of
SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver(); // To make all properties declared as Collection, List, to LinkedList resolver.addMapping(Collection.class, LinkedList.class); resolver.addMapping(List.class, LinkedList.class);Can also be used as an alternative to per-class annotations when defining concrete implementations; however, only works with abstract types (since this is only called for abstract types)
|Constructor and Description|
|Modifier and Type||Method and Description|
Method for adding a mapping from super type to specific subtype.
Try to locate a subtype for given abstract type, to either resolve to a concrete type, or at least to a more-specific (and hopefully supported) abstract type, one which may have registered deserializers.
Method called to try to resolve an abstract type into concrete type (usually for purposes of deserializing), when no concrete implementation was found.
public <T> SimpleAbstractTypeResolver addMapping(java.lang.Class<T> superType, java.lang.Class<? extends T> subType)
superTypeis abstract (since resolver is never called for concrete classes); as well as to ensure that there is supertype/subtype relationship (to ensure there won't be cycles during resolution).
superType- Abstract type to resolve
subType- Sub-class of superType, to map superTo to
public JavaType findTypeMapping(DeserializationConfig config, JavaType type)
Note that this method does not necessarily have to do full resolution of bindings; that is, it is legal to return type that could be further resolved: caller is expected to keep calling this method on registered resolvers, until a concrete type is located.
@Deprecated public JavaType resolveAbstractType(DeserializationConfig config, JavaType type)
AbstractTypeResolver.resolveAbstractType(DeserializationConfig, BeanDescription); obsoleted in 2.7
public JavaType resolveAbstractType(DeserializationConfig config, BeanDescription typeDesc)
config- Configuration in use; should always be of type
typeDesc- Description of the POJO type to resolve
"Copyright © 2010 - 2018 Adobe Systems Incorporated. All Rights Reserved"