diff --git a/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java b/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java index e3723529a..60c42effc 100644 --- a/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java +++ b/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java @@ -25,6 +25,7 @@ import com.thebeastshop.liteflow.entity.config.ThenCondition; import com.thebeastshop.liteflow.entity.config.WhenCondition; import com.thebeastshop.liteflow.entity.data.DataBus; import com.thebeastshop.liteflow.entity.data.DefaultSlot; +import com.thebeastshop.liteflow.entity.data.AbsSlot; import com.thebeastshop.liteflow.entity.data.Slot; import com.thebeastshop.liteflow.exception.ChainNotFoundException; import com.thebeastshop.liteflow.exception.ComponentNotAccessException; diff --git a/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java b/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java new file mode 100644 index 000000000..4ed0ff3ea --- /dev/null +++ b/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java @@ -0,0 +1,100 @@ +/** + *

Title: liteFlow

+ *

Description: 轻量级的组件式流程框架

+ *

Copyright: Copyright (c) 2017

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2017-8-3 + * @version 1.0 + */ +package com.thebeastshop.liteflow.entity.data; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@SuppressWarnings("unchecked") +public abstract class AbsSlot implements Slot{ + + private static final Logger LOG = LoggerFactory.getLogger(Slot.class); + + private final String REQUEST = "request"; + + private final String RESPONSE = "response"; + + private final String COND_NODE_PREFIX = "cond_"; + + private final String NODE_INPUT_PREFIX = "input_"; + + private final String NODE_OUTPUT_PREFIX = "output_"; + + private List executeSteps = new ArrayList(); + + protected ConcurrentHashMap dataMap = new ConcurrentHashMap(); + + public T getInput(String nodeId){ + return (T)dataMap.get(NODE_INPUT_PREFIX + nodeId); + } + + public T getOutput(String nodeId){ + return (T)dataMap.get(NODE_OUTPUT_PREFIX + nodeId); + } + + public void setInput(String nodeId,T t){ + dataMap.put(NODE_INPUT_PREFIX + nodeId, t); + } + + public void setOutput(String nodeId,T t){ + dataMap.put(NODE_OUTPUT_PREFIX + nodeId, t); + } + + public T getRequestData(){ + return (T)dataMap.get(REQUEST); + } + + public void setRequestData(T t){ + dataMap.put(REQUEST, t); + } + + public T getResponseData(){ + return (T)dataMap.get(RESPONSE); + } + + public void setResponseData(T t){ + dataMap.put(RESPONSE, t); + } + + public T getData(String key){ + return (T)dataMap.get(key); + } + + public void setData(String key, T t){ + dataMap.put(key, t); + } + + public void setCondResult(String key, T t){ + dataMap.put(COND_NODE_PREFIX + key, t); + } + + public T getCondResult(String key){ + return (T)dataMap.get(COND_NODE_PREFIX + key); + } + + public void addStep(String nodeId){ + this.executeSteps.add(nodeId); + } + + public void printStep(){ + StringBuffer str = new StringBuffer(); + for(int i = 0; i < this.executeSteps.size(); i++){ + str.append(executeSteps.get(i)); + if(i < this.executeSteps.size()-1){ + str.append("==>"); + } + } + LOG.info(str.toString()); + } +} diff --git a/src/main/java/com/thebeastshop/liteflow/entity/data/DefaultSlot.java b/src/main/java/com/thebeastshop/liteflow/entity/data/DefaultSlot.java index 83c4c8e69..2d30e8a10 100644 --- a/src/main/java/com/thebeastshop/liteflow/entity/data/DefaultSlot.java +++ b/src/main/java/com/thebeastshop/liteflow/entity/data/DefaultSlot.java @@ -4,97 +4,11 @@ *

Copyright: Copyright (c) 2017

* @author Bryan.Zhang * @email weenyc31@163.com - * @Date 2017-8-3 + * @Date 2017-12-4 * @version 1.0 */ package com.thebeastshop.liteflow.entity.data; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.ConcurrentHashMap; +public class DefaultSlot extends AbsSlot { -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("unchecked") -public class DefaultSlot implements Slot{ - - private static final Logger LOG = LoggerFactory.getLogger(Slot.class); - - private final String REQUEST = "request"; - - private final String RESPONSE = "response"; - - private final String COND_NODE_PREFIX = "cond_"; - - private final String NODE_INPUT_PREFIX = "input_"; - - private final String NODE_OUTPUT_PREFIX = "output_"; - - private List executeSteps = new ArrayList(); - - protected ConcurrentHashMap dataMap = new ConcurrentHashMap(); - - public T getInput(String nodeId){ - return (T)dataMap.get(NODE_INPUT_PREFIX + nodeId); - } - - public T getOutput(String nodeId){ - return (T)dataMap.get(NODE_OUTPUT_PREFIX + nodeId); - } - - public void setInput(String nodeId,T t){ - dataMap.put(NODE_INPUT_PREFIX + nodeId, t); - } - - public void setOutput(String nodeId,T t){ - dataMap.put(NODE_OUTPUT_PREFIX + nodeId, t); - } - - public T getRequestData(){ - return (T)dataMap.get(REQUEST); - } - - public void setRequestData(T t){ - dataMap.put(REQUEST, t); - } - - public T getResponseData(){ - return (T)dataMap.get(RESPONSE); - } - - public void setResponseData(T t){ - dataMap.put(RESPONSE, t); - } - - public T getData(String key){ - return (T)dataMap.get(key); - } - - public void setData(String key, T t){ - dataMap.put(key, t); - } - - public void setCondResult(String key, T t){ - dataMap.put(COND_NODE_PREFIX + key, t); - } - - public T getCondResult(String key){ - return (T)dataMap.get(COND_NODE_PREFIX + key); - } - - public void addStep(String nodeId){ - this.executeSteps.add(nodeId); - } - - public void printStep(){ - StringBuffer str = new StringBuffer(); - for(int i = 0; i < this.executeSteps.size(); i++){ - str.append(executeSteps.get(i)); - if(i < this.executeSteps.size()-1){ - str.append("==>"); - } - } - LOG.info(str.toString()); - } }