/** * */ package vroom.common.modeling.dataModel; /** * <code>RouteArc</code> * <p> * Creation date: Apr 28, 2010 - 4:34:51 PM * * @author Victor Pillac, <a href="http://uniandes.edu.co">Universidad de Los Andes</a>-<a * href="http://copa.uniandes.edu.co">Copa</a> <a href="http://www.emn.fr">Ecole des Mines de Nantes</a>-<a * href="http://www.irccyn.ec-nantes.fr/irccyn/d/en/equipes/Slp">SLP</a> * @version 1.0 */ public class Arc implements IArc { /** The tail node visit **/ private final INodeVisit mTailNodeVisit; /* (non-Javadoc) * @see vroom.common.modeling.dataModel.IArc#getTailNode() */ @Override public INodeVisit getTailNode() { return mTailNodeVisit; } /** The head node visit **/ private final INodeVisit mHeadNodeVisit; /* (non-Javadoc) * @see vroom.common.modeling.dataModel.IArc#getHeadNode() */ @Override public INodeVisit getHeadNode() { return mHeadNodeVisit; } /** the distance separating the origin and head **/ private final double mDistance; /* (non-Javadoc) * @see vroom.common.modeling.dataModel.IArc#getDistance() */ @Override public double getDistance() { return mDistance; } /** A flag defining whether this arc is directed or not **/ private final boolean mDirected; /* (non-Javadoc) * @see vroom.common.modeling.dataModel.IArc#isDirected() */ @Override public boolean isDirected() { return mDirected; } /** * Creates a new <code>RouteArc</code> * * @param tailNodeVisit * the tail node visit * @param headNodeVisit * the head node visit * @param distance * the distance covered by this arc * @param directed * <code>true</code> if the arc is directed */ public Arc(INodeVisit tailNodeVisit, INodeVisit headNodeVisit, double distance, boolean directed) { mTailNodeVisit = tailNodeVisit; mHeadNodeVisit = headNodeVisit; mDistance = distance; mDirected = directed; } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return String.format("(%s,%s),d=%.2f,%s", getTailNode().getNode().getID(), getHeadNode() .getNode().getID(), getDistance(), isDirected() ? "->" : "<->"); } }