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;

import com.entronomia.aplicaciones.excepciones.ErrorEnConversionADuracionEnMinutosException;

public class Titulo implements Comparable<Titulo>{

    private String nombre;
    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());
        if (tituloOmbd.runtime().contains("N/A")) {
            throw new ErrorEnConversionADuracionEnMinutosException("En la variable runtime se tiene el valor N/A");
        }
        this.duracionEnMinutos = Integer.valueOf(tituloOmbd.runtime().substring(0,3).replace(" ", ""));
    }

    public String getNombre() {
        return nombre;
    }

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

    public int getDuracionEnMinutos() {
        return duracionEnMinutos;
    }

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

    public double getMediaDeLasEvaluaciones() {
        return mediaDeLasEvaluaciones;
    }

    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.excepciones.ErrorEnConversionADuracionEnMinutosException;
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.FileWriter;
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.ArrayList;
import java.util.List;
import java.util.Scanner;

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

            } catch (NumberFormatException e) {
                System.out.println("Error de formato numérico");
            } catch (IllegalArgumentException e) {
                System.out.println("Error en la dirección uri");
            } catch (ErrorEnConversionADuracionEnMinutosException e) {
                System.out.println(e.getMessage());
            }
        }
        System.out.println(listaDeTitulos);
        FileWriter escritor = new FileWriter("titulos.json");
        escritor.write(gson.toJson(listaDeTitulos));
        escritor.close();
    }
}
1 respuesta

¡Hola Roberto!

Gracias por compartir tu código con nosotros. Recuerda que estamos aquí para ayudarte. Si necesitas ayuda, no dudes en buscarnos en el foro.

¡Gracias nuevamente!

Saludos,

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