src/main/java/org/jboss/util/graph/Graph.java
public <E extends Exception> void depthFirstSearch(Vertex<T> v, VisitorEX<T, E> visitor)
      throws E
   {
      if( visitor != null )
         visitor.visit(this, v);      
      v.visit();
      for (int i = 0; i < v.getOutgoingEdgeCount(); i++)
      {
         Edge<T> e = v.getOutgoingEdge(i);
         if (!e.getTo().visited())
         {
            depthFirstSearch(e.getTo(), visitor);
         }
      }
   }
public <E extends Exception> void depthFirstSearch(Vertex<T> v, VisitorEX<T, E> visitor)
      throws E
   {
      if( visitor != null )
         visitor.visit(this, v);      
      v.visit();
      for (int i = 0; i < v.getOutgoingEdgeCount(); i++)
      {
         Edge<T> e = v.getOutgoingEdge(i);
         if (!e.getTo().visited())
         {
            depthFirstSearch(e.getTo(), visitor);
         }
      }
   }
public < E extends Exception > void depthFirstSearch ( Vertex < T > v , VisitorEX < T , E > visitor ) throws E { if ( visitor != null ) visitor . visit ( this , v ) ; v . visit ( ) ; for ( int i = 0 ; i < v . getOutgoingEdgeCount ( ) ; i ++ ) { Edge < T > e = v . getOutgoingEdge ( i ) ; if ( ! e . getTo ( ) . visited ( ) ) { depthFirstSearch ( e . getTo ( ) , visitor ) ; } } }
Perform a depth first serach using recursion. The search may
be cut short if the visitor throws an exception.
@param <E> exception type

@param v - the Vertex to start the search from
@param visitor - the vistor to inform prior to
@see Visitor#visit(Graph, Vertex)
@throws E if visitor.visit throws an exception
Perform a depth first serach using recursion . The search may be cut short if the visitor throws an exception . @param <E > exception type