enhancement #I84XNE 调整 must 入参类型

This commit is contained in:
luoyi 2023-09-28 20:25:54 +08:00
parent 46d3939e53
commit 3921430631
2 changed files with 14 additions and 8 deletions

View File

@ -1,14 +1,13 @@
package com.yomahub.liteflow.builder.el.operator;
import cn.hutool.core.util.StrUtil;
import com.yomahub.liteflow.builder.el.operator.base.BaseOperator;
import com.yomahub.liteflow.builder.el.operator.base.OperatorHelper;
import com.yomahub.liteflow.enums.ParallelStrategyEnum;
import com.yomahub.liteflow.flow.element.Executable;
import com.yomahub.liteflow.flow.element.condition.WhenCondition;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
/**
* EL 规则中的 must 的操作符
@ -20,14 +19,21 @@ public class MustOperator extends BaseOperator<WhenCondition> {
@Override
public WhenCondition build(Object[] objects) throws Exception {
OperatorHelper.checkObjectSizeEqTwo(objects);
OperatorHelper.checkObjectSizeGtTwo(objects);
WhenCondition whenCondition = OperatorHelper.convert(objects[0], WhenCondition.class);
String specifyIds = OperatorHelper.convert(objects[1], String.class);
// 解析指定完成的任务 ID 集合
Set<String> specifyIdSet = Arrays.stream(specifyIds.replace(StrUtil.SPACE, StrUtil.EMPTY).split(",")).collect(Collectors.toSet());
Set<String> specifyIdSet = new HashSet<>();
for (int i = 1; i < objects.length; i++) {
Object task = objects[i];
if (task instanceof String) {
specifyIdSet.add(OperatorHelper.convert(task, String.class));
} else if (task instanceof Executable) {
specifyIdSet.add(OperatorHelper.convert(task, Executable.class).getId());
}
}
whenCondition.setSpecifyIdSet(specifyIdSet);
whenCondition.setParallelStrategy(ParallelStrategyEnum.SPECIFY);

View File

@ -63,7 +63,7 @@
</chain>
<chain name="chain13">
THEN(WHEN(d, g, l, a, THEN(k, b).id("z")).ignoreError(true).must("z, g, task1, task2"), c);
THEN(WHEN(d, g, l, a, THEN(k, b).id("z")).ignoreError(true).must("z", g, "task1", "task2"), c);
</chain>
</flow>