/**
*
*/
package vroom.common.modeling.dataModel.attributes;
/**
* <code>OpenTimeWindow</code> is an implementation of {@link ITimeWindow} modeling an open time window (without
* specific start or end)
* <p>
* Creation date: Nov 7, 2011 - 3:12:47 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 OpenTimeWindow implements ITimeWindow {
/* (non-Javadoc)
* @see vroom.common.utilities.dataModel.IObjectWithName#getName()
*/
@Override
public String getName() {
return "TW";
}
/* (non-Javadoc)
* @see vroom.common.modeling.dataModel.attributes.ITimeWindow#endAsDouble()
*/
@Override
public double endAsDouble() {
return Double.POSITIVE_INFINITY;
}
/* (non-Javadoc)
* @see vroom.common.modeling.dataModel.attributes.ITimeWindow#isSoftEnd()
*/
@Override
public boolean isSoftEnd() {
return false;
}
/* (non-Javadoc)
* @see vroom.common.modeling.dataModel.attributes.ITimeWindow#isSoftStart()
*/
@Override
public boolean isSoftStart() {
return false;
}
/* (non-Javadoc)
* @see vroom.common.modeling.dataModel.attributes.ITimeWindow#startAsDouble()
*/
@Override
public double startAsDouble() {
return Double.NEGATIVE_INFINITY;
}
/* (non-Javadoc)
* @see vroom.common.modeling.dataModel.attributes.ITimeWindow#isWithinTW(double)
*/
@Override
public boolean isWithinTW(double arrivalTime) {
return true;
}
/* (non-Javadoc)
* @see vroom.common.modeling.dataModel.attributes.ITimeWindow#isFeasible(double)
*/
@Override
public boolean isFeasible(double arrivalTime) {
return true;
}
/* (non-Javadoc)
* @see vroom.common.modeling.dataModel.attributes.ITimeWindow#getViolation(double)
*/
@Override
public double getViolation(double arrivalTime) {
return 0;
}
/* (non-Javadoc)
* @see vroom.common.modeling.dataModel.attributes.ITimeWindow#getWaiting(double)
*/
@Override
public double getWaiting(double arrivalTime) {
return 0;
}
/* (non-Javadoc)
* @see vroom.common.modeling.dataModel.attributes.ITimeWindow#getEarliestStartOfService(double)
*/
@Override
public double getEarliestStartOfService(double arrivalTime) {
return arrivalTime;
}
@Override
public String toString() {
return "na";
}
@Override
public double width() {
return endAsDouble() - startAsDouble();
}
}