public void traverse(VariableTreeNode node, VariableTreeVisitor visitor) { visitor(node); foreach (KeyValuePair <string, VariableTreeNode> kid in node.children) { traverse(kid.Value, visitor); } }
public VariableTreeNode resolveNode(IList <String> pathArray) { if (pathArray.Count == 0 || pathArray[0] == "") { return(this); } string childName = pathArray[0]; VariableTreeNode child = o_children[childName]; if (pathArray.Count == 1) { return(child); } else { pathArray.RemoveAt(0); return(child.resolveNode(pathArray)); } }
public void addNode(IList <String> pathArray) { if (pathArray.Count == 0) { return; } string childName = pathArray[0]; if (o_children.ContainsKey(childName)) { VariableTreeNode child = o_children[childName]; pathArray.RemoveAt(0); child.addNode(pathArray); } else { VariableTreeNode child = new VariableTreeNode(childName, this.path + pathSeperator + childName, pathSeperator); this.addChild(child); pathArray.RemoveAt(0); child.addNode(pathArray); } }
public void addChild(VariableTreeNode child) { child.parent = this; children.Add(child.name, child); }