Package org.springframework.test.util
Class MetaAnnotationUtils.AnnotationDescriptor<T extends Annotation>
- java.lang.Object
- org.springframework.test.util.MetaAnnotationUtils.AnnotationDescriptor<T>
- Direct Known Subclasses:
MetaAnnotationUtils.UntypedAnnotationDescriptor
- Enclosing class:
- MetaAnnotationUtils
public static class MetaAnnotationUtils.AnnotationDescriptor<T extends Annotation> extends Object
Descriptor for anAnnotation, 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
@Transactionalannotation on theTransactionalTestsclass, then the properties of theAnnotationDescriptorwould be as follows.- rootDeclaringClass:
TransactionalTestsclass object - declaringClass:
TransactionalTestsclass object - composedAnnotation:
null - annotation: instance of the
Transactionalannotation
@Transactional @ContextConfiguration({"/test-datasource.xml", "/repository-config.xml"}) public class TransactionalTests { }Given the following example, if we are searching for the
@Transactionalannotation on theUserRepositoryTestsclass, then the properties of theAnnotationDescriptorwould be as follows.- rootDeclaringClass:
UserRepositoryTestsclass object - declaringClass:
RepositoryTestsclass object - composedAnnotation: instance of the
RepositoryTestsannotation - annotation: instance of the
Transactionalannotation
@Transactional @ContextConfiguration({"/test-datasource.xml", "/repository-config.xml"}) @Retention(RetentionPolicy.RUNTIME) public @interface RepositoryTests { } @RepositoryTests public class UserRepositoryTests { }
Constructor Summary
Constructors Constructor Description AnnotationDescriptor(Class<?> rootDeclaringClass, Class<?> declaringClass, Annotation composedAnnotation, T annotation)AnnotationDescriptor(Class<?> rootDeclaringClass, T annotation)
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TgetAnnotation()AnnotationAttributesgetAnnotationAttributes()Class<? extends Annotation>getAnnotationType()AnnotationgetComposedAnnotation()Class<? extends Annotation>getComposedAnnotationType()Class<?>getDeclaringClass()Class<?>getRootDeclaringClass()TsynthesizeAnnotation()Synthesize the mergedAnnotationAttributesin this descriptor back into an annotation of the target annotation type.StringtoString()Provide a textual representation of thisAnnotationDescriptor.
Constructor Detail
AnnotationDescriptor
public AnnotationDescriptor(Class<?> rootDeclaringClass, T annotation)
AnnotationDescriptor
public AnnotationDescriptor(Class<?> rootDeclaringClass, Class<?> declaringClass, Annotation composedAnnotation, T annotation)
Method Detail
getRootDeclaringClass
public Class<?> getRootDeclaringClass()
getDeclaringClass
public Class<?> getDeclaringClass()
getAnnotation
public T getAnnotation()
synthesizeAnnotation
public T synthesizeAnnotation()
Synthesize the mergedAnnotationAttributesin this descriptor back into an annotation of the target annotation type.
getAnnotationType
public Class<? extends Annotation> getAnnotationType()
getAnnotationAttributes
public AnnotationAttributes getAnnotationAttributes()
getComposedAnnotation
public Annotation getComposedAnnotation()
getComposedAnnotationType
public Class<? extends Annotation> getComposedAnnotationType()