diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3869790 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea +maven2.iml +maven2/target diff --git a/maven2/pom.xml b/maven2/pom.xml new file mode 100644 index 0000000..bf01d2c --- /dev/null +++ b/maven2/pom.xml @@ -0,0 +1,25 @@ + + + 4.0.0 + + org.example + maven2 + 1.0-SNAPSHOT + + + 21 + 21 + UTF-8 + + + + com.google.code.gson + gson + 2.10 + + + + + \ No newline at end of file diff --git a/maven2/src/main/java/Apartment.java b/maven2/src/main/java/Apartment.java new file mode 100644 index 0000000..da7c192 --- /dev/null +++ b/maven2/src/main/java/Apartment.java @@ -0,0 +1,90 @@ +import java.util.UUID; + +public class Apartment { + private String 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().toString(); + setAddress(address); + setPrice(price); + setRooms(rooms); + setDescription(description); + setOwner(owner); + setAvailable(available); + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = 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/maven2/src/main/java/ApartmentCreator.java b/maven2/src/main/java/ApartmentCreator.java new file mode 100644 index 0000000..dce0d38 --- /dev/null +++ b/maven2/src/main/java/ApartmentCreator.java @@ -0,0 +1,30 @@ +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +public class ApartmentCreator { + public static void main(String[] args) throws IOException { + List apartments = new ArrayList<>(); + + Apartment apartment1 = new Apartment("C/Tomillo 5",700, 3,"Apartamento luminoso cercade la sierra", "Jose Pérez", true); + Apartment apartment2 = new Apartment("C/Edison", 1500,4,"Muy moderno, amueblado", "Rosa Ruiz",true); + Apartment apartment3 = new Apartment("C/Capuchinos", 1100,1,"Estudio acogedor en el centro", "Carlos Lopez",false); + Apartment apartment4 = new Apartment("C/Lemus", 2000,5,"Duplex con jardin", "Joaquin Gomez",false); + + apartments.add(apartment1); + apartments.add(apartment2); + apartments.add(apartment3); + apartments.add(apartment4); + + System.out.println("Apartamentos añadidos: "+ apartment1); + + FileWriter apartmentWriter = new FileWriter("new_apartments.json"); + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + gson.toJson(apartments, apartmentWriter); + + apartmentWriter.close(); + } +} \ No newline at end of file diff --git a/maven2/src/main/java/ApartmentManager.java b/maven2/src/main/java/ApartmentManager.java new file mode 100644 index 0000000..4a301b2 --- /dev/null +++ b/maven2/src/main/java/ApartmentManager.java @@ -0,0 +1,28 @@ +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import java.io.FileReader; +import java.io.IOException; +import java.io.Reader; +import java.util.*; + +public class ApartmentManager { + public static void main(String[] args) throws IOException { + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + + Reader reader = new FileReader("apartments.json"); + Apartment[] apartmentsArr = gson.fromJson(reader, Apartment[].class); + + List apartmentList= new ArrayList<>(); + + Collections.addAll(apartmentList, apartmentsArr); + + for(Apartment each:apartmentList) { + if (each.getId() == null) { + each.setId(UUID.randomUUID().toString()); + } + } + + System.out.println(apartmentList); + reader.close(); + } +} diff --git a/new_apartments.json b/new_apartments.json new file mode 100644 index 0000000..630bb6e --- /dev/null +++ b/new_apartments.json @@ -0,0 +1,38 @@ +[ + { + "id": "31f29ee0-71eb-43a8-8ba2-3cdcda7a63bc", + "address": "C/Tomillo 5", + "price": 700.0, + "rooms": 3, + "description": "Apartamento luminoso cercade la sierra", + "owner": "Jose Pérez", + "available": true + }, + { + "id": "d5c538a8-279b-41cd-8601-ae9f804e5475", + "address": "C/Edison", + "price": 1500.0, + "rooms": 4, + "description": "Muy moderno, amueblado", + "owner": "Rosa Ruiz", + "available": true + }, + { + "id": "baad6953-7edc-4573-81f6-71edc87dbe61", + "address": "C/Capuchinos", + "price": 1100.0, + "rooms": 1, + "description": "Estudio acogedor en el centro", + "owner": "Carlos Lopez", + "available": false + }, + { + "id": "a658e620-83ca-4b8a-b48f-3e2eb8a2fce9", + "address": "C/Lemus", + "price": 2000.0, + "rooms": 5, + "description": "Duplex con jardin", + "owner": "Joaquin Gomez", + "available": false + } +] \ No newline at end of file