public class ProcessExecutorImpl extends java.lang.Object implements ProcessExecutor
| Modifier and Type | Field and Description |
|---|---|
protected ActivityInstanceService |
activityInstanceService |
protected BPMInstancesCreator |
bpmInstancesCreator |
protected ClassLoaderService |
classLoaderService |
protected ConnectorService |
connectorService |
protected EventsHandler |
eventsHandler |
protected ExpressionResolverService |
expressionResolverService |
protected ExpressionService |
expressionService |
protected ProcessInstanceService |
processInstanceService |
| Constructor and Description |
|---|
ProcessExecutorImpl(ActivityInstanceService activityInstanceService,
ProcessInstanceService processInstanceService,
TechnicalLoggerService logger,
FlowNodeExecutor flowNodeExecutor,
WorkService workService,
ProcessDefinitionService processDefinitionService,
GatewayInstanceService gatewayInstanceService,
ProcessResourcesService processResourcesService,
ConnectorService connectorService,
ConnectorInstanceService connectorInstanceService,
ClassLoaderService classLoaderService,
OperationService operationService,
ExpressionResolverService expressionResolverService,
ExpressionService expressionService,
EventService eventService,
java.util.Map<java.lang.String,SProcessInstanceHandler<SEvent>> handlers,
DocumentService documentService,
ContainerRegistry containerRegistry,
BPMInstancesCreator bpmInstancesCreator,
EventsHandler eventsHandler,
FlowNodeStateManager flowNodeStateManager,
BusinessDataRepository businessDataRepository,
RefBusinessDataService refBusinessDataService,
TransitionEvaluator transitionEvaluator,
ContractDataService contractDataService,
BPMWorkFactory workFactory) |
| Modifier and Type | Method and Description |
|---|---|
void |
childFinished(long processDefinitionId,
long parentId,
SFlowNodeInstance sFlowNodeInstanceChild)
Method called to notify this container executor that a child reached the given state
|
protected SProcessInstance |
createProcessInstance(SProcessDefinition processDefinition,
long starterId,
long starterSubstituteId,
long callerId) |
boolean |
executeConnectors(SProcessDefinition processDefinition,
SProcessInstance sProcessInstance,
org.bonitasoft.engine.bpm.connector.ConnectorEvent activationEvent,
FlowNodeSelector selectorForConnectorOnEnter) |
protected void |
executeConnectors(SProcessDefinition processDefinition,
SProcessInstance sProcessInstance,
java.util.List<org.bonitasoft.engine.bpm.connector.ConnectorDefinitionWithInputValues> connectorsList) |
FlowNodeState |
executeFlowNode(SFlowNodeInstance flowNodeInstance,
java.lang.Long executerId,
java.lang.Long executerSubstituteId)
Execute a flow node in the context of this container executor
|
protected void |
executeOperations(java.util.List<SOperation> operations,
java.util.Map<java.lang.String,java.lang.Object> context,
SExpressionContext expressionContext,
SExpressionContext expressionContextToEvaluateOperations,
SProcessInstance sProcessInstance) |
java.lang.String |
getHandledType() |
protected org.bonitasoft.engine.bpm.document.DocumentValue |
getInitialDocumentValue(SProcessDefinition sDefinition,
java.util.Map<SExpression,org.bonitasoft.engine.bpm.document.DocumentValue> evaluatedDocumentValues,
SDocumentDefinition document) |
protected void |
handleEventSubProcess(SProcessDefinition sProcessDefinition,
SProcessInstance sProcessInstance,
long subProcessDefinitionId) |
void |
handleProcessCompletion(SProcessDefinition sProcessDefinition,
SProcessInstance sProcessInstance,
boolean hasActionsToExecute) |
protected boolean |
initialize(long userId,
SProcessDefinition sProcessDefinition,
SProcessInstance sProcessInstance,
SExpressionContext expressionContextToEvaluateOperations,
java.util.List<SOperation> operations,
java.util.Map<java.lang.String,java.lang.Object> context,
SFlowElementContainerDefinition processContainer,
java.util.List<org.bonitasoft.engine.bpm.connector.ConnectorDefinitionWithInputValues> connectors,
FlowNodeSelector selectorForConnectorOnEnter,
java.util.Map<java.lang.String,java.io.Serializable> processInputs) |
protected void |
initializeBusinessData(SFlowElementContainerDefinition processContainer,
SProcessInstance sInstance,
SExpressionContext expressionContext) |
protected void |
initializeData(SFlowElementContainerDefinition processContainer,
SProcessDefinition sProcessDefinition,
SProcessInstance sInstance) |
protected void |
removeDuplicatedInclusiveGatewayTransitions(SProcessDefinition processDefinition,
java.util.List<STransitionDefinition> chosenGatewaysTransitions) |
SProcessInstance |
start(long starterId,
long starterSubstituteId,
java.util.List<SOperation> operations,
java.util.Map<java.lang.String,java.lang.Object> context,
java.util.List<org.bonitasoft.engine.bpm.connector.ConnectorDefinitionWithInputValues> connectorsWithInput,
FlowNodeSelector selector,
java.util.Map<java.lang.String,java.io.Serializable> processInputs) |
SProcessInstance |
start(long processDefinitionId,
long targetSFlowNodeDefinitionId,
long starterId,
long starterSubstituteId,
SExpressionContext expressionContextToEvaluateOperations,
java.util.List<SOperation> operations,
long callerId,
long subProcessDefinitionId,
java.util.Map<java.lang.String,java.io.Serializable> processInputs) |
protected SProcessInstance |
start(long starterId,
long starterSubstituteId,
SExpressionContext expressionContextToEvaluateOperations,
java.util.List<SOperation> operations,
java.util.Map<java.lang.String,java.lang.Object> context,
java.util.List<org.bonitasoft.engine.bpm.connector.ConnectorDefinitionWithInputValues> connectors,
long callerId,
FlowNodeSelector selector,
java.util.Map<java.lang.String,java.io.Serializable> processInputs) |
SProcessInstance |
startElements(SProcessInstance sProcessInstance,
FlowNodeSelector selector) |
protected void |
validateContractInputs(java.util.Map<java.lang.String,java.io.Serializable> processInputs,
SProcessDefinition sProcessDefinition) |
protected final ActivityInstanceService activityInstanceService
protected final ProcessInstanceService processInstanceService
protected final ClassLoaderService classLoaderService
protected final ExpressionResolverService expressionResolverService
protected final ExpressionService expressionService
protected final ConnectorService connectorService
protected final BPMInstancesCreator bpmInstancesCreator
protected final EventsHandler eventsHandler
public ProcessExecutorImpl(ActivityInstanceService activityInstanceService, ProcessInstanceService processInstanceService, TechnicalLoggerService logger, FlowNodeExecutor flowNodeExecutor, WorkService workService, ProcessDefinitionService processDefinitionService, GatewayInstanceService gatewayInstanceService, ProcessResourcesService processResourcesService, ConnectorService connectorService, ConnectorInstanceService connectorInstanceService, ClassLoaderService classLoaderService, OperationService operationService, ExpressionResolverService expressionResolverService, ExpressionService expressionService, EventService eventService, java.util.Map<java.lang.String,SProcessInstanceHandler<SEvent>> handlers, DocumentService documentService, ContainerRegistry containerRegistry, BPMInstancesCreator bpmInstancesCreator, EventsHandler eventsHandler, FlowNodeStateManager flowNodeStateManager, BusinessDataRepository businessDataRepository, RefBusinessDataService refBusinessDataService, TransitionEvaluator transitionEvaluator, ContractDataService contractDataService, BPMWorkFactory workFactory)
public FlowNodeState executeFlowNode(SFlowNodeInstance flowNodeInstance, java.lang.Long executerId, java.lang.Long executerSubstituteId) throws SFlowNodeExecutionException
ContainerExecutorexecuteFlowNode in interface ContainerExecutorflowNodeInstance - The flow node instanceexecuterId - The identifier of the user which execute the flow nodeexecuterSubstituteId - The identifier of the delegated user which execute the flow nodeSFlowNodeExecutionException - Throw if there is an error when execute the flow nodepublic boolean executeConnectors(SProcessDefinition processDefinition, SProcessInstance sProcessInstance, org.bonitasoft.engine.bpm.connector.ConnectorEvent activationEvent, FlowNodeSelector selectorForConnectorOnEnter) throws SBonitaException
executeConnectors in interface ProcessExecutorSBonitaExceptionprotected SProcessInstance createProcessInstance(SProcessDefinition processDefinition, long starterId, long starterSubstituteId, long callerId) throws SProcessInstanceCreationException
protected void executeOperations(java.util.List<SOperation> operations, java.util.Map<java.lang.String,java.lang.Object> context, SExpressionContext expressionContext, SExpressionContext expressionContextToEvaluateOperations, SProcessInstance sProcessInstance) throws SBonitaException
SBonitaExceptionprotected boolean initialize(long userId,
SProcessDefinition sProcessDefinition,
SProcessInstance sProcessInstance,
SExpressionContext expressionContextToEvaluateOperations,
java.util.List<SOperation> operations,
java.util.Map<java.lang.String,java.lang.Object> context,
SFlowElementContainerDefinition processContainer,
java.util.List<org.bonitasoft.engine.bpm.connector.ConnectorDefinitionWithInputValues> connectors,
FlowNodeSelector selectorForConnectorOnEnter,
java.util.Map<java.lang.String,java.io.Serializable> processInputs)
throws org.bonitasoft.engine.exception.BonitaHomeNotSetException,
java.io.IOException,
org.bonitasoft.engine.bpm.connector.InvalidEvaluationConnectorConditionException,
SBonitaException
org.bonitasoft.engine.exception.BonitaHomeNotSetExceptionjava.io.IOExceptionorg.bonitasoft.engine.bpm.connector.InvalidEvaluationConnectorConditionExceptionSBonitaExceptionprotected void initializeData(SFlowElementContainerDefinition processContainer, SProcessDefinition sProcessDefinition, SProcessInstance sInstance) throws SProcessInstanceCreationException
protected void initializeBusinessData(SFlowElementContainerDefinition processContainer, SProcessInstance sInstance, SExpressionContext expressionContext) throws SBonitaException
SBonitaExceptionprotected org.bonitasoft.engine.bpm.document.DocumentValue getInitialDocumentValue(SProcessDefinition sDefinition, java.util.Map<SExpression,org.bonitasoft.engine.bpm.document.DocumentValue> evaluatedDocumentValues, SDocumentDefinition document) throws org.bonitasoft.engine.exception.BonitaHomeNotSetException, java.io.IOException, STenantIdNotSetException, SBonitaReadException
org.bonitasoft.engine.exception.BonitaHomeNotSetExceptionjava.io.IOExceptionSTenantIdNotSetExceptionSBonitaReadExceptionpublic void childFinished(long processDefinitionId,
long parentId,
SFlowNodeInstance sFlowNodeInstanceChild)
throws SBonitaException
ContainerExecutorchildFinished in interface ContainerExecutorprocessDefinitionId - The identifier of the process definitionparentId - The identifier of the parent of the flow nodeSBonitaExceptionpublic void handleProcessCompletion(SProcessDefinition sProcessDefinition, SProcessInstance sProcessInstance, boolean hasActionsToExecute) throws SBonitaException
handleProcessCompletion in interface ProcessExecutorSBonitaExceptionprotected void removeDuplicatedInclusiveGatewayTransitions(SProcessDefinition processDefinition, java.util.List<STransitionDefinition> chosenGatewaysTransitions)
public SProcessInstance start(long starterId, long starterSubstituteId, java.util.List<SOperation> operations, java.util.Map<java.lang.String,java.lang.Object> context, java.util.List<org.bonitasoft.engine.bpm.connector.ConnectorDefinitionWithInputValues> connectorsWithInput, FlowNodeSelector selector, java.util.Map<java.lang.String,java.io.Serializable> processInputs) throws SProcessInstanceCreationException, SContractViolationException
start in interface ProcessExecutorSProcessInstanceCreationExceptionSContractViolationExceptionpublic SProcessInstance start(long processDefinitionId, long targetSFlowNodeDefinitionId, long starterId, long starterSubstituteId, SExpressionContext expressionContextToEvaluateOperations, java.util.List<SOperation> operations, long callerId, long subProcessDefinitionId, java.util.Map<java.lang.String,java.io.Serializable> processInputs) throws SProcessInstanceCreationException, SContractViolationException
start in interface ProcessExecutorSProcessInstanceCreationExceptionSContractViolationExceptionprotected SProcessInstance start(long starterId, long starterSubstituteId, SExpressionContext expressionContextToEvaluateOperations, java.util.List<SOperation> operations, java.util.Map<java.lang.String,java.lang.Object> context, java.util.List<org.bonitasoft.engine.bpm.connector.ConnectorDefinitionWithInputValues> connectors, long callerId, FlowNodeSelector selector, java.util.Map<java.lang.String,java.io.Serializable> processInputs) throws SProcessInstanceCreationException, SContractViolationException
protected void validateContractInputs(java.util.Map<java.lang.String,java.io.Serializable> processInputs,
SProcessDefinition sProcessDefinition)
throws SContractViolationException
SContractViolationExceptionprotected void executeConnectors(SProcessDefinition processDefinition, SProcessInstance sProcessInstance, java.util.List<org.bonitasoft.engine.bpm.connector.ConnectorDefinitionWithInputValues> connectorsList) throws org.bonitasoft.engine.bpm.connector.InvalidEvaluationConnectorConditionException, SConnectorException
org.bonitasoft.engine.bpm.connector.InvalidEvaluationConnectorConditionExceptionSConnectorExceptionprotected void handleEventSubProcess(SProcessDefinition sProcessDefinition, SProcessInstance sProcessInstance, long subProcessDefinitionId) throws SBonitaException
SBonitaExceptionpublic SProcessInstance startElements(SProcessInstance sProcessInstance, FlowNodeSelector selector) throws SProcessInstanceCreationException, SFlowNodeExecutionException
startElements in interface ProcessExecutorSProcessInstanceCreationExceptionSFlowNodeExecutionExceptionpublic java.lang.String getHandledType()
getHandledType in interface ContainerExecutor