/**
*
*/
package vroom.common.heuristics.cw.kernel;
import vroom.common.heuristics.Move;
import vroom.common.heuristics.cw.IJCWArc;
import vroom.common.modeling.dataModel.IRoute;
/**
* <code>RouteMergingMove</code>
* <p>
* Creation date: Jun 28, 2010 - 5:22:19 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 RouteMergingMove extends Move {
public final IJCWArc linkingArc;
public final IRoute<?> tailRoute, headRoute;
/**
* Creates a new <code>RouteMergingMove</code>
*
* @param linkingArc
* @param tailRoute
* @param headRoute
*/
public RouteMergingMove(IJCWArc linkingArc, IRoute<?> tailRoute, IRoute<?> headRoute) {
super(linkingArc.getSaving());
this.linkingArc = linkingArc;
this.tailRoute = tailRoute;
this.headRoute = headRoute;
}
/* (non-Javadoc)
* @see vroom.common.heuristics.Move#getMoveName()
*/
@Override
public String getMoveName() {
return "routeMerge";
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return String.format("%s(arc:%s)", getMoveName(), linkingArc);
}
}