ErrorEnConversionDeDuracionException.java
package com.aluracursos.screenmatch.Excepcion;
public class ErrorEnConversionDeDuracionException extends RuntimeException {
private String mensaje;
public ErrorEnConversionDeDuracionException(String mensaje) {
this.mensaje = mensaje;
}
public String getMensaje() {
return this.mensaje;
}
}
Titulo.java
package com.aluracursos.screenmatch.modelos;
import com.aluracursos.screenmatch.Excepcion.ErrorEnConversionDeDuracionException;
import com.google.gson.annotations.SerializedName;
public class Titulo implements Comparable<Titulo>{
@SerializedName("Title")
private String nombre;
@SerializedName("Year")
private int fechaDeLanzamiento;
private int duracionEnMinutos;
private boolean incluidoEnElPlan;
private double sumaDeLasEvaluaciones;
private int totalDelasEvaluaciones;
public Titulo(String nombre, int fechaDeLanzamiento) {
this.nombre = nombre;
this.fechaDeLanzamiento = fechaDeLanzamiento;
}
public Titulo(TituloOmdb miTituloOmdb) {
this.nombre = miTituloOmdb.title();
this.fechaDeLanzamiento = Integer.valueOf(miTituloOmdb.year());
if (miTituloOmdb.runtime().contains("N/A")){
throw new ErrorEnConversionDeDuracionException("No pude convertir la duracion," +
"porque contiene un N/A");
}
this.duracionEnMinutos = Integer.valueOf(miTituloOmdb.runtime().substring(0,3).replace(" ", ""));
}
public String getNombre() {
return nombre;
}
public int getFechaDeLanzamiento() {
return fechaDeLanzamiento;
}
public int getDuracionEnMinutos() {
return duracionEnMinutos;
}
public boolean isIncluidoEnElPlan() {
return incluidoEnElPlan;
}
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 int getTotalDelasEvaluaciones(){
return totalDelasEvaluaciones;
}
public void muestraFichaTecnica(){
System.out.println("El nombre de la película es: " + nombre);
System.out.println("Su fecha de lanzamiento es: " + fechaDeLanzamiento);
System.out.println("Duración en minutos: "+ getDuracionEnMinutos());
}
public void evalua(double nota){
sumaDeLasEvaluaciones += nota;
totalDelasEvaluaciones++;
}
public double calculaMedia(){
return sumaDeLasEvaluaciones / totalDelasEvaluaciones;
}
@Override
public int compareTo(Titulo otroTitulo) {
return this.getNombre().compareTo(otroTitulo.getNombre());
}
@Override
public String toString() {
return "nombre='" + nombre + '\'' +
", fechaDeLanzamiento=" + fechaDeLanzamiento+
", Duración="+duracionEnMinutos;
}
}