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/21 17:34:39 UTC
svn commit: r1138053 - in /commons/sandbox/graph/trunk/src:
main/java/org/apache/commons/graph/model/
main/java/org/apache/commons/graph/shortestpath/
test/java/org/apache/commons/graph/shortestpath/
Author: simonetripodi
Date: Tue Jun 21 15:34:38 2011
New Revision: 1138053
URL: http://svn.apache.org/viewvc?rev=1138053&view=rev
Log:
made the InMemoryWeightedPath more flexible and adaptable for algorithms which don't know the path weight at the end of execution
Modified:
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/InMemoryWeightedPath.java
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/shortestpath/PredecessorsList.java
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/shortestpath/DijkstraTestCase.java
Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/InMemoryWeightedPath.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/InMemoryWeightedPath.java?rev=1138053&r1=1138052&r2=1138053&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/InMemoryWeightedPath.java (original)
+++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/InMemoryWeightedPath.java Tue Jun 21 15:34:38 2011
@@ -37,17 +37,41 @@ public final class InMemoryWeightedPath<
implements WeightedPath<V, WE>
{
- private final Double weigth;
+ private Double weigth = 0D;
- public InMemoryWeightedPath( V start, V target, Double weigth )
+ public InMemoryWeightedPath( V start, V target )
{
super( start, target );
+ }
- if ( weigth == null )
- {
- throw new IllegalArgumentException( "Path weigth cannot be null" );
- }
- this.weigth = weigth;
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void addEdgeInHead( WE edge )
+ {
+ super.addEdgeInHead( edge );
+ increaseWeight( edge );
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void addEdgeInTail( WE edge )
+ {
+ super.addEdgeInTail( edge );
+ increaseWeight( edge );
+ }
+
+ /**
+ * Increase the path weight
+ *
+ * @param edge the edge which weigth increase the path weigth
+ */
+ private void increaseWeight( WE edge )
+ {
+ weigth = edge.getWeight().doubleValue() + weigth.doubleValue();
}
/**
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=1138053&r1=1138052&r2=1138053&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 Tue Jun 21 15:34:38 2011
@@ -81,7 +81,7 @@ public final class Dijkstra
// destination reached, stop and build the path
if ( target.equals( vertex ) )
{
- return predecessors.buildPath( source, target, shortestDistances.getWeight( target ) );
+ return predecessors.buildPath( source, target );
}
settledNodes.add( vertex );
Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/shortestpath/PredecessorsList.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/shortestpath/PredecessorsList.java?rev=1138053&r1=1138052&r2=1138053&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/shortestpath/PredecessorsList.java (original)
+++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/shortestpath/PredecessorsList.java Tue Jun 21 15:34:38 2011
@@ -61,9 +61,9 @@ final class PredecessorsList<V extends V
* @param cost the path cost
* @return the weighted path related to source to target
*/
- public WeightedPath<V, WE> buildPath( V source, V target, Double cost )
+ public WeightedPath<V, WE> buildPath( V source, V target )
{
- InMemoryWeightedPath<V, WE> path = new InMemoryWeightedPath<V, WE>( source, target, cost );
+ InMemoryWeightedPath<V, WE> path = new InMemoryWeightedPath<V, WE>( source, target );
V vertex = target;
while ( !source.equals( vertex ) )
Modified: commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/shortestpath/DijkstraTestCase.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/shortestpath/DijkstraTestCase.java?rev=1138053&r1=1138052&r2=1138053&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/shortestpath/DijkstraTestCase.java (original)
+++ commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/shortestpath/DijkstraTestCase.java Tue Jun 21 15:34:38 2011
@@ -69,7 +69,7 @@ public final class DijkstraTestCase
// expected path
InMemoryWeightedPath<BaseLabeledVertex, BaseLabeledWeightedEdge> expected =
- new InMemoryWeightedPath<BaseLabeledVertex, BaseLabeledWeightedEdge>( one, five, 20D );
+ new InMemoryWeightedPath<BaseLabeledVertex, BaseLabeledWeightedEdge>( one, five );
expected.addVertexInTail( three );
expected.addVertexInTail( six );