/** * Get all of the values for the given annotation that are directly declared on the annotated element. * * @param annotation The annotation name * @param <T> The annotation type * @return A {@link AnnotationValue} instance */ default @Nullable <T extends Annotation> AnnotationValue<T> getDeclaredAnnotation(@Nonnull String annotation) { ArgumentUtils.requireNonNull("annotation", annotation); return this.<T>findDeclaredAnnotation(annotation).orElse(null); }
/** * Find an {@link AnnotationValue} for the given annotation name. * * @param annotation The annotation name * @param <T> The annotation type * @return A {@link AnnotationValue} instance or null */ default @Nullable <T extends Annotation> AnnotationValue<T> getAnnotation(@Nonnull String annotation) { ArgumentUtils.requireNonNull("annotation", annotation); return this.<T>findAnnotation(annotation).orElse(null); }
/** * Find an {@link AnnotationValue} for the given annotation name. * * @param annotationClass The annotation name * @param <T> The annotation type * @return A {@link AnnotationValue} instance or null */ default @Nullable <T extends Annotation> AnnotationValue<T> getAnnotation(@Nonnull Class<T> annotationClass) { ArgumentUtils.requireNonNull("annotationClass", annotationClass); return this.findAnnotation(annotationClass).orElse(null); }
/** * Find an {@link AnnotationValue} for the given annotation name. * * @param annotationClass The annotation name * @param <T> The annotation type * @return A {@link AnnotationValue} instance or null */ default @Nullable <T extends Annotation> AnnotationValue<T> getDeclaredAnnotation(@Nonnull Class<T> annotationClass) { ArgumentUtils.requireNonNull("annotationClass", annotationClass); return this.findDeclaredAnnotation(annotationClass).orElse(null); }