import java.util.*;

public class Lot extends Article {
  
  // Attributs de la classe. Privés si possible
  
  // Un lot est une liste de couples article/quantite
  private Vector listeArticlesQuantites;
  

  // Constructeurs
  
  public Lot(String nom, String reference) {
    // Pas de prix pour un article, son prix sera évalué au fur et à
    // mesure qu'on le compose avec des articles
    listeArticlesQuantites = new Vector();
    
    setPrix(0);
    setRef(reference);
    setNom(nom);
  }

  // Méthodes publiques   
  
  public void add(Article article_a_rajouter, int quantite) {
    // on ajoute un couple article/quantite au lot
    double prix = quantite * article_a_rajouter.getPrix() * 0.9;
    listeArticlesQuantites.addElement(new ArticleQuantite(article_a_rajouter, 
							  quantite, prix));

    // on met à jour le prix du lot
    setPrix(getPrix() + prix);
  }
  
  /** Cette méthode retourne une chaine de caractères décrivant le Lot */
  public String identifieToi() {
    String result;
    Enumeration liste = listeArticlesQuantites.elements();
    ArticleQuantite elem;
    
    result = super.identifieToi() + " correspondant à : \n"; 

    while(liste.hasMoreElements()) {
      elem = (ArticleQuantite)liste.nextElement();
      
      result = result + "\t- " + elem.getQuantite() + 
	" article(s) de ce type : " +  
	elem.getArticle().identifieToi() + ", pour un prix total de : " + 
	elem.getPrix() +"\n";
    }
    return result;
  }
}

