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 |
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
ContainerExecutor
executeFlowNode
in interface ContainerExecutor
flowNodeInstance
- 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 ProcessExecutor
SBonitaException
protected 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
SBonitaException
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) throws org.bonitasoft.engine.exception.BonitaHomeNotSetException, java.io.IOException, org.bonitasoft.engine.bpm.connector.InvalidEvaluationConnectorConditionException, SBonitaException
org.bonitasoft.engine.exception.BonitaHomeNotSetException
java.io.IOException
org.bonitasoft.engine.bpm.connector.InvalidEvaluationConnectorConditionException
SBonitaException
protected void initializeData(SFlowElementContainerDefinition processContainer, SProcessDefinition sProcessDefinition, SProcessInstance sInstance) throws SProcessInstanceCreationException
protected 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.BonitaHomeNotSetException
java.io.IOException
STenantIdNotSetException
SBonitaReadException
public void childFinished(long processDefinitionId, long parentId, SFlowNodeInstance sFlowNodeInstanceChild) throws SBonitaException
ContainerExecutor
childFinished
in interface ContainerExecutor
processDefinitionId
- The identifier of the process definitionparentId
- The identifier of the parent of the flow nodeSBonitaException
public void handleProcessCompletion(SProcessDefinition sProcessDefinition, SProcessInstance sProcessInstance, boolean hasActionsToExecute) throws SBonitaException
handleProcessCompletion
in interface ProcessExecutor
SBonitaException
protected 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 ProcessExecutor
SProcessInstanceCreationException
SContractViolationException
public 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 ProcessExecutor
SProcessInstanceCreationException
SContractViolationException
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) throws SProcessInstanceCreationException, SContractViolationException
protected void validateContractInputs(java.util.Map<java.lang.String,java.io.Serializable> processInputs, SProcessDefinition sProcessDefinition) throws SContractViolationException
SContractViolationException
protected 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.InvalidEvaluationConnectorConditionException
SConnectorException
protected void handleEventSubProcess(SProcessDefinition sProcessDefinition, SProcessInstance sProcessInstance, long subProcessDefinitionId) throws SBonitaException
SBonitaException
public SProcessInstance startElements(SProcessInstance sProcessInstance, FlowNodeSelector selector) throws SProcessInstanceCreationException, SFlowNodeExecutionException
startElements
in interface ProcessExecutor
SProcessInstanceCreationException
SFlowNodeExecutionException
public java.lang.String getHandledType()
getHandledType
in interface ContainerExecutor