From 4db1bd40d01cd4c547e28b0759f613d02b8e0553 Mon Sep 17 00:00:00 2001 From: noear Date: Thu, 22 Dec 2022 14:20:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=8C=E6=88=90=20liteflow?= =?UTF-8?q?-solon-plugin=20=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solon/NodeBreakComponentOfMethod.java | 5 ++-- .../liteflow/solon/NodeComponentOfMethod.java | 5 ++-- .../solon/NodeForComponentOfMethod.java | 5 ++-- .../solon/NodeIfComponentOfMethod.java | 5 ++-- .../solon/NodeSwitchComponentOfMethod.java | 5 ++-- .../solon/NodeWhileComponentOfMethod.java | 5 ++-- .../solon/integration/XPluginImpl.java | 26 +++++++++++++++++-- 7 files changed, 42 insertions(+), 14 deletions(-) diff --git a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeBreakComponentOfMethod.java b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeBreakComponentOfMethod.java index 4184b170a..1f8c97a15 100644 --- a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeBreakComponentOfMethod.java +++ b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeBreakComponentOfMethod.java @@ -2,6 +2,7 @@ package com.yomahub.liteflow.solon; import com.yomahub.liteflow.core.NodeBreakComponent; import com.yomahub.liteflow.enums.LiteFlowMethodEnum; +import com.yomahub.liteflow.exception.LiteFlowException; import org.noear.solon.core.BeanWrap; import java.lang.reflect.Method; @@ -22,12 +23,12 @@ public class NodeBreakComponentOfMethod extends NodeBreakComponent { if (method.getParameterCount() > 1) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeBreakComponent method parameter cannot be more than one: " + methodFullName); + throw new LiteFlowException("NodeBreakComponent method parameter cannot be more than one: " + methodFullName); } if (method.getReturnType() != Boolean.class) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeBreakComponent method returnType can only be boolean: " + methodFullName); + throw new LiteFlowException("NodeBreakComponent method returnType can only be boolean: " + methodFullName); } } diff --git a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeComponentOfMethod.java b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeComponentOfMethod.java index c7fb48a02..684623175 100644 --- a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeComponentOfMethod.java +++ b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeComponentOfMethod.java @@ -2,6 +2,7 @@ package com.yomahub.liteflow.solon; import com.yomahub.liteflow.core.NodeComponent; import com.yomahub.liteflow.enums.LiteFlowMethodEnum; +import com.yomahub.liteflow.exception.LiteFlowException; import com.yomahub.liteflow.slot.Slot; import org.noear.solon.core.BeanWrap; @@ -23,12 +24,12 @@ public class NodeComponentOfMethod extends NodeComponent { if (method.getParameterCount() > 1) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeComponent method parameter cannot be more than one: " + methodFullName); + throw new LiteFlowException("NodeComponent method parameter cannot be more than one: " + methodFullName); } if (method.getReturnType() != Void.class) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeComponent method returnType can only be void: " + methodFullName); + throw new LiteFlowException("NodeComponent method returnType can only be void: " + methodFullName); } } diff --git a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeForComponentOfMethod.java b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeForComponentOfMethod.java index fbdb2c8f6..e27394eb4 100644 --- a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeForComponentOfMethod.java +++ b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeForComponentOfMethod.java @@ -2,6 +2,7 @@ package com.yomahub.liteflow.solon; import com.yomahub.liteflow.core.NodeForComponent; import com.yomahub.liteflow.enums.LiteFlowMethodEnum; +import com.yomahub.liteflow.exception.LiteFlowException; import org.noear.solon.core.BeanWrap; import java.lang.reflect.Method; @@ -22,12 +23,12 @@ public class NodeForComponentOfMethod extends NodeForComponent { if (method.getParameterCount() > 1) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeForComponent method parameter cannot be more than one: " + methodFullName); + throw new LiteFlowException("NodeForComponent method parameter cannot be more than one: " + methodFullName); } if (method.getReturnType() != Integer.class) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeForComponent method returnType can only be int: " + methodFullName); + throw new LiteFlowException("NodeForComponent method returnType can only be int: " + methodFullName); } } diff --git a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeIfComponentOfMethod.java b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeIfComponentOfMethod.java index d7158d8be..85d85c4e7 100644 --- a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeIfComponentOfMethod.java +++ b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeIfComponentOfMethod.java @@ -2,6 +2,7 @@ package com.yomahub.liteflow.solon; import com.yomahub.liteflow.core.NodeIfComponent; import com.yomahub.liteflow.enums.LiteFlowMethodEnum; +import com.yomahub.liteflow.exception.LiteFlowException; import org.noear.solon.core.BeanWrap; import java.lang.reflect.Method; @@ -22,12 +23,12 @@ public class NodeIfComponentOfMethod extends NodeIfComponent { if (method.getParameterCount() > 1) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeIfComponent method parameter cannot be more than one: " + methodFullName); + throw new LiteFlowException("NodeIfComponent method parameter cannot be more than one: " + methodFullName); } if (method.getReturnType() != Boolean.class) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeIfComponent method returnType can only be boolean: " + methodFullName); + throw new LiteFlowException("NodeIfComponent method returnType can only be boolean: " + methodFullName); } } diff --git a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeSwitchComponentOfMethod.java b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeSwitchComponentOfMethod.java index be66f92d6..18d184a6c 100644 --- a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeSwitchComponentOfMethod.java +++ b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeSwitchComponentOfMethod.java @@ -2,6 +2,7 @@ package com.yomahub.liteflow.solon; import com.yomahub.liteflow.core.NodeSwitchComponent; import com.yomahub.liteflow.enums.LiteFlowMethodEnum; +import com.yomahub.liteflow.exception.LiteFlowException; import org.noear.solon.core.BeanWrap; import java.lang.reflect.Method; @@ -22,12 +23,12 @@ public class NodeSwitchComponentOfMethod extends NodeSwitchComponent { if (method.getParameterCount() > 1) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeSwitchComponent method parameter cannot be more than one: " + methodFullName); + throw new LiteFlowException("NodeSwitchComponent method parameter cannot be more than one: " + methodFullName); } if (method.getReturnType() != String.class) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeSwitchComponent method returnType can only be string: " + methodFullName); + throw new LiteFlowException("NodeSwitchComponent method returnType can only be string: " + methodFullName); } } diff --git a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeWhileComponentOfMethod.java b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeWhileComponentOfMethod.java index 967fa7bb3..577dd147d 100644 --- a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeWhileComponentOfMethod.java +++ b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/NodeWhileComponentOfMethod.java @@ -2,6 +2,7 @@ package com.yomahub.liteflow.solon; import com.yomahub.liteflow.core.NodeWhileComponent; import com.yomahub.liteflow.enums.LiteFlowMethodEnum; +import com.yomahub.liteflow.exception.LiteFlowException; import org.noear.solon.core.BeanWrap; import java.lang.reflect.Method; @@ -22,12 +23,12 @@ public class NodeWhileComponentOfMethod extends NodeWhileComponent { if (method.getParameterCount() > 1) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeWhileComponent method parameter cannot be more than one: " + methodFullName); + throw new LiteFlowException("NodeWhileComponent method parameter cannot be more than one: " + methodFullName); } if (method.getReturnType() != Boolean.class) { String methodFullName = beanWrap.clz().getName() + "::" + method.getName(); - throw new RuntimeException("NodeWhileComponent method returnType can only be boolean: " + methodFullName); + throw new LiteFlowException("NodeWhileComponent method returnType can only be boolean: " + methodFullName); } } diff --git a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/integration/XPluginImpl.java b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/integration/XPluginImpl.java index 016a9927c..22013706d 100644 --- a/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/integration/XPluginImpl.java +++ b/liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/solon/integration/XPluginImpl.java @@ -3,8 +3,9 @@ package com.yomahub.liteflow.solon.integration; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.annotation.LiteflowMethod; import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.enums.LiteFlowMethodEnum; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.solon.NodeComponentOfMethod; +import com.yomahub.liteflow.solon.*; import com.yomahub.liteflow.solon.config.LiteflowAutoConfiguration; import com.yomahub.liteflow.solon.config.LiteflowMainAutoConfiguration; import com.yomahub.liteflow.solon.config.LiteflowMonitorProperty; @@ -51,7 +52,28 @@ public class XPluginImpl implements Plugin { }); context.beanExtractorAdd(LiteflowMethod.class, (bw, method, anno) -> { - NodeComponent node1 = new NodeComponentOfMethod(bw, method, anno.value()); + NodeComponent node1 = null; + switch (anno.value()) { + case PROCESS_SWITCH: + node1 = new NodeSwitchComponentOfMethod(bw, method, anno.value()); + break; + case PROCESS_IF: + node1 = new NodeIfComponentOfMethod(bw, method, anno.value()); + break; + case PROCESS_FOR: + node1 = new NodeForComponentOfMethod(bw, method, anno.value()); + break; + case PROCESS_WHILE: + node1 = new NodeWhileComponentOfMethod(bw, method, anno.value()); + break; + case PROCESS_BREAK: + node1 = new NodeBreakComponentOfMethod(bw, method, anno.value()); + break; + default: + node1 = new NodeComponentOfMethod(bw, method, anno.value()); + } + + String nodeId = Utils.annoAlias(anno.nodeId(), bw.name()); node1.setNodeId(nodeId); node1.setType(anno.nodeType());