org.springframework.core.type
Interface AnnotationMetadata

All Superinterfaces:
ClassMetadata
All Known Implementing Classes:
StandardAnnotationMetadata

public interface AnnotationMetadata
extends ClassMetadata

Interface that defines abstract access to the annotations of a specific class, in a form that does not require that class to be loaded yet.

Since:
2.5
Author:
Juergen Hoeller, Mark Fisher
See Also:
StandardAnnotationMetadata, MetadataReader.getAnnotationMetadata()

Method Summary
 java.util.Set<MethodMetadata> getAnnotatedMethods()
          Retrieve the method metadata for all methods that are annotated with at least one annotation type.
 java.util.Set<MethodMetadata> getAnnotatedMethods(java.lang.String annotationType)
          Retrieve the method metadata for all methods that have the given annotation type.
 java.util.Map<java.lang.String,java.lang.Object> getAnnotationAttributes(java.lang.String annotationType)
          Retrieve the attributes of the annotation of the given type, if any (i.e.
 java.util.Set<java.lang.String> getAnnotationTypes()
          Return the names of all annotation types defined on the underlying class.
 java.util.Set<java.lang.String> getMetaAnnotationTypes(java.lang.String annotationType)
          Return the names of all meta-annotation types defined on the given annotation type of the underlying class.
 boolean hasAnnotation(java.lang.String annotationType)
          Determine whether the underlying class has an annotation of the given type defined.
 boolean hasMetaAnnotation(java.lang.String metaAnnotationType)
          Determine whether the underlying class has an annotation that is itself annotated with the meta-annotation of the given type.
 
Methods inherited from interface org.springframework.core.type.ClassMetadata
getClassName, getEnclosingClassName, getInterfaceNames, getSuperClassName, hasEnclosingClass, hasSuperClass, isAbstract, isConcrete, isFinal, isIndependent, isInterface
 

Method Detail

getAnnotationTypes

java.util.Set<java.lang.String> getAnnotationTypes()
Return the names of all annotation types defined on the underlying class.

Returns:
the annotation type names

getMetaAnnotationTypes

java.util.Set<java.lang.String> getMetaAnnotationTypes(java.lang.String annotationType)
Return the names of all meta-annotation types defined on the given annotation type of the underlying class.

Parameters:
annotationType - the meta-annotation type to look for
Returns:
the meta-annotation type names

hasAnnotation

boolean hasAnnotation(java.lang.String annotationType)
Determine whether the underlying class has an annotation of the given type defined.

Parameters:
annotationType - the annotation type to look for
Returns:
whether a matching annotation is defined

hasMetaAnnotation

boolean hasMetaAnnotation(java.lang.String metaAnnotationType)
Determine whether the underlying class has an annotation that is itself annotated with the meta-annotation of the given type.

Parameters:
metaAnnotationType - the meta-annotation type to look for
Returns:
whether a matching meta-annotation is defined

getAnnotationAttributes

java.util.Map<java.lang.String,java.lang.Object> getAnnotationAttributes(java.lang.String annotationType)
Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying class).

Parameters:
annotationType - the annotation type to look for
Returns:
a Map of attributes, with the attribute name as key (e.g. "value") and the defined attribute value as Map value. This return value will be null if no matching annotation is defined.

getAnnotatedMethods

java.util.Set<MethodMetadata> getAnnotatedMethods()
Retrieve the method metadata for all methods that are annotated with at least one annotation type.

Returns:
a Set of MethodMetadata for methods that have annotations. The return value will be an empty set if no annotated methods are found.

getAnnotatedMethods

java.util.Set<MethodMetadata> getAnnotatedMethods(java.lang.String annotationType)
Retrieve the method metadata for all methods that have the given annotation type.

Parameters:
annotationType - the annotation type to look for
Returns:
a Set of MethodMetadata for methods that have a matching annotation. The return value will be an empty set if no methods match the annotation type.