Index: base/test/android/javatests/src/org/chromium/base/test/util/SkipCheck.java |
diff --git a/base/test/android/javatests/src/org/chromium/base/test/util/SkipCheck.java b/base/test/android/javatests/src/org/chromium/base/test/util/SkipCheck.java |
index cb21dfd98b623891bea778bb57b1b62652cf6e7f..b55a83896d3a149576f8d1cdaab9d5a861fc4164 100644 |
--- a/base/test/android/javatests/src/org/chromium/base/test/util/SkipCheck.java |
+++ b/base/test/android/javatests/src/org/chromium/base/test/util/SkipCheck.java |
@@ -8,7 +8,11 @@ import junit.framework.TestCase; |
import org.chromium.base.Log; |
+import java.lang.annotation.Annotation; |
+import java.lang.reflect.AnnotatedElement; |
import java.lang.reflect.Method; |
+import java.util.ArrayList; |
+import java.util.List; |
/** |
* Check whether a test case should be skipped. |
@@ -35,5 +39,22 @@ public abstract class SkipCheck { |
return null; |
} |
} |
+ |
+ protected static <T extends Annotation> List<T> getAnnotations(AnnotatedElement element, |
+ Class<T> annotationClass) { |
+ AnnotatedElement parent = (element instanceof Method) |
+ ? ((Method) element).getDeclaringClass() |
+ : ((Class) element).getSuperclass(); |
+ List<T> annotations = (parent == null) |
+ ? new ArrayList<T>() |
+ : getAnnotations(parent, annotationClass); |
+ Annotation[] allAnnotations = element.getAnnotations(); |
+ for (Annotation a : allAnnotations) { |
+ if (annotationClass.isInstance(a)) { |
+ annotations.add((T) a); |
+ } |
+ } |
+ return annotations; |
+ } |
} |