diff options
| author | wangkuan <[email protected]> | 2024-11-19 16:59:37 +0800 |
|---|---|---|
| committer | wangkuan <[email protected]> | 2024-11-19 16:59:37 +0800 |
| commit | 36572cdae6f48671a463821b610e4549286a2e65 (patch) | |
| tree | 6a2b3467e39f0af61401ccd0ec8a1e52b6b2da66 /groot-api/src/main/java | |
| parent | 036b7e1f8d28fc25daa11ac76dc16557136e14cc (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.java | 32 |
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; + } + +} |
