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