Flowable源码注释(五十)扩展类任务解析处理器

本文详细解读Flowable引擎中扩展任务的解析处理器,包括BusinessRuleParseHandler的业务规则解析,HttpServiceTaskParseHandler的HTTP服务任务解析,ManualTaskParseHandler的手动任务解析和ScriptTaskParseHandler的脚本任务解析。了解这些处理器的工作原理对于深入理解Flowable流程引擎的运行机制至关重要。
摘要由CSDN通过智能技术生成

Flowable源码地址:https://github.com/flowable/flowable-engine

Flowable-6.7.2 源码注释地址:https://github.com/solojin/flowable-6.7.2-annotated

扩展类任务解析处理器,包路径:org.flowable.engine.impl.bpmn.parser.handler

BusinessRuleParseHandler 业务规则解析处理器

/**
 * 业务规则解析处理器
 *
 * @author Joram Barrez
 */
public class BusinessRuleParseHandler extends AbstractActivityBpmnParseHandler<BusinessRuleTask> {

    @Override
    public Class<? extends BaseElement> getHandledType() {
        return BusinessRuleTask.class;
    }

    // 策略模式动态设置行为,工厂模式创建业务规则活动行为
    @Override
    protected void executeParse(BpmnParse bpmnParse, BusinessRuleTask businessRuleTask) {
        businessRuleTask.setBehavior(bpmnParse.getActivityBehaviorFactory().createBusinessRuleTaskActivityBehavior(businessRuleTask));
    }

}

HttpServiceTaskParseHandler HTTP服务任务解析处理器

/**
 * HTTP服务任务解析处理器
 *
 * @author Tijs Rademakers
 */
public class HttpServiceTaskParseHandler extends AbstractActivityBpmnParseHandler<ServiceTask> {

    @Override
    public Class<? extends BaseElement> getHandledType() {
        return HttpServiceTask.class;
    }

    // 策略模式动态设置行为,工厂模式创建HTTP活动行为
    @Override
    protected void executeParse(BpmnParse bpmnParse, ServiceTask serviceTask) {
        serviceTask.setBehavior(bpmnParse.getActivityBehaviorFactory().createHttpActivityBehavior(serviceTask));
    }
}

ManualTaskParseHandler 手动任务解析处理器

/**
 * 手动任务解析处理器
 *
 * @author Joram Barrez
 */
public class ManualTaskParseHandler extends AbstractActivityBpmnParseHandler<ManualTask> {

    @Override
    public Class<? extends BaseElement> getHandledType() {
        return ManualTask.class;
    }

    @Override
    protected void executeParse(BpmnParse bpmnParse, ManualTask manualTask) {
        manualTask.setBehavior(bpmnParse.getActivityBehaviorFactory().createManualTaskActivityBehavior(manualTask));
    }
}

ScriptTaskParseHandler 脚本任务解析处理器

/**
 * 脚本任务解析处理器
 * @author Joram Barrez
 */
public class ScriptTaskParseHandler extends AbstractActivityBpmnParseHandler<ScriptTask> {

    private static final Logger LOGGER = LoggerFactory.getLogger(ScriptTaskParseHandler.class);

    @Override
    public Class<? extends BaseElement> getHandledType() {
        return ScriptTask.class;
    }

    @Override
    protected void executeParse(BpmnParse bpmnParse, ScriptTask scriptTask) {

        if (StringUtils.isEmpty(scriptTask.getScript())) {
            LOGGER.warn("No script provided for scriptTask {}", scriptTask.getId());
        }

        scriptTask.setBehavior(bpmnParse.getActivityBehaviorFactory().createScriptTaskActivityBehavior(scriptTask));

    }

}
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值