Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions solLab/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.example</groupId>
<artifactId>solLab</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10</version>
</dependency>
</dependencies>

</project>
92 changes: 92 additions & 0 deletions solLab/src/main/java/Apartment.java
Original file line number Diff line number Diff line change
@@ -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 +
'}';
}
}
45 changes: 45 additions & 0 deletions solLab/src/main/java/ApartmentCreator.java
Original file line number Diff line number Diff line change
@@ -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<Apartment> 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();
}
}
}
58 changes: 58 additions & 0 deletions solLab/src/main/java/ApartmentManager.java
Original file line number Diff line number Diff line change
@@ -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<ArrayList<Apartment>>(){}.getType();

// Convertir el JSON a una lista de objetos Apartment
List<Apartment> 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<Apartment> 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();
}
}
}
File renamed without changes.