You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/06/17 19:07:28 UTC

svn commit: r1136940 - in /commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph: shortestpath/Dijkstra.java visit/Visit.java

Author: simonetripodi
Date: Fri Jun 17 17:07:28 2011
New Revision: 1136940

URL: http://svn.apache.org/viewvc?rev=1136940&view=rev
Log:
discriminated vertix edges depending on the fact if graph is (un)directed

Modified:
    commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/shortestpath/Dijkstra.java
    commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/visit/Visit.java

Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/shortestpath/Dijkstra.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/shortestpath/Dijkstra.java?rev=1136940&r1=1136939&r2=1136940&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/shortestpath/Dijkstra.java (original)
+++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/shortestpath/Dijkstra.java Fri Jun 17 17:07:28 2011
@@ -27,6 +27,7 @@ import java.util.Map;
 import java.util.PriorityQueue;
 import java.util.Set;
 
+import org.apache.commons.graph.DirectedGraph;
 import org.apache.commons.graph.Vertex;
 import org.apache.commons.graph.WeightedEdge;
 import org.apache.commons.graph.WeightedGraph;
@@ -99,7 +100,10 @@ public final class Dijkstra
 
             settledNodes.add( vertex );
 
-            for ( WE edge : graph.getEdges( vertex ) )
+            @SuppressWarnings( "unchecked" ) // graph type driven by input Graph instance
+            Set<WE> edges = ( graph instanceof DirectedGraph ) ? ( (DirectedGraph<V, WE>) graph ).getOutbound( vertex )
+                                                               : graph.getEdges( vertex );
+            for ( WE edge : edges )
             {
                 V v = edge.getTail();
 

Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/visit/Visit.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/visit/Visit.java?rev=1136940&r1=1136939&r2=1136940&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/visit/Visit.java (original)
+++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/visit/Visit.java Fri Jun 17 17:07:28 2011
@@ -24,6 +24,7 @@ import java.util.LinkedList;
 import java.util.Set;
 import java.util.Stack;
 
+import org.apache.commons.graph.DirectedGraph;
 import org.apache.commons.graph.Edge;
 import org.apache.commons.graph.Graph;
 import org.apache.commons.graph.Vertex;
@@ -88,7 +89,9 @@ public final class Visit
                 handler.discoverVertex( v );
             }
 
-            for ( E e : graph.getEdges( v ) )
+            Set<E> edges = ( graph instanceof DirectedGraph ) ? ( (DirectedGraph<V, E>) graph ).getOutbound( v )
+                                                              : graph.getEdges( v );
+            for ( E e : edges )
             {
                 V w = e.getTail();
 
@@ -174,7 +177,9 @@ public final class Visit
                 handler.discoverVertex( v );
             }
 
-            for ( E e : graph.getEdges( v ) )
+            Set<E> edges = ( graph instanceof DirectedGraph ) ? ( (DirectedGraph<V, E>) graph ).getOutbound( v )
+                                                              : graph.getEdges( v );
+            for ( E e : edges )
             {
                 V w = e.getTail();