diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java index dbcd61f37..379993cb4 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java @@ -15,12 +15,7 @@ public class ScriptBreakComponent extends NodeBreakComponent implements ScriptCo @Override public boolean processBreak() throws Exception { - ScriptExecuteWrap wrap = new ScriptExecuteWrap(); - wrap.setCurrChainId(this.getCurrChainId()); - wrap.setNodeId(this.getNodeId()); - wrap.setSlotIndex(this.getSlotIndex()); - wrap.setTag(this.getTag()); - wrap.setCmpData(this.getCmpData(Map.class)); + ScriptExecuteWrap wrap = this.buildWrap(this); return (boolean) ScriptExecutorFactory.loadInstance() .getScriptExecutor(this.getRefNode().getLanguage()) .execute(wrap); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptCommonComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptCommonComponent.java index d38e4cbb4..fdb2584b6 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptCommonComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptCommonComponent.java @@ -19,12 +19,7 @@ public class ScriptCommonComponent extends NodeComponent implements ScriptCompon @Override public void process() throws Exception { - ScriptExecuteWrap wrap = new ScriptExecuteWrap(); - wrap.setCurrChainId(this.getCurrChainId()); - wrap.setNodeId(this.getNodeId()); - wrap.setSlotIndex(this.getSlotIndex()); - wrap.setTag(this.getTag()); - wrap.setCmpData(this.getCmpData(Map.class)); + ScriptExecuteWrap wrap = this.buildWrap(this); ScriptExecutorFactory.loadInstance().getScriptExecutor(this.getRefNode().getLanguage()).execute(wrap); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptComponent.java index c6d9d99ed..364d546ee 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptComponent.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.core; import com.yomahub.liteflow.enums.NodeTypeEnum; +import com.yomahub.liteflow.script.ScriptExecuteWrap; import java.util.HashMap; import java.util.Map; @@ -33,4 +34,16 @@ public interface ScriptComponent { */ void loadScript(String script, String language); + default ScriptExecuteWrap buildWrap(NodeComponent cmp){ + ScriptExecuteWrap wrap = new ScriptExecuteWrap(); + wrap.setCurrChainId(cmp.getCurrChainId()); + wrap.setNodeId(cmp.getNodeId()); + wrap.setSlotIndex(cmp.getSlotIndex()); + wrap.setTag(cmp.getTag()); + wrap.setCmpData(cmp.getCmpData(Map.class)); + wrap.setLoopIndex(cmp.getLoopIndex()); + wrap.setLoopObject(cmp.getCurrLoopObj()); + return wrap; + } + } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java index 5a677f2ad..345d2e761 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java @@ -15,12 +15,7 @@ public class ScriptForComponent extends NodeForComponent implements ScriptCompon @Override public int processFor() throws Exception { - ScriptExecuteWrap wrap = new ScriptExecuteWrap(); - wrap.setCurrChainId(this.getCurrChainId()); - wrap.setNodeId(this.getNodeId()); - wrap.setSlotIndex(this.getSlotIndex()); - wrap.setTag(this.getTag()); - wrap.setCmpData(this.getCmpData(Map.class)); + ScriptExecuteWrap wrap = this.buildWrap(this); return (int) ScriptExecutorFactory.loadInstance() .getScriptExecutor(this.getRefNode().getLanguage()) .execute(wrap); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/script/ScriptExecuteWrap.java b/liteflow-core/src/main/java/com/yomahub/liteflow/script/ScriptExecuteWrap.java index 00fdf7b29..e1287e837 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/script/ScriptExecuteWrap.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/script/ScriptExecuteWrap.java @@ -18,6 +18,10 @@ public class ScriptExecuteWrap { private Object cmpData; + private Integer loopIndex; + + private Object loopObject; + public int getSlotIndex() { return slotIndex; } @@ -74,4 +78,19 @@ public class ScriptExecuteWrap { this.cmpData = cmpData; } + public Integer getLoopIndex() { + return loopIndex; + } + + public void setLoopIndex(Integer loopIndex) { + this.loopIndex = loopIndex; + } + + public Object getLoopObject() { + return loopObject; + } + + public void setLoopObject(Object loopObject) { + this.loopObject = loopObject; + } }