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
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/lab-maven-gson.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions lab-maven/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?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>lab-maven</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>
93 changes: 93 additions & 0 deletions lab-maven/src/main/java/Apartment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
import java.util.UUID;

public class Apartment {
private long id;
private String address;
private double price;
private int rooms;
private String description;
private String owner;
private boolean available;

public Apartment(String address, double price, int rooms, String description, String owner, boolean available) {
this.id=UUID.randomUUID().getMostSignificantBits();
setAddress(address);
setPrice(price);
setRooms(rooms);
setDescription(description);
setOwner(owner);
setAvailable(available);
}

public Apartment() {
this.id=UUID.randomUUID().getMostSignificantBits();
}

//Setters
public void setAddress(String address) {
this.address = address;
}

public void setAvailable(boolean available) {
this.available = available;
}

public void setOwner(String owner) {
this.owner = owner;
}

public void setDescription(String description) {
this.description = description;
}

public void setRooms(int rooms) {
this.rooms = rooms;
}

public void setPrice(double price) {
this.price = price;
}

//Getters

public long getId() {
return id;
}

public String getAddress() {
return address;
}

public double getPrice() {
return price;
}

public int getRooms() {
return rooms;
}

public String getDescription() {
return description;
}

public String getOwner() {
return owner;
}

public boolean isAvailable() {
return available;
}

@Override
public String toString() {
return "Apartment{" +
"id=" + id +
", address='" + address + '\'' +
", price=" + price +
", rooms=" + rooms +
", description='" + description + '\'' +
", owner='" + owner + '\'' +
", available=" + available +
'}';
}
}
60 changes: 60 additions & 0 deletions lab-maven/src/main/java/ApartmentCreator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
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) throws IOException {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
List<Apartment> newApartments = new ArrayList<>();

Apartment apartamento1 = new Apartment(
"Calle Mayor 123, Madrid",
1200.00,
3,
"Luminoso piso en el centro con balcón y cocina equipada",
"Agencia López",
true
);

Apartment apartamento2 = new Apartment(
"Avenida de Andalucía 45, Sevilla",
950.50,
2,
"Acogedor apartamento cerca del parque, ideal para parejas",
"Inmobiliaria Sur",
false
);

Apartment apartamento3 = new Apartment(
"Passeig de Gràcia 78, Barcelona",
1800.75,
4,
"Ático de lujo con terraza privada y vistas a la ciudad",
"Grupo BCN Homes",
true
);

Apartment apartamento4 = new Apartment(
"Rúa do Franco 12, Santiago de Compostela",
750.00,
1,
"Estudio económico en zona histórica, perfecto para estudiantes",
"Galicia Gestión",
true
);

newApartments.add(apartamento1);
newApartments.add(apartamento2);
newApartments.add(apartamento3);

System.out.println(newApartments);

FileWriter writer = new FileWriter("lab-maven/src/main/resources/new-apartments.json");
gson.toJson(newApartments,writer);
writer.close();
}
}
43 changes: 43 additions & 0 deletions lab-maven/src/main/java/ApartmentManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class ApartmentManager {
public static void main(String[] args) throws IOException {
//inicializamos el Gson
Gson gson = new GsonBuilder().setPrettyPrinting().create();
// localizamos el archivo que queremos leer
String fileLocation = "lab-maven/src/main/resources/apartments.json";
FileReader reader = new FileReader(fileLocation);

Apartment[] apartmentArray = gson.fromJson(reader, Apartment[].class);

//JsonArray pisosArray = gson.fromJson(reader, JsonArray.class);
//System.out.println(pisosArray.get(1));

/* for (JsonElement apartment:pisosArray ){
System.out.println("apartment: " + apartment);
Apartment piso = gson.fromJson(apartment, Apartment.class);
System.out.println("piso: "+ piso);
apartmentList.add(piso);
}*/

List<Apartment> apartmentList = new ArrayList<>();
Collections.addAll(apartmentList, apartmentArray);

System.out.println(apartmentArray[0]);
System.out.println(apartmentList.get(0));

reader.close();

}
}
File renamed without changes.
29 changes: 29 additions & 0 deletions lab-maven/src/main/resources/new-apartments.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
[
{
"id": 2181885421108543604,
"address": "Calle Mayor 123, Madrid",
"price": 1200.0,
"rooms": 3,
"description": "Luminoso piso en el centro con balcón y cocina equipada",
"owner": "Agencia López",
"available": true
},
{
"id": 8801280920911431920,
"address": "Avenida de Andalucía 45, Sevilla",
"price": 950.5,
"rooms": 2,
"description": "Acogedor apartamento cerca del parque, ideal para parejas",
"owner": "Inmobiliaria Sur",
"available": false
},
{
"id": -8073628784739201477,
"address": "Passeig de Gràcia 78, Barcelona",
"price": 1800.75,
"rooms": 4,
"description": "Ático de lujo con terraza privada y vistas a la ciudad",
"owner": "Grupo BCN Homes",
"available": true
}
]
Binary file added lab-maven/target/classes/Apartment.class
Binary file not shown.
Binary file added lab-maven/target/classes/ApartmentCreator.class
Binary file not shown.
Binary file added lab-maven/target/classes/ApartmentManager.class
Binary file not shown.
Loading