From 84e204baacd9f3cc44097f3a35b40ae742040151 Mon Sep 17 00:00:00 2001 From: LeoLee <512240816@qq.com> Date: Fri, 10 Dec 2021 17:48:57 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E6=97=A0=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E7=9A=84=E6=89=A7=E8=A1=8C=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yomahub/liteflow/core/FlowExecutor.java | 37 +++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java index 909504009..501d4e7e9 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java @@ -278,6 +278,10 @@ public class FlowExecutor { this.execute(chainId, param, slotClazz, slotIndex, true); } + public DefaultSlot execute(String chainId) throws Exception { + return this.execute(chainId, DefaultSlot.class, null, false); + } + public DefaultSlot execute(String chainId, Object param) throws Exception { return this.execute(chainId, param, DefaultSlot.class, null, false); } @@ -292,6 +296,15 @@ public class FlowExecutor { //data slot is a ConcurrentHashMap, so null value will trigger NullPointerException throw new NullParamException("data slot cann't accept null param"); } + return this.execute0(chainId, param, slotClazz, slotIndex, isInnerChain); + } + + public T execute(String chainId, Class slotClazz, + Integer slotIndex, boolean isInnerChain) throws Exception { + return this.execute0(chainId, null, slotClazz, slotIndex, isInnerChain); + } + + private T execute0(String chainId, Object param, Class slotClazz, Integer slotIndex, boolean isInnerChain) throws Exception { T slot = this.doExecute(chainId, param, slotClazz, slotIndex, isInnerChain); if (ObjectUtil.isNotNull(slot.getException())) { throw slot.getException(); @@ -300,6 +313,10 @@ public class FlowExecutor { } } + public LiteflowResponse execute2Resp(String chainId) { + return this.execute2Resp(chainId, DefaultSlot.class, null, false); + } + public LiteflowResponse execute2Resp(String chainId, Object param) { return this.execute2Resp(chainId, param, DefaultSlot.class); } @@ -312,11 +329,21 @@ public class FlowExecutor { public LiteflowResponse execute2Resp(String chainId, Object param, Class slotClazz, Integer slotIndex, boolean isInnerChain) { - LiteflowResponse response = new LiteflowResponse<>(); if (null == param) { //data slot is a ConcurrentHashMap, so null value will trigger NullPointerException throw new NullParamException("data slot cann't accept null param"); } + return execute2Resp0(chainId, param, slotClazz, slotIndex, isInnerChain); + } + + public LiteflowResponse execute2Resp(String chainId, Class slotClazz, Integer slotIndex, + boolean isInnerChain) { + return execute2Resp0(chainId, null, slotClazz, slotIndex, isInnerChain); + } + + private LiteflowResponse execute2Resp0(String chainId, Object param, Class slotClazz, Integer slotIndex, boolean isInnerChain) { + LiteflowResponse response = new LiteflowResponse<>(); + T slot = doExecute(chainId, param, slotClazz, slotIndex, isInnerChain); if (ObjectUtil.isNotNull(slot.getException()) && !notFailExceptionList.contains(slot.getException().getClass())) { @@ -356,10 +383,14 @@ public class FlowExecutor { } if (!isInnerChain) { - slot.setRequestData(param); + if (null != param) { + slot.setRequestData(param); + } slot.setChainName(chainId); } else { - slot.setChainReqData(chainId, param); + if (null != param) { + slot.setChainReqData(chainId, param); + } } Chain chain = null;