org_apache_struts2_convention_PackageBasedActionConfigBuilderTest_java
com.opensymphony.xwork2.util.AnnotationUtils
public static <T extends Annotation> List<T> findAnnotations(Class<?> clazz, Class<T> annotationClass) {
        ArrayList<T> anns = new ArrayList<T>();
        ArrayList classes = new ArrayList();
        classes.add(clazz);
        classes.addAll(ClassUtils.getAllSuperclasses(clazz));
        classes.addAll(ClassUtils.getAllInterfaces(clazz));
        for (Class clazz2 : classes) {
            T ann = clazz2.getAnnotation(annotationClass);
            if (ann != null) {
                anns.add(ann);
            }
            if ((ann = clazz2.getPackage().getAnnotation(annotationClass)) == null) continue;
            anns.add(ann);
        }
        return anns;
    }
 -> java.util.List.add(java.lang.Object): boolean -> java.lang.Class.getSuperclass(): java.lang.Class -> java.util.List.add(java.lang.Object): boolean -> java.lang.Class.getSuperclass(): java.lang.Class -> java.util.List.addAll(java.util.Collection): boolean -> java.lang.Class.getInterfaces(): java.lang.Class[] -> java.lang.Class.getSuperclass(): java.lang.Class -> java.lang.Class.getInterfaces(): java.lang.Class[] -> java.lang.Class.getSuperclass(): java.lang.Class -> java.util.List.addAll(java.util.Collection): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.Class.getAnnotation(java.lang.Class): java.lang.annotation.Annotation -> java.lang.Class.getPackage(): java.lang.Package -> java.lang.Package.getAnnotation(java.lang.Class): java.lang.annotation.Annotation -> java.util.List.add(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.Class.getAnnotation(java.lang.Class): java.lang.annotation.Annotation -> java.lang.Class.getPackage(): java.lang.Package -> java.lang.Package.getAnnotation(java.lang.Class): java.lang.annotation.Annotation -> java.util.Iterator.hasNext(): boolean
 [CALL] -> java.util.List.add(java.lang.Object): boolean [CALL] -> java.lang.Class.getSuperclass(): java.lang.Class -> java.util.List.add(java.lang.Object): boolean -> java.lang.Class.getSuperclass(): java.lang.Class [EXIT] -> java.util.List.addAll(java.util.Collection): boolean [CALL] [CALL] -> java.lang.Class.getInterfaces(): java.lang.Class[] -> java.lang.Class.getSuperclass(): java.lang.Class -> java.lang.Class.getInterfaces(): java.lang.Class[] -> java.lang.Class.getSuperclass(): java.lang.Class [EXIT] [EXIT] -> java.util.List.addAll(java.util.Collection): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.Class.getAnnotation(java.lang.Class): java.lang.annotation.Annotation -> java.lang.Class.getPackage(): java.lang.Package -> java.lang.Package.getAnnotation(java.lang.Class): java.lang.annotation.Annotation -> java.util.List.add(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.Class.getAnnotation(java.lang.Class): java.lang.annotation.Annotation -> java.lang.Class.getPackage(): java.lang.Package -> java.lang.Package.getAnnotation(java.lang.Class): java.lang.annotation.Annotation -> java.util.Iterator.hasNext(): boolean [EXIT]