コード例 #1
0
 protected internal virtual void InvokeVariableLifecycleListenersUpdate(ICoreVariableInstance variableInstance,
                                                                        AbstractVariableScope sourceScope,
                                                                        IList <IVariableInstanceLifecycleListener <ICoreVariableInstance> > lifecycleListeners)
 {
     foreach (var lifecycleListener in lifecycleListeners)
     {
         lifecycleListener.OnUpdate(variableInstance, sourceScope);
     }
 }
コード例 #2
0
        protected internal virtual void RemoveVariableLocal(string variableName,
                                                            AbstractVariableScope sourceActivityExecution)
        {
            if (VariableStore.ContainsKey(variableName))
            {
                var variableInstance = VariableStore.GetVariable(variableName);

                InvokeVariableLifecycleListenersDelete(variableInstance, sourceActivityExecution);
                VariableStore.RemoveVariable(variableName);
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        protected internal virtual void RemoveVariable(string variableName,
                                                       AbstractVariableScope sourceActivityExecution)
        {
            if (VariableStore.ContainsKey(variableName))
            {
                RemoveVariableLocal(variableName, sourceActivityExecution);
                return;
            }
            var parentVariableScope = ParentVariableScope;

            if (parentVariableScope != null)
            {
                if (sourceActivityExecution == null)
                {
                    parentVariableScope.RemoveVariable(variableName);
                }
                else
                {
                    parentVariableScope.RemoveVariable(variableName, sourceActivityExecution);
                }
            }
        }
コード例 #5
0
        protected internal virtual void SetVariable(string variableName, ITypedValue value,
                                                    AbstractVariableScope sourceActivityVariableScope)
        {
            if (HasVariableLocal(variableName))
            {
                SetVariableLocal(variableName, value, sourceActivityVariableScope);
                return;
            }
            var parentVariableScope = ParentVariableScope;

            if (parentVariableScope != null)
            {
                if (sourceActivityVariableScope == null)
                {
                    parentVariableScope.SetVariable(variableName, value);
                }
                else
                {
                    parentVariableScope.SetVariable(variableName, value, sourceActivityVariableScope);
                }
                return;
            }
            SetVariableLocal(variableName, value, sourceActivityVariableScope);
        }
コード例 #6
0
 protected internal virtual void InvokeVariableLifecycleListenersUpdate(ICoreVariableInstance variableInstance,
                                                                        AbstractVariableScope sourceScope)
 {
     InvokeVariableLifecycleListenersUpdate(variableInstance, sourceScope, VariableInstanceLifecycleListeners);
 }
コード例 #7
0
 public virtual void OnDelete(ICoreVariableInstance variable, AbstractVariableScope sourceScope)
 {
     HandleEvent(new VariableEvent((ICoreVariableInstance)variable, VariableListenerFields.Delete, sourceScope));
 }
コード例 #8
0
 public VariableListenerInvocationListener(AbstractVariableScope targetScope)
 {
     this.TargetScope = targetScope;
 }