public void VisitNodes(Node node, Dictionary visitors,Response response) { //Is there a visitor for this node? if(visitors.ContainsKey(node.GetId())) { //Visit it Visitor visitor = visitors[node.GetId()); visitor.Visit(node,response); } //Visit all child nodes recursively int count = node.GetChildCount(); for(int i =0;i