Java Reflection Annotation Find findAnnotationInMethodOrInItsAnnotations(Method method, Class annotationClass)

Here you can find the source of findAnnotationInMethodOrInItsAnnotations(Method method, Class annotationClass)

Description

Tries to extract an annotation of a certain class directly annotated on to the method or any of its annotations.

License

Open Source License

Parameter

Parameter Description
method the method in which to look for
annotationClass the annotation class to search

Return

the annotation, if found; null otherwise

Declaration

public static <A extends Annotation> A findAnnotationInMethodOrInItsAnnotations(Method method,
        Class<A> annotationClass) 

Method Source Code

//package com.java2s;
/**/*from   w  ww  . ja v a 2  s  . co  m*/
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;

public class Main {
    /**
     * Tries to extract an annotation of a certain class directly annotated on
     * to the method or any of its annotations.
     *
     * @param  method the method in which to look for
     * @param  annotationClass the annotation class to search
     * @return the annotation, if found; {@code null} otherwise
     * @review
     */
    public static <A extends Annotation> A findAnnotationInMethodOrInItsAnnotations(Method method,
            Class<A> annotationClass) {

        if (method.isAnnotationPresent(annotationClass)) {
            return method.getAnnotation(annotationClass);
        }

        for (Annotation annotation : method.getAnnotations()) {
            Class<? extends Annotation> annotationType = annotation.annotationType();

            if (annotationType.isAnnotationPresent(annotationClass)) {
                return annotationType.getAnnotation(annotationClass);
            }
        }

        return null;
    }
}

Related

  1. findAnnotationFromMethodOrClass(final Method method, final Class annotationClass)
  2. findAnnotationHelper( Class base, Type iface)
  3. findAnnotationIn(List modifiers, Class clazz)
  4. findAnnotationInAnnotations(AnnotatedElement annotatedElement, Class annotationClass)
  5. findAnnotationInAnyParameter(Method method, Class annotationClass)
  6. findAnnotationMethods(String fullClassName, Class anno)
  7. findAnnotationsMap(Class a, Class c)
  8. findAnnotationSuperClasses(Class annotationClass, Class c)
  9. findAnnotationWithMetaAnnotation(Class clazz, Class metaAnnotationType)