Flowable源码注释(六十七)边界扩大、定时器、消息、信号事件行为类

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

BoundaryEscalationEventActivityBehavior 边界扩大事件活动行为类

/**
 * 边界扩大事件活动行为类
 *
 * 扩大事件大多数用在连接子流程和父流程,用于触发一个子流程,不能发起流程实例
 * 与错误事件不同,扩大事件不是临界事件,在抛出扩大事件的地方会继续执行
 *
 * @author Tijs Rademakers
 */
public class BoundaryEscalationEventActivityBehavior extends BoundaryEventActivityBehavior {
   

    private static final long serialVersionUID = 1L;

    protected EscalationEventDefinition escalationEventDefinition;
    protected Escalation escalation;

    public BoundaryEscalationEventActivityBehavior(EscalationEventDefinition escalationEventDefinition, Escalation escalation, boolean interrupting) {
   
        super(interrupting);
        this.escalationEventDefinition = escalationEventDefinition;
        this.escalation = escalation;
    }

    @Override
    public void execute(DelegateExecution execution) {
   
        CommandContext commandContext = Context.getCommandContext();
        ExecutionEntity executionEntity = (ExecutionEntity) execution;

        String escalationCode = null;
        String escalationName = null;
        if (escalation != null) {
   
            escalationCode = escalation.getEscalationCode();
            escalationName = escalation.getName();
        } else {
   
            escalationCode = escalationEventDefinition.getEscalationCode();
        }

        // 从命令上下文中获取流程引擎配置,进而获取事件调遣器
        ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration(commandContext);
        FlowableEventDispatcher eventDispatcher = processEngineConfiguration.getEventDispatcher();
        if (eventDispatcher != null && eventDispatcher.isEnabled()) {
   
            eventDispatcher.dispatchEvent(FlowableEventBuilder.createEscalationEvent(FlowableEngineEventType.ACTIVITY_ESCALATION_WAITING, executionEntity.getActivityId(), escalationCode,
                    escalationName, executionEntity.getId(), executionEntity.getProcessInstanceId(), executionEntity.getProcessDefinitionId()),
                    processEngineConfiguration.getEngineCfgKey());
        }
    }
}

BoundaryTimerEventActivityBehavior 边界定时器事件活动行为类

/**
 * 边界定时器事件活动行为类
 *
 * @author Joram Barrez
 */
public class BoundaryTimerEventActivityBehavior extends BoundaryEventActivityBehavior {
   

    private static final long serialVersionUID = 1L;

    protected TimerEventDefinition timerEventDefinition;

    public BoundaryTimerEventActivityBehavior(TimerEventDefinition timerEventDefinition, boolean interrupting) {
   
        super(interrupting)
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值