|
|
|
@ -218,6 +218,31 @@ public class AnnotatedElementUtils { |
|
|
|
})); |
|
|
|
})); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Get the first annotation of the specified {@code annotationType} within |
|
|
|
|
|
|
|
* the annotation hierarchy <em>above</em> the supplied {@code element} and |
|
|
|
|
|
|
|
* merge that annotation's attributes with <em>matching</em> attributes from |
|
|
|
|
|
|
|
* annotations in lower levels of the annotation hierarchy. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* <p>{@link AliasFor @AliasFor} semantics are fully supported, both |
|
|
|
|
|
|
|
* within a single annotation and within the annotation hierarchy. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* <p>This method delegates to {@link #getAnnotationAttributes(AnnotatedElement, String)}. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @param element the annotated element; never {@code null} |
|
|
|
|
|
|
|
* @param annotationType the annotation type to find; never {@code null} |
|
|
|
|
|
|
|
* @return the merged {@code AnnotationAttributes}, or {@code null} if not found |
|
|
|
|
|
|
|
* @see #getAnnotationAttributes(AnnotatedElement, String, boolean, boolean) |
|
|
|
|
|
|
|
* @see #getAllAnnotationAttributes(AnnotatedElement, String) |
|
|
|
|
|
|
|
* @see #findAnnotationAttributes(AnnotatedElement, String, boolean, boolean) |
|
|
|
|
|
|
|
* @see #findAnnotation(AnnotatedElement, Class) |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
public static AnnotationAttributes getAnnotationAttributes(AnnotatedElement element, |
|
|
|
|
|
|
|
Class<? extends Annotation> annotationType) { |
|
|
|
|
|
|
|
Assert.notNull(annotationType, "annotationType must not be null"); |
|
|
|
|
|
|
|
return getAnnotationAttributes(element, annotationType.getName()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Get the first annotation of the specified {@code annotationType} within |
|
|
|
* Get the first annotation of the specified {@code annotationType} within |
|
|
|
* the annotation hierarchy <em>above</em> the supplied {@code element} and |
|
|
|
* the annotation hierarchy <em>above</em> the supplied {@code element} and |
|
|
|
@ -298,9 +323,7 @@ public class AnnotatedElementUtils { |
|
|
|
* <p>{@link AliasFor @AliasFor} semantics are fully supported, both |
|
|
|
* <p>{@link AliasFor @AliasFor} semantics are fully supported, both |
|
|
|
* within a single annotation and within the annotation hierarchy. |
|
|
|
* within a single annotation and within the annotation hierarchy. |
|
|
|
* |
|
|
|
* |
|
|
|
* <p>This method delegates to {@link #findAnnotationAttributes(AnnotatedElement, String, boolean, boolean)} |
|
|
|
* <p>This method delegates to {@link #findAnnotation(AnnotatedElement, String)}. |
|
|
|
* (supplying {@code false} for {@code classValuesAsString} and {@code nestedAnnotationsAsMap}) |
|
|
|
|
|
|
|
* and {@link AnnotationUtils#synthesizeAnnotation(Map, Class, AnnotatedElement)}. |
|
|
|
|
|
|
|
* |
|
|
|
* |
|
|
|
* @param element the annotated element; never {@code null} |
|
|
|
* @param element the annotated element; never {@code null} |
|
|
|
* @param annotationType the annotation type to find; never {@code null} |
|
|
|
* @param annotationType the annotation type to find; never {@code null} |
|
|
|
@ -308,7 +331,7 @@ public class AnnotatedElementUtils { |
|
|
|
* @since 4.2 |
|
|
|
* @since 4.2 |
|
|
|
* @see #findAnnotation(AnnotatedElement, String) |
|
|
|
* @see #findAnnotation(AnnotatedElement, String) |
|
|
|
* @see #findAnnotationAttributes(AnnotatedElement, String, boolean, boolean) |
|
|
|
* @see #findAnnotationAttributes(AnnotatedElement, String, boolean, boolean) |
|
|
|
* @see AnnotationUtils#synthesizeAnnotation(Map, Class, AnnotatedElement) |
|
|
|
* @see #getAnnotationAttributes(AnnotatedElement, Class) |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public static <A extends Annotation> A findAnnotation(AnnotatedElement element, Class<A> annotationType) { |
|
|
|
public static <A extends Annotation> A findAnnotation(AnnotatedElement element, Class<A> annotationType) { |
|
|
|
Assert.notNull(annotationType, "annotationType must not be null"); |
|
|
|
Assert.notNull(annotationType, "annotationType must not be null"); |
|
|
|
|