// 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; } }