package com.aluracursos.screenmatch.modelos;
import com.google.gson.annotations.SerializedName;
import java.util.Comparator;
public class Titulo implements Comparable<Titulo>, Comparator<Titulo> {
@SerializedName("Title")
private String nombre;
@SerializedName("Year")
private int fechaDeLanzamiento;
private int duracionEnMinutos;
private boolean incluidoEnElPlan;
private double sumaDeLasEvalucione;
private int numeroDeEvaluciones;
public Titulo(String nombre, int fechaDeLanzamiento) {
this.nombre = nombre;
this.fechaDeLanzamiento = fechaDeLanzamiento;
}
public Titulo(TituloOmdb mtituloOmdb) {
this.nombre = mtituloOmdb.title();
this.fechaDeLanzamiento = Integer.valueOf(mtituloOmdb.year());
this.duracionEnMinutos = Integer.valueOf(mtituloOmdb.runtime().substring(0,2));
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setFechaDeLanzamiento(int fechaDeLanzamiento) {
this.fechaDeLanzamiento = fechaDeLanzamiento;
}
public void setDuracionEnMinutos(int duracionEnMinutos) {
this.duracionEnMinutos = duracionEnMinutos;
}
public void setIncluidoEnElPlan(boolean incluidoEnElPlan) {
this.incluidoEnElPlan = incluidoEnElPlan;
}
public String getNombre() {
return nombre;
}
public int getFechaDeLanzamiento() {
return fechaDeLanzamiento;
}
public int getDuracionEnMinutos() {
return duracionEnMinutos;
}
public boolean getIncluidoEnElPlan() {
return incluidoEnElPlan;
}
public int getNumeroDeEvaluciones(){
return numeroDeEvaluciones;
}
public double getSumaDeLasEvalucione(){
return sumaDeLasEvalucione;
}
public void muestraFichaTecnica(){
System.out.println(getNombre());
System.out.println(" Su fecha de lanzamiento es :"+ fechaDeLanzamiento);
System.out.println("duracion en minutos es :"+ getDuracionEnMinutos());
}
/* double calculaMedia(double nota){
sumaDeLasEvalucione += nota;
numeroDeEvaluciones++;
return sumaDeLasEvalucione/numeroDeEvaluciones;
}*/
public void evalua(double nota){
sumaDeLasEvalucione += nota;
numeroDeEvaluciones++;
}
public double calculaLaMedia(){
double media = sumaDeLasEvalucione/numeroDeEvaluciones;
return media;
}
@Override
public int compareTo(Titulo otriTitulo) {
return this.getNombre().compareTo(otriTitulo.getNombre());
}
@Override
public int compare(Titulo o1, Titulo o2) {
if (o1.fechaDeLanzamiento< o2.fechaDeLanzamiento) {
return -1;
}
if (o1.fechaDeLanzamiento>o2.fechaDeLanzamiento) {
return 1;
}
return 0;
}
@Override
public String toString() {
return "Titulo{" +
"nombre='" + nombre + '\'' +
", fechaDeLanzamiento=" + fechaDeLanzamiento +
"duracion en minutos: "+ duracionEnMinutos +'}';
}
}