Class AnnotatedClass
- java.lang.Object
-
- org.codehaus.jackson.map.introspect.Annotated
-
- org.codehaus.jackson.map.introspect.AnnotatedClass
-
public final class AnnotatedClass extends Annotated
-
-
Field Summary
Fields Modifier and Type Field Description protected AnnotationIntrospector
_annotationIntrospector
Filter used to determine which annotations to gather; used to optimize things so that unnecessary annotations are ignored.protected Class<?>
_class
Class for which annotations apply, and that owns other components (constructors, methods)protected AnnotationMap
_classAnnotations
Combined list of Jackson annotations that the class has, including inheritable ones from super classes and interfacesprotected List<AnnotatedConstructor>
_constructors
Single argument constructors the class has, if any.protected List<AnnotatedMethod>
_creatorMethods
Single argument static methods that might be usable as factory methodsprotected AnnotatedConstructor
_defaultConstructor
Default constructor of the annotated class, if it has one.protected List<AnnotatedField>
_fields
Member fields of interest: ones that are either public, or have at least one annotation.protected AnnotatedMethodMap
_memberMethods
Member methods of interest; for now ones with 0 or 1 arguments (just optimization, since others won't be used now)protected ClassIntrospector.MixInResolver
_mixInResolver
Object that knows mapping of mix-in classes (ones that contain annotations to add) with their target classes (ones that get these additional annotations "mixed in").protected Class<?>
_primaryMixIn
Primary mix-in class; one to use for the annotated class itself.protected List<Class<?>>
_superTypes
Ordered set of super classes and interfaces of the class itself: included in order of precedence
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
_addClassMixIns(AnnotationMap annotations, Class<?> toMask)
Helper method for adding any mix-in annotations specified class might have.protected void
_addClassMixIns(AnnotationMap annotations, Class<?> toMask, Class<?> mixin)
protected void
_addConstructorMixIns(Class<?> mixin)
protected void
_addFactoryMixIns(Class<?> mixin)
protected void
_addFieldMixIns(Class<?> targetClass, Class<?> mixInCls, Map<String,AnnotatedField> fields)
Method called to add field mix-ins from given mix-in class (and its fields) into already collected actual fields (from introspected classes and their super-classes)protected void
_addFields(Map<String,AnnotatedField> fields, Class<?> c)
protected void
_addMemberMethods(Class<?> cls, MethodFilter methodFilter, AnnotatedMethodMap methods, Class<?> mixInCls, AnnotatedMethodMap mixIns)
protected void
_addMethodMixIns(Class<?> targetClass, MethodFilter methodFilter, AnnotatedMethodMap methods, Class<?> mixInCls, AnnotatedMethodMap mixIns)
protected void
_addMixOvers(Constructor<?> mixin, AnnotatedConstructor target, boolean addParamAnnotations)
protected void
_addMixOvers(Method mixin, AnnotatedMethod target, boolean addParamAnnotations)
protected void
_addMixUnders(Method src, AnnotatedMethod target)
Method that will add annotations from specified source method to target method, but only if target does not yet have them.protected AnnotationMap
_collectRelevantAnnotations(Annotation[] anns)
protected AnnotationMap[]
_collectRelevantAnnotations(Annotation[][] anns)
protected AnnotatedConstructor
_constructConstructor(Constructor<?> ctor, boolean defaultCtor)
protected AnnotatedMethod
_constructCreatorMethod(Method m)
protected AnnotatedField
_constructField(Field f)
protected AnnotatedMethod
_constructMethod(Method m)
protected boolean
_isIncludableMethod(Method m, MethodFilter filter)
static AnnotatedClass
construct(Class<?> cls, AnnotationIntrospector aintr, ClassIntrospector.MixInResolver mir)
Factory method that instantiates an instance.static AnnotatedClass
constructWithoutSuperTypes(Class<?> cls, AnnotationIntrospector aintr, ClassIntrospector.MixInResolver mir)
Method similar toconstruct(java.lang.Class<?>, org.codehaus.jackson.map.AnnotationIntrospector, org.codehaus.jackson.map.ClassIntrospector.MixInResolver)
, but that will NOT include information from supertypes; only class itself and any direct mix-ins it may have.Iterable<AnnotatedField>
fields()
AnnotatedMethod
findMethod(String name, Class<?>[] paramTypes)
protected AnnotationMap
getAllAnnotations()
Class<?>
getAnnotated()
Method that can be used to find actual JDK element that this instance represents.<A extends Annotation>
AgetAnnotation(Class<A> acls)
Annotations
getAnnotations()
List<AnnotatedConstructor>
getConstructors()
AnnotatedConstructor
getDefaultConstructor()
int
getFieldCount()
Type
getGenericType()
Full generic type of the annotated element; definition of what exactly this means depends on sub-class.int
getMemberMethodCount()
int
getModifiers()
String
getName()
Class<?>
getRawType()
"Raw" type (type-erased class) of the annotated element; definition of what exactly this means depends on sub-class.List<AnnotatedMethod>
getStaticMethods()
boolean
hasAnnotations()
Iterable<AnnotatedMethod>
memberMethods()
void
resolveClassAnnotations()
Initialization method that will recursively collect Jackson annotations for this class and all super classes and interfaces.void
resolveCreators(boolean includeAll)
Initialization method that will find out all constructors and potential static factory methods the class has.void
resolveFields()
Method that will collect all member (non-static) fields that are either public, or have at least a single annotation associated with them.void
resolveFields(boolean collectIgnored)
Deprecated.void
resolveMemberMethods(MethodFilter methodFilter)
Method for resolving member method information: aggregating all non-static methods and combining annotations (to implement method-annotation inheritance)void
resolveMemberMethods(MethodFilter methodFilter, boolean collectIgnored)
Deprecated.String
toString()
AnnotatedClass
withAnnotations(AnnotationMap ann)
Fluent factory method that will construct a new instance that uses specified instance annotations instead of currently configured ones.-
Methods inherited from class org.codehaus.jackson.map.introspect.Annotated
getType, hasAnnotation, isPublic, withFallBackAnnotationsFrom
-
-
-
-
Field Detail
-
_class
protected final Class<?> _class
Class for which annotations apply, and that owns other components (constructors, methods)
-
_superTypes
protected final List<Class<?>> _superTypes
Ordered set of super classes and interfaces of the class itself: included in order of precedence
-
_annotationIntrospector
protected final AnnotationIntrospector _annotationIntrospector
Filter used to determine which annotations to gather; used to optimize things so that unnecessary annotations are ignored.
-
_mixInResolver
protected final ClassIntrospector.MixInResolver _mixInResolver
Object that knows mapping of mix-in classes (ones that contain annotations to add) with their target classes (ones that get these additional annotations "mixed in").
-
_primaryMixIn
protected final Class<?> _primaryMixIn
Primary mix-in class; one to use for the annotated class itself. Can be null.
-
_classAnnotations
protected AnnotationMap _classAnnotations
Combined list of Jackson annotations that the class has, including inheritable ones from super classes and interfaces
-
_defaultConstructor
protected AnnotatedConstructor _defaultConstructor
Default constructor of the annotated class, if it has one.
-
_constructors
protected List<AnnotatedConstructor> _constructors
Single argument constructors the class has, if any.
-
_creatorMethods
protected List<AnnotatedMethod> _creatorMethods
Single argument static methods that might be usable as factory methods
-
_memberMethods
protected AnnotatedMethodMap _memberMethods
Member methods of interest; for now ones with 0 or 1 arguments (just optimization, since others won't be used now)
-
_fields
protected List<AnnotatedField> _fields
Member fields of interest: ones that are either public, or have at least one annotation.
-
-
Method Detail
-
withAnnotations
public AnnotatedClass withAnnotations(AnnotationMap ann)
Description copied from class:Annotated
Fluent factory method that will construct a new instance that uses specified instance annotations instead of currently configured ones.- Specified by:
withAnnotations
in classAnnotated
-
construct
public static AnnotatedClass construct(Class<?> cls, AnnotationIntrospector aintr, ClassIntrospector.MixInResolver mir)
Factory method that instantiates an instance. Returned instance will only be initialized with class annotations, but not with any method information.
-
constructWithoutSuperTypes
public static AnnotatedClass constructWithoutSuperTypes(Class<?> cls, AnnotationIntrospector aintr, ClassIntrospector.MixInResolver mir)
Method similar toconstruct(java.lang.Class<?>, org.codehaus.jackson.map.AnnotationIntrospector, org.codehaus.jackson.map.ClassIntrospector.MixInResolver)
, but that will NOT include information from supertypes; only class itself and any direct mix-ins it may have.
-
getAnnotated
public Class<?> getAnnotated()
Description copied from class:Annotated
Method that can be used to find actual JDK element that this instance represents. It is non-null, except for method/constructor parameters which do not have a JDK counterpart.- Specified by:
getAnnotated
in classAnnotated
-
getModifiers
public int getModifiers()
- Specified by:
getModifiers
in classAnnotated
-
getAnnotation
public <A extends Annotation> A getAnnotation(Class<A> acls)
- Specified by:
getAnnotation
in classAnnotated
-
getGenericType
public Type getGenericType()
Description copied from class:Annotated
Full generic type of the annotated element; definition of what exactly this means depends on sub-class.- Specified by:
getGenericType
in classAnnotated
-
getRawType
public Class<?> getRawType()
Description copied from class:Annotated
"Raw" type (type-erased class) of the annotated element; definition of what exactly this means depends on sub-class.- Specified by:
getRawType
in classAnnotated
-
getAllAnnotations
protected AnnotationMap getAllAnnotations()
- Specified by:
getAllAnnotations
in classAnnotated
-
getAnnotations
public Annotations getAnnotations()
- Returns:
- 1.7
-
hasAnnotations
public boolean hasAnnotations()
-
getDefaultConstructor
public AnnotatedConstructor getDefaultConstructor()
-
getConstructors
public List<AnnotatedConstructor> getConstructors()
-
getStaticMethods
public List<AnnotatedMethod> getStaticMethods()
-
memberMethods
public Iterable<AnnotatedMethod> memberMethods()
-
getMemberMethodCount
public int getMemberMethodCount()
-
findMethod
public AnnotatedMethod findMethod(String name, Class<?>[] paramTypes)
-
getFieldCount
public int getFieldCount()
-
fields
public Iterable<AnnotatedField> fields()
-
resolveClassAnnotations
public void resolveClassAnnotations()
Initialization method that will recursively collect Jackson annotations for this class and all super classes and interfaces.Starting with 1.2, it will also apply mix-in annotations, as per [JACKSON-76]
-
resolveCreators
public void resolveCreators(boolean includeAll)
Initialization method that will find out all constructors and potential static factory methods the class has.Starting with 1.2, it will also apply mix-in annotations, as per [JACKSON-76]
- Parameters:
includeAll
- If true, includes all creator methods; if false, will only include the no-arguments "default" constructor
-
resolveMemberMethods
public void resolveMemberMethods(MethodFilter methodFilter)
Method for resolving member method information: aggregating all non-static methods and combining annotations (to implement method-annotation inheritance)- Parameters:
methodFilter
- Filter used to determine which methods to include- Since:
- 1.9
-
resolveFields
public void resolveFields()
Method that will collect all member (non-static) fields that are either public, or have at least a single annotation associated with them.- Since:
- 1.9
-
resolveMemberMethods
@Deprecated public void resolveMemberMethods(MethodFilter methodFilter, boolean collectIgnored)
Deprecated.- Since:
- 1.9 Use version without arguments
-
resolveFields
@Deprecated public void resolveFields(boolean collectIgnored)
Deprecated.- Since:
- 1.9 Use version without arguments
-
_addClassMixIns
protected void _addClassMixIns(AnnotationMap annotations, Class<?> toMask)
Helper method for adding any mix-in annotations specified class might have.
-
_addClassMixIns
protected void _addClassMixIns(AnnotationMap annotations, Class<?> toMask, Class<?> mixin)
-
_addConstructorMixIns
protected void _addConstructorMixIns(Class<?> mixin)
-
_addFactoryMixIns
protected void _addFactoryMixIns(Class<?> mixin)
-
_addMemberMethods
protected void _addMemberMethods(Class<?> cls, MethodFilter methodFilter, AnnotatedMethodMap methods, Class<?> mixInCls, AnnotatedMethodMap mixIns)
-
_addMethodMixIns
protected void _addMethodMixIns(Class<?> targetClass, MethodFilter methodFilter, AnnotatedMethodMap methods, Class<?> mixInCls, AnnotatedMethodMap mixIns)
-
_addFields
protected void _addFields(Map<String,AnnotatedField> fields, Class<?> c)
-
_addFieldMixIns
protected void _addFieldMixIns(Class<?> targetClass, Class<?> mixInCls, Map<String,AnnotatedField> fields)
Method called to add field mix-ins from given mix-in class (and its fields) into already collected actual fields (from introspected classes and their super-classes)
-
_constructMethod
protected AnnotatedMethod _constructMethod(Method m)
-
_constructConstructor
protected AnnotatedConstructor _constructConstructor(Constructor<?> ctor, boolean defaultCtor)
-
_constructCreatorMethod
protected AnnotatedMethod _constructCreatorMethod(Method m)
-
_constructField
protected AnnotatedField _constructField(Field f)
-
_collectRelevantAnnotations
protected AnnotationMap[] _collectRelevantAnnotations(Annotation[][] anns)
-
_collectRelevantAnnotations
protected AnnotationMap _collectRelevantAnnotations(Annotation[] anns)
-
_isIncludableMethod
protected boolean _isIncludableMethod(Method m, MethodFilter filter)
-
_addMixOvers
protected void _addMixOvers(Constructor<?> mixin, AnnotatedConstructor target, boolean addParamAnnotations)
- Parameters:
addParamAnnotations
- Whether parameter annotations are to be added as well
-
_addMixOvers
protected void _addMixOvers(Method mixin, AnnotatedMethod target, boolean addParamAnnotations)
- Parameters:
addParamAnnotations
- Whether parameter annotations are to be added as well
-
_addMixUnders
protected void _addMixUnders(Method src, AnnotatedMethod target)
Method that will add annotations from specified source method to target method, but only if target does not yet have them.
-
-