mirror of
https://gitee.com/dromara/liteFlow.git
synced 2026-05-14 12:12:08 +08:00
feature #IASS9Z 新的java脚本插件,支持java8~java17的所有语法特性
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
package com.yomahub.liteflow.script.body;
|
||||
|
||||
|
||||
/**
|
||||
* Javax语言脚本布尔类型继承类
|
||||
* @author Bryan.Zhang
|
||||
* @since 2.12.4
|
||||
*/
|
||||
public interface BooleanScriptBody extends ScriptBody<Boolean> {
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
package com.yomahub.liteflow.script.body;
|
||||
|
||||
/**
|
||||
* Javax语言脚本普通类型继承类
|
||||
* @author Bryan.Zhang
|
||||
* @since 2.12.4
|
||||
*/
|
||||
public interface CommonScriptBody extends ScriptBody<Void> {
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
package com.yomahub.liteflow.script.body;
|
||||
|
||||
|
||||
/**
|
||||
* Javax语言脚本FOR类型继承类
|
||||
* @author Bryan.Zhang
|
||||
* @since 2.12.4
|
||||
*/
|
||||
public interface ForScriptBody extends ScriptBody<Integer> {
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,11 @@ package com.yomahub.liteflow.script.body;
|
||||
|
||||
import com.yomahub.liteflow.script.ScriptExecuteWrap;
|
||||
|
||||
/**
|
||||
* Javax语言脚本继承类的接口
|
||||
* @author Bryan.Zhang
|
||||
* @since 2.12.4
|
||||
*/
|
||||
public interface ScriptBody<T> {
|
||||
T body(ScriptExecuteWrap wrap);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
package com.yomahub.liteflow.script.body;
|
||||
|
||||
|
||||
/**
|
||||
* Javax语言脚本Switch类型继承类
|
||||
* @author Bryan.Zhang
|
||||
* @since 2.12.4
|
||||
*/
|
||||
public interface SwitchScriptBody extends ScriptBody<String> {
|
||||
|
||||
}
|
||||
|
||||
@@ -17,6 +17,11 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Javax语言执行器,基于liquor
|
||||
* @author Bryan.Zhang
|
||||
* @since 2.12.4
|
||||
*/
|
||||
public class JavaxExecutor extends ScriptExecutor {
|
||||
|
||||
private final Map<String, Execable> compiledScriptMap = new CopyOnWriteHashMap<>();
|
||||
@@ -74,10 +79,14 @@ public class JavaxExecutor extends ScriptExecutor {
|
||||
|
||||
@Override
|
||||
public Object compile(String script) throws Exception {
|
||||
CodeSpec codeSpec = new CodeSpec(convertScript(script))
|
||||
.returnType(Object.class)
|
||||
.parameters(new ParamSpec("_meta", ScriptExecuteWrap.class)).cached(isCache);
|
||||
return Scripts.compile(codeSpec);
|
||||
try{
|
||||
CodeSpec codeSpec = new CodeSpec(convertScript(script))
|
||||
.returnType(Object.class)
|
||||
.parameters(new ParamSpec("_meta", ScriptExecuteWrap.class)).cached(isCache);
|
||||
return Scripts.compile(codeSpec);
|
||||
}catch (Exception e){
|
||||
return e;
|
||||
}
|
||||
}
|
||||
|
||||
private String convertScript(String script){
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
package com.yomahub.liteflow.script.javax.vo;
|
||||
|
||||
/**
|
||||
* Javax语言特殊配置项的Key
|
||||
* @author Bryan.Zhang
|
||||
* @since 2.12.4
|
||||
*/
|
||||
public interface JavaxSettingMapKey {
|
||||
|
||||
String IS_CACHE = "isCache";
|
||||
String IS_CACHE = "javax-is-cache";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user