@5minds/processcube_engine
Version:
The ProcessCube Engine. Stores and executes BPMNs.
34 lines (33 loc) • 2.39 kB
TypeScript
import { BaseError, FlowNodeInstance, Model } from '@5minds/processcube_engine_sdk';
import { FlowNodeInstanceTypeSpecificData } from '../../../Contracts';
import { FlowNodeInstanceDatabaseAdapter } from '../../../Tools/DatabaseAdaptersSequelize/index';
import { EventMiddlewareHandler } from '../../../Tools/EventMiddlewareHandler';
import { ProcessInstance } from '../../ProcessInstance';
import { FlowNodeHandlerFactory } from '../FlowNodeHandlerFactory';
import { GatewayHandler } from './GatewayHandler';
export declare class EventBasedGatewayHandler extends GatewayHandler<Model.Gateways.EventBasedGateway> {
private triggered;
private connectedCatchEvents;
constructor(eventMiddlewareHandler: EventMiddlewareHandler, flowNodeHandlerFactory: FlowNodeHandlerFactory, flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter, eventBasedGatewayModel: Model.Gateways.EventBasedGateway, processInstance: ProcessInstance);
get hasBeenTriggered(): boolean;
private get eventBasedGateway();
private get iocKey();
/**
* Takes a Catch Event Handler Instance ID and cancels all OTHER connected catch event instances,
* if the given Flow Node Instance ID is elligble for triggering the gateway.
*
* @param flowNodeInstanceId The Instance ID of the triggering Catch Event.
* @returns True, if the gateway was triggered.
*/
evaluateAndTriggerCatchEvent(flowNodeInstanceId: string): Promise<boolean>;
protected beforeExecute(resolveFunction?: Function, rejectFunction?: Function, resumedFlowNodeInstances?: FlowNodeInstance[]): Promise<void>;
protected afterExecute(): Promise<void>;
protected persistOnExit(): Promise<void>;
protected persistOnError<TFlowNodeData extends FlowNodeInstanceTypeSpecificData>(error: BaseError, typeData?: TFlowNodeData): Promise<void>;
protected persistOnTerminate<TFlowNodeData extends FlowNodeInstanceTypeSpecificData>(typeData?: TFlowNodeData): Promise<void>;
protected startExecution(): Promise<Array<Model.Base.FlowNode>>;
protected executeHandler(): Promise<Array<Model.Base.FlowNode>>;
protected resumeAfterExit(allFlowNodeInstances: Array<FlowNodeInstance>): Promise<Array<Model.Base.FlowNode>>;
protected handleNextFlowNode(nextFlowNode: Model.Base.FlowNode, allFlowNodeInstancesToResume?: Array<FlowNodeInstance>): Promise<void>;
private cleanup;
}