提供typeCode方法进行设置

This commit is contained in:
daiqi
2022-03-12 14:04:36 +08:00
parent 564d817bb1
commit 65f2b663c8
2 changed files with 24 additions and 8 deletions

View File

@@ -1,13 +1,16 @@
package com.yomahub.liteflow.builder;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.yomahub.liteflow.core.NodeComponent;
import com.yomahub.liteflow.entity.data.DataBus;
import com.yomahub.liteflow.entity.flow.Node;
import com.yomahub.liteflow.enums.NodeTypeEnum;
import com.yomahub.liteflow.exception.NodeBuildException;
import com.yomahub.liteflow.exception.NullParamException;
import com.yomahub.liteflow.flow.FlowBus;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -73,6 +76,19 @@ public class LiteFlowNodeBuilder {
return this;
}
// 设置类型的编码
public LiteFlowNodeBuilder setTypeCode(String nodeTypeCode) {
if (StringUtils.isBlank(nodeTypeCode)) {
throw new NullParamException("nodeTypeCode is blank");
}
NodeTypeEnum nodeTypeEnum = NodeTypeEnum.getEnumByCode(nodeTypeCode);
if (ObjectUtil.isNull(nodeTypeEnum)) {
throw new NullParamException(StrUtil.format("nodeTypeCode[{}] is error", nodeTypeCode));
}
setType(nodeTypeEnum);
return this;
}
public LiteFlowNodeBuilder setScript(String script) {
this.node.setScript(script);
return this;

View File

@@ -95,40 +95,40 @@ public class BuilderSpringbootTest1 extends BaseTest {
//基于普通组件的builder模式测试
@Test
public void testBuilderForClass() throws Exception {
public void testBuilderForClassAndCode() throws Exception {
LiteFlowNodeBuilder.createNode().setId("a")
.setName("组件A")
.setType(NodeTypeEnum.COMMON)
.setTypeCode(NodeTypeEnum.COMMON.getCode())
.setNodeComponentClazz(ACmp.class)
.build();
LiteFlowNodeBuilder.createNode().setId("b")
.setName("组件B")
.setType(NodeTypeEnum.COMMON)
.setTypeCode(NodeTypeEnum.COMMON.getCode())
.setNodeComponentClazz(BCmp.class)
.build();
LiteFlowNodeBuilder.createNode().setId("c")
.setName("组件C")
.setType(NodeTypeEnum.COMMON)
.setTypeCode(NodeTypeEnum.COMMON.getCode())
.setNodeComponentClazz(CCmp.class)
.build();
LiteFlowNodeBuilder.createNode().setId("d")
.setName("组件D")
.setType(NodeTypeEnum.COMMON)
.setTypeCode(NodeTypeEnum.COMMON.getCode())
.setNodeComponentClazz(DCmp.class)
.build();
LiteFlowNodeBuilder.createNode().setId("e")
.setName("组件E")
.setType(NodeTypeEnum.COMMON)
.setTypeCode(NodeTypeEnum.COMMON.getCode())
.setNodeComponentClazz(ECmp.class)
.build();
LiteFlowNodeBuilder.createNode().setId("f")
.setName("组件F")
.setType(NodeTypeEnum.COMMON)
.setTypeCode(NodeTypeEnum.COMMON.getCode())
.setNodeComponentClazz(FCmp.class)
.build();
LiteFlowNodeBuilder.createNode().setId("g")
.setName("组件G")
.setType(NodeTypeEnum.COMMON)
.setTypeCode(NodeTypeEnum.COMMON.getCode())
.setNodeComponentClazz(GCmp.class)
.build();