Example #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);
            }
        }
Example #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);
     }
 }
Example #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);
        }
        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));
        }