示例#1
0
        public Graph(string name, Value value)
        {
            graph = new ValueGraph(name);
            var valueIsGraph = value.Type == ValueType.Graph;

            if (value.IsArray && !valueIsGraph)
            {
                var array = (Array)value.SourceArray;
                if (array.Length > 0 && array.All(i => i.Value.Type == ValueType.Graph))
                {
                    foreach (var valueGraph in array.Select(item => item.Value).OfType <Graph>().Select(child => child.graph))
                    {
                        graph[valueGraph.Name] = valueGraph;
                    }
                }
                else
                {
                    graph.Value = array;
                }
            }
            else if (name.IsNotEmpty() && valueIsGraph && ((Graph)value).graph.Name.IsEmpty())
            {
                var childGraph = (Graph)value;
                foreach (var item in childGraph.graph.Children)
                {
                    graph[item.Key] = item.Value;
                }
            }
            else
            {
                graph.Value = value;
            }
        }
示例#2
0
 public Graph(ValueGraph graph) => this.graph = graph;
示例#3
0
 public GraphVariable(string name, ValueGraph graph, ValueGraph parent = null)
     : base(name)
 {
     this.graph  = graph;
     this.parent = parent;
 }