public static class MetaAnnotationUtils.AnnotationDescriptor<T extends Annotation> extends Object
Annotation
, including the class on which the annotation is declared
as well as the actual annotation instance.
If the annotation is used as a meta-annotation, the descriptor also includes the composed annotation on which the annotation is present. In such cases, the root declaring class is not directly annotated with the annotation but rather indirectly via the composed annotation.
Given the following example, if we are searching for the @Transactional
annotation on the TransactionalTests
class, then the
properties of the AnnotationDescriptor
would be as follows.
TransactionalTests
class objectTransactionalTests
class objectnull
Transactional
annotation@Transactional @ContextConfiguration({"/test-datasource.xml", "/repository-config.xml"}) public class TransactionalTests { }
Given the following example, if we are searching for the @Transactional
annotation on the UserRepositoryTests
class, then the
properties of the AnnotationDescriptor
would be as follows.
UserRepositoryTests
class objectRepositoryTests
class objectRepositoryTests
annotationTransactional
annotation@Transactional @ContextConfiguration({"/test-datasource.xml", "/repository-config.xml"}) @Retention(RetentionPolicy.RUNTIME) public @interface RepositoryTests { } @RepositoryTests public class UserRepositoryTests { }
Constructor and Description |
---|
AnnotationDescriptor(Class<?> rootDeclaringClass,
Class<?> declaringClass,
Annotation composedAnnotation,
T annotation) |
AnnotationDescriptor(Class<?> rootDeclaringClass,
T annotation) |
Modifier and Type | Method and Description |
---|---|
T |
getAnnotation() |
AnnotationAttributes |
getAnnotationAttributes() |
Class<? extends Annotation> |
getAnnotationType() |
Annotation |
getComposedAnnotation() |
Class<? extends Annotation> |
getComposedAnnotationType() |
Class<?> |
getDeclaringClass() |
Class<?> |
getRootDeclaringClass() |
T |
synthesizeAnnotation()
Synthesize the merged
AnnotationAttributes
in this descriptor back into an annotation of the target
annotation type. |
String |
toString()
Provide a textual representation of this
AnnotationDescriptor . |
public AnnotationDescriptor(Class<?> rootDeclaringClass, Class<?> declaringClass, Annotation composedAnnotation, T annotation)
public Class<?> getRootDeclaringClass()
public Class<?> getDeclaringClass()
public T getAnnotation()
public T synthesizeAnnotation()
AnnotationAttributes
in this descriptor back into an annotation of the target
annotation type.public Class<? extends Annotation> getAnnotationType()
public AnnotationAttributes getAnnotationAttributes()
public Annotation getComposedAnnotation()
public Class<? extends Annotation> getComposedAnnotationType()