Flowable源码注释(六十)活动行为工厂类

本文详细探讨了Flowable-6.7.2中的ActivityBehaviorFactory类,它是流程引擎中用于创建活动行为的关键工厂类。通过阅读源码注释,可以深入了解流程实例的执行行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

ActivityBehaviorFactory 活动行为工厂类

/**
 * 活动行为工厂类
 * 工厂类用于BPMN解析类{@link BpmnParser},BPMN解析类实例化行为类。例如,在解析独占网关时,
 * 将请求此工厂创建新的行为类{@link ActivityBehavior},设置在流程当前步骤的元素上,并实现独占网关符合规范的行为。
 *
 * 您可以提供这个类自己的实现。通过这种方式,可以为标准bpmn xml构造提供不同的执行语义。你可以调整这个专用网关
 * 如果你想要的话,使其变成完全不同的东西。只有在希望更改任何BPMN默认构造的默认行为时,才建议创建自己的{@link ActivityBehaviorFactory}。
 * 即使这样,也要三思,因为它不再是符合规范的bpmn了。
 * 
 * 请注意,您始终可以使用类委托将任何自定义步骤表示为服务任务。
 * 
 * 实现自己的{@link ActivityBehaviorFactory}最简单、最可取的方法是扩展{@link DefaultActivityBehaviorFactory}类,
 * 并重写特定于{@link ActivityBehavior}您想更改的地方。
 *
 * 这个接口的一个实例可以注入{@link ProcessEngineConfigurationImpl}及其子类中。
 * 
 * @author Joram Barrez
 */
public interface ActivityBehaviorFactory {

    NoneStartEventActivityBehavior createNoneStartEventActivityBehavior(StartEvent startEvent);

    TaskActivityBehavior createTaskActivityBehavior(Task task);

    ManualTaskActivityBehavior createManualTaskActivityBehavior(ManualTask manualTask);

    ReceiveTaskActivityBehavior createReceiveTaskActivityBehavior(ReceiveTask receiveTask);

    ReceiveEventTaskActivityBehavior createReceiveEventTaskActivityBehavior(ReceiveTask receiveTask, String eventDefinitionKey);

    UserTaskActivityBehavior createUserTaskActivityBehavior(UserTask userTask);

    ClassDelegate createClassDelegateServiceTask(ServiceTask serviceTask);

    ServiceTaskDelegateExpressionActivityBehavior createServiceTaskDelegateExpressionActivityBehavior(ServiceTask serviceTask);

    ServiceTaskExpressionActivityBehavior createServiceTaskExpressionActivityBehavior(ServiceTask serviceTask);

    WebServiceActivityBehavior createWebServiceActivityBehavior(ServiceTask serviceTask, BpmnModel bpmnModel);

    WebServiceActivityBehavior createWebServiceActivityBehavior(SendTask sendTask, BpmnModel bpmnModel);

    MailActivityBehavior createMailActivityBehavior(ServiceTask serviceTask);

    MailActivityBehavior createMailActivityBehavior(SendTask sendTask);

    // 我们不希望对Mule模块产生硬依赖,因此我们返回
    // ActivityBehavior并使用字符串而不是类本身实例化委托实例。
    ActivityBehavior createMuleActivityBehavior(ServiceTask serviceTask);

    ActivityBehavior createMuleActivityBehavior(SendTask sendTask);

    ActivityBehavior createCamelActivityBehavior(ServiceTask serviceTask);

    ActivityBehavior createCamelActivityBehavior(SendTask sendTask);

    ActivityBehavior createDmnActivityBehavior(ServiceTask serviceTask);

    ActivityBehavior createDmnActivityBehavior(SendTask sendTask);

    ActivityBehavior createHttpActivityBehavior(ServiceTask serviceTask);

    ShellActivityBehavior createShellActivityBehavior(ServiceTask serviceTask);

    ActivityBehavior createBusinessRuleTaskActivityBehavior(BusinessRuleTask businessRuleTask);

    ScriptTaskActivityBehavior createScriptTaskActivityBehavior(ScriptTask scriptTask);
    
