UNPKG

@5minds/processcube_engine

Version:

The ProcessCube Engine. Stores and executes BPMNs.

34 lines (33 loc) 2.39 kB
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; }