package comparatori.videogioco;

public class Videogioco implements Comparable<Videogioco>{
	
	// Campi di istanza
	private String titolo;
	private String piattaforma;
	private Integer annoUscita;
	private Double prezzo;
	private Integer voto;
	
	// Costruttore
	
	private Videogioco() {}
	
	public Videogioco(
			String titolo,
			String piattaforma,
			Integer annoUscita,
			Double prezzo,
			Integer voto) {
		this.titolo = (titolo == null) ? "" : titolo.trim();
		this.piattaforma = (piattaforma == null) ? "" : piattaforma.trim();
		this.annoUscita = (annoUscita == null) ? 0 : annoUscita;
		this.prezzo = (prezzo == null) ? 0.0 : prezzo;
		this.voto = (voto == null) ? 0 : voto;
	}
	
	// Getter
	public String titolo() {
		return titolo;
	}
	
	public String piattaforma() {
		return piattaforma;
	}
	
	public Integer annoUscita() {
		return annoUscita;
	}
	
	public Double prezzo() {
		return prezzo;
	}
	
	public Integer voto() {
		return voto;
	}
	
	// Implementazione del metodo comparatore
	
	/**
	 * compareTo ordina per prezzo crescente
	 */
	@Override
	public int compareTo(Videogioco videogioco) {
		if (this.prezzo < videogioco.prezzo) return -1;
		if (this.prezzo > videogioco.prezzo) return 1;
		return 0;
	}
	
	@Override
	public String toString() {
		return titolo + " " + piattaforma + " " + annoUscita + " " + prezzo + " " + voto;
	}
}
