@5minds/processcube_engine
Version:
The ProcessCube Engine. Stores and executes BPMNs.
55 lines • 8.03 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActivityInstanceHandlerFactory = void 0;
const processcube_engine_sdk_1 = require("@5minds/processcube_engine_sdk");
const IocRegistrations_1 = require("../../../Contracts/IocRegistrations");
const BusinessRuleTaskInstanceHandler_1 = require("./BusinessRuleTaskInstanceHandler");
const CallActivityInstanceHandler_1 = require("./CallActivityInstanceHandler");
const CustomServiceTaskInstanceHandler_1 = require("./CustomServiceTaskInstanceHandler");
const ExternalServiceTaskInstanceHandler_1 = require("./ExternalServiceTaskInstanceHandler");
const HttpServiceTaskInstanceHandler_1 = require("./HttpServiceTaskInstanceHandler");
const ManualTaskInstanceHandler_1 = require("./ManualTaskInstanceHandler");
const ReceiveTaskInstanceHandler_1 = require("./ReceiveTaskInstanceHandler");
const ScriptTaskInstanceHandler_1 = require("./ScriptTaskInstanceHandler");
const SendTaskInstanceHandler_1 = require("./SendTaskInstanceHandler");
const SubProcessInstanceHandler_1 = require("./SubProcessInstanceHandler");
const UntypedTaskInstanceHandler_1 = require("./UntypedTaskInstanceHandler");
const UserTaskInstanceHandler_1 = require("./UserTaskInstanceHandler");
exports.ActivityInstanceHandlerFactory = {
create(processInstance, activityHandler, previousFlowNodeInstanceId, instanceContext) {
const container = processInstance.getContainer();
switch (activityHandler.flowNode.bpmnType) {
case processcube_engine_sdk_1.BpmnType.serviceTask:
const serviceTask = activityHandler.flowNode;
if (serviceTask.type === processcube_engine_sdk_1.Model.Activities.ServiceTaskType.external) {
return new ExternalServiceTaskInstanceHandler_1.ExternalServiceTaskInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.ExternalTaskDatabaseAdapter), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
}
const invocation = serviceTask.invocation;
if (invocation?.module === 'HttpClient') {
return new HttpServiceTaskInstanceHandler_1.HttpServiceTaskInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
}
return new CustomServiceTaskInstanceHandler_1.CustomServiceTaskInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
case processcube_engine_sdk_1.BpmnType.businessRuleTask:
return new BusinessRuleTaskInstanceHandler_1.BusinessRuleTaskInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
case processcube_engine_sdk_1.BpmnType.callActivity:
return new CallActivityInstanceHandler_1.CallActivityInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.core.services.CoreAccess), container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), container.get(IocRegistrations_1.IocRegistrationKeys.internal.IdentityService), container.get(IocRegistrations_1.IocRegistrationKeys.internal.ProcessDefinitionMediator), container.get(IocRegistrations_1.IocRegistrationKeys.internal.ProcessInstanceDatabaseAdapter), container.get(IocRegistrations_1.IocRegistrationKeys.core.services.ProcessInstanceFactory), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
case processcube_engine_sdk_1.BpmnType.untypedTask:
return new UntypedTaskInstanceHandler_1.UntypedTaskInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
case processcube_engine_sdk_1.BpmnType.scriptTask:
return new ScriptTaskInstanceHandler_1.ScriptTaskInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
case processcube_engine_sdk_1.BpmnType.subProcess:
return new SubProcessInstanceHandler_1.SubProcessInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.core.services.CoreAccess), container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), container.get(IocRegistrations_1.IocRegistrationKeys.internal.IdentityService), container.get(IocRegistrations_1.IocRegistrationKeys.internal.ProcessInstanceDatabaseAdapter), container.get(IocRegistrations_1.IocRegistrationKeys.core.services.ProcessInstanceFactory), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
case processcube_engine_sdk_1.BpmnType.userTask:
return new UserTaskInstanceHandler_1.UserTaskInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
case processcube_engine_sdk_1.BpmnType.sendTask:
return new SendTaskInstanceHandler_1.SendTaskInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), container.get(IocRegistrations_1.IocRegistrationKeys.core.services.MessageEventService), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
case processcube_engine_sdk_1.BpmnType.receiveTask:
return new ReceiveTaskInstanceHandler_1.ReceiveTaskInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), container.get(IocRegistrations_1.IocRegistrationKeys.core.services.MessageEventService), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
case processcube_engine_sdk_1.BpmnType.manualTask:
return new ManualTaskInstanceHandler_1.ManualTaskInstanceHandler(container.get(IocRegistrations_1.IocRegistrationKeys.internal.EventMiddlewareHandler), container.get(IocRegistrations_1.IocRegistrationKeys.internal.FlowNodeInstanceDatabaseAdapter), activityHandler, processInstance, previousFlowNodeInstanceId, instanceContext);
default:
throw new processcube_engine_sdk_1.InternalServerError(`BPMN type \`${activityHandler.flowNode.bpmnType}\` cannot be instantiated by the ActivityInstanceHandlerFactory. Try the regular FlowNodeInstanceFactory.`, 'setup');
}
},
};
//# sourceMappingURL=ActivityInstanceHandlerFactory.js.map