From c0b4d276f0817362668798c1f81bee834d07e78a Mon Sep 17 00:00:00 2001 From: "vincent.steinman" <vincent.steinmann@etu.hesge.ch> Date: Tue, 13 Dec 2022 17:35:16 +0100 Subject: [PATCH] Export/Import --- tp/save.csv | 6 + tp/src/main/java/org/example/Contact.java | 2 +- tp/src/main/java/org/example/Family.java | 6 +- tp/src/main/java/org/example/Main.java | 141 ++++++++++++++---- tp/src/main/java/org/example/Person.java | 31 ---- .../main/java/org/example/Professional.java | 6 +- 6 files changed, 128 insertions(+), 64 deletions(-) create mode 100644 tp/save.csv delete mode 100644 tp/src/main/java/org/example/Person.java diff --git a/tp/save.csv b/tp/save.csv new file mode 100644 index 0000000..2d71dab --- /dev/null +++ b/tp/save.csv @@ -0,0 +1,6 @@ +Family +Fam 1 /Fam 2/Fam 3/Fam 4 /Fam 5 /Fam 6 /Fam 7/Bro +Professional +Pro 1 /Pro 2/Pro 3/Pro 4 /Pro 5 /Pro 6 /Pro 7/Work +Friend +Vincent /Steinmann/Ici/Num /Mail /Social /Job \ No newline at end of file diff --git a/tp/src/main/java/org/example/Contact.java b/tp/src/main/java/org/example/Contact.java index dedc353..02eefd7 100644 --- a/tp/src/main/java/org/example/Contact.java +++ b/tp/src/main/java/org/example/Contact.java @@ -118,7 +118,7 @@ public abstract class Contact implements Comparable<Contact>{ w_social += elem + " "; } - return w_names + this.last_name + "\n" + this.addr + "\n" + w_phone + "\n" + w_email + "\n" + return w_names + "\n" + this.last_name + "\n" + this.addr + "\n" + w_phone + "\n" + w_email + "\n" + w_social + "\n" + this.job; } @Override diff --git a/tp/src/main/java/org/example/Family.java b/tp/src/main/java/org/example/Family.java index 1aae917..b8581d1 100644 --- a/tp/src/main/java/org/example/Family.java +++ b/tp/src/main/java/org/example/Family.java @@ -11,6 +11,10 @@ public class Family extends Contact{ this.relation = relation; } + public String getRelation() { + return relation; + } + @Override public String toString(){ String w_names = ""; @@ -31,7 +35,7 @@ public class Family extends Contact{ w_social += elem + " "; } - return w_names + this.last_name + "\n" + this.addr + "\n" + w_phone + "\n" + w_email + "\n" + return w_names + "\n" + this.last_name + "\n" + this.addr + "\n" + w_phone + "\n" + w_email + "\n" + w_social + "\n" + this.job + "\n" + this.relation; } } diff --git a/tp/src/main/java/org/example/Main.java b/tp/src/main/java/org/example/Main.java index 4b9ac2b..35d7b36 100644 --- a/tp/src/main/java/org/example/Main.java +++ b/tp/src/main/java/org/example/Main.java @@ -37,7 +37,7 @@ public class Main { Export(contactArray); break; case "6": - //Import(contactArray); + Import(contactArray); break; default: System.out.println("Please enter valid input"); @@ -280,8 +280,18 @@ public class Main { try{ BufferedWriter writer = new BufferedWriter(new FileWriter(fileName)); for (Contact c: ca){ + List<String> str_array = SplitLine(c.toString(), "\n"); writer.write(c.get_type() + "\n"); - writer.write(c.getFirst_name() + "\n"); + writer.write(str_array.get(0) + "/"); + writer.write(str_array.get(1) + "/"); + writer.write(str_array.get(2) + "/"); + writer.write(str_array.get(3) + "/"); + writer.write(str_array.get(4) + "/"); + writer.write(str_array.get(5) + "/"); + writer.write(str_array.get(6)); + if(c.get_type().equals("Family") || c.get_type().equals("Professional")){ + writer.write("/" + str_array.get(7) + "\n"); + } } writer.close(); } catch (IOException e){ @@ -291,21 +301,37 @@ public class Main { //TODO find good way to save //Warning list //Type of contact -// public static void Import(ArrayList<Contact> ca){ -// System.out.println("Enter save file name"); -// Scanner myObj = new Scanner(System.in); -// String fileName = myObj.nextLine(); -// try{ -// BufferedReader reader = new BufferedReader(new FileReader(fileName)); -// String line; -// while((line = reader.readLine()) != null){ -// AddContactToList(line); -// } -// reader.close(); -// } catch (IOException e){ -// e.printStackTrace(); -// } -// } + public static void Import(ArrayList<Contact> ca){ + System.out.println("Enter save file name"); + Scanner myObj = new Scanner(System.in); + String fileName = myObj.nextLine(); + try{ + BufferedReader reader = new BufferedReader(new FileReader(fileName)); + String line; + int checker = 0; + while((line = reader.readLine()) != null){ + switch (line){ + case "Friend": + checker = 1; + break; + case "Family": + checker = 2; + break; + case "Professional": + checker = 3; + break; + default: + List<String> str_array = SplitLine(line, "/"); + AddContactToList(str_array, checker); + checker = 0; + break; + } + } + reader.close(); + } catch (IOException e){ + e.printStackTrace(); + } + } //Test if the value is a number or not and if it's withing the range of the list public static boolean TryNumber(String nb){ int size_array = contactArray.size(); @@ -319,16 +345,73 @@ public class Main { return (nbInt < size_array); } -// public static void AddContactToList(Contact c,String str){ -// int cpt = 1; -// switch (cpt){ -// case 1: -// c.setFirst_name -// cpt++; -// break; -// case 2: -// cpt++; -// break; -// } -// } + public static void AddContactToList(List<String> str_array, int checker){ + switch (checker){ + case 1: + ImportFriend(str_array); + break; + case 2: + ImportFamily(str_array); + break; + case 3: + ImportProfessional(str_array); + break; + default: + System.out.println("Error contact type"); + break; + } + } + public static void ImportFriend(List<String> str_array){ + Friend f = new Friend( + SplitArray(str_array.get(0)), + str_array.get(1), + str_array.get(2), + SplitArray(str_array.get(3)), + SplitArray(str_array.get(4)), + SplitArray(str_array.get(5)), + str_array.get(6) + ); + Add(f); + } + public static void ImportFamily(List<String> str_array){ + Family f = new Family( + SplitArray(str_array.get(0)), + str_array.get(1), + str_array.get(2), + SplitArray(str_array.get(3)), + SplitArray(str_array.get(4)), + SplitArray(str_array.get(5)), + str_array.get(6), + str_array.get(7) + ); + Add(f); + } + public static void ImportProfessional(List<String> str_array){ + Professional f = new Professional( + SplitArray(str_array.get(0)), + str_array.get(1), + str_array.get(2), + SplitArray(str_array.get(3)), + SplitArray(str_array.get(4)), + SplitArray(str_array.get(5)), + str_array.get(6), + str_array.get(7) + ); + Add(f); + } + public static List<String> SplitLine(String str, String splitter){ + List<String> data = Arrays.asList(str.split(splitter)); + return data; + } + public static List<String> SplitArray(String str){ + //str = str.substring(1, str.length() - 1); + String new_str = ""; + for(char c: str.toCharArray()){ + if(c !='[' && c !=']'){ + new_str += c; + } + } + List<String> names = Arrays.asList(new_str.split(",")); + return names; + } } \ No newline at end of file diff --git a/tp/src/main/java/org/example/Person.java b/tp/src/main/java/org/example/Person.java deleted file mode 100644 index 6cfa566..0000000 --- a/tp/src/main/java/org/example/Person.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.example; - -public class Person { - private String last_name; - private String first_name; - - public Person(String last_name, String first_name){ - this.last_name = last_name; - this.first_name = first_name; - } - - public String getLast_name() { - return last_name; - } - - public String getFirst_name() { - return first_name; - } - - public void EditFirstName(String newFirstName){ - this.first_name = newFirstName; - } - public void EditLastName(String newLastName){ - this.last_name = newLastName; - } - - @Override - public String toString() { - return this.first_name + " " + this.last_name; - } -} diff --git a/tp/src/main/java/org/example/Professional.java b/tp/src/main/java/org/example/Professional.java index fca435d..2fa74c6 100644 --- a/tp/src/main/java/org/example/Professional.java +++ b/tp/src/main/java/org/example/Professional.java @@ -10,7 +10,9 @@ public class Professional extends Contact{ super("Professional", first_name, last_name, addr, phone, email, social, job); this.work_place = work_place; } - + public String getWork_place() { + return work_place; + } @Override public String toString(){ String w_names = ""; @@ -31,7 +33,7 @@ public class Professional extends Contact{ w_social += elem + " "; } - return w_names + last_name + "\n" + this.addr + "\n" + w_phone + "\n" + w_email + "\n" + return w_names + "\n" + last_name + "\n" + this.addr + "\n" + w_phone + "\n" + w_email + "\n" + w_social + "\n" + this.job + "\n" + this.work_place; } } -- GitLab