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 2012/03/07 20:25:09 UTC

svn commit: r1298048 - in /commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph: ./ shortestpath/

Author: simonetripodi
Date: Wed Mar  7 19:25:09 2012
New Revision: 1298048

URL: http://svn.apache.org/viewvc?rev=1298048&view=rev
Log:
started defining the function that get the edges weight - edges are now graph type agnostic

Added:
    commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/WeightedEdges.java   (with props)
    commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultWeightedEdgesSelector.java   (with props)
    commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/WeightedEdgesSelector.java   (with props)
Modified:
    commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/CommonsGraph.java
    commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultHeuristicBuilder.java
    commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultPathSourceSelector.java
    commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultShortestPathAlgorithmSelector.java
    commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultTargetSourceSelector.java

Modified: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/CommonsGraph.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/CommonsGraph.java?rev=1298048&r1=1298047&r2=1298048&view=diff
==============================================================================
--- commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/CommonsGraph.java (original)
+++ commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/CommonsGraph.java Wed Mar  7 19:25:09 2012
@@ -43,10 +43,9 @@ import org.apache.commons.graph.model.Di
 import org.apache.commons.graph.model.UndirectedMutableGraph;
 import org.apache.commons.graph.scc.DefaultSccAlgorithmSelector;
 import org.apache.commons.graph.scc.SccAlgorithmSelector;
-import org.apache.commons.graph.shortestpath.DefaultPathSourceSelector;
-import org.apache.commons.graph.shortestpath.PathSourceSelector;
+import org.apache.commons.graph.shortestpath.DefaultWeightedEdgesSelector;
+import org.apache.commons.graph.shortestpath.WeightedEdgesSelector;
 import org.apache.commons.graph.spanning.DefaultSpanningTreeSourceSelector;
-import org.apache.commons.graph.spanning.SpanningTreeSourceSelector;
 import org.apache.commons.graph.visit.DefaultVisitSourceSelector;
 import org.apache.commons.graph.visit.VisitSourceSelector;
 
@@ -104,10 +103,10 @@ public final class CommonsGraph<V, E, G 
      * @param <G>
      * @param graph
      */
