summaryrefslogtreecommitdiff
path: root/groot-api/src/main/java
diff options
context:
space:
mode:
authorwangkuan <[email protected]>2024-11-19 16:59:37 +0800
committerwangkuan <[email protected]>2024-11-19 16:59:37 +0800
commit36572cdae6f48671a463821b610e4549286a2e65 (patch)
tree6a2b3467e39f0af61401ccd0ec8a1e52b6b2da66 /groot-api/src/main/java
parent036b7e1f8d28fc25daa11ac76dc16557136e14cc (diff)
[improve][bootstrap]修改原UDFUtil工具类位置,后期加载udf函数方式待优化
Diffstat (limited to 'groot-api/src/main/java')
-rw-r--r--groot-api/src/main/java/com/geedgenetworks/api/utils/UDFLoaderUtils.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/groot-api/src/main/java/com/geedgenetworks/api/utils/UDFLoaderUtils.java b/groot-api/src/main/java/com/geedgenetworks/api/utils/UDFLoaderUtils.java
new file mode 100644
index 0000000..da6ebe1
--- /dev/null
+++ b/groot-api/src/main/java/com/geedgenetworks/api/utils/UDFLoaderUtils.java
@@ -0,0 +1,32 @@
+package com.geedgenetworks.api.utils;
+
+import com.googlecode.aviator.Expression;
+import com.googlecode.aviator.exception.ExpressionRuntimeException;
+
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class UDFLoaderUtils {
+ public static Map<String, String> getClassReflect(List<String> plugins) {
+
+ Map<String, String> classReflect = new HashMap<>();
+
+ for (String classPath : plugins) {
+
+ Class cls = null;
+ try {
+ cls = Class.forName(classPath);
+ Method method = cls.getMethod("functionName");
+ Object object = cls.newInstance();
+ String result = (String) method.invoke(object);
+ classReflect.put(result, classPath);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return classReflect;
+ }
+
+}