]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.reflection/src/org/simantics/scl/reflection/internal/registry/ExternalMethod.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.reflection / src / org / simantics / scl / reflection / internal / registry / ExternalMethod.java
diff --git a/bundles/org.simantics.scl.reflection/src/org/simantics/scl/reflection/internal/registry/ExternalMethod.java b/bundles/org.simantics.scl.reflection/src/org/simantics/scl/reflection/internal/registry/ExternalMethod.java
new file mode 100755 (executable)
index 0000000..582c0cf
--- /dev/null
@@ -0,0 +1,35 @@
+package org.simantics.scl.reflection.internal.registry;\r
+\r
+import java.lang.reflect.Method;\r
+\r
+import org.osgi.framework.Bundle;\r
+\r
+public class ExternalMethod {\r
+    public final Bundle bundle;\r
+    public final String className;\r
+    public final String methodName;\r
+    public final String alternativeName;\r
+    \r
+    public ExternalMethod(Bundle bundle, String className, String methodName,\r
+            String alternativeName) {\r
+        this.bundle = bundle;\r
+        this.className = className;\r
+        this.methodName = methodName;\r
+        this.alternativeName = alternativeName;\r
+    }    \r
+    \r
+    public Class<?> loadClass() {\r
+        try {\r
+            return bundle.loadClass(className);\r
+        } catch (ClassNotFoundException e) {\r
+            return null;\r
+        }   \r
+    }\r
+    \r
+    public Method getMethod(Class<?> clazz) {\r
+        for(Method method : clazz.getMethods())\r
+            if(method.getName().equals(methodName))\r
+                return method;\r
+        return null;\r
+    }\r
+}\r