public class ExecutionImpl extends Object implements Serializable, ActivityExecution, ExecutionListenerExecution, PvmExecution, InterpretableExecution
| Modifier and Type | Field and Description |
|---|---|
protected ActivityImpl |
activity
current activity
|
protected String |
deleteReason |
protected boolean |
deleteRoot |
protected String |
eventName |
protected PvmProcessElement |
eventSource |
protected int |
executionListenerIndex |
protected List<ExecutionImpl> |
executions
nested executions representing scopes or concurrent paths
|
protected boolean |
isActive
indicates if this execution represents an active path of execution.
|
protected boolean |
isConcurrent |
protected boolean |
isEnded |
protected boolean |
isEventScope |
protected boolean |
isOperating |
protected boolean |
isScope |
protected AtomicOperation |
nextOperation
next operation.
|
protected ExecutionImpl |
parent
the parent execution
|
protected ProcessDefinitionImpl |
processDefinition |
protected ExecutionImpl |
processInstance
the process instance.
|
protected ExecutionImpl |
replacedBy
when execution structure is pruned during a takeAll, then
the original execution has to be resolved to the replaced execution.
|
protected StartingExecution |
startingExecution
only available until the process instance is started
|
protected ExecutionImpl |
subProcessInstance
reference to a subprocessinstance, not-null if currently subprocess is started from this execution
|
protected ExecutionImpl |
superExecution
super execution, not-null if this execution is part of a subprocess
|
protected TransitionImpl |
transition
current transition.
|
protected Map<String,Object> |
variables |
| Constructor and Description |
|---|
ExecutionImpl() |
ExecutionImpl(ActivityImpl initial) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
collectActiveActivityIds(List<String> activeActivityIds) |
protected void |
collectVariables(Map<String,Object> collectedVariables) |
ExecutionImpl |
createExecution()
creates a new execution.
|
PvmProcessInstance |
createSubProcessInstance(PvmProcessDefinition processDefinition)
creates a new sub process instance.
|
void |
createVariableLocal(String variableName,
Object value) |
void |
createVariablesLocal(Map<String,? extends Object> variables) |
void |
deleteCascade(String deleteReason) |
void |
deleteVariablesLocal() |
void |
destroy() |
void |
destroyScope(String reason)
Called when an execution is interrupted.
|
void |
disposeStartingExecution() |
void |
end()
removes an execution.
|
protected void |
ensureActivityInitialized()
must be called before the activity member field or getActivity() is called
|
protected void |
ensureExecutionsInitialized()
must be called before memberfield executions is used.
|
protected void |
ensureParentInitialized()
must be called before memberfield parent is used.
|
protected void |
ensureProcessDefinitionInitialized()
must be called before memberfield processDefinition is used.
|
protected void |
ensureProcessInstanceInitialized()
must be called before memberfield processInstance is used.
|
protected void |
ensureScopeInitialized() |
protected void |
ensureSubProcessInstanceInitialized() |
protected void |
ensureSuperExecutionInitialized() |
protected void |
ensureVariablesInitialized() |
void |
executeActivity(PvmActivity activity)
Executes the
ActivityBehavior associated with the given activity. |
List<String> |
findActiveActivityIds() |
ExecutionImpl |
findExecution(String activityId)
searches for an execution positioned in the given activity
|
List<ActivityExecution> |
findInactiveConcurrentExecutions(PvmActivity activity)
Retrieves all executions which are concurrent and inactive at the given activity.
|
ActivityImpl |
getActivity()
ensures initialization and returns the activity
|
String |
getBusinessKey()
The business key for this execution.
|
String |
getCurrentActivityId()
Gets the id of the current activity.
|
String |
getCurrentActivityName()
Gets the name of the current activity.
|
String |
getDeleteReason() |
EngineServices |
getEngineServices()
All Activiti services can be accessed through this interface.
|
String |
getEventName()
The
event name in case this execution is passed in for an ExecutionListener |
PvmProcessElement |
getEventSource() |
Integer |
getExecutionListenerIndex() |
List<ExecutionImpl> |
getExecutions()
ensures initialization and returns the non-null executions list
|
String |
getId()
Unique id of this path of execution that can be used as a handle to provide external signals back into the engine after wait states.
|
ExecutionImpl |
getParent()
ensures initialization and returns the parent
|
String |
getParentId()
Gets the id of the parent of this execution.
|
String |
getProcessBusinessKey()
The business key for the process instance this execution is associated with.
|
ProcessDefinitionImpl |
getProcessDefinition()
ensures initialization and returns the process definition.
|
String |
getProcessDefinitionId()
The process definition key for the process instance this execution is associated with.
|
ExecutionImpl |
getProcessInstance()
ensures initialization and returns the process instance.
|
String |
getProcessInstanceId()
Reference to the overall process instance
|
ExecutionImpl |
getReplacedBy() |
StartingExecution |
getStartingExecution() |
ExecutionImpl |
getSubProcessInstance() |
ExecutionImpl |
getSuperExecution() |
String |
getSuperExecutionId()
Gets the id of the calling execution.
|
String |
getTenantId()
Returns the tenant id, if any is set before on the process definition or process instance.
|
protected String |
getToStringIdentity() |
TransitionImpl |
getTransition() |
Object |
getVariable(String variableName) |
Object |
getVariable(String variableName,
boolean fetchAllVariables) |
<T> T |
getVariable(String variableName,
Class<T> variableClass) |
VariableInstance |
getVariableInstance(String variableName) |
VariableInstance |
getVariableInstance(String variableName,
boolean fetchAllVariables) |
VariableInstance |
getVariableInstanceLocal(String variableName) |
VariableInstance |
getVariableInstanceLocal(String variableName,
boolean fetchAllVariables) |
Map<String,VariableInstance> |
getVariableInstances() |
Map<String,VariableInstance> |
getVariableInstances(Collection<String> variableNames) |
Map<String,VariableInstance> |
getVariableInstances(Collection<String> variableNames,
boolean fetchAllVariables) |
Map<String,VariableInstance> |
getVariableInstancesLocal() |
Map<String,VariableInstance> |
getVariableInstancesLocal(Collection<String> variableNames) |
Map<String,VariableInstance> |
getVariableInstancesLocal(Collection<String> variableNames,
boolean fetchAllVariables) |
Object |
getVariableLocal(String variableName) |
Object |
getVariableLocal(String variableName,
boolean fetchAllVariables) |
<T> T |
getVariableLocal(String variableName,
Class<T> variableClass) |
Set<String> |
getVariableNames() |
Set<String> |
getVariableNamesLocal() |
Map<String,Object> |
getVariables() |
Map<String,Object> |
getVariables(Collection<String> variableNames) |
Map<String,Object> |
getVariables(Collection<String> variableNames,
boolean fetchAllVariables) |
Map<String,Object> |
getVariablesLocal() |
Map<String,Object> |
getVariablesLocal(Collection<String> variableNames) |
Map<String,Object> |
getVariablesLocal(Collection<String> variableNames,
boolean fetchAllVariables) |
boolean |
hasVariable(String variableName) |
boolean |
hasVariableLocal(String variableName) |
boolean |
hasVariables() |
boolean |
hasVariablesLocal() |
void |
inactivate()
Inactivates this execution.
|
void |
initialize() |
boolean |
isActive()
returns whether this execution is currently active.
|
boolean |
isActive(String activityId) |
boolean |
isConcurrent()
returns whether this execution is concurrent or not.
|
boolean |
isDeleteRoot() |
boolean |
isEnded()
returns whether this execution has ended or not.
|
boolean |
isEventScope() |
boolean |
isProcessInstanceType()
returns whether this execution is a process instance or not.
|
boolean |
isScope()
Returns whether this execution is a scope.
|
protected ExecutionImpl |
newExecution()
instantiates a new execution.
|
void |
performOperation(AtomicOperation executionOperation) |
void |
remove() |
void |
removeVariable(String variableName)
Removes the variable and creates a new
HistoricVariableUpdateEntity
. |
void |
removeVariableLocal(String variableName)
Removes the local variable and creates a new
HistoricVariableUpdateEntity. |
void |
removeVariables()
Removes the (local) variables and creates a new
HistoricVariableUpdateEntity for each of them. |
void |
removeVariables(Collection<String> variableNames)
Removes the variables and creates a new
HistoricVariableUpdateEntity for each of them. |
void |
removeVariablesLocal()
Removes the (local) variables and creates a new
HistoricVariableUpdateEntity for each of them. |
void |
removeVariablesLocal(Collection<String> variableNames)
Removes the local variables and creates a new
HistoricVariableUpdateEntity for each of them. |
void |
setActive(boolean isActive)
makes this execution active or inactive.
|
void |
setActivity(ActivityImpl activity)
sets the current activity.
|
void |
setConcurrent(boolean isConcurrent)
changes the concurrent indicator on this execution.
|
void |
setDeleteReason(String deleteReason) |
void |
setEnded(boolean ended)
Sets whether this execution is ended or not.
|
void |
setEventName(String eventName) |
void |
setEventScope(boolean isEventScope) |
void |
setEventSource(PvmProcessElement eventSource) |
void |
setExecutionListenerIndex(Integer executionListenerIndex) |
void |
setExecutions(List<ExecutionImpl> executions) |
void |
setParent(InterpretableExecution parent)
all updates need to go through this setter as subclasses can override this method
|
void |
setProcessDefinition(ProcessDefinitionImpl processDefinition) |
void |
setProcessInstance(InterpretableExecution processInstance)
for setting the process instance, this setter must be used as subclasses can override
|
void |
setReplacedBy(InterpretableExecution replacedBy) |
void |
setScope(boolean isScope)
Changes whether this execution is a scope or not
|
void |
setSubProcessInstance(InterpretableExecution subProcessInstance) |
void |
setSuperExecution(ExecutionImpl superExecution) |
void |
setTransition(TransitionImpl transition) |
void |
setVariable(String variableName,
Object value)
Sets the variable with the provided name to the provided value.
|
void |
setVariable(String variableName,
Object value,
boolean fetchAllVariables) |
Object |
setVariableLocal(String variableName,
Object value) |
Object |
setVariableLocal(String variableName,
Object value,
boolean fetchAllVariables) |
void |
setVariableLocally(String variableName,
Object value) |
void |
setVariables(Map<String,? extends Object> variables)
Sets the provided variables to the variable scope.
|
void |
setVariablesLocal(Map<String,? extends Object> variables) |
void |
signal(String signalName,
Object signalData) |
void |
start() |
void |
take(PvmTransition transition)
leaves the current activity by taking the given transition.
|
void |
take(PvmTransition transition,
boolean fireActivityCompletedEvent) |
void |
takeAll(List<PvmTransition> transitions,
List<ActivityExecution> recyclableExecutions)
Takes the given outgoing transitions, and potentially reusing
the given list of executions that were previously joined.
|
String |
toString() |
String |
updateProcessBusinessKey(String bzKey) |
protected ProcessDefinitionImpl processDefinition
protected ActivityImpl activity
protected TransitionImpl transition
protected ExecutionImpl processInstance
protected ExecutionImpl parent
protected List<ExecutionImpl> executions
protected ExecutionImpl superExecution
protected ExecutionImpl subProcessInstance
protected StartingExecution startingExecution
protected boolean isActive
protected boolean isScope
protected boolean isConcurrent
protected boolean isEnded
protected boolean isEventScope
protected String eventName
protected PvmProcessElement eventSource
protected int executionListenerIndex
protected boolean deleteRoot
protected String deleteReason
protected ExecutionImpl replacedBy
#takeAll(List, List)} {@link OutgoingExecution}protected AtomicOperation nextOperation
AtomicOperation,
performOperation(AtomicOperation)protected boolean isOperating
public ExecutionImpl()
public ExecutionImpl(ActivityImpl initial)
public ExecutionImpl createExecution()
createExecution in interface ActivityExecutionprotected ExecutionImpl newExecution()
public PvmProcessInstance createSubProcessInstance(PvmProcessDefinition processDefinition)
ActivityExecutioncreateSubProcessInstance in interface ActivityExecutionprocessDefinition - The PvmProcessDefinition of the subprocess.public void initialize()
initialize in interface InterpretableExecutionpublic void destroy()
destroy in interface InterpretableExecutionpublic void remove()
remove in interface InterpretableExecutionpublic void destroyScope(String reason)
ActivityExecutiondestroyScope in interface ActivityExecutionpublic ExecutionImpl getParent()
getParent in interface ActivityExecutionpublic String getSuperExecutionId()
DelegateExecutiongetSuperExecutionId in interface DelegateExecutionpublic String getParentId()
DelegateExecutiongetParentId in interface DelegateExecutionpublic void setParent(InterpretableExecution parent)
setParent in interface InterpretableExecutionprotected void ensureParentInitialized()
public List<ExecutionImpl> getExecutions()
getExecutions in interface ActivityExecutionpublic ExecutionImpl getSuperExecution()
getSuperExecution in interface InterpretableExecutionpublic void setSuperExecution(ExecutionImpl superExecution)
protected void ensureSuperExecutionInitialized()
public ExecutionImpl getSubProcessInstance()
getSubProcessInstance in interface InterpretableExecutionpublic void setSubProcessInstance(InterpretableExecution subProcessInstance)
setSubProcessInstance in interface InterpretableExecutionprotected void ensureSubProcessInstanceInitialized()
public void deleteCascade(String deleteReason)
deleteCascade in interface PvmProcessInstancedeleteCascade in interface InterpretableExecutionpublic void end()
end in interface ActivityExecutionpublic ExecutionImpl findExecution(String activityId)
findExecution in interface PvmProcessInstancepublic List<String> findActiveActivityIds()
findActiveActivityIds in interface PvmProcessInstanceprotected void ensureExecutionsInitialized()
public ProcessDefinitionImpl getProcessDefinition()
getProcessDefinition in interface InterpretableExecutionpublic String getProcessDefinitionId()
DelegateExecutiongetProcessDefinitionId in interface DelegateExecutionprotected void ensureProcessDefinitionInitialized()
public ExecutionImpl getProcessInstance()
getProcessInstance in interface ActivityExecutionpublic String getProcessInstanceId()
DelegateExecutiongetProcessInstanceId in interface DelegateExecutionpublic String getBusinessKey()
DelegateExecutiongetBusinessKey in interface DelegateExecutionpublic String getProcessBusinessKey()
DelegateExecutiongetProcessBusinessKey in interface DelegateExecutionpublic void setProcessInstance(InterpretableExecution processInstance)
setProcessInstance in interface InterpretableExecutionprotected void ensureProcessInstanceInitialized()
public ActivityImpl getActivity()
getActivity in interface ActivityExecutiongetActivity in interface PvmExecutionpublic void setActivity(ActivityImpl activity)
setActivity in interface InterpretableExecutionprotected void ensureActivityInitialized()
protected void ensureScopeInitialized()
public boolean isScope()
ActivityExecutionisScope in interface ActivityExecutionisScope in interface InterpretableExecutionpublic void setScope(boolean isScope)
ActivityExecutionsetScope in interface ActivityExecutionpublic void start()
start in interface PvmProcessInstancepublic void signal(String signalName, Object signalData)
signal in interface PvmExecutionpublic void take(PvmTransition transition, boolean fireActivityCompletedEvent)
take in interface InterpretableExecutionpublic void take(PvmTransition transition)
ActivityExecutiontake in interface ActivityExecutiontake in interface InterpretableExecutionpublic void executeActivity(PvmActivity activity)
ActivityExecutionActivityBehavior associated with the given activity.executeActivity in interface ActivityExecutionpublic List<ActivityExecution> findInactiveConcurrentExecutions(PvmActivity activity)
ActivityExecutionfindInactiveConcurrentExecutions in interface ActivityExecutionpublic void takeAll(List<PvmTransition> transitions, List<ActivityExecution> recyclableExecutions)
ActivityExecutiontakeAll in interface ActivityExecutionpublic void performOperation(AtomicOperation executionOperation)
performOperation in interface InterpretableExecutionpublic boolean isActive(String activityId)
public Object getVariable(String variableName)
getVariable in interface VariableScopegetVariable in interface PvmExecutionpublic Object getVariable(String variableName, boolean fetchAllVariables)
getVariable in interface VariableScopepublic Map<String,Object> getVariables()
getVariables in interface VariableScopegetVariables in interface PvmExecutionpublic Map<String,Object> getVariables(Collection<String> variableNames)
getVariables in interface VariableScopepublic Map<String,Object> getVariables(Collection<String> variableNames, boolean fetchAllVariables)
getVariables in interface VariableScopepublic void setVariables(Map<String,? extends Object> variables)
VariableScope
Variables are set according algorithm for
VariableScope.setVariable(String, Object), applied separately to each variable.
setVariables in interface VariableScopevariables - a map of keys and values for the variables to be set{@link VariableScope#setVariable(String, Object)}public void setVariable(String variableName, Object value)
VariableScopeA variable is set according to the following algorithm:
In practice for most cases, this algorithm will set variables to the scope of the execution at the process instance’s root level, if there is no execution-local variable by the provided name.
setVariable in interface VariableScopesetVariable in interface PvmExecutionvariableName - the name of the variable to be setvalue - the value of the variable to be setpublic void setVariable(String variableName, Object value, boolean fetchAllVariables)
setVariable in interface VariableScopepublic Object setVariableLocal(String variableName, Object value, boolean fetchAllVariables)
setVariableLocal in interface VariableScopepublic boolean hasVariable(String variableName)
hasVariable in interface VariableScopehasVariable in interface PvmExecutionprotected void ensureVariablesInitialized()
public EngineServices getEngineServices()
DelegateExecutiongetEngineServices in interface DelegateExecutionprotected String getToStringIdentity()
public boolean isProcessInstanceType()
ActivityExecutionisProcessInstanceType in interface ActivityExecutionpublic void inactivate()
ActivityExecutioninactivate in interface ActivityExecutionpublic String getId()
DelegateExecutiongetId in interface DelegateExecutionpublic TransitionImpl getTransition()
getTransition in interface InterpretableExecutionpublic void setTransition(TransitionImpl transition)
setTransition in interface InterpretableExecutionpublic Integer getExecutionListenerIndex()
getExecutionListenerIndex in interface InterpretableExecutionpublic void setExecutionListenerIndex(Integer executionListenerIndex)
setExecutionListenerIndex in interface InterpretableExecutionpublic boolean isConcurrent()
ActivityExecutionisConcurrent in interface ActivityExecutionpublic void setConcurrent(boolean isConcurrent)
ActivityExecutionsetConcurrent in interface ActivityExecutionpublic boolean isActive()
ActivityExecutionisActive in interface ActivityExecutionpublic void setActive(boolean isActive)
ActivityExecutionsetActive in interface ActivityExecutionpublic boolean isEnded()
ActivityExecutionisEnded in interface ActivityExecutionisEnded in interface PvmProcessInstancepublic void setEnded(boolean ended)
ActivityExecutionActivityExecution.end() to set the boolean and execution removal methods.setEnded in interface ActivityExecutionpublic void setProcessDefinition(ProcessDefinitionImpl processDefinition)
setProcessDefinition in interface InterpretableExecutionpublic String getEventName()
DelegateExecutionevent name in case this execution is passed in for an ExecutionListenergetEventName in interface DelegateExecutiongetEventName in interface ExecutionListenerExecutionpublic void setEventName(String eventName)
setEventName in interface InterpretableExecutionpublic PvmProcessElement getEventSource()
getEventSource in interface ExecutionListenerExecutionpublic void setEventSource(PvmProcessElement eventSource)
setEventSource in interface InterpretableExecutionpublic String getDeleteReason()
getDeleteReason in interface ExecutionListenerExecutionpublic void setDeleteReason(String deleteReason)
public ExecutionImpl getReplacedBy()
getReplacedBy in interface InterpretableExecutionpublic void setReplacedBy(InterpretableExecution replacedBy)
setReplacedBy in interface InterpretableExecutionpublic void setExecutions(List<ExecutionImpl> executions)
public boolean isDeleteRoot()
isDeleteRoot in interface InterpretableExecutionpublic String getCurrentActivityId()
DelegateExecutiongetCurrentActivityId in interface DelegateExecutionpublic String getCurrentActivityName()
DelegateExecutiongetCurrentActivityName in interface DelegateExecutionpublic Map<String,VariableInstance> getVariableInstances()
getVariableInstances in interface VariableScopepublic Map<String,VariableInstance> getVariableInstances(Collection<String> variableNames)
getVariableInstances in interface VariableScopepublic Map<String,VariableInstance> getVariableInstances(Collection<String> variableNames, boolean fetchAllVariables)
getVariableInstances in interface VariableScopepublic Map<String,VariableInstance> getVariableInstancesLocal()
getVariableInstancesLocal in interface VariableScopepublic Map<String,VariableInstance> getVariableInstancesLocal(Collection<String> variableNames)
getVariableInstancesLocal in interface VariableScopepublic Map<String,VariableInstance> getVariableInstancesLocal(Collection<String> variableNames, boolean fetchAllVariables)
getVariableInstancesLocal in interface VariableScopepublic VariableInstance getVariableInstance(String variableName)
getVariableInstance in interface VariableScopepublic VariableInstance getVariableInstance(String variableName, boolean fetchAllVariables)
getVariableInstance in interface VariableScopepublic void createVariableLocal(String variableName, Object value)
createVariableLocal in interface VariableScopepublic Object getVariableLocal(String variableName)
getVariableLocal in interface VariableScopepublic VariableInstance getVariableInstanceLocal(String variableName)
getVariableInstanceLocal in interface VariableScopepublic Object getVariableLocal(String variableName, boolean fetchAllVariables)
getVariableLocal in interface VariableScopepublic VariableInstance getVariableInstanceLocal(String variableName, boolean fetchAllVariables)
getVariableInstanceLocal in interface VariableScopepublic <T> T getVariable(String variableName, Class<T> variableClass)
getVariable in interface VariableScopepublic <T> T getVariableLocal(String variableName, Class<T> variableClass)
getVariableLocal in interface VariableScopepublic Set<String> getVariableNames()
getVariableNames in interface VariableScopepublic Set<String> getVariableNamesLocal()
getVariableNamesLocal in interface VariableScopepublic Map<String,Object> getVariablesLocal()
getVariablesLocal in interface VariableScopepublic Map<String,Object> getVariablesLocal(Collection<String> variableNames)
getVariablesLocal in interface VariableScopepublic Map<String,Object> getVariablesLocal(Collection<String> variableNames, boolean fetchAllVariables)
getVariablesLocal in interface VariableScopepublic boolean hasVariableLocal(String variableName)
hasVariableLocal in interface VariableScopepublic boolean hasVariables()
hasVariables in interface VariableScopepublic boolean hasVariablesLocal()
hasVariablesLocal in interface VariableScopepublic void removeVariable(String variableName)
VariableScopeHistoricVariableUpdateEntity
.removeVariable in interface VariableScopepublic void removeVariableLocal(String variableName)
VariableScopeHistoricVariableUpdateEntity.removeVariableLocal in interface VariableScopepublic void removeVariables(Collection<String> variableNames)
VariableScopeHistoricVariableUpdateEntity for each of them.removeVariables in interface VariableScopepublic void removeVariablesLocal(Collection<String> variableNames)
VariableScopeHistoricVariableUpdateEntity for each of them.removeVariablesLocal in interface VariableScopepublic void removeVariables()
VariableScopeHistoricVariableUpdateEntity for each of them.removeVariables in interface VariableScopepublic void removeVariablesLocal()
VariableScopeHistoricVariableUpdateEntity for each of them.removeVariablesLocal in interface VariableScopepublic void deleteVariablesLocal()
public Object setVariableLocal(String variableName, Object value)
setVariableLocal in interface VariableScopepublic void setVariablesLocal(Map<String,? extends Object> variables)
setVariablesLocal in interface VariableScopepublic boolean isEventScope()
isEventScope in interface InterpretableExecutionpublic void setEventScope(boolean isEventScope)
setEventScope in interface InterpretableExecutionpublic StartingExecution getStartingExecution()
getStartingExecution in interface InterpretableExecutionpublic void disposeStartingExecution()
disposeStartingExecution in interface InterpretableExecutionpublic String getTenantId()
DelegateExecutiongetTenantId in interface DelegateExecutionCopyright © 2016 Alfresco. All rights reserved.