Package modele.voiture

Source Code of modele.voiture.Voiture

package modele.voiture;

import static modele.alerte.AlerteVoiture.TypeAlerte.KILOMETRAGE_FIN_CIRCULATION_ATTEINT;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import modele.alerte.AlerteVoiture;
import modele.alerte.AlerteVoiture.TypeAlerte;
import modele.commun.Etat;

/**
* Voiture : c'est une  classe qui d�crit  les caract�ristiques de la voiture. *
* <ul>
<li> nombre de kilom�trage entre deux entretiens initialis� � 15000;  </li>
<li>...
<li> la liste des alertes de la voiture </li>
</ul>
*
* @author Kasandra
*
*/
public class Voiture {
 
  /**
   * le nombre kilom�trage entre deux entretien  est static et ne peut -�tre modifi�
   */
  private static final int NOMBRE_DE_KILOMETRE_ENTRE_DEUX_ENTRETIENS = 15000;
 
  private final Integer id;
  private String numeroImmatriculation;
  private String numeroChassis;
  private Date dateAchat;
  private Date datePremiereImmatriculation;
  private int numAgglo;
  private int numCentralTel;
  private Long kilometrage = null;
  private Long kilometrageFinCirculation;
  /**
   * marque voiture
   * @see MarqueVoiture
   */
  private MarqueVoiture marque;
  /**
   * mod�le voiture
   * @see ModeleVoiture
   */
  private ModeleVoiture modele;
  /**
   * �tat de la voiture
   *  @see Etat
   */
  private Etat etat;
  /**
   * liste des alertes
   * @see AlerteVoiture
   */
  private List<AlerteVoiture> alertes = new ArrayList<AlerteVoiture>();
 

  /**
   * Constructeur Voiture l'id voiture n'est pas d�finit
   */
  public Voiture() {
    this.id = null;
  }

  /**
   * Constructeur de la voiture, re�oit en param�tre
   * @param id: l'identifiant de la voiture
   */
  public Voiture(int id) {
    this.id = id;
  }

  /**
   * retourne la liste des alertes
   * @return alertes
   * @see AlerteVoiture
   */
  public List<AlerteVoiture> getAlertes() {
    return alertes;
  }

  /**
   * Modifie la liste des alertes
   * @param alertes
   */
  public void setAlertes(List<AlerteVoiture> alertes) {
    this.alertes = alertes;
  }
 
  /**
     * Retourne l'id de la voiture
     * @return id : l'identifiant de la voiture
     */
  public Integer getId() {
    return id;
  }

  /**
   * retourne num�ro immatriculation voiture
   * @return numeroImmatriculation
   */
  public String getNumeroImmatriculation() {
    return numeroImmatriculation;
  }

  /**
   *Modifie num�ro immatriculation
   * @param numeroImmatriculation
   */
  public void setNumeroImmatriculation(String numeroImmatriculation) {
    this.numeroImmatriculation = numeroImmatriculation;
  }

  /**
   * retourne num�ro du chassis
   * @return num�ro chassis
   */
  public String getNumeroChassis() {
    return numeroChassis;
  }

  /**
   * Modifie num�ro chassis
   * @param numeroChassis
   */
  public void setNumeroChassis(String numeroChassis) {
    this.numeroChassis = numeroChassis;
  }

  /**
   * retourne date achat voiture
   * @return dateAchat
   */
  public Date getDateAchat() {
    return dateAchat;
  }

  /**
   * Modifie date achat voiture
   * @param dateAchat
   */
  public void setDateAchat(Date dateAchat) {
    this.dateAchat = dateAchat;
  }

  /**
   *Retourne date premi�re immatriculation
   * @return datePremiereImmatriculation
   */
  public Date getDatePremiereImmatriculation() {
    return datePremiereImmatriculation;
  }

  /**
   * Modifie date pr�mi�re immatriculation
   * @param datePremiereImmatriculation
   */
  public void setDatePremiereImmatriculation(Date datePremiereImmatriculation) {
    this.datePremiereImmatriculation = datePremiereImmatriculation;
  }

  /**
   * retourne le num�ro d'agglom�ration attribu� par la direction des taxis
   * @return numAgglo
   */
  public int getNumuroAgglomeration() {
    return numAgglo;
  }

  /**
   * modifie le num�ro d'agglom�ration
   * @param numAgglo
   */
  public void setNumeroAgglomeration(int numAgglo) {
    this.numAgglo = numAgglo;
  }

