package commande;

import java.util.Date;

/**
 *
 * @author M. Ouziri
 * @version 1.0
 *
 */

public class Commande {
	private int numero;
	private Date dateLiv = null;
	private IStateCommande etat;

	public Commande(int numero, IStateCommande etat) {
		this.numero = numero;
		this.etat = etat;
	}
	
	public Date getDateLivraison() {
		return this.dateLiv;
	}
	
	public void setDateLivraison(Date d) {
		this.dateLiv = d;
	}

	public void payer() throws CommandeNonPayableException{
		this.etat = etat.payer();
	}

	public void livrer() throws CommandeNonLivrableEx {
		this.etat = etat.livrer();
	}

	public void rembourser() throws CommandeNonRemboursableEx {
		this.etat = etat.rembourser();
	}

	public int getNumero() {
		return numero;
	}
	
	public String getEtat() {
		return etat.getClass().getSimpleName().toString();
	}
}