Package org.activiti.engine.delegate
Interface VariableScope
-
- All Known Subinterfaces:
DelegateExecution,DelegateTask,ExecutionEntity,TaskEntity
- All Known Implementing Classes:
ExecutionEntityImpl,NoExecutionVariableScope,TaskEntityImpl,VariableScopeImpl
public interface VariableScopeInterface for class that acts as a scope for variables: i.e. the implementation can be used to set and get variables. Typically, executions (and thus process instances) and tasks are the primary use case to get and set variables. TheDelegateExecutionfor example is often used inJavaDelegateimplementation to get and set variables. Variables are typically stored on the 'highest parent'. For executions, this means that when called on an execution the variable will be stored on the process instance execution. Variables can be stored on the actual scope itself though, by calling the xxLocal methods.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.ObjectgetTransientVariable(java.lang.String variableName)Similar togetVariable(String), including the searching via the parent scopes, but for transient variables only.java.lang.ObjectgetTransientVariableLocal(java.lang.String variableName)Similar togetVariableLocal(String), but for a transient variable.java.util.Map<java.lang.String,java.lang.Object>getTransientVariables()Similar togetVariables(), but for transient variables only.java.util.Map<java.lang.String,java.lang.Object>getTransientVariablesLocal()Similar togetVariableLocal(String), but for transient variables only.java.lang.ObjectgetVariable(java.lang.String variableName)Returns the variable value for one specific variable.java.lang.ObjectgetVariable(java.lang.String variableName, boolean fetchAllVariables)Similar togetVariable(String), but has an extra flag that indicates whether or not all variables need to be fetched when getting one variable.<T> TgetVariable(java.lang.String variableName, java.lang.Class<T> variableClass)Typed version of thegetVariable(String)method.VariableInstancegetVariableInstance(java.lang.String variableName)Similar togetVariable(String), but returns aVariableInstanceinstance, which contains more information than just the value.VariableInstancegetVariableInstance(java.lang.String variableName, boolean fetchAllVariables)Similar togetVariable(String, boolean), but returns an instance ofVariableInstance, which has some additional information beyond the value.VariableInstancegetVariableInstanceLocal(java.lang.String variableName)Similar togetVariableLocal(String), but returns an instance ofVariableInstance, which has some additional information beyond the value.VariableInstancegetVariableInstanceLocal(java.lang.String variableName, boolean fetchAllVariables)Similar togetVariableLocal(String, boolean), but returns an instance ofVariableInstance, which has some additional information beyond the value.java.util.Map<java.lang.String,VariableInstance>getVariableInstances()Returns all variables, as instances of theVariableInstanceinterface, which gives more information than only the the value (type, execution id, etc.)java.util.Map<java.lang.String,VariableInstance>getVariableInstances(java.util.Collection<java.lang.String> variableNames)Similar togetVariableInstances(), but limited to only the variables with the provided names.java.util.Map<java.lang.String,VariableInstance>getVariableInstances(java.util.Collection<java.lang.String> variableNames, boolean fetchAllVariables)Similar togetVariables(Collection, boolean)but returns the variables as instances of theVariableInstanceinterface, which gives more information than only the the value (type, execution id, etc.)java.util.Map<java.lang.String,VariableInstance>getVariableInstancesLocal()Returns the variables local to this scope as instances of theVariableInstanceinterface, which provided additional information about the variable.java.util.Map<java.lang.String,VariableInstance>getVariableInstancesLocal(java.util.Collection<java.lang.String> variableNames)Similar togetVariableInstances(Collection), but only for variables local to this scope.java.util.Map<java.lang.String,VariableInstance>getVariableInstancesLocal(java.util.Collection<java.lang.String> variableNames, boolean fetchAllVariables)Similar togetVariableInstances(Collection, boolean), but only for variables local to this scope.java.lang.ObjectgetVariableLocal(java.lang.String variableName)Returns the value for the specific variable and only checks this scope and not any parent scope.java.lang.ObjectgetVariableLocal(java.lang.String variableName, boolean fetchAllVariables)Similar togetVariableLocal(String), but has an extra flag that indicates whether or not all variables need to be fetched when getting one variable.<T> TgetVariableLocal(java.lang.String variableName, java.lang.Class<T> variableClass)Typed version of thegetVariableLocal(String)method.java.util.Set<java.lang.String>getVariableNames()Returns all the names of the variables for this scope and all parent scopes.java.util.Set<java.lang.String>getVariableNamesLocal()Returns all the names of the variables for this scope (no parent scopes).java.util.Map<java.lang.String,java.lang.Object>getVariables()Returns all variables.java.util.Map<java.lang.String,java.lang.Object>getVariables(java.util.Collection<java.lang.String> variableNames)Similar togetVariables(), but limited to only the variables with the provided names.java.util.Map<java.lang.String,java.lang.Object>getVariables(java.util.Collection<java.lang.String> variableNames, boolean fetchAllVariables)Similar to {@link #getVariables(Collection))}, but with a flag that indicates that all variables should be fetched when fetching the specific variables.java.util.Map<java.lang.String,java.lang.Object>getVariablesLocal()Returns the variable local to this scope only.java.util.Map<java.lang.String,java.lang.Object>getVariablesLocal(java.util.Collection<java.lang.String> variableNames)Similar togetVariables(Collection), but only for variables local to this scope.java.util.Map<java.lang.String,java.lang.Object>getVariablesLocal(java.util.Collection<java.lang.String> variableNames, boolean fetchAllVariables)Similar togetVariables(Collection, boolean), but only for variables local to this scope.booleanhasVariable(java.lang.String variableName)Returns whether this scope or any parent scope has a specific variable.booleanhasVariableLocal(java.lang.String variableName)Returns whether this scope has a specific variable.booleanhasVariables()Returns whether this scope or any parent scope has variables.booleanhasVariablesLocal()Returns whether this scope has variables.voidremoveTransientVariable(java.lang.String variableName)Removes a specific transient variable.voidremoveTransientVariableLocal(java.lang.String variableName)Removes a specific transient variable (also searching parent scopes).voidremoveTransientVariables()Remove all transient variable of this scope and its parent scopes.voidremoveTransientVariablesLocal()Removes all local transient variables.voidremoveVariable(java.lang.String variableName)Removes the variable and creates a new;@link HistoricVariableUpdateEntity}voidremoveVariableLocal(java.lang.String variableName)Removes the local variable and creates a newHistoricVariableUpdate.voidremoveVariables()Removes the (local) variables and creates a newHistoricVariableUpdatefor each of them.voidremoveVariables(java.util.Collection<java.lang.String> variableNames)Removes the variables and creates a newHistoricVariableUpdatefor each of them.voidremoveVariablesLocal()Removes the (local) variables and creates a newHistoricVariableUpdatefor each of them.voidremoveVariablesLocal(java.util.Collection<java.lang.String> variableNames)Removes the local variables and creates a newHistoricVariableUpdatefor each of them.voidsetTransientVariable(java.lang.String variableName, java.lang.Object variableValue)Similar tosetVariable(String, Object), but the variable is transient: - no history is kept for the variable - the variable is only available until a waitstate is reached in the process - transient variables 'shadow' persistent variable (when getVariable('abc') where 'abc' is both persistent and transient, the transient value is returned.voidsetTransientVariableLocal(java.lang.String variableName, java.lang.Object variableValue)Similar tosetVariableLocal(String, Object), but for a transient variable.voidsetTransientVariables(java.util.Map<java.lang.String,java.lang.Object> transientVariables)Similar tosetVariables(Map), but for transient variables.voidsetTransientVariablesLocal(java.util.Map<java.lang.String,java.lang.Object> transientVariables)Similar tosetVariablesLocal(Map), but for transient variables.voidsetVariable(java.lang.String variableName, java.lang.Object value)Sets the variable with the provided name to the provided value.voidsetVariable(java.lang.String variableName, java.lang.Object value, boolean fetchAllVariables)Similar tosetVariable(String, Object), but with an extra flag to indicate whether all variables should be fetched while doing this or not.java.lang.ObjectsetVariableLocal(java.lang.String variableName, java.lang.Object value)Similar tosetVariable(String, Object), but the variable is set to this scope specifically.java.lang.ObjectsetVariableLocal(java.lang.String variableName, java.lang.Object value, boolean fetchAllVariables)Similar tosetVariableLocal(String, Object, boolean), but the variable is set to this scope specifically.voidsetVariables(java.util.Map<java.lang.String,? extends java.lang.Object> variables)Sets the provided variables to the variable scope.voidsetVariablesLocal(java.util.Map<java.lang.String,? extends java.lang.Object> variables)Similar tosetVariables(Map), but the variable are set on this scope specifically.
-
-
-
Method Detail
-
getVariables
java.util.Map<java.lang.String,java.lang.Object> getVariables()
Returns all variables. This will include all variables of parent scopes too.
-
getVariableInstances
java.util.Map<java.lang.String,VariableInstance> getVariableInstances()
Returns all variables, as instances of theVariableInstanceinterface, which gives more information than only the the value (type, execution id, etc.)
-
getVariables
java.util.Map<java.lang.String,java.lang.Object> getVariables(java.util.Collection<java.lang.String> variableNames)
Similar togetVariables(), but limited to only the variables with the provided names.
-
getVariableInstances
java.util.Map<java.lang.String,VariableInstance> getVariableInstances(java.util.Collection<java.lang.String> variableNames)
Similar togetVariableInstances(), but limited to only the variables with the provided names.
-
getVariables
java.util.Map<java.lang.String,java.lang.Object> getVariables(java.util.Collection<java.lang.String> variableNames, boolean fetchAllVariables)Similar to {@link #getVariables(Collection))}, but with a flag that indicates that all variables should be fetched when fetching the specific variables. If set to false, only the specific variables will be fetched. Dependening on the use case, this can be better for performance, as it avoids fetching and processing the other variables. However, if the other variables are needed further on, getting them in one go is probably better (and the variables are cached during oneCommandexecution).
-
getVariableInstances
java.util.Map<java.lang.String,VariableInstance> getVariableInstances(java.util.Collection<java.lang.String> variableNames, boolean fetchAllVariables)
Similar togetVariables(Collection, boolean)but returns the variables as instances of theVariableInstanceinterface, which gives more information than only the the value (type, execution id, etc.)
-
getVariablesLocal
java.util.Map<java.lang.String,java.lang.Object> getVariablesLocal()
Returns the variable local to this scope only. So, in contrary togetVariables(), the variables from the parent scope won't be returned.
-
getVariableInstancesLocal
java.util.Map<java.lang.String,VariableInstance> getVariableInstancesLocal()
Returns the variables local to this scope as instances of theVariableInstanceinterface, which provided additional information about the variable.
-
getVariablesLocal
java.util.Map<java.lang.String,java.lang.Object> getVariablesLocal(java.util.Collection<java.lang.String> variableNames)
Similar togetVariables(Collection), but only for variables local to this scope.
-
getVariableInstancesLocal
java.util.Map<java.lang.String,VariableInstance> getVariableInstancesLocal(java.util.Collection<java.lang.String> variableNames)
Similar togetVariableInstances(Collection), but only for variables local to this scope.
-
getVariablesLocal
java.util.Map<java.lang.String,java.lang.Object> getVariablesLocal(java.util.Collection<java.lang.String> variableNames, boolean fetchAllVariables)Similar togetVariables(Collection, boolean), but only for variables local to this scope.
-
getVariableInstancesLocal
java.util.Map<java.lang.String,VariableInstance> getVariableInstancesLocal(java.util.Collection<java.lang.String> variableNames, boolean fetchAllVariables)
Similar togetVariableInstances(Collection, boolean), but only for variables local to this scope.
-
getVariable
java.lang.Object getVariable(java.lang.String variableName)
Returns the variable value for one specific variable. Will look in parent scopes when the variable does not exist on this particular scope.
-
getVariableInstance
VariableInstance getVariableInstance(java.lang.String variableName)
Similar togetVariable(String), but returns aVariableInstanceinstance, which contains more information than just the value.
-
getVariable
java.lang.Object getVariable(java.lang.String variableName, boolean fetchAllVariables)Similar togetVariable(String), but has an extra flag that indicates whether or not all variables need to be fetched when getting one variable. By default true (for backwards compatibility reasons), which means that callinggetVariable(String)will fetch all variables, of the current scope and all parent scopes. Setting this flag to false can thus be better for performance. However, variables are cached, and if other variables are used later on, setting this true might actually be better for performance.
-
getVariableInstance
VariableInstance getVariableInstance(java.lang.String variableName, boolean fetchAllVariables)
Similar togetVariable(String, boolean), but returns an instance ofVariableInstance, which has some additional information beyond the value.
-
getVariableLocal
java.lang.Object getVariableLocal(java.lang.String variableName)
Returns the value for the specific variable and only checks this scope and not any parent scope.
-
getVariableInstanceLocal
VariableInstance getVariableInstanceLocal(java.lang.String variableName)
Similar togetVariableLocal(String), but returns an instance ofVariableInstance, which has some additional information beyond the value.
-
getVariableLocal
java.lang.Object getVariableLocal(java.lang.String variableName, boolean fetchAllVariables)Similar togetVariableLocal(String), but has an extra flag that indicates whether or not all variables need to be fetched when getting one variable. By default true (for backwards compatibility reasons), which means that callinggetVariableLocal(String)will fetch all variables, of the current scope. Setting this flag to false can thus be better for performance. However, variables are cached, and if other variables are used later on, setting this true might actually be better for performance.
-
getVariableInstanceLocal
VariableInstance getVariableInstanceLocal(java.lang.String variableName, boolean fetchAllVariables)
Similar togetVariableLocal(String, boolean), but returns an instance ofVariableInstance, which has some additional information beyond the value.
-
getVariable
<T> T getVariable(java.lang.String variableName, java.lang.Class<T> variableClass)Typed version of thegetVariable(String)method.
-
getVariableLocal
<T> T getVariableLocal(java.lang.String variableName, java.lang.Class<T> variableClass)Typed version of thegetVariableLocal(String)method.
-
getVariableNames
java.util.Set<java.lang.String> getVariableNames()
Returns all the names of the variables for this scope and all parent scopes.
-
getVariableNamesLocal
java.util.Set<java.lang.String> getVariableNamesLocal()
Returns all the names of the variables for this scope (no parent scopes).
-
setVariable
void setVariable(java.lang.String variableName, java.lang.Object value)Sets the variable with the provided name to the provided value.A variable is set according to the following algorithm:
- If this scope already contains a variable by the provided name as a local variable, its value is overwritten to the provided value.
- If this scope does not contain a variable by the provided name as a local variable, the variable is set to this scope's parent scope, if there is one. If there is no parent scope (meaning this scope is the root scope of the hierarchy it belongs to), this scope is used. This applies recursively up the parent scope chain until, if no scope contains a local variable by the provided name, ultimately the root scope is reached and the variable value is set on that scope.
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.
- Parameters:
variableName- the name of the variable to be setvalue- the value of the variable to be set
-
setVariable
void setVariable(java.lang.String variableName, java.lang.Object value, boolean fetchAllVariables)Similar tosetVariable(String, Object), but with an extra flag to indicate whether all variables should be fetched while doing this or not. The variable will be put on the highest possible scope. For an execution this is the process instance execution. If this is not wanted, use thesetVariableLocal(String, Object)method instead. The default (e.g. when callingsetVariable(String, Object)), is true, for backwards compatibility reasons. However, in some use cases, it might make sense not to fetch any other variables when setting one variable (for example when doing nothing more than just setting one variable).
-
setVariableLocal
java.lang.Object setVariableLocal(java.lang.String variableName, java.lang.Object value)Similar tosetVariable(String, Object), but the variable is set to this scope specifically.
-
setVariableLocal
java.lang.Object setVariableLocal(java.lang.String variableName, java.lang.Object value, boolean fetchAllVariables)Similar tosetVariableLocal(String, Object, boolean), but the variable is set to this scope specifically.
-
setVariables
void setVariables(java.util.Map<java.lang.String,? extends java.lang.Object> variables)
Sets the provided variables to the variable scope.Variables are set according algorithm for
setVariable(String, Object), applied separately to each variable.- Parameters:
variables- a map of keys and values for the variables to be set
-
setVariablesLocal
void setVariablesLocal(java.util.Map<java.lang.String,? extends java.lang.Object> variables)
Similar tosetVariables(Map), but the variable are set on this scope specifically.
-
hasVariables
boolean hasVariables()
Returns whether this scope or any parent scope has variables.
-
hasVariablesLocal
boolean hasVariablesLocal()
Returns whether this scope has variables.
-
hasVariable
boolean hasVariable(java.lang.String variableName)
Returns whether this scope or any parent scope has a specific variable.
-
hasVariableLocal
boolean hasVariableLocal(java.lang.String variableName)
Returns whether this scope has a specific variable.
-
removeVariable
void removeVariable(java.lang.String variableName)
Removes the variable and creates a new;@link HistoricVariableUpdateEntity}
-
removeVariableLocal
void removeVariableLocal(java.lang.String variableName)
Removes the local variable and creates a newHistoricVariableUpdate.
-
removeVariables
void removeVariables(java.util.Collection<java.lang.String> variableNames)
Removes the variables and creates a newHistoricVariableUpdatefor each of them.
-
removeVariablesLocal
void removeVariablesLocal(java.util.Collection<java.lang.String> variableNames)
Removes the local variables and creates a newHistoricVariableUpdatefor each of them.
-
removeVariables
void removeVariables()
Removes the (local) variables and creates a newHistoricVariableUpdatefor each of them.
-
removeVariablesLocal
void removeVariablesLocal()
Removes the (local) variables and creates a newHistoricVariableUpdatefor each of them.
-
setTransientVariable
void setTransientVariable(java.lang.String variableName, java.lang.Object variableValue)Similar tosetVariable(String, Object), but the variable is transient: - no history is kept for the variable - the variable is only available until a waitstate is reached in the process - transient variables 'shadow' persistent variable (when getVariable('abc') where 'abc' is both persistent and transient, the transient value is returned.
-
setTransientVariableLocal
void setTransientVariableLocal(java.lang.String variableName, java.lang.Object variableValue)Similar tosetVariableLocal(String, Object), but for a transient variable. SeesetTransientVariable(String, Object)for the rules on 'transient' variables.
-
setTransientVariables
void setTransientVariables(java.util.Map<java.lang.String,java.lang.Object> transientVariables)
Similar tosetVariables(Map), but for transient variables. SeesetTransientVariable(String, Object)for the rules on 'transient' variables.
-
getTransientVariable
java.lang.Object getTransientVariable(java.lang.String variableName)
Similar togetVariable(String), including the searching via the parent scopes, but for transient variables only. SeesetTransientVariable(String, Object)for the rules on 'transient' variables.
-
getTransientVariables
java.util.Map<java.lang.String,java.lang.Object> getTransientVariables()
Similar togetVariables(), but for transient variables only. SeesetTransientVariable(String, Object)for the rules on 'transient' variables.
-
setTransientVariablesLocal
void setTransientVariablesLocal(java.util.Map<java.lang.String,java.lang.Object> transientVariables)
Similar tosetVariablesLocal(Map), but for transient variables. SeesetTransientVariable(String, Object)for the rules on 'transient' variables.
-
getTransientVariableLocal
java.lang.Object getTransientVariableLocal(java.lang.String variableName)
Similar togetVariableLocal(String), but for a transient variable. SeesetTransientVariable(String, Object)for the rules on 'transient' variables.
-
getTransientVariablesLocal
java.util.Map<java.lang.String,java.lang.Object> getTransientVariablesLocal()
Similar togetVariableLocal(String), but for transient variables only. SeesetTransientVariable(String, Object)for the rules on 'transient' variables.
-
removeTransientVariableLocal
void removeTransientVariableLocal(java.lang.String variableName)
Removes a specific transient variable (also searching parent scopes). SeesetTransientVariable(String, Object)for the rules on 'transient' variables.
-
removeTransientVariable
void removeTransientVariable(java.lang.String variableName)
Removes a specific transient variable. SeesetTransientVariable(String, Object)for the rules on 'transient' variables.
-
removeTransientVariables
void removeTransientVariables()
Remove all transient variable of this scope and its parent scopes. SeesetTransientVariable(String, Object)for the rules on 'transient' variables.
-
removeTransientVariablesLocal
void removeTransientVariablesLocal()
Removes all local transient variables. SeesetTransientVariable(String, Object)for the rules on 'transient' variables.
-
-