From 6afaf89c08c312a53724b90e6a8be83faf4ec3ff Mon Sep 17 00:00:00 2001 From: Josemargal <126793937+Josemargal@users.noreply.github.com> Date: Tue, 8 Apr 2025 16:00:49 +0200 Subject: [PATCH] =?UTF-8?q?Soluci=C3=B3n=20Lab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- solLab/pom.xml | 25 +++++ solLab/src/main/java/Apartment.java | 92 +++++++++++++++++++ solLab/src/main/java/ApartmentCreator.java | 45 +++++++++ solLab/src/main/java/ApartmentManager.java | 58 ++++++++++++ .../src/main/resources/apartments.json | 0 5 files changed, 220 insertions(+) create mode 100644 solLab/pom.xml create mode 100644 solLab/src/main/java/Apartment.java create mode 100644 solLab/src/main/java/ApartmentCreator.java create mode 100644 solLab/src/main/java/ApartmentManager.java rename apartments.json => solLab/src/main/resources/apartments.json (100%) diff --git a/solLab/pom.xml b/solLab/pom.xml new file mode 100644 index 0000000..58a8fc3 --- /dev/null +++ b/solLab/pom.xml @@ -0,0 +1,25 @@ + + + 4.0.0 + + org.example + solLab + 1.0-SNAPSHOT + + + 21 + 21 + UTF-8 + + + + + com.google.code.gson + gson + 2.10 + + + + \ No newline at end of file diff --git a/solLab/src/main/java/Apartment.java b/solLab/src/main/java/Apartment.java new file mode 100644 index 0000000..77394cc --- /dev/null +++ b/solLab/src/main/java/Apartment.java @@ -0,0 +1,92 @@ +import java.util.UUID; + +public class Apartment { + private final String id; + private String address; + private double price; + private int rooms; + private String description; + private String owner; + private boolean available; + + public Apartment() { + // Generar un ID único usando UUID + this.id = UUID.randomUUID().toString(); + } + + public Apartment(String address, double price, int rooms, String description, String owner, boolean available) { + // Generar un ID único usando UUID + this.id = UUID.randomUUID().toString(); + this.address = address; + this.price = price; + this.rooms = rooms; + this.description = description; + this.owner = owner; + this.available = available; + } + + public String getId() { + return id; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + + public int getRooms() { + return rooms; + } + + public void setRooms(int rooms) { + this.rooms = rooms; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getOwner() { + return owner; + } + + public void setOwner(String owner) { + this.owner = owner; + } + + public boolean isAvailable() { + return available; + } + + public void setAvailable(boolean available) { + this.available = available; + } + + @Override + public String toString() { + return "Apartment{" + + "id=" + id + + ", address='" + address + '\'' + + ", price=" + price + + ", rooms=" + rooms + + ", description='" + description + '\'' + + ", owner='" + owner + '\'' + + ", available=" + available + + '}'; + } +} diff --git a/solLab/src/main/java/ApartmentCreator.java b/solLab/src/main/java/ApartmentCreator.java new file mode 100644 index 0000000..e7591e6 --- /dev/null +++ b/solLab/src/main/java/ApartmentCreator.java @@ -0,0 +1,45 @@ +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class ApartmentCreator { + public static void main(String[] args) { + // Crear algunos apartamentos + Apartment apartment1 = new Apartment("Calle Mayor 123", 1200.50, 3, "Apartamento céntrico con vistas", "Juan Pérez", true); + Apartment apartment2 = new Apartment("Avenida Libertad 45", 950.75, 2, "Apartamento luminoso y reformado", "Ana García", false); + Apartment apartment3 = new Apartment("Plaza España 7", 1500.00, 4, "Amplio piso con terraza", "Carlos Rodríguez", true); + Apartment apartment4 = new Apartment("Calle Nueva 28", 850.25, 1, "Estudio moderno en zona tranquila", "Laura Martínez", true); + + // Crear una lista y añadir los apartamentos + List apartmentList = new ArrayList<>(); + apartmentList.add(apartment1); + apartmentList.add(apartment2); + apartmentList.add(apartment3); + apartmentList.add(apartment4); + + // Mostrar los apartamentos creados + System.out.println("Apartamentos creados:"); + for (Apartment apartment : apartmentList) { + System.out.println(apartment); + } + + // Iteración 5: Generar JSON + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + + // Convertir la lista de apartamentos a JSON + String json = gson.toJson(apartmentList); + + // Escribir el JSON en un archivo + try (FileWriter writer = new FileWriter("solLab/src/main/resources/new_apartments.json")) { + writer.write(json); + System.out.println("\nJSON generado y guardado correctamente en src/main/resources/new_apartments.json"); + } catch (IOException e) { + System.err.println("Error al escribir el archivo JSON: " + e.getMessage()); + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/solLab/src/main/java/ApartmentManager.java b/solLab/src/main/java/ApartmentManager.java new file mode 100644 index 0000000..7159873 --- /dev/null +++ b/solLab/src/main/java/ApartmentManager.java @@ -0,0 +1,58 @@ +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class ApartmentManager { + public static void main(String[] args) { + try { + // Obtener el archivo JSON como recurso + InputStream inputStream = ApartmentManager.class.getClassLoader().getResourceAsStream("apartments.json"); + + if (inputStream == null) { + System.err.println("No se pudo encontrar el archivo apartments.json"); + return; + } + + // Crear un Reader para leer el archivo + Reader reader = new InputStreamReader(inputStream); + + // Crear una instancia de Gson + Gson gson = new Gson(); + + // Definir el tipo de la lista de apartamentos + Type apartmentListType = new TypeToken>(){}.getType(); + + // Convertir el JSON a una lista de objetos Apartment + List apartments = gson.fromJson(reader, apartmentListType); + + // Cerrar el reader + reader.close(); + + // Mostrar la lista de apartamentos + System.out.println("Apartamentos cargados desde el JSON:"); + for (Apartment apartment : apartments) { + System.out.println(apartment); + } + + // Alternativamente, puedes crear una nueva lista y usar Collections.addAll() + List newApartmentsList = new ArrayList<>(); + Collections.addAll(newApartmentsList, apartments.toArray(new Apartment[0])); + + System.out.println("\nApartamentos en la nueva lista:"); + for (Apartment apartment : newApartmentsList) { + System.out.println(apartment); + } + + } catch (Exception e) { + System.err.println("Error al leer el archivo JSON: " + e.getMessage()); + e.printStackTrace(); + } + } +} diff --git a/apartments.json b/solLab/src/main/resources/apartments.json similarity index 100% rename from apartments.json rename to solLab/src/main/resources/apartments.json