package com.njcn.prepare.executor;

import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.yomahub.liteflow.core.NodeComponent;

import java.util.Set;

/**
 * @author hongawen
 * @version 1.0.0
 * @date 2023年11月07日 09:02
 */
public class BaseExecutor {


    /***
     * 判断当前节点是否执行
     * @author hongawen
     * @date 2023/11/6 16:17
     * @param bindCmp 执行链绑定的上下文
     * @return boolean
     */
    public boolean isAccess(NodeComponent bindCmp) {
        String tag = bindCmp.getTag();
        if (StrUtil.isBlank(tag)) {
            //没有指定tag的，使用node自己的名称判断
            tag = bindCmp.getNodeId();
        }
        CalculatedParam requestData = bindCmp.getRequestData();
        Set<String> tagNames = requestData.getTagNames();
        if (requestData.isFullChain() || (CollectionUtil.isNotEmpty(tagNames) && tagNames.contains(tag))) {
            return true;
        }
        return false;
    }
}
