public virtual void setVariableLocal(string variableName, TypedValue value, AbstractVariableScope sourceActivityExecution) { checkJavaSerialization(variableName, value); VariableStore <CoreVariableInstance> variableStore = VariableStore; if (variableStore.containsKey(variableName)) { CoreVariableInstance existingInstance = variableStore.getVariable(variableName); existingInstance.Value = value; invokeVariableLifecycleListenersUpdate(existingInstance, sourceActivityExecution); } else if (variableStore.isRemoved(variableName)) { CoreVariableInstance existingInstance = variableStore.getRemovedVariable(variableName); existingInstance.Value = value; VariableStore.addVariable(existingInstance); invokeVariableLifecycleListenersUpdate(existingInstance, sourceActivityExecution); DbEntityManager dbEntityManager = Context.CommandContext.DbEntityManager; dbEntityManager.undoDelete((VariableInstanceEntity)existingInstance); } else { CoreVariableInstance variableValue = VariableInstanceFactory.build(variableName, value, false); VariableStore.addVariable(variableValue); invokeVariableLifecycleListenersCreate(variableValue, sourceActivityExecution); } }
public virtual void initializeVariableStore(IDictionary <string, object> variables) { foreach (string variableName in variables.Keys) { TypedValue value = Variables.untypedValue(variables[variableName]); CoreVariableInstance variableValue = VariableInstanceFactory.build(variableName, value, false); VariableStore.addVariable(variableValue); } }
/// <summary> /// Sets a variable in the local scope. In contrast to /// <seealso cref="setVariableLocal(string, object)"/>, the variable is transient that /// means it will not be stored in the data base. For example, a transient /// variable can be used for a result variable that is only available for /// output mapping. /// </summary> public virtual void setVariableLocalTransient(string variableName, object value) { TypedValue typedValue = Variables.untypedValue(value, true); checkJavaSerialization(variableName, typedValue); CoreVariableInstance coreVariableInstance = VariableInstanceFactory.build(variableName, typedValue, true); VariableStore.addVariable(coreVariableInstance); }
public virtual void SetVariableLocal(string variableName, ITypedValue value, AbstractVariableScope sourceActivityExecution) { var variableStore = VariableStore; if (variableStore.ContainsKey(variableName)) { var existingInstance = variableStore.GetVariable(variableName); existingInstance.SetValue(value); InvokeVariableLifecycleListenersUpdate(existingInstance, sourceActivityExecution); } else { var variableValue = VariableInstanceFactory.Build(variableName, value, false); VariableStore.AddVariable(variableValue as VariableInstanceEntity); InvokeVariableLifecycleListenersCreate(variableValue, sourceActivityExecution); } }
/// <summary> /// Sets a variable in the local scope. In contrast to /// <seealso cref="#setVariableLocal(String, Object)" />, the variable is transient that /// means it will not be stored in the data base. For example, a transient /// variable can be used for a result variable that is only available for /// output mapping. /// </summary> public virtual void SetVariableLocalTransient(string variableName, object value) { ITypedValue typedValue = Engine.Variable.Variables.UnTypedValue(value); VariableStore.AddVariable(VariableInstanceFactory.Build(variableName, typedValue, true)); }