  /**
   * retourne le num�ro attribu� par le central t�l�phonique
   * @return numCentralTel
   */
  public int getNumCentralTel() {
    return numCentralTel;
  }

  /**
   * setter
   * new num�ro cantrat t�l�phonique
   * @param numCentralTel
   */
  public void setNumCentralTel(int numCentralTel) {
    this.numCentralTel = numCentralTel;
  }

  /**
   * Retourne le kilom�trage de la voiture
   * @return kilometrage
   */
  public long getKilometrage() {
    return kilometrage;
  }

  /**
   * Modifie le kilom�trage de la voiture
   * <BR>des alertes sont g�n�r�es au moment de modification de kilom�trage voiture
   * <BR> lorsque le palier pour nouveau entretient est atteint
   * <BR> ou lorsqu'on d�passe le kilom�trage fin circulation initialis� � 500.000
   * <BR>Dans ce cas on rajoute les alertes g�n�r�es dans la liste des alertesVoiture 
   * @see Voiture#palierPourNouveauEntretienAtteint(long, long)  
   *
   * @param nouveauKilometrage
   */
  public void setKilometrage(long nouveauKilometrage) {
    if (this.kilometrage != null) {
      if (palierPourNouveauEntretienAtteint(this.kilometrage, nouveauKilometrage)) {
        AlerteVoiture alerteVoiture = new AlerteVoiture(this, TypeAlerte.KILOMETRAGE_ENTRETIEN_ATTEINT, new Date());
        alertes.add(alerteVoiture);
      }
      if (nouveauKilometrage > kilometrageFinCirculation) {
        AlerteVoiture alerteVoiture = new AlerteVoiture(this, KILOMETRAGE_FIN_CIRCULATION_ATTEINT, new Date());
        alertes.add(alerteVoiture);
      }
    }
    this.kilometrage = nouveauKilometrage;
  }

  /**
   * cette m�thode permet de v�rifier si on a atteint le palier pour le nouveau entretien
   * <BR> la formule suivante permet de le v�rifier
   * <BR> <b>nombre1 =( ancien kilom�trage / 15000) </b>
   * <BR> <b>nombre2 =(nouveau kilom�trage/  15000) </b>
   * @param ancientKilometrage
   * @param nouveauKilometrage
   * @return true si nombre1 < nombre2 : false si nombre1 > = nombre2
   */
  boolean palierPourNouveauEntretienAtteint(long ancientKilometrage, long nouveauKilometrage) {
    return (ancientKilometrage / NOMBRE_DE_KILOMETRE_ENTRE_DEUX_ENTRETIENS) < nouveauKilometrage / NOMBRE_DE_KILOMETRE_ENTRE_DEUX_ENTRETIENS;
  }

  /**
   * Retourne kilom�trage fin circulation
   * @return kilometrageFinCirculation
   */
  public long getKilometrageFinCirculation() {
    return kilometrageFinCirculation;
  }

  /**
   *Modifie kilom�trage fin circulation
   * @param kilometrageFinCirculation
   */
  public void setKilometrageFinCirculation(long kilometrageFinCirculation) {
    this.kilometrageFinCirculation = kilometrageFinCirculation;
  }

  /**
   * Retourne marque voiture
   * @return marque 
   * @see MarqueVoiture#getLibelle()
   */
 
  public MarqueVoiture getMarque() {
    return marque;
  }


  /**
   * Modifie marque voiture
   * @param marque
   */
  public void setMarque(MarqueVoiture marque) {
    this.marque = marque;
  }

  /**
   * Retourne mod�le voiture
   * @return mod�le voiture
   * @see ModeleVoiture
   */
  public ModeleVoiture getModele() {
    return modele;
  }

  /**
   * Modifie mod�le voiture
   * @param modele
   */
  public void setModele(ModeleVoiture modele) {
    this.modele = modele;
  }

  /**
   * Retourne �tat de la voiture
   * @return �tat voiture
   */
  public Etat getEtat() {
    return etat;
  }

  /**
   * Modifie �tat de la voiture
   * @param etat
   */
  public void setEtat(Etat etat) {
    this.etat = etat;
  }

 

  /**
   * Incr�mente le kilom�trage
   * @param distanceEnKilometre
   */
  public void incrementeKilometrage(long distanceEnKilometre) {
    setKilometrage(kilometrage + distanceEnKilometre);
  }
}
TOP

Related Classes of modele.voiture.Voiture

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.