    SendEventTaskActivityBehavior createSendEventTaskBehavior(SendEventServiceTask sendEventServiceTask);

    ExternalWorkerTaskActivityBehavior createExternalWorkerTaskBehavior(ExternalWorkerServiceTask externalWorkerServiceTask);

    ExclusiveGatewayActivityBehavior createExclusiveGatewayActivityBehavior(ExclusiveGateway exclusiveGateway);

    ParallelGatewayActivityBehavior createParallelGatewayActivityBehavior(ParallelGateway parallelGateway);

    InclusiveGatewayActivityBehavior createInclusiveGatewayActivityBehavior(InclusiveGateway inclusiveGateway);

    EventBasedGatewayActivityBehavior createEventBasedGatewayActivityBehavior(EventGateway eventGateway);

    SequentialMultiInstanceBehavior createSequentialMultiInstanceBehavior(Activity activity, AbstractBpmnActivityBehavior innerActivityBehavior);

    ParallelMultiInstanceBehavior createParallelMultiInstanceBehavior(Activity activity, AbstractBpmnActivityBehavior innerActivityBehavior);

    SubProcessActivityBehavior createSubprocessActivityBehavior(SubProcess subProcess);

    EventSubProcessActivityBehavior createEventSubprocessActivityBehavior(EventSubProcess eventSubProcess);
    
    EventSubProcessConditionalStartEventActivityBehavior createEventSubProcessConditionalStartEventActivityBehavior(StartEvent startEvent,
            ConditionalEventDefinition conditionalEventDefinition, String conditionExpression);

    EventSubProcessErrorStartEventActivityBehavior createEventSubProcessErrorStartEventActivityBehavior(StartEvent startEvent);
    
    EventSubProcessEscalationStartEventActivityBehavior createEventSubProcessEscalationStartEventActivityBehavior(StartEvent startEvent);

    EventSubProcessMessageStartEventActivityBehavior createEventSubProcessMessageStartEventActivityBehavior(StartEvent startEvent, MessageEventDefinition messageEventDefinition);

    EventSubProcessSignalStartEventActivityBehavior createEventSubProcessSignalStartEventActivityBehavior(StartEvent startEvent, SignalEventDefinition signalEventDefinition, Signal signal);

    EventSubProcessTimerStartEventActivityBehavior createEventSubProcessTimerStartEventActivityBehavior(StartEvent startEvent, TimerEventDefinition timerEventDefinition);
    
    EventSubProcessEventRegistryStartEventActivityBehavior createEventSubProcessEventRegistryStartEventActivityBehavior(StartEvent startEvent, String eventDefinitionKey);
    
    EventSubProcessVariableListenerlStartEventActivityBehavior createEventSubProcessVariableListenerlStartEventActivityBehavior(StartEvent startEvent, VariableListenerEventDefinition variableListenerEventDefinition);
    
    AdhocSubProcessActivityBehavior createAdhocSubprocessActivityBehavior(SubProcess subProcess);

    CallActivityBehavior createCallActivityBehavior(CallActivity callActivity);
    
    CaseTaskActivityBehavior createCaseTaskBehavior(CaseServiceTask caseServiceTask);

    TransactionActivityBehavior createTransactionActivityBehavior(Transaction transaction);

    IntermediateCatchEventActivityBehavior createIntermediateCatchEventActivityBehavior(IntermediateCatchEvent intermediateCatchEvent);

    IntermediateCatchMessageEventActivityBehavior createIntermediateCatchMessageEventActivityBehavior(IntermediateCatchEvent intermediateCatchEvent,
            MessageEventDefinition messageEventDefinition);
    
    IntermediateCatchConditionalEventActivityBehavior createIntermediateCatchConditionalEventActivityBehavior(IntermediateCatchEvent intermediateCatchEvent,
            ConditionalEventDefinition conditionalEventDefinition, String conditionExpression);

    IntermediateCatchTimerEventActivityBehavior createIntermediateCatchTimerEventActivityBehavior(IntermediateCatchEvent intermediateCatchEvent, TimerEventDefinition timerEventDefinition);

