feature #IASS9Z 新的java脚本插件,支持java8~java17的所有语法特性

This commit is contained in:
everywhere.z
2024-09-26 19:16:35 +08:00
parent 73c06353a8
commit 9334b1e846
25 changed files with 621 additions and 14 deletions

View File

@@ -1,6 +1,10 @@
package com.yomahub.liteflow.script.body;
/**
* Javax语言脚本布尔类型继承类
* @author Bryan.Zhang
* @since 2.12.4
*/
public interface BooleanScriptBody extends ScriptBody<Boolean> {
}

View File

@@ -1,5 +1,10 @@
package com.yomahub.liteflow.script.body;
/**
* Javax语言脚本普通类型继承类
* @author Bryan.Zhang
* @since 2.12.4
*/
public interface CommonScriptBody extends ScriptBody<Void> {
}

View File

@@ -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> {
}

View File

@@ -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);
}

View File

@@ -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> {
}

View File

@@ -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){

View File

@@ -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";
}