Ver Fonte

Merge remote-tracking branch 'origin/dev' into dev

everywhere.z há 8 meses atrás
pai
commit
34ef658a1e

+ 25 - 0
liteflow-el-builder/src/main/java/com/yomahub/liteflow/builder/el/CommonNodeELWrapper.java

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

+ 13 - 3
liteflow-el-builder/src/main/java/com/yomahub/liteflow/builder/el/ELBus.java

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

+ 11 - 0
liteflow-testcase-el/liteflow-testcase-el-builder/src/test/java/com/yomahub/liteflow/test/builder/ThenELBuilderTest.java

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