mirror of
https://gitee.com/dromara/liteFlow.git
synced 2026-05-14 12:12:08 +08:00
!305 enhancement #IAMBU8 ELBus 增加普通节点构建方法
Merge pull request !305 from luoyi/issues/IAMBU8
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
package com.yomahub.liteflow.builder.el;
|
||||
|
||||
/**
|
||||
* 普通节点表示
|
||||
*
|
||||
* @author luo yi
|
||||
* @since 2.12.3
|
||||
*/
|
||||
public class CommonNodeELWrapper extends NodeELWrapper {
|
||||
|
||||
public CommonNodeELWrapper(String nodeId) {
|
||||
super(nodeId);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String toEL(Integer depth, StringBuilder paramContext) {
|
||||
CommonNodeELWrapper nodeElWrapper = (CommonNodeELWrapper) this.getFirstWrapper();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
processWrapperTabs(sb, depth);
|
||||
sb.append(nodeElWrapper.getNodeId());
|
||||
processWrapperProperty(sb, paramContext);
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -132,6 +132,16 @@ public class ELBus {
|
||||
return new NodeELWrapper(nodeId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建普通 node 单节点表达式
|
||||
*
|
||||
* @param nodeId 节点 id
|
||||
* @return {@link CommonNodeELWrapper}
|
||||
*/
|
||||
public static CommonNodeELWrapper commonNode(String nodeId){
|
||||
return new CommonNodeELWrapper(nodeId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建 switch 选择表达式
|
||||
*
|
||||
@@ -364,9 +374,9 @@ public class ELBus {
|
||||
public static void checkBooleanArgs(ELWrapper... elWrappers) {
|
||||
for(ELWrapper elWrapper : elWrappers){
|
||||
if(!(elWrapper instanceof AndELWrapper)
|
||||
&& !(elWrapper instanceof OrELWrapper)
|
||||
&& !(elWrapper instanceof NotELWrapper)
|
||||
&& !(elWrapper instanceof NodeELWrapper)){
|
||||
&& !(elWrapper instanceof OrELWrapper)
|
||||
&& !(elWrapper instanceof NotELWrapper)
|
||||
&& !(elWrapper instanceof NodeELWrapper)){
|
||||
throw new RuntimeException("param is error");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,17 @@ import java.util.Map;
|
||||
@EnableAutoConfiguration
|
||||
public class ThenELBuilderTest extends BaseTest {
|
||||
|
||||
@Test
|
||||
public void testThen0(){
|
||||
Map<String, Object> name2Value = new HashMap<String, Object>();
|
||||
name2Value.put("name", "zhangsan");
|
||||
name2Value.put("age", 18);
|
||||
System.out.println(ELBus.then(ELBus.commonNode("a").data("nodeData", name2Value).tag("tagA").maxWaitSeconds(10).retry(2), ELBus.node("b")).toEL(true));
|
||||
String expected = "nodeData = '{\"name\":\"zhangsan\",\"age\":18}';\nTHEN(\n\ta.tag(\"tagA\").data(nodeData).maxWaitSeconds(10).retry(2),\n\tnode(\"b\")\n);";
|
||||
Assertions.assertEquals(expected,
|
||||
ELBus.then(ELBus.commonNode("a").data("nodeData", name2Value).tag("tagA").maxWaitSeconds(10).retry(2), ELBus.node("b")).toEL(true));
|
||||
}
|
||||
|
||||
// then组件测试
|
||||
@Test
|
||||
public void testThen1(){
|
||||
|
||||
Reference in New Issue
Block a user