Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haga lo que hicimos en aula

package com.entronomia.aplicaciones.modelos;

public record TituloOmbd(String title, String year, String runtime) { }
package com.entronomia.aplicaciones.modelos;

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 incluidaEnElPlan;
    private double sumaDeLasEvaluaciones = 0;
    private int numeroDeEvaluaciones = 0;
    private double mediaDeLasEvaluaciones = 0;

    public Titulo(String nombre, int fechaDeLanzamiento) {
        this.nombre = nombre;
        this.fechaDeLanzamiento = fechaDeLanzamiento;
    }

    public Titulo(TituloOmbd tituloOmbd) {
        this.nombre = tituloOmbd.title();
        this.fechaDeLanzamiento = Integer.valueOf(tituloOmbd.year());
        this.duracionEnMinutos = Integer.valueOf(tituloOmbd.runtime().substring(0,3));
    }

    public String getNombre() {
        return nombre;
    }

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

    public int getDuracionEnMinutos() {
        return duracionEnMinutos;
    }

    public boolean isIncluidaEnElPlan() {
        return incluidaEnElPlan;
    }

    public void setDuracionEnMinutos(int duracionEnMinutos) {
        this.duracionEnMinutos = duracionEnMinutos;
    }

    public void setIncluidaEnElPlan(boolean incluidaEnElPlan) {
        this.incluidaEnElPlan = incluidaEnElPlan;
    }

    public double getMediaDeLasEvaluaciones() {
        return mediaDeLasEvaluaciones;
    }

    public void imprimeDatos() {
        System.out.println("Nombre de la película: " + getNombre());
        System.out.println("Fecha de lanzamiento: " + getFechaDeLanzamiento());
        System.out.println("Duración [min]: " + getDuracionEnMinutos());
    }

    public void evaluaPelicula(double nota) {
        sumaDeLasEvaluaciones = sumaDeLasEvaluaciones + nota;
        numeroDeEvaluaciones = numeroDeEvaluaciones +1;
    }

    public double calculaMediaDeLasEvaluaciones() {
        mediaDeLasEvaluaciones = sumaDeLasEvaluaciones / numeroDeEvaluaciones;
        return mediaDeLasEvaluaciones;
    }

    public int getClasificacion() {
        return (int) (calculaMediaDeLasEvaluaciones() / 2);
    }

    @Override
    public int compareTo(Titulo titulo) {
        return this.getNombre().compareTo(titulo.getNombre());
    }

    @Override
    public String toString() {
        return  "nombre= " + nombre +
                ", fechaDeLanzamiento= " + fechaDeLanzamiento +
                ", duración en minutos= " + duracionEnMinutos;
    }
}
package com.entronomia.aplicaciones.principal;

import com.entronomia.aplicaciones.modelos.Titulo;
import com.entronomia.aplicaciones.modelos.TituloOmbd;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Scanner;

public class InventarioDos {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        System.out.println("Nombre del título a buscar:");
        String titulo = entrada.nextLine();
        String url = "http://www.omdbapi.com/?t=" + titulo + "&apikey=d2b017ac";
        HttpClient cliente = HttpClient.newHttpClient();
        HttpRequest requerimiento = HttpRequest.newBuilder().uri(URI.create(url)).GET().build();
        try {
            HttpResponse<String> respuesta = cliente.send(requerimiento, HttpResponse.BodyHandlers.ofString());
            String json = respuesta.body();
            System.out.println(json);
            Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();
            TituloOmbd nuevoTituloOmbd = gson.fromJson(json, TituloOmbd.class);
            System.out.println(nuevoTituloOmbd);
            Titulo nuevoTitulo = new Titulo(nuevoTituloOmbd);
            System.out.println(nuevoTitulo);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
    }
}
1 respuesta

Hola Roberto, espero que estés bien

Considero su código muy bueno, en este momento no veo puntos de mejora. ¡Continúa con sus estudios y éxito en su carrera!

Gracias por compartir tu ejercício práctico con nosotros! Tu contribución es fundamental para el crecimiento de nuestra comunidad en Alura. Sigue comprometido y no dudes en regresar al foro en caso que tengas alguna duda o dificultad.

¡Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!