-    public static <V, WE, W, G extends Graph<V, WE, W>> PathSourceSelector<V, WE, W, G> findShortestPath( G graph )
+    public static <V, WE, G extends Graph<V, WE>> WeightedEdgesSelector<V, WE, G> findShortestPath( G graph )
     {
-        graph = checkNotNull( graph, "Minimum spanning tree can not be calculated on null graph" );
-        return new DefaultPathSourceSelector<V, WE, W, G>( graph );
+        graph = checkNotNull( graph, "Shortest path can not be calculated on null graph" );
+        return new DefaultWeightedEdgesSelector<V, WE, G>( graph );
     }
 
     /**
@@ -234,17 +233,6 @@ public final class CommonsGraph<V, E, G 
         return synchronizedObject( graph, MutableGraph.class );
     }
 
-    /**
-     * Returns a synchronized (thread-safe) {@link WeightedGraph} backed by the specified Graph.
-     *
-     * @param graph
-     * @return
-     */
-    public static <V, WE, W> Graph<V, WE> synchronize( WeightedGraph<V, WE, W> graph )
-    {
-        return synchronizedObject( graph, WeightedGraph.class );
-    }
-
    /**
     * Wrap the given object in a proxed one where all methods declared in the given interface will be synchronized.
     *

Added: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/WeightedEdges.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/WeightedEdges.java?rev=1298048&view=auto
==============================================================================
--- commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/WeightedEdges.java (added)
+++ commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/WeightedEdges.java Wed Mar  7 19:25:09 2012
@@ -0,0 +1,28 @@
+package org.apache.commons.graph;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+// TODO find a better name
+public interface WeightedEdges<E, W>
+{
+
+    W getWeightForEdge( E edge );
+
+}

Propchange: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/WeightedEdges.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/WeightedEdges.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/WeightedEdges.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultHeuristicBuilder.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultHeuristicBuilder.java?rev=1298048&r1=1298047&r2=1298048&view=diff
==============================================================================
--- commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultHeuristicBuilder.java (original)
+++ commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultHeuristicBuilder.java Wed Mar  7 19:25:09 2012
@@ -27,6 +27,7 @@ import java.util.Set;
 
 import org.apache.commons.graph.DirectedGraph;
 import org.apache.commons.graph.Graph;
+import org.apache.commons.graph.WeightedEdges;
 import org.apache.commons.graph.WeightedPath;
 import org.apache.commons.graph.collections.FibonacciHeap;
 import org.apache.commons.graph.weight.OrderedMonoid;
@@ -37,15 +38,18 @@ final class DefaultHeuristicBuilder<V, W
 
     private final G graph;
 
+    private final WeightedEdges<WE, W> weightedEdges;
+
     private final V start;
 
     private final V goal;
 
     private final WO weightOperations;
 
-    public DefaultHeuristicBuilder( G graph, V source, V target, WO weightOperations )
+    public DefaultHeuristicBuilder( G graph, WeightedEdges<WE, W> weightedEdges, V source, V target, WO weightOperations )
     {
         this.graph = graph;
+        this.weightedEdges = weightedEdges;
         this.start = source;
         this.goal = target;
         this.weightOperations = weightOperations;
@@ -89,8 +93,7 @@ final class DefaultHeuristicBuilder<V, W
             }
 
             closedSet.add( current );
-            
-            @SuppressWarnings( "unchecked" ) // unsafe cast protected by the instanceof statement that already verifies the assignment   
+
             Iterable<V> connected = ( graph instanceof DirectedGraph ) ? ( (DirectedGraph<V, WE>) graph ).getOutbound( current )
                                                                        : graph.getConnectedVertices( current );
             for ( V v : connected )
@@ -99,7 +102,7 @@ final class DefaultHeuristicBuilder<V, W
                 {
                     WE edge = graph.getEdge( current, v );
                     // note that the weight of current can never be undefined
-                    W tentativeGScore = weightOperations.append( gScores.getWeight( current ), edge.getWeight() );
+                    W tentativeGScore = weightOperations.append( gScores.getWeight( current ), weightedEdges.getWeightForEdge( edge ) );
 
                     // if the first condition fails, v has already been visited (its weight is defined)
                     if ( openSet.add( v ) || weightOperations.compare( tentativeGScore, gScores.getWeight( v ) ) < 0 )

Modified: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultPathSourceSelector.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultPathSourceSelector.java?rev=1298048&r1=1298047&r2=1298048&view=diff
==============================================================================
--- commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultPathSourceSelector.java (original)
+++ commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultPathSourceSelector.java Wed Mar  7 19:25:09 2012
@@ -27,18 +27,22 @@ import java.util.Map;
 import org.apache.commons.graph.Graph;
 import org.apache.commons.graph.UndirectedGraph;
 import org.apache.commons.graph.VertexPair;
+import org.apache.commons.graph.WeightedEdges;
 import org.apache.commons.graph.WeightedPath;
 import org.apache.commons.graph.weight.OrderedMonoid;
 
-public final class DefaultPathSourceSelector<V, WE, W, G extends Graph<V, WE>>
+final class DefaultPathSourceSelector<V, WE, W, G extends Graph<V, WE>>
     implements PathSourceSelector<V, WE, W, G>
 {
 
     private final G graph;
 
-    public DefaultPathSourceSelector( G graph )
+    private final WeightedEdges<WE, W> weightedEdges;
+
+    public DefaultPathSourceSelector( G graph, WeightedEdges<WE, W> weightedEdges )
     {
         this.graph = graph;
+        this.weightedEdges = weightedEdges;
     }
 
     /**
@@ -55,11 +59,11 @@ public final class DefaultPathSourceSele
         for ( WE we : graph.getEdges() )
         {
             VertexPair<V> vertexPair = graph.getVertices( we );
-            shortestPaths.addShortestDistance( vertexPair.getHead(), vertexPair.getTail(), we.getWeight() );
+            shortestPaths.addShortestDistance( vertexPair.getHead(), vertexPair.getTail(), weightedEdges.getWeightForEdge( we ) );
 
             if ( graph instanceof UndirectedGraph )
             {
-                shortestPaths.addShortestDistance( vertexPair.getTail(), vertexPair.getHead(), we.getWeight() );
+                shortestPaths.addShortestDistance( vertexPair.getTail(), vertexPair.getHead(), weightedEdges.getWeightForEdge( we ) );
             }
         }
 
@@ -139,7 +143,7 @@ public final class DefaultPathSourceSele
     public TargetSourceSelector<V, WE, W, G> from( V source )
     {
         source = checkNotNull( source, "Shortest path can not be calculated from a null source" );
-        return new DefaultTargetSourceSelector<V, WE, W, G>( graph, source );
+        return new DefaultTargetSourceSelector<V, WE, W, G>( graph, weightedEdges, source );
     }
 
 }
\ No newline at end of file

Modified: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultShortestPathAlgorithmSelector.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultShortestPathAlgorithmSelector.java?rev=1298048&r1=1298047&r2=1298048&view=diff
==============================================================================
--- commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultShortestPathAlgorithmSelector.java (original)
+++ commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultShortestPathAlgorithmSelector.java Wed Mar  7 19:25:09 2012
@@ -26,6 +26,7 @@ import java.util.Queue;
 import java.util.Set;
 
 import org.apache.commons.graph.Graph;
+import org.apache.commons.graph.WeightedEdges;
 import org.apache.commons.graph.WeightedPath;
 import org.apache.commons.graph.collections.FibonacciHeap;
 import org.apache.commons.graph.weight.OrderedMonoid;
@@ -36,13 +37,16 @@ final class DefaultShortestPathAlgorithm
 
     private final G graph;
 
+    private final WeightedEdges<WE, W> weightedEdges;
+
     private final V source;
 
     private final V target;
 
-    public DefaultShortestPathAlgorithmSelector( G graph, V source, V target )
+    public DefaultShortestPathAlgorithmSelector( G graph, WeightedEdges<WE, W> weightedEdges, V source, V target )
     {
         this.graph = graph;
+        this.weightedEdges = weightedEdges;
         this.source = source;
         this.target = target;
     }
@@ -53,7 +57,7 @@ final class DefaultShortestPathAlgorithm
     public <WO extends OrderedMonoid<W>> HeuristicBuilder<V, WE, W, G, WO> applyingAStar( WO weightOperations )
     {
         weightOperations = checkNotNull( weightOperations, "A* algorithm can not be applied using null weight operations" );
-        return new DefaultHeuristicBuilder<V, WE, W, G, WO>( graph, source, target, weightOperations );
+        return new DefaultHeuristicBuilder<V, WE, W, G, WO>( graph, weightedEdges, source, target, weightOperations );
     }
 
     /**
@@ -94,7 +98,7 @@ final class DefaultShortestPathAlgorithm
                     WE edge = graph.getEdge( vertex, v );
                     if ( shortestDistances.alreadyVisited( vertex ) )
                     {
-                        W shortDist = weightOperations.append( shortestDistances.getWeight( vertex ), edge.getWeight() );
+                        W shortDist = weightOperations.append( shortestDistances.getWeight( vertex ), weightedEdges.getWeightForEdge( edge ) );
 
                         if ( !shortestDistances.alreadyVisited( v )
                                 || weightOperations.compare( shortDist, shortestDistances.getWeight( v ) ) < 0 )

Modified: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultTargetSourceSelector.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultTargetSourceSelector.java?rev=1298048&r1=1298047&r2=1298048&view=diff
==============================================================================
--- commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultTargetSourceSelector.java (original)
+++ commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultTargetSourceSelector.java Wed Mar  7 19:25:09 2012
@@ -23,6 +23,7 @@ import static org.apache.commons.graph.u
 
 import org.apache.commons.graph.Graph;
 import org.apache.commons.graph.VertexPair;
+import org.apache.commons.graph.WeightedEdges;
 import org.apache.commons.graph.WeightedPath;
 import org.apache.commons.graph.weight.OrderedMonoid;
 
@@ -32,11 +33,14 @@ final class DefaultTargetSourceSelector<
 
     private final G graph;
 
+    private final WeightedEdges<WE, W> weightedEdges;
+
     private final V source;
 
-    public DefaultTargetSourceSelector( G graph, V source )
+    public DefaultTargetSourceSelector( G graph, WeightedEdges<WE, W> weightedEdges, V source )
     {
         this.graph = graph;
+        this.weightedEdges = weightedEdges;
         this.source = source;
     }
 
@@ -62,7 +66,7 @@ final class DefaultTargetSourceSelector<
 
                 if ( shortestDistances.alreadyVisited( u ) )
                 {
-                    W shortDist = weightOperations.append( shortestDistances.getWeight( u ), edge.getWeight() );
+                    W shortDist = weightOperations.append( shortestDistances.getWeight( u ), weightedEdges.getWeightForEdge( edge ) );
 
                     if ( !shortestDistances.alreadyVisited( v )
                             || weightOperations.compare( shortDist, shortestDistances.getWeight( v ) ) < 0 )
@@ -85,7 +89,7 @@ final class DefaultTargetSourceSelector<
 
             if ( shortestDistances.alreadyVisited( u ) )
             {
-                W shortDist = weightOperations.append( shortestDistances.getWeight( u ), edge.getWeight() );
+                W shortDist = weightOperations.append( shortestDistances.getWeight( u ), weightedEdges.getWeightForEdge( edge ) );
 
                 if ( !shortestDistances.alreadyVisited( v )
                         || weightOperations.compare( shortDist, shortestDistances.getWeight( v ) ) < 0 )
@@ -124,7 +128,7 @@ final class DefaultTargetSourceSelector<
     public ShortestPathAlgorithmSelector<V, WE, W, G> to( V target )
     {
         target = checkNotNull( target, "Shortest path can not be calculated to a null target" );
-        return new DefaultShortestPathAlgorithmSelector<V, WE, W, G>( graph, source, target );
+        return new DefaultShortestPathAlgorithmSelector<V, WE, W, G>( graph, weightedEdges, source, target );
     }
 
 }

Added: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultWeightedEdgesSelector.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultWeightedEdgesSelector.java?rev=1298048&view=auto
==============================================================================
--- commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultWeightedEdgesSelector.java (added)
+++ commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultWeightedEdgesSelector.java Wed Mar  7 19:25:09 2012
@@ -0,0 +1,44 @@
+package org.apache.commons.graph.shortestpath;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.apache.commons.graph.utils.Assertions.checkNotNull;
+
+import org.apache.commons.graph.Graph;
+import org.apache.commons.graph.WeightedEdges;
+
+public final class DefaultWeightedEdgesSelector<V, WE, G extends Graph<V, WE>>
+    implements WeightedEdgesSelector<V, WE, G>
+{
+
+    private final G graph;
+
+    public DefaultWeightedEdgesSelector( G graph )
+    {
+        this.graph = graph;
+    }
+
+    public <W> PathSourceSelector<V, WE, W, G> whereEdgesHaveWeights( WeightedEdges<WE, W> weightedEdges )
+    {
+        weightedEdges = checkNotNull( weightedEdges, "Function to calculate edges weight can not be null." );
+        return new DefaultPathSourceSelector<V, WE, W, G>( graph, weightedEdges );
+    }
+
+}

Propchange: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultWeightedEdgesSelector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultWeightedEdgesSelector.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/DefaultWeightedEdgesSelector.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/WeightedEdgesSelector.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/WeightedEdgesSelector.java?rev=1298048&view=auto
==============================================================================
--- commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/WeightedEdgesSelector.java (added)
+++ commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/WeightedEdgesSelector.java Wed Mar  7 19:25:09 2012
@@ -0,0 +1,32 @@
+package org.apache.commons.graph.shortestpath;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.graph.Graph;
+import org.apache.commons.graph.WeightedEdges;
+
+// TODO find a better name
+public interface WeightedEdgesSelector<V, WE, G extends Graph<V, WE>>
+{
+
+    // TODO find a better sentence
+    <W> PathSourceSelector<V, WE, W, G> whereEdgesHaveWeights( WeightedEdges<WE, W> weightedEdges );
+
+}

Propchange: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/WeightedEdgesSelector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/WeightedEdgesSelector.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/WeightedEdgesSelector.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain