Java Reflection Annotation getAnnotationInstances(Class clazz, Class annotationClass)

Here you can find the source of getAnnotationInstances(Class clazz, Class annotationClass)

Description

get Annotation Instances

License

Apache License

Declaration

public static <T extends Annotation> Set<T> getAnnotationInstances(Class<?> clazz, Class<T> annotationClass) 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * /*from   www.j a  va2  s  . co m*/
 *  Struts2-Conversation-Plugin - An Open Source Conversation- and Flow-Scope Solution for Struts2-based Applications
 *  =================================================================================================================
 * 
 *  Copyright (C) 2012 by Rees Byars
 *  http://code.google.com/p/struts2-conversation/
 * 
 * **********************************************************************************************************************
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
 *  the License. You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 *  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
 *  an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
 *  specific language governing permissions and limitations under the License.
 * 
 * **********************************************************************************************************************
 * 
 *  $Id: ReflectionUtil.java reesbyars $
 ******************************************************************************/

import java.lang.annotation.Annotation;

import java.util.HashSet;
import java.util.Set;

public class Main {
    public static <T extends Annotation> Set<T> getAnnotationInstances(Class<?> clazz, Class<T> annotationClass) {
        Set<T> annotationInstances = new HashSet<T>();
        for (Class<?> clazzClass : clazz.getInterfaces()) {
            if (clazzClass.isAnnotationPresent(annotationClass)) {
                annotationInstances.add(clazzClass.getAnnotation(annotationClass));
            }
        }
        if (clazz.isAnnotationPresent(annotationClass)) {
            annotationInstances.add(clazz.getAnnotation(annotationClass));
        }
        Class<?> superClass = clazz.getSuperclass();
        if (superClass != null) {
            annotationInstances.addAll(getAnnotationInstances(superClass, annotationClass));
        }
        return annotationInstances;
    }
}

Related

  1. getAnnotationFromWeldBean(Object target, Class annotation)
  2. getAnnotationFullname(Annotation annotation)
  3. getAnnotationInClass( final Class annotationClass, final Class clazz)
  4. getAnnotationInHeirarchy(Class annotationClass, Class aClass)
  5. getAnnotationInherited(Class type, Class annotationClass)
  6. getAnnotationMemberDefaults(Annotation annotation)
  7. getAnnotationMemberType(Annotation annotation, String memberName)
  8. getAnnotationMetaAnnotated( AnnotatedElement annotatedElementClass, Class metaAnnotationToFind)
  9. getAnnotationMethods(Class annotationType)