From adbc2560efdde27dc569396c6549cd4058af362a Mon Sep 17 00:00:00 2001 From: "jonas.stirnema" <jonas.stirnemann@etu.hesge.ch> Date: Tue, 11 Oct 2022 10:27:39 +0200 Subject: [PATCH] Added class, basic getter and setters --- src/Contact.java | 95 +++++++++++++++++++++++++++++++++++++++++++++++ src/DynArray.java | 84 +++++++++++++++++++++++++++++++++++++++++ src/Main.java | 10 +++-- 3 files changed, 186 insertions(+), 3 deletions(-) create mode 100644 src/Contact.java create mode 100644 src/DynArray.java diff --git a/src/Contact.java b/src/Contact.java new file mode 100644 index 0000000..e557529 --- /dev/null +++ b/src/Contact.java @@ -0,0 +1,95 @@ + +public class Contact { + + // Attributes + private String fname; + private DynArray names; + private String address; + private DynArray phoneNumbers; + private DynArray emails; + private DynArray socials; + private String job; + + + + public String getFname() { + return fname; + } + + public void setFname(String fname) { + if (!fname.isBlank()) { + this.fname = fname; + } else { + this.fname = "Anon"; + } + } + + public DynArray getNames() { + return names; + } + + public void setNames(DynArray names) { + if (!names.isEmpty()) { + this.names = names; + } else { + this.names = new DynArray(new String[] { "Anon" }); + } + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + if (!address.isBlank()) { + this.address = address; + } else { + this.address = "Nowhere"; + } + } + + public DynArray getPhoneNumbers() { + return phoneNumbers; + } + + public void setPhoneNumbers(DynArray phoneNumbers) { + if (!phoneNumbers.isEmpty()) { + this.phoneNumbers = new DynArray(new String[] { "0102030405" }); + } + } + + public DynArray getEmails() { + return emails; + } + + public void setEmails(DynArray emails) { + if (!emails.isEmpty()) { + this.emails = new DynArray(new String[] { "none@none.com" }); + } + } + + public DynArray getSocials() { + return socials; + } + + public void setSocials(DynArray socials) { + if (!socials.isEmpty()) { + this.socials = socials; + } else { + this.socials = new DynArray(new String[] { "@anon" }); + } + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + if (!job.isBlank()) { + this.job = job; + } else { + this.job = "none"; + } + } + +} diff --git a/src/DynArray.java b/src/DynArray.java new file mode 100644 index 0000000..52ecbda --- /dev/null +++ b/src/DynArray.java @@ -0,0 +1,84 @@ + +public class DynArray { + + private final int basev = 10; + private int size = 0; + private String[] array; + private int capacity; + + public DynArray(String[] a) { + this.size = a.length; + this.capacity = this.basev; + this.array = new String[this.capacity]; + copy_content(a, this.array); + } + + public DynArray() { + this.array = new String[this.capacity]; + this.size = 0; + } + + public void append(String[] a) { + make_sure_size(a); // REALLOC IF NEEDED + this.size += a.length; + int s = this.size; + + // Add the new values + for (int i = s; i < s + a.length; i++) { + // System.out.println("arr[" + (i - a.length) + "] = " + a[i - s]); + this.array[i - a.length] = a[i - s]; + } + } + + public void pop() { + if (this.size < 1) { + System.err.println("Cannot remove from an epmty list"); + return; + } + this.size--; + } + + public void make_sure_size(String[] a) { + if ((this.size + a.length) > this.capacity) // Overflow? + { + // Realloc new array + this.capacity *= 2; + String[] new_arr = new String[this.capacity]; + copy_content(this.array, new_arr); + + this.array = new_arr; // Copy pointer + } + } + + public void show_it() { + System.out.println(this.intoString()); + } + + public String intoString() { + String s = "[ "; + + for (int i = 0; i < this.size; i++) { + s = s.concat(array[i]); + s = s.concat(", "); + } + s = s.concat(" ]"); + return s; + } + + public boolean isEmpty() { + return size == 0; + } + + private static void copy_content(String[] source, String[] dest) { + + // System.out.println("Source lenght" + source.length); + // System.out.println("Dest lenght" + dest.length); + if (source.length > dest.length) { + throw new Error("Cannot copy : second array smaller than first"); + } + for (int i = 0; i < source.length; i++) { + dest[i] = source[i]; + } + } + +} \ No newline at end of file diff --git a/src/Main.java b/src/Main.java index c70c6e6..eb4a088 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,7 +1,11 @@ -package src; - public class Main { public static void main(String[] args) { - System.out.println("Hey"); + DynArray ar1 = new DynArray(new String[] { "Test", "Test2", "Test3" }); + ar1.show_it(); + ar1.append(new String[] { "Test4", "Test5", "Test6" }); + ar1.show_it(); + ar1.pop(); + ar1.show_it(); + } } -- GitLab