예제 #1
0
        private void Evaluate(DependencyVertex dependencyVertex)
        {
            object value   = null;
            var    formula = Formulae.Formulas.FirstOrDefault(x => x.Variable.Name == dependencyVertex.Name);

            if (formula != null)
            {
                value = Evaluate(formula.Expression);
            }
            State[dependencyVertex.Name] = value;
        }
예제 #2
0
        private void Propagate(DependencyVertex dependencyVertex, bool evaluateVertex = true)
        {
            if (evaluateVertex)
            {
                Evaluate(dependencyVertex);
            }

            foreach (var vertice in dependencyVertex.Vertices)
            {
                var target = _reverseDependencyDependencyGraph.GetVertex(vertice.Target.Name);
                Propagate(target);
            }
        }
예제 #3
0
 public DependencyVertice(DependencyVertex target)
 {
     Target = target;
 }