feature #I69M1M 对上下文在脚本中的引用,支持自定义名称

This commit is contained in:
Tingliang Wang
2023-02-10 15:33:33 +08:00
parent 3e67fe8d98
commit 4395fab47d
58 changed files with 1583 additions and 4 deletions

View File

@@ -3,6 +3,8 @@ package com.yomahub.liteflow.script.graaljs;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.yomahub.liteflow.annotation.util.AnnoUtil;
import com.yomahub.liteflow.context.ContextBean;
import com.yomahub.liteflow.script.ScriptBeanManager;
import com.yomahub.liteflow.script.ScriptExecuteWrap;
import com.yomahub.liteflow.script.ScriptExecutor;
@@ -57,7 +59,13 @@ public class GraalJavaScriptExecutor implements ScriptExecutor {
//比如你的自定义上下文为AbcContext那么key就为:abcContext
//这里不统一放一个map的原因是考虑到有些用户会调用上下文里的方法而不是参数所以脚本语言的绑定表里也是放多个上下文
DataBus.getContextBeanList(wrap.getSlotIndex()).forEach(o -> {
String key = StrUtil.lowerFirst(o.getClass().getSimpleName());
ContextBean contextBean = AnnoUtil.getAnnotation(o.getClass(),ContextBean.class);
String key;
if(contextBean !=null && contextBean.value().trim().length()>0){
key = contextBean.value();
}else{
key = StrUtil.lowerFirst(o.getClass().getSimpleName());
}
bindings.putMember(key, o);
});