Author: simonetripodi
Date: Wed Mar 7 22:23:04 2012
New Revision: 1298166
URL: http://svn.apache.org/viewvc?rev=1298166&view=rev
Log:
weights no longer retrieved from edges
Modified:
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/spanning/ShortestEdges.java
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/spanning/WeightedEdgesComparator.java
Modified:
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/spanning/ShortestEdges.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/spanning/ShortestEdges.java?rev=1298166&r1=1298165&r2=1298166&view=diff
==============================================================================
---
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/spanning/ShortestEdges.java
(original)
+++
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/spanning/ShortestEdges.java
Wed Mar 7 22:23:04 2012
@@ -25,6 +25,7 @@ import java.util.Map;
import org.apache.commons.graph.Graph;
import org.apache.commons.graph.GraphException;
+import org.apache.commons.graph.Mapper;
import org.apache.commons.graph.SpanningTree;
import org.apache.commons.graph.VertexPair;
import org.apache.commons.graph.model.MutableSpanningTree;
@@ -45,16 +46,19 @@ final class ShortestEdges<V, WE, W>
private final Map<V, WE> predecessors = new HashMap<V, WE>();
private final OrderedMonoid<W> weightOperations;
-
+
+ private final Mapper<WE, W> weightedEdges;
+
private final Graph<V, WE> graph;
private final V source;
- public ShortestEdges(Graph<V, WE> graph, V source, OrderedMonoid<W>
weightOperations )
+ public ShortestEdges( Graph<V, WE> graph, V source, OrderedMonoid<W>
weightOperations, Mapper<WE, W> weightedEdges )
{
this.graph = graph;
this.source = source;
this.weightOperations = weightOperations;
+ this.weightedEdges = weightedEdges;
}
/**
@@ -93,8 +97,7 @@ final class ShortestEdges<V, WE, W>
return spanningTree;
}
- private static <V, WE, W> void addEdgeIgnoringExceptions( V vertex,
-
MutableSpanningTree<V, WE, W> spanningTree )
+ private static <V, WE, W> void addEdgeIgnoringExceptions( V vertex,
MutableSpanningTree<V, WE, W> spanningTree )
{
try
{
@@ -118,7 +121,7 @@ final class ShortestEdges<V, WE, W>
/**
* Returns the distance related to input vertex, or null if it does not
exist.
- *
+ *
* <b>NOTE</b>: the method {@link hasWeight} should be used first to check
if
* the input vertex has an assiged weight.
*
@@ -139,9 +142,9 @@ final class ShortestEdges<V, WE, W>
return null;
}
- return edge.getWeight();
+ return weightedEdges.map( edge );
}
-
+
/**
* Checks if there is a weight related to the input {@code Vertex}.
*
Modified:
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/spanning/WeightedEdgesComparator.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/spanning/WeightedEdgesComparator.java?rev=1298166&r1=1298165&r2=1298166&view=diff
==============================================================================
---
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/spanning/WeightedEdgesComparator.java
(original)
+++
commons/sandbox/graph/branches/drop-marker-interfaces-feature/src/main/java/org/apache/commons/graph/spanning/WeightedEdgesComparator.java
Wed Mar 7 22:23:04 2012
@@ -21,6 +21,8 @@ package org.apache.commons.graph.spannin
import java.util.Comparator;
+import org.apache.commons.graph.Mapper;
+
/**
*
* @param <W>
@@ -32,14 +34,17 @@ public class WeightedEdgesComparator<W,
private final Comparator<W> weightComparator;
- public WeightedEdgesComparator( Comparator<W> weightComparator )
+ private final Mapper<WE, W> weightedEdges;
+
+ public WeightedEdgesComparator( Comparator<W> weightComparator, Mapper<WE,
W> weightedEdges )
{
this.weightComparator = weightComparator;
+ this.weightedEdges = weightedEdges;
}
public int compare( WE o1, WE o2 )
{
- return weightComparator.compare( o1.getWeight(), o2.getWeight() );
+ return weightComparator.compare( weightedEdges.map( o1 ),
weightedEdges.map( o2 ) );
}
}