示例#1
0
        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);
            }
        }
示例#2
0
 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);
     }
 }
示例#3
0
        /// <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);
        }