// License: GPL. For details, see LICENSE file.
package com.innovant.josm.jrt.core;
import org.apache.log4j.Logger;
import org.jgrapht.Graph;
import org.jgrapht.graph.GraphDelegator;
import org.openstreetmap.josm.data.osm.Node;
import com.innovant.josm.jrt.core.RoutingGraph.RouteType;
import com.innovant.josm.jrt.osm.OsmEdge;
/**
* @author jose
*
*/
public class RoutingGraphDelegator extends GraphDelegator<Node, OsmEdge> {
/**
* Logger.
*/
static Logger logger = Logger.getLogger(RoutingGraphDelegator.class);
/**
*
*/
private RouteType routeType;
public RoutingGraphDelegator(Graph<Node, OsmEdge> arg0) {
super(arg0);
}
public RouteType getRouteType() {
return routeType;
}
public void setRouteType(RouteType routeType) {
this.routeType = routeType;
}
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public double getEdgeWeight(OsmEdge edge) {
double weight = Double.MAX_VALUE;
if (routeType == RouteType.SHORTEST) weight = edge.getLength();
if (routeType == RouteType.FASTEST) weight = edge.getLength() / edge.getSpeed();
// Return the time spent to traverse the way
return weight;
}
}