Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/ReflectHelper.java')
-rw-r--r--android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/ReflectHelper.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/ReflectHelper.java b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/ReflectHelper.java
new file mode 100644
index 0000000000..c1b22859c6
--- /dev/null
+++ b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/ReflectHelper.java
@@ -0,0 +1,38 @@
+
+package org.holoeverywhere.util;
+
+import java.lang.reflect.Method;
+
+public final class ReflectHelper {
+
+ private static Class<?>[] classess(Object[] args) {
+ Class<?>[] result = new Class<?>[args.length];
+ for (int i = 0; i < args.length; i++) {
+ Object z = args[i];
+ if (z != null) {
+ result[i] = z.getClass();
+ }
+ }
+ return result;
+ }
+
+ public static <Result> Result invoke(Object object, String methodName,
+ Class<Result> result, boolean superClass, Object... args) {
+ try {
+ Class<?>[] argsClasses = ReflectHelper.classess(args);
+ Method method = (superClass ? object.getClass().getSuperclass()
+ : object.getClass()).getMethod(methodName, argsClasses);
+ method.setAccessible(true);
+ Object r = method.invoke(object, args);
+ return result != null ? result.cast(r) : null;
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ public static <Result> Result invoke(Object object, String methodName,
+ Class<Result> result, Object... args) {
+ return ReflectHelper.invoke(object, methodName, result, false, args);
+ }
+
+}