Author: simonetripodi
Date: Wed Mar 7 23:06:20 2012
New Revision: 1298195
URL: http://svn.apache.org/viewvc?rev=1298195&view=rev
Log:
plugged the edge mapper inside the weighter path
Modified:
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/model/InMemoryWeightedPath.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
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/PredecessorsList.java
Modified:
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/model/InMemoryWeightedPath.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/model/InMemoryWeightedPath.java?rev=1298195&r1=1298194&r2=1298195&view=diff
==============================================================================
---
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/model/InMemoryWeightedPath.java
(original)
+++
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/model/InMemoryWeightedPath.java
Wed Mar 7 23:06:20 2012
@@ -21,6 +21,7 @@ package org.apache.commons.graph.model;
import static java.lang.String.format;
+import org.apache.commons.graph.Mapper;
import org.apache.commons.graph.WeightedPath;
import org.apache.commons.graph.weight.Monoid;
@@ -42,14 +43,18 @@ public final class InMemoryWeightedPath<
*/
private static final long serialVersionUID = 7937494144459068796L;
- private W weight;
+ private final Monoid<W> weightOperations;
+
+ private final Mapper<WE, W> weightedEdges;
- private Monoid<W> weightOperations;
+ private W weight;
- public InMemoryWeightedPath( V start, V target, Monoid<W> weightOperations
)
+ public InMemoryWeightedPath( V start, V target, Monoid<W>
weightOperations, Mapper<WE, W> weightedEdges )
{
super( start, target );
this.weightOperations = weightOperations;
+ this.weightedEdges = weightedEdges;
+
this.weight = weightOperations.zero();
}
@@ -80,7 +85,7 @@ public final class InMemoryWeightedPath<
*/
private void increaseWeight( WE edge )
{
- // TODO weight = weightOperations.append( edge.getWeight(), weight );
+ weight = weightOperations.append( weightedEdges.map( edge ), weight );
}
/**
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=1298195&r1=1298194&r2=1298195&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 23:06:20 2012
@@ -79,7 +79,7 @@ final class DefaultHeuristicBuilder<V, W
openSet.add( start );
// The of navigated nodes
- final PredecessorsList<V, WE, W> predecessors = new
PredecessorsList<V, WE, W>( graph, weightOperations );
+ final PredecessorsList<V, WE, W> predecessors = new
PredecessorsList<V, WE, W>( graph, weightOperations, weightedEdges );
// extract the node in openset having the lowest f_score[] value
while ( !openSet.isEmpty() )
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=1298195&r1=1298194&r2=1298195&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 23:06:20 2012
@@ -98,7 +98,7 @@ final class DefaultPathSourceSelector<V,
{
if ( !source.equals( target ) )
{
- PredecessorsList<V, WE, W> predecessorsList = new
PredecessorsList<V, WE, W>( graph, weightOperations );
+ PredecessorsList<V, WE, W> predecessorsList = new
PredecessorsList<V, WE, W>( graph, weightOperations, weightedEdges );
pathReconstruction( predecessorsList, source, target, next
);
if ( !predecessorsList.isEmpty() )
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=1298195&r1=1298194&r2=1298195&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 23:06:20 2012
@@ -75,7 +75,7 @@ final class DefaultShortestPathAlgorithm
final Set<V> settledNodes = new HashSet<V>();
- final PredecessorsList<V, WE, W> predecessors = new
PredecessorsList<V, WE, W>( graph, weightOperations );
+ final PredecessorsList<V, WE, W> predecessors = new
PredecessorsList<V, WE, W>( graph, weightOperations, weightedEdges );
// extract the node with the shortest distance
while ( !unsettledNodes.isEmpty() )
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=1298195&r1=1298194&r2=1298195&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 23:06:20 2012
@@ -54,7 +54,7 @@ final class DefaultTargetSourceSelector<
final ShortestDistances<V, W> shortestDistances = new
ShortestDistances<V, W>( weightOperations );
shortestDistances.setWeight( source, weightOperations.zero() );
- final PredecessorsList<V, WE, W> predecessors = new
PredecessorsList<V, WE, W>( graph, weightOperations );
+ final PredecessorsList<V, WE, W> predecessors = new
PredecessorsList<V, WE, W>( graph, weightOperations, weightedEdges );
for ( int i = 0; i < graph.getOrder(); i++ )
{
Modified:
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/PredecessorsList.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/PredecessorsList.java?rev=1298195&r1=1298194&r2=1298195&view=diff
==============================================================================
---
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/PredecessorsList.java
(original)
+++
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/shortestpath/PredecessorsList.java
Wed Mar 7 23:06:20 2012
@@ -23,6 +23,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.commons.graph.Graph;
+import org.apache.commons.graph.Mapper;
import org.apache.commons.graph.WeightedPath;
import org.apache.commons.graph.model.InMemoryWeightedPath;
import org.apache.commons.graph.weight.Monoid;
@@ -42,12 +43,15 @@ public final class PredecessorsList<V, W
private final Monoid<W> weightOperations;
+ private final Mapper<WE, W> weightedEdges;
+
private final Map<V, V> predecessors = new HashMap<V, V>();
- public PredecessorsList( Graph<V, WE> graph, Monoid<W> weightOperations )
+ public PredecessorsList( Graph<V, WE> graph, Monoid<W> weightOperations,
Mapper<WE, W> weightedEdges )
{
this.graph = graph;
this.weightOperations = weightOperations;
+ this.weightedEdges = weightedEdges;
}
/**
@@ -71,7 +75,7 @@ public final class PredecessorsList<V, W
*/
public WeightedPath<V, WE, W> buildPath( V source, V target )
{
- InMemoryWeightedPath<V, WE, W> path = new InMemoryWeightedPath<V, WE,
W>( source, target, weightOperations );
+ InMemoryWeightedPath<V, WE, W> path = new InMemoryWeightedPath<V, WE,
W>( source, target, weightOperations, weightedEdges );
V vertex = target;
while ( !source.equals( vertex ) )