public static void RecursiveAccept(IVersionControlNode hostingNode, IVersionControlTreeVisitor visitor)
 {
     visitor.OnEntry(hostingNode);
     // ReSharper disable ForCanBeConvertedToForeach -- might cause a concurrency issue. TODO
     for (var i = 0; i < hostingNode.Children.Count; i++)
     // ReSharper restore ForCanBeConvertedToForeach
     {
         hostingNode.Children[i].RecursiveAccept(visitor);
     }
     visitor.OnExit(hostingNode);
 }
 void IVersionControlNode.Accept(IVersionControlTreeVisitor visitor)
 {
     Contract.Requires(visitor != null);
     //Contract.Ensures(visitor is run on all children).
 }
 void IVersionControlNode.RecursiveAccept(IVersionControlTreeVisitor visitor)
 {
     Contract.Requires(visitor != null);
 }
 public void RecursiveAccept(IVersionControlTreeVisitor visitor)
 {
     throw new NotImplementedException();
 }
 public static void Accept(IVersionControlNode hostingNode, IVersionControlTreeVisitor visitor)
 {
     visitor.OnFirstEntry();
     hostingNode.RecursiveAccept(visitor);
     visitor.OnLastExit();
 }
 public void RecursiveAccept(IVersionControlTreeVisitor visitor)
 {
     VisitorBehavior.RecursiveAccept(this, visitor);
 }
 void IVersionControlNode.RecursiveAccept(IVersionControlTreeVisitor visitor)
 {
     Contract.Requires(visitor != null);
 }
 void IVersionControlNode.Accept(IVersionControlTreeVisitor visitor)
 {
     Contract.Requires(visitor != null);
     //Contract.Ensures(visitor is run on all children).
 }