diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowNodeBuilder.java b/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowNodeBuilder.java index 84966b48b..b580d9950 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowNodeBuilder.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowNodeBuilder.java @@ -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; diff --git a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/builder/BuilderSpringbootTest1.java b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/builder/BuilderSpringbootTest1.java index 8daab25ec..57fd896bc 100644 --- a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/builder/BuilderSpringbootTest1.java +++ b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/builder/BuilderSpringbootTest1.java @@ -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();