    IntermediateCatchEventRegistryEventActivityBehavior createIntermediateCatchEventRegistryEventActivityBehavior(IntermediateCatchEvent intermediateCatchEvent, String eventDefinitionKey);

    IntermediateCatchSignalEventActivityBehavior createIntermediateCatchSignalEventActivityBehavior(IntermediateCatchEvent intermediateCatchEvent,
            SignalEventDefinition signalEventDefinition, Signal signal);
    
    IntermediateCatchVariableListenerEventActivityBehavior createIntermediateCatchVariableListenerEventActivityBehavior(IntermediateCatchEvent intermediateCatchEvent, 
            VariableListenerEventDefinition variableListenerEventDefinition);
    
    IntermediateThrowNoneEventActivityBehavior createIntermediateThrowNoneEventActivityBehavior(ThrowEvent throwEvent);

    IntermediateThrowSignalEventActivityBehavior createIntermediateThrowSignalEventActivityBehavior(ThrowEvent throwEvent, SignalEventDefinition signalEventDefinition, Signal signal);
    
    IntermediateThrowEscalationEventActivityBehavior createIntermediateThrowEscalationEventActivityBehavior(ThrowEvent throwEvent, EscalationEventDefinition escalationEventDefinition, Escalation escalation);

    IntermediateThrowCompensationEventActivityBehavior createIntermediateThrowCompensationEventActivityBehavior(ThrowEvent throwEvent, CompensateEventDefinition compensateEventDefinition);

    NoneEndEventActivityBehavior createNoneEndEventActivityBehavior(EndEvent endEvent);

    ErrorEndEventActivityBehavior createErrorEndEventActivityBehavior(EndEvent endEvent, ErrorEventDefinition errorEventDefinition);
    
    EscalationEndEventActivityBehavior createEscalationEndEventActivityBehavior(EndEvent endEvent, EscalationEventDefinition escalationEventDefinition, Escalation escalation);

    CancelEndEventActivityBehavior createCancelEndEventActivityBehavior(EndEvent endEvent);

    TerminateEndEventActivityBehavior createTerminateEndEventActivityBehavior(EndEvent endEvent);

    BoundaryEventActivityBehavior createBoundaryEventActivityBehavior(BoundaryEvent boundaryEvent, boolean interrupting);

    BoundaryCancelEventActivityBehavior createBoundaryCancelEventActivityBehavior(CancelEventDefinition cancelEventDefinition);

    BoundaryTimerEventActivityBehavior createBoundaryTimerEventActivityBehavior(BoundaryEvent boundaryEvent, TimerEventDefinition timerEventDefinition, boolean interrupting);

    BoundarySignalEventActivityBehavior createBoundarySignalEventActivityBehavior(BoundaryEvent boundaryEvent, SignalEventDefinition signalEventDefinition, Signal signal, boolean interrupting);

    BoundaryMessageEventActivityBehavior createBoundaryMessageEventActivityBehavior(BoundaryEvent boundaryEvent, MessageEventDefinition messageEventDefinition, boolean interrupting);
    
    BoundaryConditionalEventActivityBehavior createBoundaryConditionalEventActivityBehavior(BoundaryEvent boundaryEvent, ConditionalEventDefinition conditionalEventDefinition,
            String conditionExpression, boolean interrupting);
    
    BoundaryEscalationEventActivityBehavior createBoundaryEscalationEventActivityBehavior(BoundaryEvent boundaryEvent, EscalationEventDefinition escalationEventDefinition, Escalation escalation, boolean interrupting);

    BoundaryCompensateEventActivityBehavior createBoundaryCompensateEventActivityBehavior(BoundaryEvent boundaryEvent, CompensateEventDefinition compensateEventDefinition, boolean interrupting);
    
    BoundaryEventRegistryEventActivityBehavior createBoundaryEventRegistryEventActivityBehavior(BoundaryEvent boundaryEvent, String eventDefinitionKey, boolean interrupting);
    
    BoundaryVariableListenerEventActivityBehavior createBoundaryVariableListenerEventActivityBehavior(BoundaryEvent boundaryEvent, VariableListenerEventDefinition variableListenerEventDefinition, boolean interrupting);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值