package fr.eisti.transport;

public class Voiture extends Vehicule implements Comparable <Voiture>
{
	private int kilometrage;
	private TypeMoteur moteur;
	
	public Voiture(String ma_, String mo_, int ki_, TypeMoteur tm_)
	{
		super(ma_,mo_);
		kilometrage = ki_;
		moteur = tm_;
	}

	public void deplacer() 
	{
		kilometrage++;
	}
	
	public boolean equals(Voiture v)
	{
		boolean z;
		int s = moteur.compareTo(v.getMoteur());//type moteur égal
		if(s == 0)
		{
			z = this.equals(v); // vehicules égaux
			if(z)
				return kilometrage == v.getKilometrage();//km égal
			else return z;
		}
		else return false;
	}
	
	public int hashCode()
	{
		return kilometrage + moteur.hashCode() + hashCodeV();
	}
	
	public String toString()
	{
		return toStringV() + " " + moteur.toString() + " " + kilometrage +"kms.";
	}
	
	public int compareTo(Voiture o) 
	{
		int s = kilometrage - o.getKilometrage();
		if(s == 0) return moteur.compareTo(o.getMoteur());
		return s;
	}

	public int getKilometrage() {return kilometrage;}
	public TypeMoteur getMoteur() {return moteur;}
}
