Class ExecutionEntity
- java.lang.Object
-
- org.camunda.bpm.engine.impl.core.variable.scope.AbstractVariableScope
-
- org.camunda.bpm.engine.impl.core.instance.CoreExecution
-
- org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl
-
- org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
-
- All Implemented Interfaces:
Serializable
,BaseDelegateExecution
,BpmnModelExecutionContext
,DelegateExecution
,ProcessEngineServicesAware
,VariableScope
,VariableEventDispatcher
,VariableStore.VariablesProvider<VariableInstanceEntity>
,DbEntity
,HasDbReferences
,HasDbRevision
,ActivityExecution
,PvmExecution
,PvmProcessInstance
,Execution
,ProcessInstance
public class ExecutionEntity extends PvmExecutionImpl implements Execution, ProcessInstance, DbEntity, HasDbRevision, HasDbReferences, VariableStore.VariablesProvider<VariableInstanceEntity>
- Author:
- Tom Baeyens, Daniel Meyer, Falko Menge
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected String
activityId
persisted reference to the current position in the diagram within thePvmExecutionImpl.processDefinition
.protected String
activityName
The name of the current activity positionprotected int
cachedEntityState
static int
EVENT_SUBSCRIPTIONS_STATE_BIT
protected List<EventSubscriptionEntity>
eventSubscriptions
protected List<ExecutionObserver>
executionObservers
Contains observers which are observe the execution.protected List<ExecutionEntity>
executions
nested executions representing scopes or concurrent pathsstatic int
EXTERNAL_TASKS_BIT
protected List<ExternalTaskEntity>
externalTasks
static int
INCIDENT_STATE_BIT
protected List<IncidentEntity>
incidents
protected List<JobEntity>
jobs
static int
JOBS_STATE_BIT
protected static EnginePersistenceLogger
LOG
protected ExecutionEntity
parent
the parent executionprotected String
parentId
persisted reference to the parent of this execution.protected String
processDefinitionId
persisted reference to the processDefinition.protected ExecutionEntity
processInstance
the process instance.protected String
processInstanceId
persisted reference to the process instance.protected List<VariableInstanceLifecycleListener<VariableInstanceEntity>>
registeredVariableListeners
protected int
revision
protected String
rootProcessInstanceId
persisted reference to the root process instance.protected boolean
shouldQueryForSubCaseInstance
protected boolean
shouldQueryForSubprocessInstance
static int
SUB_CASE_INSTANCE_STATE_BIT
static int
SUB_PROCESS_INSTANCE_STATE_BIT
protected CaseExecutionEntity
subCaseInstance
reference to a subcaseinstance, not-null if currently subcase is started from this executionprotected ExecutionEntity
subProcessInstance
reference to a subprocessinstance, not-null if currently subprocess is started from this executionprotected CaseExecutionEntity
superCaseExecution
super case execution, not-null if this execution is part of a case executionprotected String
superCaseExecutionId
persisted reference to the super case execution of this executionprotected ExecutionEntity
superExecution
super execution, not-null if this execution is part of a subprocessprotected String
superExecutionId
persisted reference to the super execution of this executionprotected int
suspensionState
protected List<TaskEntity>
tasks
static int
TASKS_STATE_BIT
static int
VARIABLES_STATE_BIT
protected VariableStore<VariableInstanceEntity>
variableStore
-
Fields inherited from class org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl
activity, activityInstanceEndListenersFailed, activityInstanceId, activityInstanceState, caseInstanceId, delayedEvents, deleteReason, deleteRoot, externallyTerminated, ignoreAsync, isActive, isConcurrent, isEnded, isEventScope, isRemoved, isScope, isStarting, nextActivity, preserveScope, processDefinition, replacedBy, scopeInstantiationContext, sequenceCounter, transition, transitionsToTake
-
Fields inherited from class org.camunda.bpm.engine.impl.core.instance.CoreExecution
businessKey, businessKeyWithoutCascade, eventName, eventSource, id, listenerIndex, skipCustomListeners, skipIoMapping, skipSubprocesses, tenantId
-
Fields inherited from class org.camunda.bpm.engine.impl.core.variable.scope.AbstractVariableScope
cachedElContext
-
-
Constructor Summary
Constructors Constructor Description ExecutionEntity()
-
Method Summary
-
Methods inherited from class org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl
activityInstanceDone, activityInstanceEndListenerFailure, activityInstanceStarted, activityInstanceStarting, clearDelayedEvents, clearScope, collectActiveActivityIds, collectExecutions, continueExecutionIfNotCanceled, continueIfExecutionDoesNotAffectNextOperation, createActivityExecutionMapping, createActivityExecutionMapping, createActivityExecutionMapping, createConcurrentExecution, createIncident, createIncident, createIncidentContext, createSubProcessInstance, createSubProcessInstance, delayEvent, delayEvent, deleteCascade, deleteCascade, deleteCascade, destroy, dispatchDelayedEventsAndPerformOperation, dispatchDelayedEventsAndPerformOperation, dispatchScopeEvents, disposeScopeInstantiationContext, end, endCompensation, enterActivityInstance, executeActivities, executeActivitiesConcurrent, executeActivity, executeEventHandlerActivity, executeIoMapping, findActiveActivityIds, findExecution, findExecutionForFlowScope, findExecutionForFlowScope, findExecutionForScope, findExecutions, findInactiveChildExecutions, findInactiveConcurrentExecutions, findIncidentHandler, getActivityInstanceId, getActivityInstanceState, getAllChildExecutions, getBusinessKey, getCaseInstanceId, getCurrentTransitionId, getDelayedEvents, getDeleteReason, getEventScopeExecutions, getFlowScope, getFlowScopeExecution, getNextActivity, getNonEventScopeExecutions, getParentActivityInstanceId, getParentScopeExecution, getParentVariableScope, getScopeActivity, getScopeInstantiationContext, getSequenceCounter, getTransition, getTransitionsToTake, getVariableScopeKey, hasChildren, hasFailedOnEndListeners, hasReplacedParent, incrementSequenceCounter, initActivityIds, instantiateScopes, interrupt, isActive, isAsyncAfterScopeWithoutTransition, isCanceled, isCompleteScope, isConcurrent, isDeleteRoot, isEnded, isEventScope, isExecutingScopeLeafActivity, isExternallyTerminated, isIgnoreAsync, isInState, isPreserveScope, isRemoved, isReplacedByParent, isScope, isStarting, leaveActivityInstance, leaveActivityViaTransition, leaveActivityViaTransitions, propagateEnd, removeEventScopes, resolveIncident, setActive, setActivityInstanceId, setCanceled, setCaseInstanceId, setCompleteScope, setConcurrent, setDeleteReason, setDeleteRoot, setEnded, setEventScope, setExternallyTerminated, setIgnoreAsync, setNextActivity, setParent, setPreserveScope, setProcessBusinessKey, setProcessInstanceStarting, setScope, setSequenceCounter, setStartContext, setStarting, setTransition, setTransitionsToTake, setVariable, signal, start, start, startWithFormProperties, take, tryPruneLastConcurrentChild
-
Methods inherited from class org.camunda.bpm.engine.impl.core.instance.CoreExecution
getBusinessKeyWithoutCascade, getEventName, getEventSource, getId, getListenerIndex, getTenantId, invokeListener, isSkipCustomListeners, isSkipIoMappings, isSkipSubprocesses, setBusinessKey, setEventName, setEventSource, setId, setListenerIndex, setSkipCustomListeners, setSkipIoMappings, setSkipSubprocesseses, setTenantId
-
Methods inherited from class org.camunda.bpm.engine.impl.core.variable.scope.AbstractVariableScope
collectVariableNames, collectVariables, getCachedElContext, getSourceActivityVariableScope, getValueFromVariableInstance, getVariable, getVariable, getVariableInstance, getVariableInstanceLocal, getVariableInstancesLocal, getVariableInstancesLocal, getVariableLocal, getVariableLocal, getVariableLocalTyped, getVariableLocalTyped, getVariableNames, getVariableNamesLocal, getVariables, getVariablesLocal, getVariablesLocalTyped, getVariablesLocalTyped, getVariablesTyped, getVariablesTyped, getVariableTyped, getVariableTyped, hasVariable, hasVariableLocal, hasVariables, hasVariablesLocal, initializeVariableStore, invokeVariableLifecycleListenersCreate, invokeVariableLifecycleListenersCreate, invokeVariableLifecycleListenersDelete, invokeVariableLifecycleListenersDelete, invokeVariableLifecycleListenersUpdate, invokeVariableLifecycleListenersUpdate, removeVariable, removeVariable, removeVariableLocal, removeVariableLocal, removeVariables, removeVariables, removeVariablesLocal, removeVariablesLocal, setCachedElContext, setVariable, setVariable, setVariable, setVariable, setVariableLocal, setVariableLocal, setVariableLocal, setVariables, setVariables, setVariablesLocal, setVariablesLocal
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.camunda.bpm.engine.delegate.BaseDelegateExecution
getEventName, getId
-
Methods inherited from interface org.camunda.bpm.engine.delegate.DelegateExecution
getTenantId
-
Methods inherited from interface org.camunda.bpm.engine.runtime.Execution
getId, getTenantId, isEnded
-
Methods inherited from interface org.camunda.bpm.engine.impl.db.HasDbReferences
getDependentEntities
-
Methods inherited from interface org.camunda.bpm.engine.runtime.ProcessInstance
getBusinessKey, getCaseInstanceId
-
Methods inherited from interface org.camunda.bpm.engine.impl.pvm.PvmExecution
getVariable, getVariables, hasVariable, setVariable
-
Methods inherited from interface org.camunda.bpm.engine.delegate.VariableScope
getVariable, getVariableLocal, getVariableLocalTyped, getVariableLocalTyped, getVariableNames, getVariableNamesLocal, getVariables, getVariablesLocal, getVariablesLocalTyped, getVariablesLocalTyped, getVariablesTyped, getVariablesTyped, getVariableTyped, getVariableTyped, hasVariable, hasVariableLocal, hasVariables, hasVariablesLocal, removeVariable, removeVariableLocal, removeVariables, removeVariables, removeVariablesLocal, removeVariablesLocal, setVariable, setVariableLocal, setVariables, setVariablesLocal
-
-
-
-
Field Detail
-
LOG
protected static final EnginePersistenceLogger LOG
-
EVENT_SUBSCRIPTIONS_STATE_BIT
public static final int EVENT_SUBSCRIPTIONS_STATE_BIT
- See Also:
- Constant Field Values
-
TASKS_STATE_BIT
public static final int TASKS_STATE_BIT
- See Also:
- Constant Field Values
-
JOBS_STATE_BIT
public static final int JOBS_STATE_BIT
- See Also:
- Constant Field Values
-
INCIDENT_STATE_BIT
public static final int INCIDENT_STATE_BIT
- See Also:
- Constant Field Values
-
VARIABLES_STATE_BIT
public static final int VARIABLES_STATE_BIT
- See Also:
- Constant Field Values
-
SUB_PROCESS_INSTANCE_STATE_BIT
public static final int SUB_PROCESS_INSTANCE_STATE_BIT
- See Also:
- Constant Field Values
-
SUB_CASE_INSTANCE_STATE_BIT
public static final int SUB_CASE_INSTANCE_STATE_BIT
- See Also:
- Constant Field Values
-
EXTERNAL_TASKS_BIT
public static final int EXTERNAL_TASKS_BIT
- See Also:
- Constant Field Values
-
processInstance
protected transient ExecutionEntity processInstance
the process instance. this is the root of the execution tree. the processInstance of a process instance is a self reference.
-
parent
protected transient ExecutionEntity parent
the parent execution
-
executions
protected transient List<ExecutionEntity> executions
nested executions representing scopes or concurrent paths
-
superExecution
protected transient ExecutionEntity superExecution
super execution, not-null if this execution is part of a subprocess
-
superCaseExecution
protected transient CaseExecutionEntity superCaseExecution
super case execution, not-null if this execution is part of a case execution
-
subProcessInstance
protected transient ExecutionEntity subProcessInstance
reference to a subprocessinstance, not-null if currently subprocess is started from this execution
-
subCaseInstance
protected transient CaseExecutionEntity subCaseInstance
reference to a subcaseinstance, not-null if currently subcase is started from this execution
-
shouldQueryForSubprocessInstance
protected boolean shouldQueryForSubprocessInstance
-
shouldQueryForSubCaseInstance
protected boolean shouldQueryForSubCaseInstance
-
eventSubscriptions
protected transient List<EventSubscriptionEntity> eventSubscriptions
-
tasks
protected transient List<TaskEntity> tasks
-
externalTasks
protected transient List<ExternalTaskEntity> externalTasks
-
incidents
protected transient List<IncidentEntity> incidents
-
cachedEntityState
protected int cachedEntityState
-
variableStore
protected transient VariableStore<VariableInstanceEntity> variableStore
-
suspensionState
protected int suspensionState
-
revision
protected int revision
-
processDefinitionId
protected String processDefinitionId
persisted reference to the processDefinition.
-
activityId
protected String activityId
persisted reference to the current position in the diagram within thePvmExecutionImpl.processDefinition
.- See Also:
PvmExecutionImpl.activity
,getActivity()
-
activityName
protected String activityName
The name of the current activity position
-
processInstanceId
protected String processInstanceId
persisted reference to the process instance.- See Also:
getProcessInstance()
-
parentId
protected String parentId
persisted reference to the parent of this execution.- See Also:
getParent()
-
superExecutionId
protected String superExecutionId
persisted reference to the super execution of this execution- See Also:
setSuperExecution(ExecutionEntity)
-
rootProcessInstanceId
protected String rootProcessInstanceId
persisted reference to the root process instance.- See Also:
getRootProcessInstanceId()
-
superCaseExecutionId
protected String superCaseExecutionId
persisted reference to the super case execution of this execution- See Also:
setSuperCaseExecution(ExecutionEntity)
-
executionObservers
protected transient List<ExecutionObserver> executionObservers
Contains observers which are observe the execution.- Since:
- 7.6
-
registeredVariableListeners
protected transient List<VariableInstanceLifecycleListener<VariableInstanceEntity>> registeredVariableListeners
-
-
Method Detail
-
createExecution
public ExecutionEntity createExecution()
creates a new execution. properties processDefinition, processInstance and activity will be initialized.- Specified by:
createExecution
in interfaceActivityExecution
- Specified by:
createExecution
in classPvmExecutionImpl
-
createSubProcessInstance
public ExecutionEntity createSubProcessInstance(PvmProcessDefinition processDefinition, String businessKey, String caseInstanceId)
- Specified by:
createSubProcessInstance
in interfaceActivityExecution
- Overrides:
createSubProcessInstance
in classPvmExecutionImpl
- Parameters:
processDefinition
- ThePvmProcessDefinition
of the subprocess.businessKey
- the business key of the process instancecaseInstanceId
- the case instance id of the process instance- See Also:
ActivityExecution.createSubProcessInstance(PvmProcessDefinition)
-
createNewExecution
protected static ExecutionEntity createNewExecution()
-
newExecution
protected PvmExecutionImpl newExecution()
- Specified by:
newExecution
in classPvmExecutionImpl
-
createSubCaseInstance
public CaseExecutionEntity createSubCaseInstance(CmmnCaseDefinition caseDefinition)
Description copied from interface:ActivityExecution
Creates a new sub case instance.
This
execution will be the super execution of the created sub case instance.- Specified by:
createSubCaseInstance
in interfaceActivityExecution
- Specified by:
createSubCaseInstance
in classPvmExecutionImpl
- Parameters:
caseDefinition
- TheCmmnCaseDefinition
of the sub case instance.
-
createSubCaseInstance
public CaseExecutionEntity createSubCaseInstance(CmmnCaseDefinition caseDefinition, String businessKey)
Description copied from interface:ActivityExecution
Creates a new sub case instance.
This
execution will be the super execution of the created sub case instance.- Specified by:
createSubCaseInstance
in interfaceActivityExecution
- Specified by:
createSubCaseInstance
in classPvmExecutionImpl
- Parameters:
caseDefinition
- TheCmmnCaseDefinition
of the sub case instance.businessKey
- The businessKey to be set on sub case instance.
-
fireHistoricActivityInstanceUpdate
public void fireHistoricActivityInstanceUpdate()
-
initialize
public void initialize()
- Specified by:
initialize
in classPvmExecutionImpl
-
initializeTimerDeclarations
public void initializeTimerDeclarations()
- Specified by:
initializeTimerDeclarations
in classPvmExecutionImpl
-
createTimerInstances
protected void createTimerInstances(Collection<TimerDeclarationImpl> timerDeclarations)
-
initializeAssociations
protected static void initializeAssociations(ExecutionEntity execution)
-
start
public void start(Map<String,Object> variables, VariableMap formProperties)
- Overrides:
start
in classPvmExecutionImpl
-
startWithoutExecuting
public void startWithoutExecuting(Map<String,Object> variables)
Description copied from class:PvmExecutionImpl
perform starting behavior but don't execute the initial activity- Overrides:
startWithoutExecuting
in classPvmExecutionImpl
- Parameters:
variables
- the variables which are used for the start
-
provideTenantId
protected void provideTenantId(Map<String,Object> variables, VariableMap properties)
-
fireHistoricProcessStartEvent
public void fireHistoricProcessStartEvent()
- Specified by:
fireHistoricProcessStartEvent
in classPvmExecutionImpl
-
destroy
public void destroy(boolean alwaysSkipIoMappings)
Method used for destroying a scope in a way that the execution can be removed afterwards.- Overrides:
destroy
in classPvmExecutionImpl
- Parameters:
alwaysSkipIoMappings
- set to true to always skip IO mappings, regardless of internal state of execution (=>CoreExecution.isSkipIoMappings()
)
-
removeAllTasks
public void removeAllTasks()
- Overrides:
removeAllTasks
in classPvmExecutionImpl
-
clearExecution
protected void clearExecution()
-
removeVariablesLocalInternal
public void removeVariablesLocalInternal()
- Specified by:
removeVariablesLocalInternal
in classPvmExecutionImpl
-
interrupt
public void interrupt(String reason, boolean skipCustomListeners, boolean skipIoMappings, boolean externallyTerminated)
- Overrides:
interrupt
in classPvmExecutionImpl
-
removeActivityJobs
protected void removeActivityJobs(String reason)
-
performOperation
public <T extends CoreExecution> void performOperation(CoreAtomicOperation<T> operation)
- Overrides:
performOperation
in classCoreExecution
-
performOperationSync
public <T extends CoreExecution> void performOperationSync(CoreAtomicOperation<T> operation)
- Overrides:
performOperationSync
in classCoreExecution
-
performOperation
public void performOperation(AtomicOperation executionOperation)
-
performOperationSync
public void performOperationSync(AtomicOperation executionOperation)
-
ensureNotSuspended
protected void ensureNotSuspended()
-
requiresUnsuspendedExecution
protected boolean requiresUnsuspendedExecution(AtomicOperation executionOperation)
-
scheduleAtomicOperationAsync
public void scheduleAtomicOperationAsync(AtomicOperationInvocation executionOperationInvocation)
-
isActive
public boolean isActive(String activityId)
- Overrides:
isActive
in classPvmExecutionImpl
-
inactivate
public void inactivate()
Description copied from interface:ActivityExecution
Inactivates this execution. This is useful for example in a join: the execution still exists, but it is not longer active.- Specified by:
inactivate
in interfaceActivityExecution
- Overrides:
inactivate
in classPvmExecutionImpl
-
addExecutionObserver
public void addExecutionObserver(ExecutionObserver observer)
-
removeExecutionObserver
public void removeExecutionObserver(ExecutionObserver observer)
-
getExecutions
public List<ExecutionEntity> getExecutions()
Description copied from interface:ActivityExecution
returns the list of execution of which this execution the parent of. This is a copy of the actual list, so a modification has no direct effect.- Specified by:
getExecutions
in interfaceActivityExecution
- Specified by:
getExecutions
in classPvmExecutionImpl
-
getExecutionsAsCopy
public List<ExecutionEntity> getExecutionsAsCopy()
- Specified by:
getExecutionsAsCopy
in classPvmExecutionImpl
-
ensureExecutionsInitialized
protected void ensureExecutionsInitialized()
-
isExecutionTreePrefetchEnabled
protected boolean isExecutionTreePrefetchEnabled()
- Returns:
- true if execution tree prefetching is enabled
-
setExecutions
public void setExecutions(List<ExecutionEntity> executions)
-
getProcessBusinessKey
public String getProcessBusinessKey()
Description copied from interface:DelegateExecution
The business key for the process instance this execution is associated with.- Specified by:
getProcessBusinessKey
in interfaceDelegateExecution
- Overrides:
getProcessBusinessKey
in classPvmExecutionImpl
-
getProcessDefinition
public ProcessDefinitionEntity getProcessDefinition()
ensures initialization and returns the process definition.- Overrides:
getProcessDefinition
in classPvmExecutionImpl
-
setProcessDefinitionId
public void setProcessDefinitionId(String processDefinitionId)
-
getProcessDefinitionId
public String getProcessDefinitionId()
Description copied from interface:ProcessInstance
The id of the process definition of the process instance.- Specified by:
getProcessDefinitionId
in interfaceDelegateExecution
- Specified by:
getProcessDefinitionId
in interfaceProcessInstance
-
ensureProcessDefinitionInitialized
protected void ensureProcessDefinitionInitialized()
for setting the process definition, this setter must be used as subclasses can override
-
setProcessDefinition
public void setProcessDefinition(ProcessDefinitionImpl processDefinition)
- Overrides:
setProcessDefinition
in classPvmExecutionImpl
-
getProcessInstance
public ExecutionEntity getProcessInstance()
ensures initialization and returns the process instance.- Specified by:
getProcessInstance
in interfaceDelegateExecution
- Specified by:
getProcessInstance
in classPvmExecutionImpl
-
ensureProcessInstanceInitialized
protected void ensureProcessInstanceInitialized()
-
setProcessInstance
public void setProcessInstance(PvmExecutionImpl processInstance)
- Specified by:
setProcessInstance
in classPvmExecutionImpl
-
isProcessInstanceExecution
public boolean isProcessInstanceExecution()
Description copied from interface:ActivityExecution
returns whether this execution is a process instance or not.- Specified by:
isProcessInstanceExecution
in interfaceActivityExecution
- Overrides:
isProcessInstanceExecution
in classPvmExecutionImpl
-
isProcessInstanceStarting
public boolean isProcessInstanceStarting()
- Overrides:
isProcessInstanceStarting
in classPvmExecutionImpl
-
getActivity
public ActivityImpl getActivity()
ensures initialization and returns the activity- Specified by:
getActivity
in interfaceActivityExecution
- Specified by:
getActivity
in interfacePvmExecution
- Overrides:
getActivity
in classPvmExecutionImpl
-
getActivityId
public String getActivityId()
- Overrides:
getActivityId
in classPvmExecutionImpl
-
ensureActivityInitialized
protected void ensureActivityInitialized()
must be called before the activity member field or getActivity() is called
-
setActivity
public void setActivity(PvmActivity activity)
- Specified by:
setActivity
in interfaceActivityExecution
- Overrides:
setActivity
in classPvmExecutionImpl
-
generateActivityInstanceId
protected String generateActivityInstanceId(String activityId)
generates an activity instance id- Specified by:
generateActivityInstanceId
in classPvmExecutionImpl
-
getParent
public ExecutionEntity getParent()
ensures initialization and returns the parent- Specified by:
getParent
in interfaceActivityExecution
- Specified by:
getParent
in classPvmExecutionImpl
-
ensureParentInitialized
protected void ensureParentInitialized()
-
setParentExecution
public void setParentExecution(PvmExecutionImpl parent)
Description copied from class:PvmExecutionImpl
Use #setParent to also update the child execution sets- Specified by:
setParentExecution
in classPvmExecutionImpl
-
getSuperExecutionId
public String getSuperExecutionId()
-
getSuperExecution
public ExecutionEntity getSuperExecution()
Description copied from interface:DelegateExecution
In case this delegate execution is the process instance execution and this process instance was started by a call activity, this method returns the execution which executed the call activity in the super process instance.- Specified by:
getSuperExecution
in interfaceDelegateExecution
- Specified by:
getSuperExecution
in classPvmExecutionImpl
- Returns:
- the super execution or null.
-
setSuperExecution
public void setSuperExecution(PvmExecutionImpl superExecution)
- Specified by:
setSuperExecution
in classPvmExecutionImpl
-
ensureSuperExecutionInitialized
protected void ensureSuperExecutionInitialized()
-
getSubProcessInstance
public ExecutionEntity getSubProcessInstance()
- Specified by:
getSubProcessInstance
in classPvmExecutionImpl
-
setSubProcessInstance
public void setSubProcessInstance(PvmExecutionImpl subProcessInstance)
- Specified by:
setSubProcessInstance
in classPvmExecutionImpl
-
ensureSubProcessInstanceInitialized
protected void ensureSubProcessInstanceInitialized()
-
getSuperCaseExecutionId
public String getSuperCaseExecutionId()
-
setSuperCaseExecutionId
public void setSuperCaseExecutionId(String superCaseExecutionId)
-
getSuperCaseExecution
public CaseExecutionEntity getSuperCaseExecution()
- Specified by:
getSuperCaseExecution
in classPvmExecutionImpl
-
setSuperCaseExecution
public void setSuperCaseExecution(CmmnExecution superCaseExecution)
- Specified by:
setSuperCaseExecution
in classPvmExecutionImpl
-
ensureSuperCaseExecutionInitialized
protected void ensureSuperCaseExecutionInitialized()
-
getSubCaseInstance
public CaseExecutionEntity getSubCaseInstance()
- Specified by:
getSubCaseInstance
in classPvmExecutionImpl
-
setSubCaseInstance
public void setSubCaseInstance(CmmnExecution subCaseInstance)
- Specified by:
setSubCaseInstance
in classPvmExecutionImpl
-
ensureSubCaseInstanceInitialized
protected void ensureSubCaseInstanceInitialized()
-
remove
public void remove()
- Specified by:
remove
in interfaceActivityExecution
- Overrides:
remove
in classPvmExecutionImpl
-
removeEventSubscriptionsExceptCompensation
protected void removeEventSubscriptionsExceptCompensation()
-
removeEventSubscriptions
public void removeEventSubscriptions()
-
removeTasks
protected void removeTasks(String reason)
-
removeExternalTasks
protected void removeExternalTasks()
-
getReplacedBy
public ExecutionEntity getReplacedBy()
Description copied from class:PvmExecutionImpl
Returns an execution that has replaced this execution for executing activities in their shared scope.
Invariant: this execution and getReplacedBy() execute in the same scope.
- Specified by:
getReplacedBy
in classPvmExecutionImpl
-
resolveReplacedBy
public ExecutionEntity resolveReplacedBy()
Description copied from class:PvmExecutionImpl
Instead ofPvmExecutionImpl.getReplacedBy()
, which returns the execution that this execution was directly replaced with, this resolves the chain of replacements (i.e. in the case the replacedBy execution itself was replaced again)- Overrides:
resolveReplacedBy
in classPvmExecutionImpl
-
replace
public void replace(PvmExecutionImpl execution)
Description copied from class:PvmExecutionImpl
Replace an execution by this execution. The replaced execution has a pointer (
PvmExecutionImpl.getReplacedBy()
) to this execution. This pointer is maintained until the replaced execution is removed or this execution is removed/ended.This is used for two cases: Execution tree expansion and execution tree compaction
- expansion: Before:
------- | e1 | scope -------
After:------- | e1 | scope ------- | ------- | e2 | cc (no scope) -------
e2 replaces e1: it should receive all entities associated with the activity currently executed by e1; these are tasks, (local) variables, jobs (specific for the activity, not the scope) - compaction: Before:
------- | e1 | scope ------- | ------- | e2 | cc (no scope) -------
After:------- | e1 | scope -------
e1 replaces e2: it should receive all entities associated with the activity currently executed by e2; these are tasks, (all) variables, all jobs
- Overrides:
replace
in classPvmExecutionImpl
- See Also:
PvmExecutionImpl.createConcurrentExecution()
,PvmExecutionImpl.tryPruneLastConcurrentChild()
- expansion: Before:
-
onConcurrentExpand
public void onConcurrentExpand(PvmExecutionImpl scopeExecution)
Description copied from class:PvmExecutionImpl
Callback on tree expansion when this execution is used as the concurrent execution where the argument's children become a subordinate to. Note that this case is not the inverse of replace because replace has the semantics that the replacing execution can be used to continue execution of this execution's activity instance.- Overrides:
onConcurrentExpand
in classPvmExecutionImpl
-
moveTasksTo
protected void moveTasksTo(ExecutionEntity other)
-
moveExternalTasksTo
protected void moveExternalTasksTo(ExecutionEntity other)
-
moveActivityLocalJobsTo
protected void moveActivityLocalJobsTo(ExecutionEntity other)
-
moveVariablesTo
protected void moveVariablesTo(ExecutionEntity other)
-
moveVariableTo
protected void moveVariableTo(VariableInstanceEntity variable, ExecutionEntity other)
-
moveConcurrentLocalVariablesTo
protected void moveConcurrentLocalVariablesTo(ExecutionEntity other)
-
addVariableListener
public void addVariableListener(VariableInstanceLifecycleListener<VariableInstanceEntity> listener)
-
removeVariableListener
public void removeVariableListener(VariableInstanceLifecycleListener<VariableInstanceEntity> listener)
-
provideVariables
public Collection<VariableInstanceEntity> provideVariables()
- Specified by:
provideVariables
in interfaceVariableStore.VariablesProvider<VariableInstanceEntity>
-
provideVariables
public Collection<VariableInstanceEntity> provideVariables(Collection<String> variableNames)
- Specified by:
provideVariables
in interfaceVariableStore.VariablesProvider<VariableInstanceEntity>
-
ensureExecutionTreeInitialized
protected void ensureExecutionTreeInitialized()
Fetch all the executions inside the same process instance as list and then reconstruct the complete execution tree. In many cases this is an optimization over fetching the execution tree lazily. Usually we need all executions anyway and it is preferable to fetch more data in a single query (maybe even too much data) then to run multiple queries, each returning a fraction of the data. The most important consideration here is network roundtrip: If the process engine and database run on separate hosts, network roundtrip has to be added to each query. Economizing on the number of queries economizes on network roundtrip. The tradeoff here is network roundtrip vs. throughput: multiple roundtrips carrying small chucks of data vs. a single roundtrip carrying more data.
-
restoreProcessInstance
public void restoreProcessInstance(Collection<ExecutionEntity> executions, Collection<EventSubscriptionEntity> eventSubscriptions, Collection<VariableInstanceEntity> variables, Collection<TaskEntity> tasks, Collection<JobEntity> jobs, Collection<IncidentEntity> incidents, Collection<ExternalTaskEntity> externalTasks)
Restores a complete process instance tree including referenced entities.- Parameters:
executions
- the list of all executions that are part of this process instance. Cannot be null, must include the process instance execution itself.eventSubscriptions
- the list of all event subscriptions that are linked to executions which is part of this process instance If null, event subscriptions are not initialized and lazy loaded on demandvariables
- the list of all variables that are linked to executions which are part of this process instance If null, variables are not initialized and are lazy loaded on demandjobs
-tasks
-incidents
-
-
getPersistentState
public Object getPersistentState()
Description copied from interface:DbEntity
Returns a representation of the object, as would be stored in the database. Used when deciding if updates have occurred to the object or not since it was last loaded.- Specified by:
getPersistentState
in interfaceDbEntity
-
insert
public void insert()
-
getRevisionNext
public int getRevisionNext()
- Specified by:
getRevisionNext
in interfaceHasDbRevision
-
forceUpdate
public void forceUpdate()
- Specified by:
forceUpdate
in interfaceActivityExecution
-
toString
public String toString()
- Overrides:
toString
in classPvmExecutionImpl
-
getToStringIdentity
protected String getToStringIdentity()
- Overrides:
getToStringIdentity
in classPvmExecutionImpl
-
getEventSubscriptionsInternal
public List<EventSubscriptionEntity> getEventSubscriptionsInternal()
-
getEventSubscriptions
public List<EventSubscriptionEntity> getEventSubscriptions()
-
getCompensateEventSubscriptions
public List<EventSubscriptionEntity> getCompensateEventSubscriptions()
-
getCompensateEventSubscriptions
public List<EventSubscriptionEntity> getCompensateEventSubscriptions(String activityId)
-
ensureEventSubscriptionsInitialized
protected void ensureEventSubscriptionsInitialized()
-
addEventSubscription
public void addEventSubscription(EventSubscriptionEntity eventSubscriptionEntity)
-
removeEventSubscription
public void removeEventSubscription(EventSubscriptionEntity eventSubscriptionEntity)
-
ensureJobsInitialized
protected void ensureJobsInitialized()
-
addJob
public void addJob(JobEntity jobEntity)
-
removeJob
public void removeJob(JobEntity job)
-
ensureIncidentsInitialized
protected void ensureIncidentsInitialized()
-
getIncidentsInternal
protected List<IncidentEntity> getIncidentsInternal()
-
getIncidents
public List<IncidentEntity> getIncidents()
-
addIncident
public void addIncident(IncidentEntity incident)
-
removeIncident
public void removeIncident(IncidentEntity incident)
-
getIncidentByCauseIncidentId
public IncidentEntity getIncidentByCauseIncidentId(String causeIncidentId)
-
ensureTasksInitialized
protected void ensureTasksInitialized()
-
getTasksInternal
protected List<TaskEntity> getTasksInternal()
-
getTasks
public List<TaskEntity> getTasks()
-
addTask
public void addTask(TaskEntity taskEntity)
-
removeTask
public void removeTask(TaskEntity task)
-
ensureExternalTasksInitialized
protected void ensureExternalTasksInitialized()
-
getExternalTasksInternal
protected List<ExternalTaskEntity> getExternalTasksInternal()
-
addExternalTask
public void addExternalTask(ExternalTaskEntity externalTask)
-
removeExternalTask
public void removeExternalTask(ExternalTaskEntity externalTask)
-
getExternalTasks
public List<ExternalTaskEntity> getExternalTasks()
-
getVariableStore
protected VariableStore<CoreVariableInstance> getVariableStore()
- Specified by:
getVariableStore
in classAbstractVariableScope
-
getVariableInstanceFactory
protected VariableInstanceFactory<CoreVariableInstance> getVariableInstanceFactory()
- Specified by:
getVariableInstanceFactory
in classAbstractVariableScope
-
getVariableInstanceLifecycleListeners
protected List<VariableInstanceLifecycleListener<CoreVariableInstance>> getVariableInstanceLifecycleListeners()
- Specified by:
getVariableInstanceLifecycleListeners
in classAbstractVariableScope
-
getVariablePersistenceListener
public VariableInstanceLifecycleListener<CoreVariableInstance> getVariablePersistenceListener()
-
getVariablesInternal
public Collection<VariableInstanceEntity> getVariablesInternal()
-
removeVariableInternal
public void removeVariableInternal(VariableInstanceEntity variable)
-
addVariableInternal
public void addVariableInternal(VariableInstanceEntity variable)
-
handleConditionalEventOnVariableChange
public void handleConditionalEventOnVariableChange(VariableEvent variableEvent)
-
dispatchEvent
public void dispatchEvent(VariableEvent variableEvent)
- Specified by:
dispatchEvent
in interfaceVariableEventDispatcher
- Overrides:
dispatchEvent
in classAbstractVariableScope
-
setCachedEntityState
public void setCachedEntityState(int cachedEntityState)
-
getCachedEntityState
public int getCachedEntityState()
-
getCachedEntityStateRaw
public int getCachedEntityStateRaw()
-
getRootProcessInstanceId
public String getRootProcessInstanceId()
Description copied from interface:ProcessInstance
The id of the root process instance associated with this process instance.- Specified by:
getRootProcessInstanceId
in interfaceProcessInstance
-
getRootProcessInstanceIdRaw
public String getRootProcessInstanceIdRaw()
-
setRootProcessInstanceId
public void setRootProcessInstanceId(String rootProcessInstanceId)
-
getProcessInstanceId
public String getProcessInstanceId()
Description copied from interface:Execution
Id of the root of the execution tree representing the process instance. It is the same asExecution.getId()
if this execution is the process instance.- Specified by:
getProcessInstanceId
in interfaceDelegateExecution
- Specified by:
getProcessInstanceId
in interfaceExecution
-
setProcessInstanceId
public void setProcessInstanceId(String processInstanceId)
-
getParentId
public String getParentId()
Description copied from interface:DelegateExecution
Gets the id of the parent of this execution. If null, the execution represents a process-instance.- Specified by:
getParentId
in interfaceDelegateExecution
- Overrides:
getParentId
in classPvmExecutionImpl
-
setParentId
public void setParentId(String parentId)
-
getRevision
public int getRevision()
- Specified by:
getRevision
in interfaceHasDbRevision
-
setRevision
public void setRevision(int revision)
- Specified by:
setRevision
in interfaceHasDbRevision
-
setActivityId
public void setActivityId(String activityId)
-
setSuperExecutionId
public void setSuperExecutionId(String superExecutionId)
-
getReferencedEntityIds
public Set<String> getReferencedEntityIds()
Description copied from interface:HasDbReferences
Scope: IN-MEMORY references
- Specified by:
getReferencedEntityIds
in interfaceHasDbReferences
- Returns:
- the ids of the entities that this entity references. Should only return ids for entities of the same type
-
getReferencedEntitiesIdAndClass
public Map<String,Class> getReferencedEntitiesIdAndClass()
Description copied from interface:HasDbReferences
Scope: IN-MEMORY references
- Specified by:
getReferencedEntitiesIdAndClass
in interfaceHasDbReferences
- Returns:
- a map of the ids and the entities' classes that this entity references. It's used when trying to determine if there was an Optimistic Locking occurrence on an INSERT or UPDATE of an object of this type.
-
getSuspensionState
public int getSuspensionState()
-
setSuspensionState
public void setSuspensionState(int suspensionState)
-
isSuspended
public boolean isSuspended()
Description copied from interface:Execution
Indicates if the execution is suspended.- Specified by:
isSuspended
in interfaceExecution
- Specified by:
isSuspended
in interfaceProcessInstance
-
getCurrentActivityId
public String getCurrentActivityId()
Description copied from interface:DelegateExecution
Gets the id of the current activity.- Specified by:
getCurrentActivityId
in interfaceDelegateExecution
- Overrides:
getCurrentActivityId
in classPvmExecutionImpl
-
getCurrentActivityName
public String getCurrentActivityName()
Description copied from interface:DelegateExecution
Gets the name of the current activity.- Specified by:
getCurrentActivityName
in interfaceDelegateExecution
- Overrides:
getCurrentActivityName
in classPvmExecutionImpl
-
getBpmnModelElementInstance
public FlowElement getBpmnModelElementInstance()
Description copied from interface:BpmnModelExecutionContext
Returns the currently executed Element in the BPMN Model. This method returns a
FlowElement
which may be casted to the concrete type of the Bpmn Model Element currently executed.If called from a Service
ExecutionListener
, the method will return the correspondingFlowNode
forExecutionListener.EVENTNAME_START
andExecutionListener.EVENTNAME_END
and the correspondingSequenceFlow
forExecutionListener.EVENTNAME_TAKE
.- Specified by:
getBpmnModelElementInstance
in interfaceBpmnModelExecutionContext
- Returns:
- the
FlowElement
corresponding to the current Bpmn Model Element
-
getBpmnModelInstance
public BpmnModelInstance getBpmnModelInstance()
Description copied from interface:BpmnModelExecutionContext
Returns theBpmnModelInstance
for the currently executed Bpmn Model- Specified by:
getBpmnModelInstance
in interfaceBpmnModelExecutionContext
- Returns:
- the current
BpmnModelInstance
-
getProcessEngineServices
public ProcessEngineServices getProcessEngineServices()
Description copied from interface:ProcessEngineServicesAware
Returns theProcessEngineServices
providing access to the public API of the process engine.- Specified by:
getProcessEngineServices
in interfaceProcessEngineServicesAware
- Returns:
- the
ProcessEngineServices
.
-
getProcessEngine
public ProcessEngine getProcessEngine()
Description copied from interface:ProcessEngineServicesAware
Returns theProcessEngine
providing access to the public API of the process engine.- Specified by:
getProcessEngine
in interfaceProcessEngineServicesAware
- Returns:
- the
ProcessEngine
.
-
getProcessDefinitionTenantId
public String getProcessDefinitionTenantId()
-
-