package vroom.common.modeling.dataModel.attributes;
/**
* The Interface IDemand represents a demand for various products that can be associated with a request
*
* @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 #created 15-Feb-2010 11:29:50 a.m.
*/
public interface IDemand extends IRequestAttribute {
/**
* Gets the demand.
*
* @param productId
* the id of the product for which the demand value is required
* @return the demand associated with the product with id
*/
public double getDemand(int productId);
/**
* Number of products
*
* @return the number of products for which a demand is defined
*/
public int getProductCount();
/**
* Return the demand for each product in form of an array.
* <p>
* Implementations should ensure that the returned array is independent form internal representation
* </p>
*
* @return the demand for each product in form of an array
*/
public double[] asArray();
}