package com.alura.screenmatch.modelos;
public record TituloOmdb(String title, String year, String runtime) { }
String json = response.body();
System.out.println(json);
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
.create();
TituloOmdb miTituloOmdb = gson.fromJson(json, TituloOmdb.class);
System.out.println(miTituloOmdb);
Titulo miTitulo = new Titulo(miTituloOmdb);
System.out.println(miTitulo);
}
-------
package com.alura.screenmatch.modelos; import com.google.gson.annotations.SerializedName;
public class Titulo implements Comparable{ @SerializedName("Title") private String nombre; @SerializedName("Year") private int fechaDeLanzamiento; private boolean incluidoEnElPlan; private double sumaDeLasEvaluaciones; private int totalDeEvaluaciones; private int duracionEnMinutos;
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()) ;
this.duracionEnMinutos = Integer.valueOf(miTituloOmdb.runtime().substring(0,2));
}
public String getNombre() {
return nombre;
}
public int getFechaDeLanzamiento() {
return fechaDeLanzamiento;
}
public boolean isIncluidoEnElPlan() {
return incluidoEnElPlan;
}
public int getDuracionEnMinutos() {
return duracionEnMinutos;
}
public int getTotalDeEvaluaciones() {
return totalDeEvaluaciones;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setFechaDeLanzamiento(int fechaDeLanzamiento) {
this.fechaDeLanzamiento = fechaDeLanzamiento;
}
public void setIncluidoEnElPlan(boolean incluidoEnElPlan) {
this.incluidoEnElPlan = incluidoEnElPlan;
}
public void setDuracionEnMinutos(int duracionEnMinutos) {
this.duracionEnMinutos = duracionEnMinutos;
}
public void muestraFichaTecnica(){
System.out.println("Nombre de la película: " + nombre);
System.out.println("Año de lanzamiento: " + fechaDeLanzamiento);
}
public void evalua(double nota){
sumaDeLasEvaluaciones += nota;
totalDeEvaluaciones++;
}
public double calculaMediaEvaluaciones(){
return sumaDeLasEvaluaciones / totalDeEvaluaciones;
}
@Override
public int compareTo(Titulo otroTitulo) {
return this.getNombre().compareTo(otroTitulo.getNombre());
}
@Override
public String toString() {
return "nombre='" + nombre + '\'' +
", fechaDeLanzamiento=" + fechaDeLanzamiento
+ ", duracion="+duracionEnMinutos;
}
}