@API(status=INTERNAL, since="1.0") public final class AnnotationUtils extends java.lang.Object
These utilities are intended solely for usage within the JUnit framework itself. Any usage by external parties is not supported. Use at your own risk!
Some utilities are published via the maintained AnnotationSupport
class.
Annotation
,
AnnotatedElement
,
AnnotationSupport
Modifier and Type | Method | Description |
---|---|---|
static java.util.List<java.lang.reflect.Field> |
findAnnotatedFields(java.lang.Class<?> clazz,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
java.util.function.Predicate<java.lang.reflect.Field> predicate) |
Find all fields of the supplied class or interface
that are annotated or meta-annotated with the specified
annotationType and match the specified predicate , using
top-down search semantics within the type hierarchy. |
static java.util.List<java.lang.reflect.Field> |
findAnnotatedFields(java.lang.Class<?> clazz,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
java.util.function.Predicate<java.lang.reflect.Field> predicate,
ReflectionUtils.HierarchyTraversalMode traversalMode) |
Find all fields of the supplied class or interface
that are annotated or meta-annotated with the specified
annotationType and match the specified predicate . |
static java.util.List<java.lang.reflect.Method> |
findAnnotatedMethods(java.lang.Class<?> clazz,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
ReflectionUtils.HierarchyTraversalMode traversalMode) |
|
static <A extends java.lang.annotation.Annotation> |
findAnnotation(java.lang.reflect.AnnotatedElement element,
java.lang.Class<A> annotationType) |
|
static <A extends java.lang.annotation.Annotation> |
findAnnotation(java.util.Optional<? extends java.lang.reflect.AnnotatedElement> element,
java.lang.Class<A> annotationType) |
|
static java.util.List<java.lang.reflect.Field> |
findPublicAnnotatedFields(java.lang.Class<?> clazz,
java.lang.Class<?> fieldType,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) |
|
static <A extends java.lang.annotation.Annotation> |
findRepeatableAnnotations(java.lang.reflect.AnnotatedElement element,
java.lang.Class<A> annotationType) |
|
static <T> java.util.Optional<T> |
getDefaultValue(java.lang.annotation.Annotation annotation,
java.lang.String attributeName,
java.lang.Class<T> attributeType) |
Get the default value of the named attribute from the supplied
Annotation . |
static boolean |
isAnnotated(java.lang.reflect.AnnotatedElement element,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) |
Determine if an annotation of
annotationType is either
present or meta-present on the supplied
element . |
static boolean |
isAnnotated(java.util.Optional<? extends java.lang.reflect.AnnotatedElement> element,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) |
Determine if an annotation of
annotationType is either
present or meta-present on the supplied optional
element . |
public static <T> java.util.Optional<T> getDefaultValue(java.lang.annotation.Annotation annotation, java.lang.String attributeName, java.lang.Class<T> attributeType)
Annotation
.annotation
- the annotation from which to retrieve the default
value; never null
attributeName
- the name of the attribute for which the default
value should be retrieved; never null
or emptyattributeType
- the required type of the attribute; never null
Optional
containing the default value; potentially
empty if the attribute does not have a default value.public static boolean isAnnotated(java.util.Optional<? extends java.lang.reflect.AnnotatedElement> element, java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
annotationType
is either
present or meta-present on the supplied optional
element
.findAnnotation(Optional, Class)
public static boolean isAnnotated(java.lang.reflect.AnnotatedElement element, java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
annotationType
is either
present or meta-present on the supplied
element
.public static <A extends java.lang.annotation.Annotation> java.util.Optional<A> findAnnotation(java.util.Optional<? extends java.lang.reflect.AnnotatedElement> element, java.lang.Class<A> annotationType)
public static <A extends java.lang.annotation.Annotation> java.util.Optional<A> findAnnotation(java.lang.reflect.AnnotatedElement element, java.lang.Class<A> annotationType)
public static <A extends java.lang.annotation.Annotation> java.util.List<A> findRepeatableAnnotations(java.lang.reflect.AnnotatedElement element, java.lang.Class<A> annotationType)
public static java.util.List<java.lang.reflect.Field> findPublicAnnotatedFields(java.lang.Class<?> clazz, java.lang.Class<?> fieldType, java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
public static java.util.List<java.lang.reflect.Field> findAnnotatedFields(java.lang.Class<?> clazz, java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, java.util.function.Predicate<java.lang.reflect.Field> predicate)
annotationType
and match the specified predicate
, using
top-down search semantics within the type hierarchy.public static java.util.List<java.lang.reflect.Field> findAnnotatedFields(java.lang.Class<?> clazz, java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, java.util.function.Predicate<java.lang.reflect.Field> predicate, ReflectionUtils.HierarchyTraversalMode traversalMode)
annotationType
and match the specified predicate
.clazz
- the class or interface in which to find the fields; never null
annotationType
- the annotation type to search for; never null
predicate
- the field filter; never null
traversalMode
- the hierarchy traversal mode; never null
null
nor mutablepublic static java.util.List<java.lang.reflect.Method> findAnnotatedMethods(java.lang.Class<?> clazz, java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, ReflectionUtils.HierarchyTraversalMode traversalMode)