1
0
Эх сурвалжийг харах

bug #I6JF0K 迭代&循环组件在SWITCH语境中无法获取迭代对象和下标的问题

everywhere.z 2 жил өмнө
parent
commit
308a671794

+ 12 - 4
liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/LoopCondition.java

@@ -32,9 +32,13 @@ public abstract class LoopCondition extends Condition {
             ((Condition) executableItem).getExecutableList().forEach(executable -> setLoopIndex(executable, index));
             setLoopIndex(((IfCondition) executableItem).getTrueCaseExecutableItem(), index);
             setLoopIndex(((IfCondition) executableItem).getFalseCaseExecutableItem(), index);
-        }else if(executableItem instanceof SwitchCondition){
+        }else if(executableItem instanceof SwitchCondition) {
             ((Condition) executableItem).getExecutableList().forEach(executable -> setLoopIndex(executable, index));
-            ((SwitchCondition)executableItem).getTargetList().forEach(executable -> setLoopIndex(executable, index));
+            ((SwitchCondition) executableItem).getTargetList().forEach(executable -> setLoopIndex(executable, index));
+        }else if(executableItem instanceof ThenCondition) {
+            ((Condition)executableItem).getExecutableList().forEach(executable -> setLoopIndex(executable, index));
+            ((ThenCondition) executableItem).getPreConditionList().forEach(executable -> setLoopIndex(executable, index));
+            ((ThenCondition) executableItem).getFinallyConditionList().forEach(executable -> setLoopIndex(executable, index));
         }else if(executableItem instanceof Condition){
             ((Condition)executableItem).getExecutableList().forEach(executable -> setLoopIndex(executable, index));
         }else if(executableItem instanceof Node){
@@ -49,9 +53,13 @@ public abstract class LoopCondition extends Condition {
             ((Condition) executableItem).getExecutableList().forEach(executable -> setCurrLoopObject(executable, obj));
             setCurrLoopObject(((IfCondition) executableItem).getTrueCaseExecutableItem(), obj);
             setCurrLoopObject(((IfCondition) executableItem).getFalseCaseExecutableItem(), obj);
-        }else if(executableItem instanceof SwitchCondition){
+        }else if(executableItem instanceof SwitchCondition) {
             ((Condition) executableItem).getExecutableList().forEach(executable -> setCurrLoopObject(executable, obj));
-            ((SwitchCondition)executableItem).getTargetList().forEach(executable -> setCurrLoopObject(executable, obj));
+            ((SwitchCondition) executableItem).getTargetList().forEach(executable -> setCurrLoopObject(executable, obj));
+        }else if(executableItem instanceof ThenCondition) {
+            ((Condition)executableItem).getExecutableList().forEach(executable -> setCurrLoopObject(executable, obj));
+            ((ThenCondition) executableItem).getPreConditionList().forEach(executable -> setCurrLoopObject(executable, obj));
+            ((ThenCondition) executableItem).getFinallyConditionList().forEach(executable -> setCurrLoopObject(executable, obj));
         }else if(executableItem instanceof Condition){
             ((Condition)executableItem).getExecutableList().forEach(executable -> setCurrLoopObject(executable, obj));
         }else if(executableItem instanceof Node){

+ 8 - 0
liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/ThenCondition.java

@@ -81,4 +81,12 @@ public class ThenCondition extends Condition {
 			super.addExecutable(executable);
 		}
 	}
+
+	public List<PreCondition> getPreConditionList() {
+		return preConditionList;
+	}
+
+	public List<FinallyCondition> getFinallyConditionList() {
+		return finallyConditionList;
+	}
 }