package vroom.common.modeling.dataModel; /** * <code>DiscretePlanningPeriod</code> represents a planning period decomposed in a number of intervals of unit length. * * @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 #updated 16-Feb-2010 10:07:28 a.m. */ public class DiscretePlanningPeriod implements IPlanningPeriod { /** The number of intervals. */ private final int mNumIntervals; /** The index of the first interval. */ private final int mStart; /** * Creates a new planning period with unit intervals. * * @param numIntervals * the number of unit intervals * @see DiscretePlanningPeriod#DiscretePlanningPeriod(int, int) */ public DiscretePlanningPeriod(int numIntervals) { this(0, numIntervals); } /** * Creates a new planning period with unit intervals and a start index (or offset). * * @param start * the index of the first period * @param numIntervals * the number of unit intervals */ public DiscretePlanningPeriod(int start, int numIntervals) { mStart = start; mNumIntervals = numIntervals; } /* (non-Javadoc) * @see vroom.common.modeling.dataModel.IPlanningPeriod#endAsLong() */ @Override public long endAsLong() { return startAsLong() + size(); } /* (non-Javadoc) * @see vroom.common.modeling.dataModel.IPlanningPeriod#intervalAsLong() */ @Override public long intervalAsLong() { return 1; } /* (non-Javadoc) * @see vroom.common.modeling.dataModel.IPlanningPeriod#size() */ @Override public int size() { return mNumIntervals; } /* (non-Javadoc) * @see vroom.common.modeling.dataModel.IPlanningPeriod#startAsLong() */ @Override public long startAsLong() { return mStart; } }// end DiscretePlanningPeriod