From 42948e8ac6e1d796437b1e213e99a5dc7ac72aa7 Mon Sep 17 00:00:00 2001 From: "everywhere.z" Date: Fri, 3 Mar 2023 16:42:17 +0800 Subject: [PATCH] =?UTF-8?q?bug=20#I6JF0K=20=E8=BF=AD=E4=BB=A3&=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E7=BB=84=E4=BB=B6=E5=9C=A8SWITCH=E8=AF=AD=E5=A2=83?= =?UTF-8?q?=E4=B8=AD=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=92=8C=E4=B8=8B=E6=A0=87=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flow/element/condition/LoopCondition.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/LoopCondition.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/LoopCondition.java index 327a786d3..7167c46c6 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/LoopCondition.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/LoopCondition.java @@ -4,6 +4,8 @@ import com.yomahub.liteflow.flow.element.Chain; import com.yomahub.liteflow.flow.element.Executable; import com.yomahub.liteflow.flow.element.Node; +import java.util.function.Consumer; + /** * 循环Condition的抽象类 * 主要继承对象有ForCondition和WhileCondition @@ -26,10 +28,13 @@ public abstract class LoopCondition extends Condition { protected void setLoopIndex(Executable executableItem, int index){ if (executableItem instanceof Chain){ ((Chain)executableItem).getConditionList().forEach(condition -> setLoopIndex(condition, index)); - }else if(executableItem instanceof IfCondition){ - ((Condition)executableItem).getExecutableList().forEach(executable -> setLoopIndex(executable, index)); - setLoopIndex(((IfCondition)executableItem).getTrueCaseExecutableItem(), index); - setLoopIndex(((IfCondition)executableItem).getFalseCaseExecutableItem(), index); + }else if(executableItem instanceof IfCondition) { + ((Condition) executableItem).getExecutableList().forEach(executable -> setLoopIndex(executable, index)); + setLoopIndex(((IfCondition) executableItem).getTrueCaseExecutableItem(), index); + setLoopIndex(((IfCondition) executableItem).getFalseCaseExecutableItem(), index); + }else if(executableItem instanceof SwitchCondition){ + ((Condition) executableItem).getExecutableList().forEach(executable -> setLoopIndex(executable, index)); + ((SwitchCondition)executableItem).getTargetList().forEach(executable -> setLoopIndex(executableItem, index)); }else if(executableItem instanceof Condition){ ((Condition)executableItem).getExecutableList().forEach(executable -> setLoopIndex(executable, index)); }else if(executableItem instanceof Node){ @@ -40,10 +45,13 @@ public abstract class LoopCondition extends Condition { protected void setCurrLoopObject(Executable executableItem, Object obj){ if (executableItem instanceof Chain){ ((Chain)executableItem).getConditionList().forEach(condition -> setCurrLoopObject(condition, obj)); - }else if(executableItem instanceof IfCondition){ - ((Condition)executableItem).getExecutableList().forEach(executable -> setCurrLoopObject(executable, obj)); - setCurrLoopObject(((IfCondition)executableItem).getTrueCaseExecutableItem(), obj); - setCurrLoopObject(((IfCondition)executableItem).getFalseCaseExecutableItem(), obj); + }else if(executableItem instanceof IfCondition) { + ((Condition) executableItem).getExecutableList().forEach(executable -> setCurrLoopObject(executable, obj)); + setCurrLoopObject(((IfCondition) executableItem).getTrueCaseExecutableItem(), obj); + setCurrLoopObject(((IfCondition) executableItem).getFalseCaseExecutableItem(), obj); + }else if(executableItem instanceof SwitchCondition){ + ((Condition) executableItem).getExecutableList().forEach(executable -> setCurrLoopObject(executable, obj)); + ((SwitchCondition)executableItem).getTargetList().forEach(executable -> setCurrLoopObject(executableItem, obj)); }else if(executableItem instanceof Condition){ ((Condition)executableItem).getExecutableList().forEach(executable -> setCurrLoopObject(executable, obj)); }else if(executableItem instanceof Node){