T - the annotation typepublic 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 objectnullTransactional 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  AnnotationAttributesin 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, @Nullable 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()
@Nullable public Annotation getComposedAnnotation()
@Nullable public Class<? extends Annotation> getComposedAnnotationType()