Record
package co.ancabu.test;
public record TitleOmdb(String title,String year, String runtime) {
}
Title
package co.ancabu.test;
import com.google.gson.annotations.SerializedName;
public class Title implements Comparable<Title>{
@SerializedName("Title")
private String nameFilm;
@SerializedName("Year")
private int yearlaunch;
// @SerializedName("Runtime")
private int minutesDuration;
private boolean includePlan;
private double sumEvaluation;
private int numEvaluations;
public Title(String nameFilm,int yearlaunch){
this.nameFilm=nameFilm;
this.yearlaunch=yearlaunch;
}
public Title(TitleOmdb titulomdb){
this.nameFilm=titulomdb.title();
this.yearlaunch=Integer.valueOf(titulomdb.year());
this.minutesDuration=Integer.valueOf(titulomdb.runtime().substring(0,2));
}
public void setNameFilm(String nameFilm) {
this.nameFilm = nameFilm;
}
public void setYearlaunch(int yearlaunch) {
this.yearlaunch = yearlaunch;
}
public String getnameFilm() {
return nameFilm;
}
public int getYearlaunch() {
return yearlaunch;
}
public int getMinutesDuration() {
return minutesDuration;
}
public boolean getIncludePlan() {
return includePlan;
}
public void setMinutesDuration(int minutesDuration) {
this.minutesDuration = minutesDuration;
}
public void setIncludePlan(boolean includePlan) {
this.includePlan = includePlan;
}
public int getNumEvaluations(){
return numEvaluations;
}
public void showFeauturesMovies(){
System.out.println("""
""");
System.out.println("Nombre: "+getnameFilm());
System.out.println("Fecha de lanzamiento: "+getYearlaunch());
System.out.println("Duracion en Minutos: "+getMinutesDuration());
System.out.println("Incluye Plan: "+getIncludePlan());
System.out.println("Evaluacion: "+getNumEvaluations());
System.out.println("Media: "+calMedia());
}
public void validation(double note){
sumEvaluation+=note;
numEvaluations++;
}
public double calMedia(){
return sumEvaluation/numEvaluations;
}
@Override
public int compareTo(Title otroTitulo) {
return getnameFilm().compareTo(otroTitulo.getnameFilm());
}
@Override
public String toString() {
return "Nombre= " + this.nameFilm
+", Fecha de Lanzamiento= "
+ this.yearlaunch
+" Duracion(minutos)= "+this.minutesDuration;
}
}
main
ackage principal;
import co.ancabu.test.Title;
import co.ancabu.test.TitleOmdb;
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 MainSearch {
public static void main(String[] args) throws IOException, InterruptedException {
Scanner teclado=new Scanner(System.in);
System.out.println("Escriba el nombre de la pelicula");
String pelicula=teclado.next();
HttpClient client=HttpClient.newHttpClient();
HttpRequest request=HttpRequest.newBuilder().uri(URI.create("http://www.omdbapi.com/?apikey=5b7d7608&t="+pelicula)).build();
HttpResponse<String> response=client.send(request,HttpResponse.BodyHandlers.ofString());
String json=response.body();
System.out.println(json);
Gson gson=new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();
TitleOmdb myTitle=gson.fromJson(json,TitleOmdb.class);
System.out.println(myTitle);
Title myTitles=new Title(myTitle);
System.out.println(myTitles);
}
}