blob: 57b794acd59afcc0984ff8bca5d747b109a63e38 [file] [log] [blame]
package org.codehaus.jackson.map.jsontype;
import java.util.Collection;
import org.codehaus.jackson.map.AnnotationIntrospector;
import org.codehaus.jackson.map.MapperConfig;
import org.codehaus.jackson.map.introspect.AnnotatedClass;
import org.codehaus.jackson.map.introspect.AnnotatedMember;
/**
* Helper object used for handling registration on resolving of supertypes
* to subtypes.
*
* @since 1.5
*/
public abstract 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).
*/
public abstract void registerSubtypes(NamedType... types);
public abstract void registerSubtypes(Class<?>... classes);
/**
* Method for finding out all reachable subtypes for a property specified
* by given element (method or field)
*/
public abstract Collection<NamedType> collectAndResolveSubtypes(AnnotatedMember property,
MapperConfig<?> config, AnnotationIntrospector ai);
/**
* Method for finding out all reachable subtypes for given type.
*/
public abstract Collection<NamedType> collectAndResolveSubtypes(AnnotatedClass basetype,
MapperConfig<?> config, AnnotationIntrospector ai);
}