From 4d50c5dd444b7e1256ef791fce7cca011a7c0962 Mon Sep 17 00:00:00 2001 From: andrewtkh1 <69303287+andrewtkh1@users.noreply.github.com> Date: Wed, 15 Sep 2021 11:35:56 +0800 Subject: [PATCH 001/429] Set theme jekyll-theme-cayman --- docs/_config.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_config.yml diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000000..c4192631f2 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file From c7033bfaa0fafc956c01eb3181472f73688085ed Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Thu, 30 Sep 2021 13:15:12 +0800 Subject: [PATCH 002/429] test --- .classpath | 19 ++++++++++++ .project | 34 ++++++++++++++++++++++ .settings/org.eclipse.buildship.core.prefs | 13 +++++++++ src/main/java/seedu/duke/Menu.java | 3 ++ 4 files changed, 69 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.buildship.core.prefs create mode 100644 src/main/java/seedu/duke/Menu.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000000..9f9cc9f128 --- /dev/null +++ b/.classpath @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000000..147c1228bd --- /dev/null +++ b/.project @@ -0,0 +1,34 @@ + + + tp + Project tp created by Buildship. + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.buildship.core.gradleprojectnature + + + + 1632803483823 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/.settings/org.eclipse.buildship.core.prefs b/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 0000000000..8878235189 --- /dev/null +++ b/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,13 @@ +arguments= +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) +connection.project.dir= +eclipse.preferences.version=1 +gradle.user.home= +java.home=C\:/Java/jdk11.0.12_7 +jvm.arguments= +offline.mode=false +override.workspace.settings=true +show.console.view=true +show.executions.view=true diff --git a/src/main/java/seedu/duke/Menu.java b/src/main/java/seedu/duke/Menu.java new file mode 100644 index 0000000000..fa36ce0146 --- /dev/null +++ b/src/main/java/seedu/duke/Menu.java @@ -0,0 +1,3 @@ +public class Menu { + +} From 8151ab115ab143031e952e53a15c582a5a47a8d7 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Thu, 30 Sep 2021 13:35:56 +0800 Subject: [PATCH 003/429] Update aboutUs with Andrew's details. --- docs/AboutUs.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..b65ca74458 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -2,8 +2,4 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Andrew Tan | [Github](https://github.com/andrewtkh1) | [Portfolio](docs/team/andrewtkh1.md) From 800059c7e0da645fed3f1034215218650d94a80c Mon Sep 17 00:00:00 2001 From: markuslyq Date: Thu, 30 Sep 2021 13:36:08 +0800 Subject: [PATCH 004/429] Update AboutUs.md --- docs/AboutUs.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..512c594e09 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -2,8 +2,4 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Markus Lim | [Github](https://github.com/markuslyq) | [Portfolio](docs/team/markuslyq.md) From 86b57630572f179ed25a67b5795c2f46ebc2bad5 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Thu, 30 Sep 2021 13:36:15 +0800 Subject: [PATCH 005/429] Updated about me page with personal details --- docs/AboutUs.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..12afb6bcdd 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -2,8 +2,4 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Mohamad Adam Bin Mohamad Yazid | [Github](https://github.com/mohamad-adam8991) | [Portfolio](docs/team/mohamad-adam8991.md) From c663b8198522ed9c9ce770c4c3da5d62e54acd76 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Thu, 30 Sep 2021 13:38:53 +0800 Subject: [PATCH 006/429] update about us yizheng's details --- docs/AboutUs.md | 6 +----- src/main/java/seedu/duke/Menu.java | 3 --- 2 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 src/main/java/seedu/duke/Menu.java diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..362ba542f9 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -2,8 +2,4 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Yi Zheng | [Github](https://github.com/thaddyyz) | [Portfolio](docs/team/thaddyyz.md) diff --git a/src/main/java/seedu/duke/Menu.java b/src/main/java/seedu/duke/Menu.java deleted file mode 100644 index fa36ce0146..0000000000 --- a/src/main/java/seedu/duke/Menu.java +++ /dev/null @@ -1,3 +0,0 @@ -public class Menu { - -} From 809e36f8afc7794e59a585e59c4aea889e111856 Mon Sep 17 00:00:00 2001 From: WaiKit-nus Date: Thu, 30 Sep 2021 13:39:05 +0800 Subject: [PATCH 007/429] Updated AboutUs to include WaiKit profile. --- docs/AboutUs.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..5240dc67c6 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -2,8 +2,4 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Lau Wai Kit | [Github](https://github.com/WaiKit-nus) | [Portfolio](docs/team/waikit-nus.md) From e8a0f2227c557759976db2b82ee792100b4f4405 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Thu, 30 Sep 2021 15:45:55 +0800 Subject: [PATCH 008/429] added menu --- .gitignore | 1 + src/main/java/seedu/duke/Duke.java | 17 +++++++++++++---- src/main/java/seedu/duke/Menu.java | 26 ++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 src/main/java/seedu/duke/Menu.java diff --git a/.gitignore b/.gitignore index f69985ef1f..6856a4d127 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ src/main/resources/docs/ .DS_Store *.iml bin/ +.vscode /text-ui-test/ACTUAL.txt text-ui-test/EXPECTED-UNIX.TXT diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 5c74e68d59..ee99886342 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -7,15 +7,24 @@ public class Duke { * Main entry-point for the java.duke.Duke application. */ public static void main(String[] args) { - String logo = " ____ _ \n" - + "| _ \\ _ _| | _____ \n" - + "| | | | | | | |/ / _ \\\n" - + "| |_| | |_| | < __/\n" + + String logo = " ____ _ \n" + "| _ \\ _ _| | _____ \n" + + "| | | | | | | |/ / _ \\\n" + "| |_| | |_| | < __/\n" + "|____/ \\__,_|_|\\_\\___|\n"; System.out.println("Hello from\n" + logo); System.out.println("What is your name?"); Scanner in = new Scanner(System.in); System.out.println("Hello " + in.nextLine()); + System.out.println("Welcome to LOTS"); + String input; + Menu menu = new Menu(); + int runcode = 0; + while (runcode == 0) { + input = in.nextLine(); + if (input.indexOf("menu") != -1) { + menu.printmenu(); + } + } } } diff --git a/src/main/java/seedu/duke/Menu.java b/src/main/java/seedu/duke/Menu.java new file mode 100644 index 0000000000..f40946f79e --- /dev/null +++ b/src/main/java/seedu/duke/Menu.java @@ -0,0 +1,26 @@ +package seedu.duke; + +public class Menu { + public Menu() {} + + public static void printmenu() { + String line = "--------------------------------------------------"; + double foodPrice[] = {3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 5.0, 3.6}; + String foodName[] = + {"Ban Mian ", "Chicken Rice ", + "Fried Prawn Noodles (Hokkien Mee)", "Minced MeatNoodles(Ba Chor Mee) ", + "Fried Carrot Cake ", "Fried Kway Teow (Char Kway Teow) ", + "Pork Rib Soup (Bak Kut Teh) ", "Nasi Lemak "}; + System.out.println("index | Food Name | Price"); + System.out.println(line); + for (int i = 0; i < foodPrice.length; i++) { + System.out.println((i + 1) + " | " + foodName[i] + " | $" + + String.format("%.2f", foodPrice[i])); + System.out.println(line); + } + } + // use map to store name and value + // add items + // show menu + // Print menu functions +} From 25274dbdccaf8ec5ddf541cfa14030bb706b4279 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Mon, 4 Oct 2021 21:21:37 +0800 Subject: [PATCH 009/429] Fixed checkstyle errors --- src/main/java/seedu/duke/Duke.java | 25 ++++++++++++++++--------- src/main/java/seedu/duke/Menu.java | 13 ++++++++----- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index ee99886342..d11284f82b 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -14,17 +14,24 @@ public static void main(String[] args) { System.out.println("Hello from\n" + logo); System.out.println("What is your name?"); - Scanner in = new Scanner(System.in); - System.out.println("Hello " + in.nextLine()); - System.out.println("Welcome to LOTS"); + Scanner in = null; String input; - Menu menu = new Menu(); - int runcode = 0; - while (runcode == 0) { - input = in.nextLine(); - if (input.indexOf("menu") != -1) { - menu.printmenu(); + try { + in = new Scanner(System.in); + System.out.println("Hello " + in.nextLine()); + System.out.println("Welcome to LOTS"); + /* Call printmenu method from Menu class */ + // Menu menu = new Menu(); + int runcode = 0; + while (runcode == 0) { + input = in.nextLine(); + if (input.indexOf("menu") != -1) { + Menu.printmenu(); + } } + } finally { + if (in != null) + in.close(); } } } diff --git a/src/main/java/seedu/duke/Menu.java b/src/main/java/seedu/duke/Menu.java index f40946f79e..99d4cbb520 100644 --- a/src/main/java/seedu/duke/Menu.java +++ b/src/main/java/seedu/duke/Menu.java @@ -1,16 +1,17 @@ package seedu.duke; public class Menu { + public Menu() {} + /*print menu prints a fixed list of prestored foo items */ public static void printmenu() { String line = "--------------------------------------------------"; double foodPrice[] = {3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 5.0, 3.6}; - String foodName[] = - {"Ban Mian ", "Chicken Rice ", - "Fried Prawn Noodles (Hokkien Mee)", "Minced MeatNoodles(Ba Chor Mee) ", - "Fried Carrot Cake ", "Fried Kway Teow (Char Kway Teow) ", - "Pork Rib Soup (Bak Kut Teh) ", "Nasi Lemak "}; + String foodName[] = {"Ban Mian ", "Chicken Rice ", + "Fried Prawn Noodles (Hokkien Mee)", "Minced MeatNoodles(Ba Chor Mee) ", + "Fried Carrot Cake ", "Fried Kway Teow (Char Kway Teow) ", + "Pork Rib Soup (Bak Kut Teh) ", "Nasi Lemak "}; System.out.println("index | Food Name | Price"); System.out.println(line); for (int i = 0; i < foodPrice.length; i++) { @@ -18,9 +19,11 @@ public static void printmenu() { + String.format("%.2f", foodPrice[i])); System.out.println(line); } + } // use map to store name and value // add items // show menu // Print menu functions + } From b224e6bb98cb798ea1cb3d9560bc7565cd610e3c Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Mon, 4 Oct 2021 21:38:53 +0800 Subject: [PATCH 010/429] Add parser & parserTest classes. Only include parsing of command, will further include more functions once command class is done. Includes Junit for empty/blank test case. fix #16 --- src/main/java/seedu/duke/Parser.java | 19 +++++++++++++++++++ src/test/java/seedu/duke/ParserTest.java | 20 ++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 src/main/java/seedu/duke/Parser.java create mode 100644 src/test/java/seedu/duke/ParserTest.java diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java new file mode 100644 index 0000000000..4f1d91fd2f --- /dev/null +++ b/src/main/java/seedu/duke/Parser.java @@ -0,0 +1,19 @@ +package seedu.duke; + +public class Parser { + + /** + * Returns the command from the user's input + * string in all small cases, Null if input is empty/blank. + * + * @param input The user's input in String. + * @return The command in String. Null otherwise. + */ + public static String getCommand(String input) { + if (input.isBlank() || input.isEmpty()) { + return null; + } + String[] listOfInputs = input.split(" "); + return listOfInputs[0].toLowerCase(); + } +} diff --git a/src/test/java/seedu/duke/ParserTest.java b/src/test/java/seedu/duke/ParserTest.java new file mode 100644 index 0000000000..19195eb9a0 --- /dev/null +++ b/src/test/java/seedu/duke/ParserTest.java @@ -0,0 +1,20 @@ +package seedu.duke; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertNull; + +public class ParserTest { + @Test + public void getCommand_emptyCommand_nullReturned() { + String output = Parser.getCommand(""); + assertNull(output); + } + + @Test + public void getCommand_spaces_nullReturned() { + String output = Parser.getCommand(" "); + assertNull(output); + } + +} From 96dc51a56109e2309faa7c8090061695f3dc4d29 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Mon, 4 Oct 2021 21:50:33 +0800 Subject: [PATCH 011/429] Fixed checkstyle errors 1 --- src/main/java/seedu/duke/Duke.java | 3 ++- src/main/java/seedu/duke/Menu.java | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index d11284f82b..dd200bcf6b 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -30,8 +30,9 @@ public static void main(String[] args) { } } } finally { - if (in != null) + if (in != null){ in.close(); + } } } } diff --git a/src/main/java/seedu/duke/Menu.java b/src/main/java/seedu/duke/Menu.java index 99d4cbb520..eb1f3d262b 100644 --- a/src/main/java/seedu/duke/Menu.java +++ b/src/main/java/seedu/duke/Menu.java @@ -2,7 +2,9 @@ public class Menu { - public Menu() {} + public Menu() { + + } /*print menu prints a fixed list of prestored foo items */ public static void printmenu() { @@ -10,8 +12,8 @@ public static void printmenu() { double foodPrice[] = {3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 5.0, 3.6}; String foodName[] = {"Ban Mian ", "Chicken Rice ", "Fried Prawn Noodles (Hokkien Mee)", "Minced MeatNoodles(Ba Chor Mee) ", - "Fried Carrot Cake ", "Fried Kway Teow (Char Kway Teow) ", - "Pork Rib Soup (Bak Kut Teh) ", "Nasi Lemak "}; + "Fried Carrot Cake ", "Fried Kway Teow (Char Kway Teow) ", + "Pork Rib Soup (Bak Kut Teh) ", "Nasi Lemak "}; System.out.println("index | Food Name | Price"); System.out.println(line); for (int i = 0; i < foodPrice.length; i++) { @@ -25,5 +27,5 @@ public static void printmenu() { // add items // show menu // Print menu functions - + } From 7a248b6242dd54b284a4612a95d4f05edc21cdde Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Tue, 5 Oct 2021 12:24:29 +0800 Subject: [PATCH 012/429] Revert Main --- src/main/java/seedu/duke/Duke.java | 31 +++++++----------------------- src/main/java/seedu/duke/Menu.java | 10 +++++----- 2 files changed, 12 insertions(+), 29 deletions(-) diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index dd200bcf6b..9f8063ee94 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -7,32 +7,15 @@ public class Duke { * Main entry-point for the java.duke.Duke application. */ public static void main(String[] args) { - - String logo = " ____ _ \n" + "| _ \\ _ _| | _____ \n" - + "| | | | | | | |/ / _ \\\n" + "| |_| | |_| | < __/\n" + String logo = " ____ _ \n" + + "| _ \\ _ _| | _____ \n" + + "| | | | | | | |/ / _ \\\n" + + "| |_| | |_| | < __/\n" + "|____/ \\__,_|_|\\_\\___|\n"; System.out.println("Hello from\n" + logo); System.out.println("What is your name?"); - Scanner in = null; - String input; - try { - in = new Scanner(System.in); - System.out.println("Hello " + in.nextLine()); - System.out.println("Welcome to LOTS"); - /* Call printmenu method from Menu class */ - // Menu menu = new Menu(); - int runcode = 0; - while (runcode == 0) { - input = in.nextLine(); - if (input.indexOf("menu") != -1) { - Menu.printmenu(); - } - } - } finally { - if (in != null){ - in.close(); - } - } + Scanner in = new Scanner(System.in); + System.out.println("Hello " + in.nextLine()); } -} +} \ No newline at end of file diff --git a/src/main/java/seedu/duke/Menu.java b/src/main/java/seedu/duke/Menu.java index eb1f3d262b..56450a4ec7 100644 --- a/src/main/java/seedu/duke/Menu.java +++ b/src/main/java/seedu/duke/Menu.java @@ -9,11 +9,11 @@ public Menu() { /*print menu prints a fixed list of prestored foo items */ public static void printmenu() { String line = "--------------------------------------------------"; - double foodPrice[] = {3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 5.0, 3.6}; - String foodName[] = {"Ban Mian ", "Chicken Rice ", - "Fried Prawn Noodles (Hokkien Mee)", "Minced MeatNoodles(Ba Chor Mee) ", - "Fried Carrot Cake ", "Fried Kway Teow (Char Kway Teow) ", - "Pork Rib Soup (Bak Kut Teh) ", "Nasi Lemak "}; + double[] foodPrice = {3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 5.0, 3.6}; + String[] foodName = {"Ban Mian ", "Chicken Rice ", + "Fried Prawn Noodles (Hokkien Mee)", "Minced MeatNoodles(Ba Chor Mee) ", + "Fried Carrot Cake ", "Fried Kway Teow (Char Kway Teow) ", + "Pork Rib Soup (Bak Kut Teh) ", "Nasi Lemak "}; System.out.println("index | Food Name | Price"); System.out.println(line); for (int i = 0; i < foodPrice.length; i++) { From 3997e8145a3a8f0705543eb8de1d6a778494e381 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Tue, 5 Oct 2021 12:28:09 +0800 Subject: [PATCH 013/429] Minor Formatting --- src/main/java/seedu/duke/Menu.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/Menu.java b/src/main/java/seedu/duke/Menu.java index 56450a4ec7..057b5ab089 100644 --- a/src/main/java/seedu/duke/Menu.java +++ b/src/main/java/seedu/duke/Menu.java @@ -6,8 +6,10 @@ public Menu() { } - /*print menu prints a fixed list of prestored foo items */ - public static void printmenu() { + /** + * print menu prints a fixed list of prestored foo items + * */ + public static void printMenu() { String line = "--------------------------------------------------"; double[] foodPrice = {3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 5.0, 3.6}; String[] foodName = {"Ban Mian ", "Chicken Rice ", From 938f8c4946316d301f537ea2649908c40464074e Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Tue, 5 Oct 2021 12:34:02 +0800 Subject: [PATCH 014/429] update menu --- src/main/java/seedu/duke/Menu.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/Menu.java b/src/main/java/seedu/duke/Menu.java index 057b5ab089..108fe4d0de 100644 --- a/src/main/java/seedu/duke/Menu.java +++ b/src/main/java/seedu/duke/Menu.java @@ -7,7 +7,7 @@ public Menu() { } /** - * print menu prints a fixed list of prestored foo items + * print menu prints a fixed list of prestored foo items. * */ public static void printMenu() { String line = "--------------------------------------------------"; From a780aa2c446fb739f9f01c4e78baf448814470e2 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 5 Oct 2021 13:56:54 +0800 Subject: [PATCH 015/429] Created a Command class. --- src/main/java/seedu/duke/Command.java | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/main/java/seedu/duke/Command.java diff --git a/src/main/java/seedu/duke/Command.java b/src/main/java/seedu/duke/Command.java new file mode 100644 index 0000000000..a3b65c0c2a --- /dev/null +++ b/src/main/java/seedu/duke/Command.java @@ -0,0 +1,30 @@ +package seedu.duke; + +public class Command { + + /* Declare a person/people list variable to know which list to edit + e.g. protected PersonList personList; + */ + + //Constructor + public Command() { + } + + /** + * Initialise the person list to be edited by the user. + */ + public void setData(/*Person List. i.e. PersonList personList*/) { + /* + Initialise the person/people list + e.g. personList = personList + */ + } + + /** + * Execute different set of instructions in the subclass based on the user's command. + */ + public void execute() { + throw new UnsupportedOperationException("This method is to be implemented by child classes"); + } + +} From d77bad4e7397ab5cf94a1f2e630dca3c0439b6f3 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 5 Oct 2021 18:31:22 +0800 Subject: [PATCH 016/429] Add integration with Command class. Parser now returns a command type. Next step is to integrate with other command classes. --- src/main/java/seedu/duke/Parser.java | 24 +++++++++++++++++++----- src/test/java/seedu/duke/ParserTest.java | 8 ++++---- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 4f1d91fd2f..8784fdb511 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -3,17 +3,31 @@ public class Parser { /** - * Returns the command from the user's input - * string in all small cases, Null if input is empty/blank. + * Returns a Command object based on the user's input + * string, else unknown command Type. * * @param input The user's input in String. - * @return The command in String. Null otherwise. + * @return The respective Command type. */ - public static String getCommand(String input) { + public static Command getCommand(String input) { if (input.isBlank() || input.isEmpty()) { return null; + //return new Command();//To return unknown command. } String[] listOfInputs = input.split(" "); - return listOfInputs[0].toLowerCase(); + String commandInString = listOfInputs[0].toLowerCase(); + + switch (commandInString) { + case("add"): + return new Command(); + case("delete"): + return new Command(); + case("orders"): + return new Command(); + case("menu"): + return new Command(); + default: + return null;//To return unknown command. + } } } diff --git a/src/test/java/seedu/duke/ParserTest.java b/src/test/java/seedu/duke/ParserTest.java index 19195eb9a0..8bd62172f5 100644 --- a/src/test/java/seedu/duke/ParserTest.java +++ b/src/test/java/seedu/duke/ParserTest.java @@ -7,14 +7,14 @@ public class ParserTest { @Test public void getCommand_emptyCommand_nullReturned() { - String output = Parser.getCommand(""); - assertNull(output); + Command output = Parser.getCommand(""); + assertNull(output); //To be changed to expect unknown command } @Test public void getCommand_spaces_nullReturned() { - String output = Parser.getCommand(" "); - assertNull(output); + Command output = Parser.getCommand(" "); + assertNull(output); //To be changed to expect unknown command } } From d92ea5549ded3538ef7564926ba69c40ee09c81f Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 5 Oct 2021 21:38:27 +0800 Subject: [PATCH 017/429] Add Person Class and TOTAL_MENU_ITEMS in Menu class. #fixed 20 --- src/main/java/seedu/duke/Menu.java | 2 ++ src/main/java/seedu/duke/Person.java | 49 ++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 src/main/java/seedu/duke/Person.java diff --git a/src/main/java/seedu/duke/Menu.java b/src/main/java/seedu/duke/Menu.java index 108fe4d0de..78d0740bdf 100644 --- a/src/main/java/seedu/duke/Menu.java +++ b/src/main/java/seedu/duke/Menu.java @@ -1,6 +1,8 @@ package seedu.duke; public class Menu { + + public static final int TOTAL_MENU_ITEMS = 10; public Menu() { diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java new file mode 100644 index 0000000000..53d25120b2 --- /dev/null +++ b/src/main/java/seedu/duke/Person.java @@ -0,0 +1,49 @@ +package seedu.duke; + +public class Person { + + protected int totalMenuItems = Menu.TOTAL_MENU_ITEMS; + protected String personName; + protected Integer[] individualFoodOrders = new Integer[totalMenuItems]; + + /** + * Constructor for Person. + * Individual Food order list will be populated with 0 on initialisation. + * @param personName + */ + public Person(String personName) { + this.personName = personName; + setupIndividualFoodOrders(); + } + + /** + * Used to populate the array with 0. + */ + private void setupIndividualFoodOrders() { + for(int i = 0; i < totalMenuItems; i++) + { + individualFoodOrders[i] = 0; + } + } + + /** + * Add the quantity of the corresponding food index by 1. + * @param foodIndex + */ + protected void addFoodToIndividualFoodOrders(int foodIndex) { + individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] + 1; + } + + /** + * Minus the quantity of the corresponding food index by 1. + * If the quantity of food is 0, the quantity remains 0. + * @param foodIndex + */ + protected void removeFoodFromIndividualFoodOrders(int foodIndex) { + if(individualFoodOrders[foodIndex] != 0) { + individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] - 1; + } else { + individualFoodOrders[foodIndex] = 0; + } + } +} From d2e1eff161cd4a5744dbff6879e716aedd04fa10 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 5 Oct 2021 21:44:00 +0800 Subject: [PATCH 018/429] Add UnknownCommand Class & update parser with it too. #Fix 25 --- src/main/java/seedu/duke/Parser.java | 5 ++--- src/main/java/seedu/duke/UnknownCommand.java | 12 ++++++++++++ src/test/java/seedu/duke/ParserTest.java | 3 ++- 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 src/main/java/seedu/duke/UnknownCommand.java diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 8784fdb511..11ed8655f3 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -11,8 +11,7 @@ public class Parser { */ public static Command getCommand(String input) { if (input.isBlank() || input.isEmpty()) { - return null; - //return new Command();//To return unknown command. + return new UnknownCommand(); } String[] listOfInputs = input.split(" "); String commandInString = listOfInputs[0].toLowerCase(); @@ -27,7 +26,7 @@ public static Command getCommand(String input) { case("menu"): return new Command(); default: - return null;//To return unknown command. + return new UnknownCommand(); } } } diff --git a/src/main/java/seedu/duke/UnknownCommand.java b/src/main/java/seedu/duke/UnknownCommand.java new file mode 100644 index 0000000000..f8b1211821 --- /dev/null +++ b/src/main/java/seedu/duke/UnknownCommand.java @@ -0,0 +1,12 @@ +package seedu.duke; + +/** + * The command class in the command + * is unknown. + */ +public class UnknownCommand extends Command{ + + public void execute(){ + System.out.println("Unknown command. Please try again."); + } +} diff --git a/src/test/java/seedu/duke/ParserTest.java b/src/test/java/seedu/duke/ParserTest.java index 8bd62172f5..eabeeec719 100644 --- a/src/test/java/seedu/duke/ParserTest.java +++ b/src/test/java/seedu/duke/ParserTest.java @@ -2,13 +2,14 @@ import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; public class ParserTest { @Test public void getCommand_emptyCommand_nullReturned() { Command output = Parser.getCommand(""); - assertNull(output); //To be changed to expect unknown command + assertEquals(output == UnknownCommand.class); } @Test From 36c3aa960b4c3791db1259c5ec1239c6d7165b0c Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 5 Oct 2021 21:56:01 +0800 Subject: [PATCH 019/429] Fix check style issues. --- src/main/java/seedu/duke/Parser.java | 8 ++++---- src/main/java/seedu/duke/UnknownCommand.java | 4 ++-- src/test/java/seedu/duke/ParserTest.java | 5 +++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 11ed8655f3..555e56438c 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -17,13 +17,13 @@ public static Command getCommand(String input) { String commandInString = listOfInputs[0].toLowerCase(); switch (commandInString) { - case("add"): + case ("add"): return new Command(); - case("delete"): + case ("delete"): return new Command(); - case("orders"): + case ("orders"): return new Command(); - case("menu"): + case ("menu"): return new Command(); default: return new UnknownCommand(); diff --git a/src/main/java/seedu/duke/UnknownCommand.java b/src/main/java/seedu/duke/UnknownCommand.java index f8b1211821..126f067e91 100644 --- a/src/main/java/seedu/duke/UnknownCommand.java +++ b/src/main/java/seedu/duke/UnknownCommand.java @@ -4,9 +4,9 @@ * The command class in the command * is unknown. */ -public class UnknownCommand extends Command{ +public class UnknownCommand extends Command { - public void execute(){ + public void execute() { System.out.println("Unknown command. Please try again."); } } diff --git a/src/test/java/seedu/duke/ParserTest.java b/src/test/java/seedu/duke/ParserTest.java index eabeeec719..ffc298795c 100644 --- a/src/test/java/seedu/duke/ParserTest.java +++ b/src/test/java/seedu/duke/ParserTest.java @@ -4,18 +4,19 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; public class ParserTest { @Test public void getCommand_emptyCommand_nullReturned() { Command output = Parser.getCommand(""); - assertEquals(output == UnknownCommand.class); + assertTrue(output instanceof UnknownCommand); } @Test public void getCommand_spaces_nullReturned() { Command output = Parser.getCommand(" "); - assertNull(output); //To be changed to expect unknown command + assertTrue(output instanceof UnknownCommand); } } From 3918f69a0a7458bc133ee0bf0b22f2eada7374d6 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 5 Oct 2021 22:03:47 +0800 Subject: [PATCH 020/429] Fix CheckStyle for Person Class. --- src/main/java/seedu/duke/Person.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 53d25120b2..13ed51ef3d 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -9,7 +9,7 @@ public class Person { /** * Constructor for Person. * Individual Food order list will be populated with 0 on initialisation. - * @param personName + * @param personName Name of the person. */ public Person(String personName) { this.personName = personName; @@ -20,15 +20,14 @@ public Person(String personName) { * Used to populate the array with 0. */ private void setupIndividualFoodOrders() { - for(int i = 0; i < totalMenuItems; i++) - { + for (int i = 0; i < totalMenuItems; i++) { individualFoodOrders[i] = 0; } } /** * Add the quantity of the corresponding food index by 1. - * @param foodIndex + * @param foodIndex Index of food in the menu. */ protected void addFoodToIndividualFoodOrders(int foodIndex) { individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] + 1; @@ -37,10 +36,10 @@ protected void addFoodToIndividualFoodOrders(int foodIndex) { /** * Minus the quantity of the corresponding food index by 1. * If the quantity of food is 0, the quantity remains 0. - * @param foodIndex + * @param foodIndex Index of food in the menu. */ protected void removeFoodFromIndividualFoodOrders(int foodIndex) { - if(individualFoodOrders[foodIndex] != 0) { + if (individualFoodOrders[foodIndex] != 0) { individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] - 1; } else { individualFoodOrders[foodIndex] = 0; From ac09081bd7adc4fb191892c2b3b3a8f4f1590a05 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Wed, 6 Oct 2021 00:09:44 +0800 Subject: [PATCH 021/429] Add PeopleManager Class. --- src/main/java/seedu/duke/PeopleManager.java | 23 +++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/main/java/seedu/duke/PeopleManager.java diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java new file mode 100644 index 0000000000..03e8c52e9f --- /dev/null +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -0,0 +1,23 @@ +package seedu.duke; + +import java.util.LinkedList; + +public class PeopleManager { + + LinkedList listOfPeople = new LinkedList(); + + public PeopleManager() { + } + + /** + * Loops through the list and count the number of people in the list. + * @return the counter of the number of people in the list. + */ + public int countPeopleInList() { + int counter = 0; + for (int i = 0; i < listOfPeople.size(); i++) { + counter++; + } + return counter; + } +} \ No newline at end of file From c39c611af71b29cfb47be8e69876ac6e6d4eb61e Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Thu, 7 Oct 2021 00:38:21 +0800 Subject: [PATCH 022/429] Add JUnit Test cases for Person Class. --- src/test/java/seedu/duke/PersonTest.java | 62 ++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/test/java/seedu/duke/PersonTest.java diff --git a/src/test/java/seedu/duke/PersonTest.java b/src/test/java/seedu/duke/PersonTest.java new file mode 100644 index 0000000000..e50821338e --- /dev/null +++ b/src/test/java/seedu/duke/PersonTest.java @@ -0,0 +1,62 @@ +package seedu.duke; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class PersonTest { + + /** + * Test case to check if the individualFoordOrders Array is populated with + * int 0 at the start. + * @throws Exception thrown when the array is not populated with int 0. + */ + @Test + public void setupIndividualFoodOrders_emptyArray() throws Exception { + for(int i = 0; i < Menu.TOTAL_MENU_ITEMS; i++) { + assertEquals(0, initialisePersonClass().individualFoodOrders[i]); + } + } + + /** + * Checks if the personName is null or not. + * @throws Exception if the personName variable is Null. + */ + @Test + public void personName_notNull() throws Exception { + assertNotNull(initialisePersonClass().personName); + } + + /** + * Checks if the increment is 1 when using the addFoodToIndividualFoodOrders function. + * Checks if the increment is at the right index. + * @throws Exception when the increment is not increased by 1 and is at the wrong index. + */ + @Test + public void addFoodToIndividualFoodOrders_increment() throws Exception { + Person trialPerson = initialisePersonClass(); + trialPerson.addFoodToIndividualFoodOrders(2); + assertEquals(1,trialPerson.individualFoodOrders[2]); + } + + /** + * Checks if the specified index value will remain 0 + * after using the removeFoodFromIndividualFoodOrders function. + * @throws Exception if the value is not 0. + */ + @Test + public void removeFoodFromIndividualFoodOrders_remainsZero() throws Exception { + Person trialPerson = initialisePersonClass(); + trialPerson.removeFoodFromIndividualFoodOrders(2); + assertEquals(0, trialPerson.individualFoodOrders[2]); + } + + /** + * Function to initialise Person class with a person variable. + * @return variable of Person class. + */ + public Person initialisePersonClass() { + Person personA = new Person("Charles"); + return personA; + } +} From 063fd9a813ad76266f4c518cc7c600cb2c1590f2 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Thu, 7 Oct 2021 00:42:12 +0800 Subject: [PATCH 023/429] Update CheckStyle for Person Class JUnit. --- src/test/java/seedu/duke/PersonTest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/duke/PersonTest.java b/src/test/java/seedu/duke/PersonTest.java index e50821338e..d96d18df1a 100644 --- a/src/test/java/seedu/duke/PersonTest.java +++ b/src/test/java/seedu/duke/PersonTest.java @@ -1,8 +1,10 @@ package seedu.duke; + import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; public class PersonTest { @@ -13,7 +15,7 @@ public class PersonTest { */ @Test public void setupIndividualFoodOrders_emptyArray() throws Exception { - for(int i = 0; i < Menu.TOTAL_MENU_ITEMS; i++) { + for (int i = 0; i < Menu.TOTAL_MENU_ITEMS; i++) { assertEquals(0, initialisePersonClass().individualFoodOrders[i]); } } From 63cebf01a3b04459644c62f9404a1e4aa71c6ac3 Mon Sep 17 00:00:00 2001 From: WaiKit-nus Date: Thu, 7 Oct 2021 15:42:01 +0800 Subject: [PATCH 024/429] Update PersonTest JUnit. --- src/main/java/seedu/duke/Person.java | 24 ++++++++--- src/test/java/seedu/duke/PersonTest.java | 51 +++++++++--------------- 2 files changed, 37 insertions(+), 38 deletions(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 13ed51ef3d..70207f9e1e 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -5,6 +5,8 @@ public class Person { protected int totalMenuItems = Menu.TOTAL_MENU_ITEMS; protected String personName; protected Integer[] individualFoodOrders = new Integer[totalMenuItems]; + private String foodIndexOutOfBoundsErrorMessage = "Please enter the right menu number!"; + private String functionPassedMessage = "Completed!"; /** * Constructor for Person. @@ -29,8 +31,13 @@ private void setupIndividualFoodOrders() { * Add the quantity of the corresponding food index by 1. * @param foodIndex Index of food in the menu. */ - protected void addFoodToIndividualFoodOrders(int foodIndex) { - individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] + 1; + protected String addFoodToIndividualFoodOrders(int foodIndex) { + if (foodIndex < totalMenuItems && foodIndex >= 0) { + individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] + 1; + return functionPassedMessage; + } else { + return foodIndexOutOfBoundsErrorMessage; + } } /** @@ -38,11 +45,16 @@ protected void addFoodToIndividualFoodOrders(int foodIndex) { * If the quantity of food is 0, the quantity remains 0. * @param foodIndex Index of food in the menu. */ - protected void removeFoodFromIndividualFoodOrders(int foodIndex) { - if (individualFoodOrders[foodIndex] != 0) { - individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] - 1; + protected String removeFoodFromIndividualFoodOrders(int foodIndex) { + if (foodIndex < totalMenuItems && foodIndex >= 0) { + if (individualFoodOrders[foodIndex] != 0) { + individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] - 1; + } else { + individualFoodOrders[foodIndex] = 0; + } + return functionPassedMessage; } else { - individualFoodOrders[foodIndex] = 0; + return foodIndexOutOfBoundsErrorMessage; } } } diff --git a/src/test/java/seedu/duke/PersonTest.java b/src/test/java/seedu/duke/PersonTest.java index d96d18df1a..488e449f9f 100644 --- a/src/test/java/seedu/duke/PersonTest.java +++ b/src/test/java/seedu/duke/PersonTest.java @@ -9,48 +9,35 @@ public class PersonTest { /** - * Test case to check if the individualFoordOrders Array is populated with - * int 0 at the start. - * @throws Exception thrown when the array is not populated with int 0. + * Checks if the specified index value will pass. + * after being inputted into the addFoodToIndividualFoodOrders function. + * @throws Exception when the output is incorrect. */ @Test - public void setupIndividualFoodOrders_emptyArray() throws Exception { - for (int i = 0; i < Menu.TOTAL_MENU_ITEMS; i++) { - assertEquals(0, initialisePersonClass().individualFoodOrders[i]); - } - } - - /** - * Checks if the personName is null or not. - * @throws Exception if the personName variable is Null. - */ - @Test - public void personName_notNull() throws Exception { - assertNotNull(initialisePersonClass().personName); - } - - /** - * Checks if the increment is 1 when using the addFoodToIndividualFoodOrders function. - * Checks if the increment is at the right index. - * @throws Exception when the increment is not increased by 1 and is at the wrong index. - */ - @Test - public void addFoodToIndividualFoodOrders_increment() throws Exception { + public void addFoodToIndividualFoodOrders_incrementIndex2ValueBy1_Index2ValueIncreasedBy1() throws Exception { Person trialPerson = initialisePersonClass(); - trialPerson.addFoodToIndividualFoodOrders(2); - assertEquals(1,trialPerson.individualFoodOrders[2]); + //FoodIndex = -2 is not within the array. + assertEquals("Please enter the right menu number!",trialPerson.addFoodToIndividualFoodOrders(-2)); + //FoodIndex = 11 is not within the array. + assertEquals("Please enter the right menu number!", trialPerson.addFoodToIndividualFoodOrders(11)); + //FoodIndex = 2 is within the array. Function should enter if() loop. + assertEquals("Completed!",trialPerson.addFoodToIndividualFoodOrders(2)); } /** - * Checks if the specified index value will remain 0 - * after using the removeFoodFromIndividualFoodOrders function. - * @throws Exception if the value is not 0. + * Checks if the specified index value will pass. + * after being inputted into the removeFoodFromIndividualFoodOrders function. + * @throws Exception if the value is not the same. */ @Test public void removeFoodFromIndividualFoodOrders_remainsZero() throws Exception { Person trialPerson = initialisePersonClass(); - trialPerson.removeFoodFromIndividualFoodOrders(2); - assertEquals(0, trialPerson.individualFoodOrders[2]); + //FoodIndex = -3 is not within the array. + assertEquals("Please enter the right menu number!", trialPerson.removeFoodFromIndividualFoodOrders(-3)); + //FoodIndex = 30 is not within the array. + assertEquals("Please enter the right menu number!", trialPerson.removeFoodFromIndividualFoodOrders(30)); + //FoodIndex = 3 is within the array. + assertEquals("Completed!", trialPerson.removeFoodFromIndividualFoodOrders(3)); } /** From 606abf1c7411e8f5884f25af25994c8bcbfbc7ee Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Thu, 7 Oct 2021 21:54:24 +0800 Subject: [PATCH 025/429] Add AddCommand Class and Add static keyword to listOfPeople. --- src/main/java/seedu/duke/AddCommand.java | 84 +++++++++++++++++++++ src/main/java/seedu/duke/PeopleManager.java | 2 +- 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 src/main/java/seedu/duke/AddCommand.java diff --git a/src/main/java/seedu/duke/AddCommand.java b/src/main/java/seedu/duke/AddCommand.java new file mode 100644 index 0000000000..75df17707f --- /dev/null +++ b/src/main/java/seedu/duke/AddCommand.java @@ -0,0 +1,84 @@ +package seedu.duke; + +public class AddCommand extends Command { + + public static final String COMMAND_WORD = "add"; + private final String personName; + private final Integer foodIndex; + private final Integer foodQuantity; + + public AddCommand(String input) { + Integer[] indexOfSlashes = indexOfSlashes(input); + this.personName = getPersonName(input, indexOfSlashes[0], indexOfSlashes[1]); + this.foodIndex = getFoodIndex(input, indexOfSlashes[1], indexOfSlashes[2]); + this.foodQuantity = getFoodQuantity(input, indexOfSlashes[2]); + } + + /** + * Adds a new person with the given attributes into the list of people. + */ + @Override + public void execute() { + Person person = new Person(personName); + person.addFoodToIndividualFoodOrders(foodIndex); + PeopleManager.listOfPeople.add(person); + } + + /** + * Obtain index of "/" in the string to be use to split input strings into substrings. + * @param input User input. + * @return an array of index of "/". + */ + private static Integer[] indexOfSlashes(String input) { + + Integer[] indexOfSlashes = new Integer[3]; + + //Index firstSlashIndex to secondSlashIndex holds Person Name. + int firstSlashIndex = input.indexOf("/"); + //Index secondSlashIndex to thirdSlashIndex holds index of Food. + int secondSlashIndex = input.indexOf("/", firstSlashIndex + 1); + //Index thirdSlashIndex to last index holds food quantity. + int thirdSlashIndex = input.indexOf("/", secondSlashIndex + 1); + + indexOfSlashes[0] = firstSlashIndex; + indexOfSlashes[1] = secondSlashIndex; + indexOfSlashes[2] = thirdSlashIndex; + + return indexOfSlashes; + } + + /** + * Function used to parse the user input to get person name. + * @param input User input. + * @param indexOfFirstSlash First "/" index. + * @param indexOfSecondSlash Second "/" index. + * @return Person Name in String type. + */ + private static String getPersonName(String input, int indexOfFirstSlash, int indexOfSecondSlash) { + String tempPersonName = input.substring(indexOfFirstSlash + 1,indexOfSecondSlash - 1); + return tempPersonName; + } + + /** + * Function used to parse the user input to get food index. + * @param input User input. + * @param indexOfSecondSlash Second "/" index. + * @param indexOfThirdSlash Third "/" index. + * @return Food index in Integer type. + */ + private static Integer getFoodIndex(String input, int indexOfSecondSlash, int indexOfThirdSlash) { + int foodIndex = Integer.parseInt(input.substring(indexOfSecondSlash + 1, indexOfThirdSlash - 1)); + return foodIndex; + } + + /** + * Function used to parse the user input to get food index. + * @param input User input. + * @param indexOfThirdSlash Third "/" index. + * @return Food Quantity in Integer type. + */ + private static Integer getFoodQuantity(String input, int indexOfThirdSlash) { + int foodQuantity = Integer.parseInt(input.substring(indexOfThirdSlash + 1, input.length())); + return foodQuantity; + } +} diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java index 03e8c52e9f..0506e47448 100644 --- a/src/main/java/seedu/duke/PeopleManager.java +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -4,7 +4,7 @@ public class PeopleManager { - LinkedList listOfPeople = new LinkedList(); + static LinkedList listOfPeople = new LinkedList(); public PeopleManager() { } From fe46bd16843646e23ee817c6fab95352dba717d7 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Thu, 7 Oct 2021 22:18:11 +0800 Subject: [PATCH 026/429] Update Integer to int data type. --- src/main/java/seedu/duke/AddCommand.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/duke/AddCommand.java b/src/main/java/seedu/duke/AddCommand.java index 75df17707f..e0f116b184 100644 --- a/src/main/java/seedu/duke/AddCommand.java +++ b/src/main/java/seedu/duke/AddCommand.java @@ -4,11 +4,11 @@ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; private final String personName; - private final Integer foodIndex; - private final Integer foodQuantity; + private final int foodIndex; + private final int foodQuantity; public AddCommand(String input) { - Integer[] indexOfSlashes = indexOfSlashes(input); + int[] indexOfSlashes = indexOfSlashes(input); this.personName = getPersonName(input, indexOfSlashes[0], indexOfSlashes[1]); this.foodIndex = getFoodIndex(input, indexOfSlashes[1], indexOfSlashes[2]); this.foodQuantity = getFoodQuantity(input, indexOfSlashes[2]); @@ -29,9 +29,9 @@ public void execute() { * @param input User input. * @return an array of index of "/". */ - private static Integer[] indexOfSlashes(String input) { + private static int[] indexOfSlashes(String input) { - Integer[] indexOfSlashes = new Integer[3]; + int[] indexOfSlashes = new int[3]; //Index firstSlashIndex to secondSlashIndex holds Person Name. int firstSlashIndex = input.indexOf("/"); @@ -64,9 +64,9 @@ private static String getPersonName(String input, int indexOfFirstSlash, int ind * @param input User input. * @param indexOfSecondSlash Second "/" index. * @param indexOfThirdSlash Third "/" index. - * @return Food index in Integer type. + * @return Food index in int type. */ - private static Integer getFoodIndex(String input, int indexOfSecondSlash, int indexOfThirdSlash) { + private static int getFoodIndex(String input, int indexOfSecondSlash, int indexOfThirdSlash) { int foodIndex = Integer.parseInt(input.substring(indexOfSecondSlash + 1, indexOfThirdSlash - 1)); return foodIndex; } @@ -75,9 +75,9 @@ private static Integer getFoodIndex(String input, int indexOfSecondSlash, int in * Function used to parse the user input to get food index. * @param input User input. * @param indexOfThirdSlash Third "/" index. - * @return Food Quantity in Integer type. + * @return Food Quantity in int type. */ - private static Integer getFoodQuantity(String input, int indexOfThirdSlash) { + private static int getFoodQuantity(String input, int indexOfThirdSlash) { int foodQuantity = Integer.parseInt(input.substring(indexOfThirdSlash + 1, input.length())); return foodQuantity; } From 149160381a368dafc5ec11d987e9d99c22c46301 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Fri, 8 Oct 2021 00:04:02 +0800 Subject: [PATCH 027/429] Add trim function to trim personName, foodQuantity and foodIndex. --- src/main/java/seedu/duke/AddCommand.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/duke/AddCommand.java b/src/main/java/seedu/duke/AddCommand.java index e0f116b184..55e7b7374e 100644 --- a/src/main/java/seedu/duke/AddCommand.java +++ b/src/main/java/seedu/duke/AddCommand.java @@ -56,7 +56,7 @@ private static int[] indexOfSlashes(String input) { */ private static String getPersonName(String input, int indexOfFirstSlash, int indexOfSecondSlash) { String tempPersonName = input.substring(indexOfFirstSlash + 1,indexOfSecondSlash - 1); - return tempPersonName; + return tempPersonName.trim(); } /** @@ -67,7 +67,8 @@ private static String getPersonName(String input, int indexOfFirstSlash, int ind * @return Food index in int type. */ private static int getFoodIndex(String input, int indexOfSecondSlash, int indexOfThirdSlash) { - int foodIndex = Integer.parseInt(input.substring(indexOfSecondSlash + 1, indexOfThirdSlash - 1)); + String subStringFoodIndex = input.substring(indexOfSecondSlash + 1, indexOfThirdSlash - 1).trim(); + int foodIndex = Integer.parseInt(subStringFoodIndex); return foodIndex; } @@ -78,7 +79,8 @@ private static int getFoodIndex(String input, int indexOfSecondSlash, int indexO * @return Food Quantity in int type. */ private static int getFoodQuantity(String input, int indexOfThirdSlash) { - int foodQuantity = Integer.parseInt(input.substring(indexOfThirdSlash + 1, input.length())); + String subStringFoodQuantity = input.substring(indexOfThirdSlash + 1, input.length()).trim(); + int foodQuantity = Integer.parseInt(subStringFoodQuantity); return foodQuantity; } } From 42fdc0130b8954396b199b5143330f3c5ab6d44a Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Fri, 8 Oct 2021 00:23:51 +0800 Subject: [PATCH 028/429] Add Regex Function. --- src/main/java/seedu/duke/AddCommand.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/seedu/duke/AddCommand.java b/src/main/java/seedu/duke/AddCommand.java index 55e7b7374e..f346816d86 100644 --- a/src/main/java/seedu/duke/AddCommand.java +++ b/src/main/java/seedu/duke/AddCommand.java @@ -1,5 +1,8 @@ package seedu.duke; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; @@ -24,6 +27,20 @@ public void execute() { PeopleManager.listOfPeople.add(person); } + /** + * Regex to check User Input before passing onto the class. + * @param input + * @return + */ + public boolean checkUserInput(String input) { + Pattern pattern = Pattern.compile( + "^add \\/n [a-zA-Z1-9][\\w \\d]{1,50} \\/i \\d{1,2} \\/q \\d{1,3}$", + Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(input); + boolean matchFound = matcher.find(); + return matchFound; + } + /** * Obtain index of "/" in the string to be use to split input strings into substrings. * @param input User input. From 2c0241a99ed05600b37ec75c432f4feebf7cc623 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Fri, 8 Oct 2021 02:22:16 +0800 Subject: [PATCH 029/429] Created LotsException class fixes #36 --- src/main/java/seedu/duke/LotsException.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/main/java/seedu/duke/LotsException.java diff --git a/src/main/java/seedu/duke/LotsException.java b/src/main/java/seedu/duke/LotsException.java new file mode 100644 index 0000000000..e250d675cc --- /dev/null +++ b/src/main/java/seedu/duke/LotsException.java @@ -0,0 +1,7 @@ +package seedu.duke; + +public class LotsException extends Exception { + public LotsException(String errorMessage) { + super(errorMessage); + } +} From 618c557abaaa9b1fa98417154509e079941ac976 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Fri, 8 Oct 2021 02:45:34 +0800 Subject: [PATCH 030/429] Implemented the feature to delete orders. fixes #13 --- src/main/java/seedu/duke/Command.java | 13 ++-- src/main/java/seedu/duke/DeleteCommand.java | 74 +++++++++++++++++++++ src/main/java/seedu/duke/Parser.java | 2 +- 3 files changed, 79 insertions(+), 10 deletions(-) create mode 100644 src/main/java/seedu/duke/DeleteCommand.java diff --git a/src/main/java/seedu/duke/Command.java b/src/main/java/seedu/duke/Command.java index a3b65c0c2a..0c9ea76e56 100644 --- a/src/main/java/seedu/duke/Command.java +++ b/src/main/java/seedu/duke/Command.java @@ -2,9 +2,7 @@ public class Command { - /* Declare a person/people list variable to know which list to edit - e.g. protected PersonList personList; - */ + protected PeopleManager peopleManager; //Constructor public Command() { @@ -13,17 +11,14 @@ public Command() { /** * Initialise the person list to be edited by the user. */ - public void setData(/*Person List. i.e. PersonList personList*/) { - /* - Initialise the person/people list - e.g. personList = personList - */ + public void setData(PeopleManager peopleList) { + peopleManager = peopleList; } /** * Execute different set of instructions in the subclass based on the user's command. */ - public void execute() { + public void execute() throws LotsException { throw new UnsupportedOperationException("This method is to be implemented by child classes"); } diff --git a/src/main/java/seedu/duke/DeleteCommand.java b/src/main/java/seedu/duke/DeleteCommand.java new file mode 100644 index 0000000000..ffb95dbbf6 --- /dev/null +++ b/src/main/java/seedu/duke/DeleteCommand.java @@ -0,0 +1,74 @@ +package seedu.duke; + +public class DeleteCommand extends Command { + + public static final String COMMAND_WORD = "delete"; + private int personIndex; + private int orderIndex; + + /** + * Splits the input given the regular expression of a whitespace and + * initialise the personIndex and orderIndex. + * + * @param input The entire line of command entered by the user. + * @throws LotsException If there is no input after the delete command or when the personIndex is not an integer. + */ + public DeleteCommand(String input) throws LotsException { + String[] splitInput = input.split(" "); + try { + personIndex = getPersonIndex(splitInput[1]); + orderIndex = getOrderIndex(splitInput[1]); + } catch (NullPointerException | IndexOutOfBoundsException | NumberFormatException e) { + throw new LotsException("Please enter a valid person's index followed by the order index!"); + } + } + + /** + * Get the index of the person whose order is to be deleted. + * + * @param deleteParams String from the user input after the delete command word. + * @return Returns the index of the person in the form of an integer. + */ + private int getPersonIndex(String deleteParams) { + int slashIndex = deleteParams.indexOf('/'); + String personIndexInString = deleteParams.substring(0, slashIndex); + return Integer.parseInt(personIndexInString); + } + + /** + * Get the index of the order to be deleted. + * + * @param deleteParams String from the user input after the delete command word. + * @return Returns the idnex of the order to be deleted in the form of an integer. + */ + private int getOrderIndex(String deleteParams) { + int slashIndex = deleteParams.indexOf('/'); + char OrderIndexInString = deleteParams.charAt(slashIndex + 1); + return Character.getNumericValue(OrderIndexInString) - 10; + } + + /** + * Deletes a specific order from a particular person. + * + * @throws LotsException If the order or person's index to be deleted is out of bounds. + */ + @Override + public void execute() throws LotsException { + try { + deleteOrder(peopleManager); + } catch (IndexOutOfBoundsException e) { + throw new LotsException("Please enter a valid person's index followed by the order index!"); + } + } + + /** + * Change the quantity of that particular order index to 0. + * + * @param peopleList The list of people that are ordering. + */ + private void deleteOrder(PeopleManager peopleList) { + Person personToDelete = peopleList.listOfPeople.get(personIndex); + personToDelete.individualFoodOrders[orderIndex] = 0; + //Add deletion message to notify user + } +} diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 555e56438c..93befb4988 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -19,7 +19,7 @@ public static Command getCommand(String input) { switch (commandInString) { case ("add"): return new Command(); - case ("delete"): + case (DeleteCommand.COMMAND_WORD): return new Command(); case ("orders"): return new Command(); From cd493bbeb63c65b299fce16b2c0ffd9525a55576 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Fri, 8 Oct 2021 02:56:11 +0800 Subject: [PATCH 031/429] Implemented DeleteCommand Class fixes #13 --- src/main/java/seedu/duke/DeleteCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/DeleteCommand.java b/src/main/java/seedu/duke/DeleteCommand.java index ffb95dbbf6..f541972dd6 100644 --- a/src/main/java/seedu/duke/DeleteCommand.java +++ b/src/main/java/seedu/duke/DeleteCommand.java @@ -43,8 +43,8 @@ private int getPersonIndex(String deleteParams) { */ private int getOrderIndex(String deleteParams) { int slashIndex = deleteParams.indexOf('/'); - char OrderIndexInString = deleteParams.charAt(slashIndex + 1); - return Character.getNumericValue(OrderIndexInString) - 10; + //char OrderIndexInChar = deleteParams.charAt(slashIndex + 1); + return Character.getNumericValue(deleteParams.charAt(slashIndex + 1)) - 10; } /** From aae2dd6d9b137bb45f229683d5864e363fd212b8 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Fri, 8 Oct 2021 10:39:34 +0800 Subject: [PATCH 032/429] Made some naming convention changes. --- src/main/java/seedu/duke/Command.java | 4 ++-- src/main/java/seedu/duke/DeleteCommand.java | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/duke/Command.java b/src/main/java/seedu/duke/Command.java index 0c9ea76e56..6a9d68042a 100644 --- a/src/main/java/seedu/duke/Command.java +++ b/src/main/java/seedu/duke/Command.java @@ -11,8 +11,8 @@ public Command() { /** * Initialise the person list to be edited by the user. */ - public void setData(PeopleManager peopleList) { - peopleManager = peopleList; + public void setData(PeopleManager manager) { + peopleManager = manager; } /** diff --git a/src/main/java/seedu/duke/DeleteCommand.java b/src/main/java/seedu/duke/DeleteCommand.java index f541972dd6..cbc9762b44 100644 --- a/src/main/java/seedu/duke/DeleteCommand.java +++ b/src/main/java/seedu/duke/DeleteCommand.java @@ -64,11 +64,11 @@ public void execute() throws LotsException { /** * Change the quantity of that particular order index to 0. * - * @param peopleList The list of people that are ordering. + * @param manager The list of people that are ordering. */ - private void deleteOrder(PeopleManager peopleList) { - Person personToDelete = peopleList.listOfPeople.get(personIndex); - personToDelete.individualFoodOrders[orderIndex] = 0; + private void deleteOrder(PeopleManager manager) { + Person personToDeleteFrom = manager.listOfPeople.get(personIndex); + personToDeleteFrom.individualFoodOrders[orderIndex] = 0; //Add deletion message to notify user } } From 74e66ad88f5d7e2d9bcdfe5454b657960329dacf Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Fri, 8 Oct 2021 11:17:44 +0800 Subject: [PATCH 033/429] Edit Exceptions for DeleteCommand Class. --- src/main/java/seedu/duke/DeleteCommand.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/duke/DeleteCommand.java b/src/main/java/seedu/duke/DeleteCommand.java index cbc9762b44..01b367e174 100644 --- a/src/main/java/seedu/duke/DeleteCommand.java +++ b/src/main/java/seedu/duke/DeleteCommand.java @@ -28,8 +28,10 @@ public DeleteCommand(String input) throws LotsException { * * @param deleteParams String from the user input after the delete command word. * @return Returns the index of the person in the form of an integer. + * @throws IndexOutOfBoundsException When "/" is not found in the string. + * @throws NumberFormatException When the person index can't be parsed into an integer. */ - private int getPersonIndex(String deleteParams) { + private int getPersonIndex(String deleteParams) throws IndexOutOfBoundsException, NumberFormatException { int slashIndex = deleteParams.indexOf('/'); String personIndexInString = deleteParams.substring(0, slashIndex); return Integer.parseInt(personIndexInString); @@ -40,8 +42,9 @@ private int getPersonIndex(String deleteParams) { * * @param deleteParams String from the user input after the delete command word. * @return Returns the idnex of the order to be deleted in the form of an integer. + * @throws IndexOutOfBoundsException When "/" is not found in the string. */ - private int getOrderIndex(String deleteParams) { + private int getOrderIndex(String deleteParams) throws IndexOutOfBoundsException { int slashIndex = deleteParams.indexOf('/'); //char OrderIndexInChar = deleteParams.charAt(slashIndex + 1); return Character.getNumericValue(deleteParams.charAt(slashIndex + 1)) - 10; @@ -65,8 +68,9 @@ public void execute() throws LotsException { * Change the quantity of that particular order index to 0. * * @param manager The list of people that are ordering. + * @throws IndexOutOfBoundsException Throws when personIndex given is larger than the number of people. */ - private void deleteOrder(PeopleManager manager) { + private void deleteOrder(PeopleManager manager) throws IndexOutOfBoundsException { Person personToDeleteFrom = manager.listOfPeople.get(personIndex); personToDeleteFrom.individualFoodOrders[orderIndex] = 0; //Add deletion message to notify user From 5251a239efd0799b84462d9750216846f867a7cb Mon Sep 17 00:00:00 2001 From: WaiKit-nus Date: Fri, 8 Oct 2021 14:39:39 +0800 Subject: [PATCH 034/429] Add Exceptions for Add-Command Class. --- src/main/java/seedu/duke/AddCommand.java | 78 ++++++++++++++++++------ 1 file changed, 60 insertions(+), 18 deletions(-) diff --git a/src/main/java/seedu/duke/AddCommand.java b/src/main/java/seedu/duke/AddCommand.java index f346816d86..42463c4ba2 100644 --- a/src/main/java/seedu/duke/AddCommand.java +++ b/src/main/java/seedu/duke/AddCommand.java @@ -10,31 +10,51 @@ public class AddCommand extends Command { private final int foodIndex; private final int foodQuantity; - public AddCommand(String input) { - int[] indexOfSlashes = indexOfSlashes(input); - this.personName = getPersonName(input, indexOfSlashes[0], indexOfSlashes[1]); - this.foodIndex = getFoodIndex(input, indexOfSlashes[1], indexOfSlashes[2]); - this.foodQuantity = getFoodQuantity(input, indexOfSlashes[2]); + + /** + * Constructor with Regex checking input. If it does not match desirable input, then + * variables will be initialised with a fixed input. + * @param input will be returned by functions if it passes regex. + * will return fixed variables if it does not pass regex, and will throw exceptions. + */ + public AddCommand(String input) throws Exception { + if (checkUserInput(input)) { + int[] indexOfSlashes = indexOfSlashes(input); + this.personName = getPersonName(input, indexOfSlashes[0], indexOfSlashes[1]); + this.foodIndex = getFoodIndex(input, indexOfSlashes[1], indexOfSlashes[2]); + this.foodQuantity = getFoodQuantity(input, indexOfSlashes[2]); + } else { + //throw new lotsException(); + this.personName = ""; + this.foodIndex = -1; + this.foodQuantity = -1; + } } /** * Adds a new person with the given attributes into the list of people. + * If it did not pass regex, it will throw new exception and no new addition of + * person to the list of people will happen. */ @Override public void execute() { - Person person = new Person(personName); - person.addFoodToIndividualFoodOrders(foodIndex); - PeopleManager.listOfPeople.add(person); + if (personName != "" && foodIndex != -1 && foodQuantity != -1) { + Person person = new Person(personName); + person.addFoodToIndividualFoodOrders(foodIndex); + PeopleManager.listOfPeople.add(person); + } else { + //throw new lotsException(); + } } /** * Regex to check User Input before passing onto the class. - * @param input - * @return + * @param input user input. + * @return a boolean true if the user input passes the regex. */ - public boolean checkUserInput(String input) { + private boolean checkUserInput(String input) { Pattern pattern = Pattern.compile( - "^add \\/n [a-zA-Z1-9][\\w \\d]{1,50} \\/i \\d{1,2} \\/q \\d{1,3}$", + "^add \\/n [a-zA-Z0-9][\\w \\d]{1,50} \\/i \\d{1,2} \\/q \\d{1,3}$", Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(input); boolean matchFound = matcher.find(); @@ -83,10 +103,21 @@ private static String getPersonName(String input, int indexOfFirstSlash, int ind * @param indexOfThirdSlash Third "/" index. * @return Food index in int type. */ - private static int getFoodIndex(String input, int indexOfSecondSlash, int indexOfThirdSlash) { + private static int getFoodIndex(String input, int indexOfSecondSlash, int indexOfThirdSlash) throws Exception { String subStringFoodIndex = input.substring(indexOfSecondSlash + 1, indexOfThirdSlash - 1).trim(); - int foodIndex = Integer.parseInt(subStringFoodIndex); - return foodIndex; + try { + int foodIndex = Integer.parseInt(subStringFoodIndex); + if (foodIndex > Menu.TOTAL_MENU_ITEMS || foodIndex < 0) { + //throw new lotsException + return -1; + } else { + return foodIndex; + } + } catch (NumberFormatException e) { + String errorMsg = "Please make sure the Food Index is keyed in correctly."; + System.out.println(errorMsg); + return -1; + } } /** @@ -95,9 +126,20 @@ private static int getFoodIndex(String input, int indexOfSecondSlash, int indexO * @param indexOfThirdSlash Third "/" index. * @return Food Quantity in int type. */ - private static int getFoodQuantity(String input, int indexOfThirdSlash) { + private static int getFoodQuantity(String input, int indexOfThirdSlash) throws Exception { String subStringFoodQuantity = input.substring(indexOfThirdSlash + 1, input.length()).trim(); - int foodQuantity = Integer.parseInt(subStringFoodQuantity); - return foodQuantity; + try { + int foodQuantity = Integer.parseInt(subStringFoodQuantity); + if (foodQuantity > 999 || foodQuantity < 0) { + //throw new lotsException + return -1; + } else { + return foodQuantity; + } + } catch (NumberFormatException e) { + String errorMsg = "Please make sure the Food Quantity is keyed in correctly."; + System.out.println(errorMsg); + return -1; + } } } From 0caad161c188953ed5aae34b7746e71b7508ffa3 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Fri, 8 Oct 2021 15:34:25 +0800 Subject: [PATCH 035/429] Add Ui class to handle all I/O operations. Also included welcome & Goodbye message. Fix #35 --- src/main/java/seedu/duke/Duke.java | 13 ++------ src/main/java/seedu/duke/Ui.java | 46 ++++++++++++++++++++++++++++ src/test/java/seedu/duke/UiTest.java | 7 +++++ 3 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 src/main/java/seedu/duke/Ui.java create mode 100644 src/test/java/seedu/duke/UiTest.java diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 9f8063ee94..2dddde5e0c 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -1,21 +1,12 @@ package seedu.duke; -import java.util.Scanner; - public class Duke { /** * Main entry-point for the java.duke.Duke application. */ public static void main(String[] args) { - String logo = " ____ _ \n" - + "| _ \\ _ _| | _____ \n" - + "| | | | | | | |/ / _ \\\n" - + "| |_| | |_| | < __/\n" - + "|____/ \\__,_|_|\\_\\___|\n"; - System.out.println("Hello from\n" + logo); - System.out.println("What is your name?"); + Ui.printWelcome(); - Scanner in = new Scanner(System.in); - System.out.println("Hello " + in.nextLine()); + Ui.printGoodbye(); } } \ No newline at end of file diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java new file mode 100644 index 0000000000..64aff20210 --- /dev/null +++ b/src/main/java/seedu/duke/Ui.java @@ -0,0 +1,46 @@ +package seedu.duke; + +import java.util.Scanner; + +public class Ui { + + private static final String BORDER = "==================================" + + "=============================" + + "============================="; + private static final Scanner SC = new Scanner(System.in); + + /** + * Prints the string provided followed by the border. + * + * @param stringToPrint The string to output to user. + */ + public static void printWithBorder(String stringToPrint) { + System.out.println(stringToPrint); + System.out.println(BORDER); + } + + public static void printWithoutBorder(String stringToPrint) { + System.out.println(stringToPrint); + } + + /** + * Returns the user's input with the leading and + * trailing spaces stripped. + * + * @return The User's input in String. + */ + public static String readInput() { + String input = SC.nextLine(); + return input.strip(); + } + + public static void printWelcome() { + String welcomeMsg = "Welcome to L.O.T.S! What would you like to track today?"; + printWithBorder(welcomeMsg); + } + + public static void printGoodbye() { + String byeMsg = "Thank you for using L.O.T.S! Good bye!"; + printWithBorder(byeMsg); + } +} diff --git a/src/test/java/seedu/duke/UiTest.java b/src/test/java/seedu/duke/UiTest.java new file mode 100644 index 0000000000..f8a98f7279 --- /dev/null +++ b/src/test/java/seedu/duke/UiTest.java @@ -0,0 +1,7 @@ +package seedu.duke; + +import org.junit.jupiter.api.Test; + +public class UiTest { + +} From c32917f916e8b057e6b2680927c0f53866a92a04 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Fri, 8 Oct 2021 15:43:47 +0800 Subject: [PATCH 036/429] Edit output redirect test Expected test files to match actual output. --- text-ui-test/EXPECTED.TXT | 13 ++++--------- text-ui-test/input.txt | 1 - 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 892cb6cae7..f2de9fcad8 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,9 +1,4 @@ -Hello from - ____ _ -| _ \ _ _| | _____ -| | | | | | | |/ / _ \ -| |_| | |_| | < __/ -|____/ \__,_|_|\_\___| - -What is your name? -Hello James Gosling +Welcome to L.O.T.S! What would you like to track today? +============================================================================================ +Thank you for using L.O.T.S! Good bye! +============================================================================================ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index f6ec2e9f95..e69de29bb2 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1 +0,0 @@ -James Gosling \ No newline at end of file From 6c08055f6cde659e1267ca58a318aaa573037515 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Fri, 8 Oct 2021 21:52:59 +0800 Subject: [PATCH 037/429] Added code to return delete and orders commands in the parser --- src/main/java/seedu/duke/Parser.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 93befb4988..d05c864a45 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -23,6 +23,13 @@ public static Command getCommand(String input) { return new Command(); case ("orders"): return new Command(); + try { + return new DeleteCommand(input); + } catch (LotsException e) { + System.out.println(e.getMessage()); + } + case (OrdersCommand.COMMAND_WORD): + return new OrdersCommand(); case ("menu"): return new Command(); default: From bfd0ac8fa11387fc831677879608757c5c474aab Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Fri, 8 Oct 2021 21:55:45 +0800 Subject: [PATCH 038/429] Added Orders Command Class. Also implemented feature to print current orders. --- src/main/java/seedu/duke/OrdersCommand.java | 14 +++++ src/main/java/seedu/duke/Parser.java | 3 - src/main/java/seedu/duke/Ui.java | 64 +++++++++++++++++++++ 3 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 src/main/java/seedu/duke/OrdersCommand.java diff --git a/src/main/java/seedu/duke/OrdersCommand.java b/src/main/java/seedu/duke/OrdersCommand.java new file mode 100644 index 0000000000..157d91fab0 --- /dev/null +++ b/src/main/java/seedu/duke/OrdersCommand.java @@ -0,0 +1,14 @@ +package seedu.duke; + +public class OrdersCommand extends Command { + + public static final String COMMAND_WORD = "list"; + + /** + * Prints all the current orders + */ + @Override + public void execute() { + Ui.printOrdersList(); + } +} diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index d05c864a45..8e6eac8b65 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -20,9 +20,6 @@ public static Command getCommand(String input) { case ("add"): return new Command(); case (DeleteCommand.COMMAND_WORD): - return new Command(); - case ("orders"): - return new Command(); try { return new DeleteCommand(input); } catch (LotsException e) { diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 64aff20210..fb8c578746 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -43,4 +43,68 @@ public static void printGoodbye() { String byeMsg = "Thank you for using L.O.T.S! Good bye!"; printWithBorder(byeMsg); } + + /** + * Prints a list of all the orders made so far. + */ + public static void printOrdersList() { + int totalNumOfPeopleOrdered = PeopleManager.listOfPeople.size(); + if (totalNumOfPeopleOrdered == 0) { + System.out.println("Your order list is empty!"); + } else { + for (int i = 0; i < totalNumOfPeopleOrdered; i++) { + String currentPersonName = PeopleManager.listOfPeople.get(i).personName; + System.out.println((i + 1) + ". " + currentPersonName + ":"); + printIndividualPersonOrder(PeopleManager.listOfPeople.get(i)); + } + } + } + + /** + * Prints a list of the food items that an individual person has ordered, and displays the total + * cost of the items. + * + * @param currentPerson Person entry in the list that is currently being accessed. + */ + private static void printIndividualPersonOrder(Person currentPerson) { + double totalCost = 0; + int currentItem = 1; + int totalMenuItems = Menu.TOTAL_MENU_ITEMS; + Integer[] currentIndividualOrders = currentPerson.individualFoodOrders; + for (int i = 0; i < totalMenuItems; i++) { + if (currentIndividualOrders[i] != 0 ) { + double currentCost = currentIndividualOrders[i] * getFoodCost(i); + System.out.println("\t" + currentItem + ") " + getFoodName(i) + " | Quantity = " + + currentIndividualOrders[i] + " | Cost = $" + String.format("%.2f", currentCost)); + totalCost = totalCost + currentCost; + currentItem++; + } + } + System.out.println("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); + } + + /** + * Obtains the corresponding food name of the current food index. + * + * @param currentFoodIndex Index of food item currently accessed. + * @return Name of food in String type. + */ + private static String getFoodName(int currentFoodIndex) { + String[] foodName = {"Ban Mian", "Chicken Rice", + "Fried Prawn Noodles (Hokkien Mee)", "Minced Meat Noodles(Ba Chor Mee)", + "Fried Carrot Cake", "Fried Kway Teow (Char Kway Teow)", + "Pork Rib Soup (Bak Kut Teh)", "Nasi Lemak"}; + return foodName[currentFoodIndex]; + } + + /** + * Obtains the corresponding cost of the current food index. + * + * @param currentFoodIndex Index of food item currently accessed. + * @return Cost of food in Double type. + */ + private static double getFoodCost(int currentFoodIndex) { + double[] foodPrice = {3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 5.0, 3.6}; + return foodPrice[currentFoodIndex]; + } } From 874816914f31589e7fd2cad2b8dd6e581ca5ed72 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Fri, 8 Oct 2021 22:23:55 +0800 Subject: [PATCH 039/429] Fixed check style issues --- src/main/java/seedu/duke/OrdersCommand.java | 2 +- src/main/java/seedu/duke/Parser.java | 1 + src/main/java/seedu/duke/Ui.java | 13 ++++++------- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/duke/OrdersCommand.java b/src/main/java/seedu/duke/OrdersCommand.java index 157d91fab0..36402959ca 100644 --- a/src/main/java/seedu/duke/OrdersCommand.java +++ b/src/main/java/seedu/duke/OrdersCommand.java @@ -5,7 +5,7 @@ public class OrdersCommand extends Command { public static final String COMMAND_WORD = "list"; /** - * Prints all the current orders + * Prints all the current orders. */ @Override public void execute() { diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 8e6eac8b65..7a859ea61f 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -24,6 +24,7 @@ public static Command getCommand(String input) { return new DeleteCommand(input); } catch (LotsException e) { System.out.println(e.getMessage()); + return new UnknownCommand(); } case (OrdersCommand.COMMAND_WORD): return new OrdersCommand(); diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index fb8c578746..a66ed88570 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -72,10 +72,10 @@ private static void printIndividualPersonOrder(Person currentPerson) { int totalMenuItems = Menu.TOTAL_MENU_ITEMS; Integer[] currentIndividualOrders = currentPerson.individualFoodOrders; for (int i = 0; i < totalMenuItems; i++) { - if (currentIndividualOrders[i] != 0 ) { + if (currentIndividualOrders[i] != 0) { double currentCost = currentIndividualOrders[i] * getFoodCost(i); - System.out.println("\t" + currentItem + ") " + getFoodName(i) + " | Quantity = " + - currentIndividualOrders[i] + " | Cost = $" + String.format("%.2f", currentCost)); + System.out.println("\t" + currentItem + ") " + getFoodName(i) + " | Quantity = " + + currentIndividualOrders[i] + " | Cost = $" + String.format("%.2f", currentCost)); totalCost = totalCost + currentCost; currentItem++; } @@ -90,10 +90,9 @@ private static void printIndividualPersonOrder(Person currentPerson) { * @return Name of food in String type. */ private static String getFoodName(int currentFoodIndex) { - String[] foodName = {"Ban Mian", "Chicken Rice", - "Fried Prawn Noodles (Hokkien Mee)", "Minced Meat Noodles(Ba Chor Mee)", - "Fried Carrot Cake", "Fried Kway Teow (Char Kway Teow)", - "Pork Rib Soup (Bak Kut Teh)", "Nasi Lemak"}; + String[] foodName = {"Ban Mian", "Chicken Rice", "Fried Prawn Noodles (Hokkien Mee)", + "Minced Meat Noodles(Ba Chor Mee)", "Fried Carrot Cake", "Fried Kway Teow (Char Kway Teow)", + "Pork Rib Soup (Bak Kut Teh)", "Nasi Lemak"}; return foodName[currentFoodIndex]; } From 86bb6bd3fb532da539b3afa2b1ab4a35afa3a158 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sat, 9 Oct 2021 01:46:20 +0800 Subject: [PATCH 040/429] MenuCommand Added --- data/foodData.txt | 8 +++++ src/main/java/seedu/duke/MenuCommand.java | 43 +++++++++++++++++++++++ src/main/java/seedu/duke/Ui.java | 11 ++++++ 3 files changed, 62 insertions(+) create mode 100644 data/foodData.txt create mode 100644 src/main/java/seedu/duke/MenuCommand.java diff --git a/data/foodData.txt b/data/foodData.txt new file mode 100644 index 0000000000..a22c2922e4 --- /dev/null +++ b/data/foodData.txt @@ -0,0 +1,8 @@ +Ban Mian|3.00 +Chicken Rice|3.00 +Fried Prawn Noodles (Hokkien Mee)|3.50 +Minced MeatNoodles (Ba Chor Mee)|3.00 +Fried Carrot Cake|3.00 +Fried Kway Teow (Char Kway Teow)|3.00 +Pork Rib Soup (Bak Kut Teh)|5.00 +Nasi Lemak|3.60 \ No newline at end of file diff --git a/src/main/java/seedu/duke/MenuCommand.java b/src/main/java/seedu/duke/MenuCommand.java new file mode 100644 index 0000000000..647ffa2aa4 --- /dev/null +++ b/src/main/java/seedu/duke/MenuCommand.java @@ -0,0 +1,43 @@ +package seedu.duke; +import java.io.FileNotFoundException; +import java.util.Scanner; +import java.io.File; +import java.util.ArrayList; + +public class MenuCommand extends Command{ + + ArrayList priceList=new ArrayList<>(); + ArrayList foodList=new ArrayList<>(); + + /** + * MenuCommand calls access to file to retrieve stored menu and + * prints menu in the format of index, foodname and price. + * */ + public MenuCommand() throws FileNotFoundException + { + try { + GetMenu(); + } catch (FileNotFoundException e) { + throw new FileNotFoundException("Menu file not found!"); + } + Ui.printMenuHeader(); + for (int i = 0; i < foodList.size(); i++) { + Ui.printMenu(i+1, foodList.get(i), priceList.get(i)); + } + } + + /** + * Get menu data from foodData.txt + * */ + private void GetMenu() throws FileNotFoundException + { + File myObject = new File("data/foodData.txt"); + Scanner myReader = new Scanner(myObject); + while (myReader.hasNextLine()) { + String data = myReader.nextLine(); + foodList.add(data.substring(0,data.indexOf("|"))); + priceList.add(Double.parseDouble(data.substring(data.indexOf("|")+1))); + } + myReader.close(); + } +} diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 64aff20210..71463d0ca3 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -4,6 +4,7 @@ public class Ui { + static String line = "--------------------------------------------------"; private static final String BORDER = "==================================" + "=============================" + "============================="; @@ -43,4 +44,14 @@ public static void printGoodbye() { String byeMsg = "Thank you for using L.O.T.S! Good bye!"; printWithBorder(byeMsg); } + + public static void printMenuHeader() { + System.out.println("index | Food Name | Price"); + System.out.println(line); + } + + public static void printMenu(int Index, String foodName, Double foodPrice) { + System.out.format("%-8d%-33s%7.2f%n", Index, foodName, foodPrice); + System.out.println(line); + } } From 141c53e3571685568fe58c34e1b31f8fda23bdab Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sat, 9 Oct 2021 02:04:06 +0800 Subject: [PATCH 041/429] update checkstyle errors --- src/main/java/seedu/duke/MenuCommand.java | 19 +++++++++---------- src/main/java/seedu/duke/Ui.java | 4 ++-- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/seedu/duke/MenuCommand.java b/src/main/java/seedu/duke/MenuCommand.java index 647ffa2aa4..610d1340a6 100644 --- a/src/main/java/seedu/duke/MenuCommand.java +++ b/src/main/java/seedu/duke/MenuCommand.java @@ -1,42 +1,41 @@ package seedu.duke; + import java.io.FileNotFoundException; import java.util.Scanner; import java.io.File; import java.util.ArrayList; -public class MenuCommand extends Command{ +public class MenuCommand extends Command { - ArrayList priceList=new ArrayList<>(); - ArrayList foodList=new ArrayList<>(); + ArrayList priceList = new ArrayList<>(); + ArrayList foodList = new ArrayList<>(); /** * MenuCommand calls access to file to retrieve stored menu and * prints menu in the format of index, foodname and price. * */ - public MenuCommand() throws FileNotFoundException - { + public MenuCommand() throws FileNotFoundException { try { - GetMenu(); + getMenu(); } catch (FileNotFoundException e) { throw new FileNotFoundException("Menu file not found!"); } Ui.printMenuHeader(); for (int i = 0; i < foodList.size(); i++) { - Ui.printMenu(i+1, foodList.get(i), priceList.get(i)); + Ui.printMenu(i + 1, foodList.get(i), priceList.get(i)); } } /** * Get menu data from foodData.txt * */ - private void GetMenu() throws FileNotFoundException - { + private void getMenu() throws FileNotFoundException { File myObject = new File("data/foodData.txt"); Scanner myReader = new Scanner(myObject); while (myReader.hasNextLine()) { String data = myReader.nextLine(); foodList.add(data.substring(0,data.indexOf("|"))); - priceList.add(Double.parseDouble(data.substring(data.indexOf("|")+1))); + priceList.add(Double.parseDouble(data.substring(data.indexOf("|") + 1))); } myReader.close(); } diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 71463d0ca3..38f0b89833 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -50,8 +50,8 @@ public static void printMenuHeader() { System.out.println(line); } - public static void printMenu(int Index, String foodName, Double foodPrice) { - System.out.format("%-8d%-33s%7.2f%n", Index, foodName, foodPrice); + public static void printMenu(int index, String foodName, Double foodPrice) { + System.out.format("%-8d%-33s%7.2f%n", index, foodName, foodPrice); System.out.println(line); } } From 42212eb19a785dc962295d990634d64d58cb19bf Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sun, 10 Oct 2021 11:54:30 +0800 Subject: [PATCH 042/429] execute menu update --- src/main/java/seedu/duke/MenuCommand.java | 22 +++++++++++++++++++--- src/main/java/seedu/duke/Ui.java | 2 +- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/duke/MenuCommand.java b/src/main/java/seedu/duke/MenuCommand.java index 610d1340a6..3f633af6d3 100644 --- a/src/main/java/seedu/duke/MenuCommand.java +++ b/src/main/java/seedu/duke/MenuCommand.java @@ -11,8 +11,7 @@ public class MenuCommand extends Command { ArrayList foodList = new ArrayList<>(); /** - * MenuCommand calls access to file to retrieve stored menu and - * prints menu in the format of index, foodname and price. + * MenuCommand calls access to file to retrieve stored menu * */ public MenuCommand() throws FileNotFoundException { try { @@ -20,6 +19,13 @@ public MenuCommand() throws FileNotFoundException { } catch (FileNotFoundException e) { throw new FileNotFoundException("Menu file not found!"); } + } + + /** + * prints menu in the format of index, foodname and price with column headers. + */ + @Override + public void execute(){ Ui.printMenuHeader(); for (int i = 0; i < foodList.size(); i++) { Ui.printMenu(i + 1, foodList.get(i), priceList.get(i)); @@ -32,11 +38,21 @@ public MenuCommand() throws FileNotFoundException { private void getMenu() throws FileNotFoundException { File myObject = new File("data/foodData.txt"); Scanner myReader = new Scanner(myObject); + extractMenuData(myReader); + myReader.close(); + } + + /** + * @param myReader contains menu data collected from the txt file + * extractMenuData seperates txt file content into individual lines + * and further seperates each line into food name and price to be + * stored in seperate arraylists + */ + private void extractMenuData(Scanner myReader) { while (myReader.hasNextLine()) { String data = myReader.nextLine(); foodList.add(data.substring(0,data.indexOf("|"))); priceList.add(Double.parseDouble(data.substring(data.indexOf("|") + 1))); } - myReader.close(); } } diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 38f0b89833..0ea4928ead 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -4,7 +4,7 @@ public class Ui { - static String line = "--------------------------------------------------"; + static final String line = "--------------------------------------------------"; private static final String BORDER = "==================================" + "=============================" + "============================="; From 36eb5dfc76300f54c64a4c7cb639f58b0bba9521 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sun, 10 Oct 2021 11:56:44 +0800 Subject: [PATCH 043/429] minor ui edit --- src/main/java/seedu/duke/Ui.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 0ea4928ead..40d0a609f1 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -4,7 +4,7 @@ public class Ui { - static final String line = "--------------------------------------------------"; + private static final String line = "--------------------------------------------------"; private static final String BORDER = "==================================" + "=============================" + "============================="; From 61a82319c9124f25115d54182c1dc61e5f8e3663 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sun, 10 Oct 2021 11:59:29 +0800 Subject: [PATCH 044/429] checkstyle edits --- src/main/java/seedu/duke/MenuCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/MenuCommand.java b/src/main/java/seedu/duke/MenuCommand.java index 3f633af6d3..51174e0b91 100644 --- a/src/main/java/seedu/duke/MenuCommand.java +++ b/src/main/java/seedu/duke/MenuCommand.java @@ -25,7 +25,7 @@ public MenuCommand() throws FileNotFoundException { * prints menu in the format of index, foodname and price with column headers. */ @Override - public void execute(){ + public void execute() { Ui.printMenuHeader(); for (int i = 0; i < foodList.size(); i++) { Ui.printMenu(i + 1, foodList.get(i), priceList.get(i)); @@ -47,7 +47,7 @@ private void getMenu() throws FileNotFoundException { * extractMenuData seperates txt file content into individual lines * and further seperates each line into food name and price to be * stored in seperate arraylists - */ + * */ private void extractMenuData(Scanner myReader) { while (myReader.hasNextLine()) { String data = myReader.nextLine(); From 4fb8db5809f764de1a43290871bc972220937618 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sun, 10 Oct 2021 12:03:13 +0800 Subject: [PATCH 045/429] Update MenuCommand.java --- src/main/java/seedu/duke/MenuCommand.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/duke/MenuCommand.java b/src/main/java/seedu/duke/MenuCommand.java index 51174e0b91..d0b0e608a4 100644 --- a/src/main/java/seedu/duke/MenuCommand.java +++ b/src/main/java/seedu/duke/MenuCommand.java @@ -11,7 +11,7 @@ public class MenuCommand extends Command { ArrayList foodList = new ArrayList<>(); /** - * MenuCommand calls access to file to retrieve stored menu + * MenuCommand calls access to file to retrieve stored menu. * */ public MenuCommand() throws FileNotFoundException { try { @@ -43,10 +43,10 @@ private void getMenu() throws FileNotFoundException { } /** - * @param myReader contains menu data collected from the txt file + * @param myReader contains menu data collected from the txt file. * extractMenuData seperates txt file content into individual lines - * and further seperates each line into food name and price to be - * stored in seperate arraylists + * and further seperates each line into food name and price to be + * stored in seperate arraylists. * */ private void extractMenuData(Scanner myReader) { while (myReader.hasNextLine()) { From 15201adf2427acc1ab04fa02138667ce8f1dbe57 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sun, 10 Oct 2021 12:06:19 +0800 Subject: [PATCH 046/429] Update MenuCommand.java --- src/main/java/seedu/duke/MenuCommand.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/duke/MenuCommand.java b/src/main/java/seedu/duke/MenuCommand.java index d0b0e608a4..42d30327d3 100644 --- a/src/main/java/seedu/duke/MenuCommand.java +++ b/src/main/java/seedu/duke/MenuCommand.java @@ -43,10 +43,11 @@ private void getMenu() throws FileNotFoundException { } /** - * @param myReader contains menu data collected from the txt file. * extractMenuData seperates txt file content into individual lines - * and further seperates each line into food name and price to be - * stored in seperate arraylists. + * and further seperates each line into food name and price to be + * stored in seperate arraylists. + * + * @param myReader contains menu data collected from the txt file. * */ private void extractMenuData(Scanner myReader) { while (myReader.hasNextLine()) { From 3a84dcf2a3b283dbe204fe629bb3667d6eefb1be Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sun, 10 Oct 2021 19:15:00 +0800 Subject: [PATCH 047/429] Edit Menu & MenuCommand to deal with local data. Also arranged some of the code. --- src/main/java/seedu/duke/Menu.java | 39 +++++++---------------- src/main/java/seedu/duke/MenuCommand.java | 30 +++++++++++------ src/main/java/seedu/duke/Parser.java | 16 ++++++---- src/main/java/seedu/duke/Ui.java | 8 +++++ src/test/java/seedu/duke/DukeTest.java | 1 + src/test/java/seedu/duke/ParserTest.java | 6 ++-- 6 files changed, 54 insertions(+), 46 deletions(-) diff --git a/src/main/java/seedu/duke/Menu.java b/src/main/java/seedu/duke/Menu.java index 78d0740bdf..e3bfa3b2c1 100644 --- a/src/main/java/seedu/duke/Menu.java +++ b/src/main/java/seedu/duke/Menu.java @@ -1,35 +1,18 @@ package seedu.duke; -public class Menu { - - public static final int TOTAL_MENU_ITEMS = 10; - - public Menu() { +import java.util.ArrayList; +import java.util.Arrays; - } +public class Menu { - /** - * print menu prints a fixed list of prestored foo items. - * */ - public static void printMenu() { - String line = "--------------------------------------------------"; - double[] foodPrice = {3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 5.0, 3.6}; - String[] foodName = {"Ban Mian ", "Chicken Rice ", - "Fried Prawn Noodles (Hokkien Mee)", "Minced MeatNoodles(Ba Chor Mee) ", - "Fried Carrot Cake ", "Fried Kway Teow (Char Kway Teow) ", - "Pork Rib Soup (Bak Kut Teh) ", "Nasi Lemak "}; - System.out.println("index | Food Name | Price"); - System.out.println(line); - for (int i = 0; i < foodPrice.length; i++) { - System.out.println((i + 1) + " | " + foodName[i] + " | $" - + String.format("%.2f", foodPrice[i])); - System.out.println(line); - } + private static String[] FOODS = {"Ban Mian", "Chicken Rice", "Fried Prawn Noodles (Hokkien Mee)", + "Minced MeatNoodles(Ba Chor Mee)", "Fried Carrot Cake", + "Fried Kway Teow (Char Kway Teow)", + "Pork Rib Soup (Bak Kut Teh)", "Nasi Lemak"}; + private static final Double[] PRICES = {3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 5.0, 3.6}; - } - // use map to store name and value - // add items - // show menu - // Print menu functions + public static final int TOTAL_MENU_ITEMS = PRICES.length; + public static final ArrayList FOODLIST = new ArrayList<>(Arrays.asList(FOODS)); + public static final ArrayList PRICELIST = new ArrayList<>(Arrays.asList(PRICES)); } diff --git a/src/main/java/seedu/duke/MenuCommand.java b/src/main/java/seedu/duke/MenuCommand.java index 42d30327d3..2d449843d4 100644 --- a/src/main/java/seedu/duke/MenuCommand.java +++ b/src/main/java/seedu/duke/MenuCommand.java @@ -1,28 +1,35 @@ package seedu.duke; import java.io.FileNotFoundException; +import java.lang.reflect.Array; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.Scanner; import java.io.File; import java.util.ArrayList; public class MenuCommand extends Command { - ArrayList priceList = new ArrayList<>(); - ArrayList foodList = new ArrayList<>(); + public static final String COMMAND_WORD = "menu"; + + private ArrayList priceList = new ArrayList<>(); + private ArrayList foodList = new ArrayList<>(); /** * MenuCommand calls access to file to retrieve stored menu. - * */ - public MenuCommand() throws FileNotFoundException { + */ + public MenuCommand() throws FileNotFoundException { try { getMenu(); } catch (FileNotFoundException e) { throw new FileNotFoundException("Menu file not found!"); } + extractLocalMenuData(); } /** - * prints menu in the format of index, foodname and price with column headers. + * Prints menu in the format of index, foodname and price with column headers. */ @Override public void execute() { @@ -34,7 +41,7 @@ public void execute() { /** * Get menu data from foodData.txt - * */ + */ private void getMenu() throws FileNotFoundException { File myObject = new File("data/foodData.txt"); Scanner myReader = new Scanner(myObject); @@ -46,14 +53,19 @@ private void getMenu() throws FileNotFoundException { * extractMenuData seperates txt file content into individual lines * and further seperates each line into food name and price to be * stored in seperate arraylists. - * + * * @param myReader contains menu data collected from the txt file. - * */ + */ private void extractMenuData(Scanner myReader) { while (myReader.hasNextLine()) { String data = myReader.nextLine(); - foodList.add(data.substring(0,data.indexOf("|"))); + foodList.add(data.substring(0, data.indexOf("|"))); priceList.add(Double.parseDouble(data.substring(data.indexOf("|") + 1))); } } + + private void extractLocalMenuData() { + priceList = Menu.PRICELIST; + foodList = Menu.FOODLIST; + } } diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 93befb4988..a20e8aea98 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -1,5 +1,7 @@ package seedu.duke; +import java.io.FileNotFoundException; + public class Parser { /** @@ -9,7 +11,9 @@ public class Parser { * @param input The user's input in String. * @return The respective Command type. */ - public static Command getCommand(String input) { + public static Command getCommand(String input) throws Exception { + assert input != null : "Input to getCommand Cannot be NULL!"; + if (input.isBlank() || input.isEmpty()) { return new UnknownCommand(); } @@ -17,14 +21,14 @@ public static Command getCommand(String input) { String commandInString = listOfInputs[0].toLowerCase(); switch (commandInString) { - case ("add"): - return new Command(); + case (AddCommand.COMMAND_WORD): + return new AddCommand(input); case (DeleteCommand.COMMAND_WORD): - return new Command(); + return new DeleteCommand(input); case ("orders"): return new Command(); - case ("menu"): - return new Command(); + case (MenuCommand.COMMAND_WORD): + return new MenuCommand(); default: return new UnknownCommand(); } diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 40d0a609f1..6b7cd7801b 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -50,6 +50,14 @@ public static void printMenuHeader() { System.out.println(line); } + /** + * Prints out the menu item that has been passed in + * using the proper format followed by a small border. + * + * @param index The Index of the food item. + * @param foodName The name of the food at the index in String. + * @param foodPrice The price of the food in Double. + */ public static void printMenu(int index, String foodName, Double foodPrice) { System.out.format("%-8d%-33s%7.2f%n", index, foodName, foodPrice); System.out.println(line); diff --git a/src/test/java/seedu/duke/DukeTest.java b/src/test/java/seedu/duke/DukeTest.java index 2dda5fd651..272a3a3401 100644 --- a/src/test/java/seedu/duke/DukeTest.java +++ b/src/test/java/seedu/duke/DukeTest.java @@ -9,4 +9,5 @@ class DukeTest { public void sampleTest() { assertTrue(true); } + } diff --git a/src/test/java/seedu/duke/ParserTest.java b/src/test/java/seedu/duke/ParserTest.java index ffc298795c..0f8a9e3e6b 100644 --- a/src/test/java/seedu/duke/ParserTest.java +++ b/src/test/java/seedu/duke/ParserTest.java @@ -1,5 +1,6 @@ package seedu.duke; +import jdk.jshell.spi.ExecutionControlProvider; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -8,15 +9,14 @@ public class ParserTest { @Test - public void getCommand_emptyCommand_nullReturned() { + public void getCommand_emptyCommand_nullReturned() throws Exception { Command output = Parser.getCommand(""); assertTrue(output instanceof UnknownCommand); } @Test - public void getCommand_spaces_nullReturned() { + public void getCommand_spaces_nullReturned() throws Exception { Command output = Parser.getCommand(" "); assertTrue(output instanceof UnknownCommand); } - } From c61ee5b9095e88c7f8d14cbc0607e4e45e5f8e05 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Mon, 11 Oct 2021 11:22:50 +0800 Subject: [PATCH 048/429] Edited code to retrieve food name and price list data from Menu class. --- src/main/java/seedu/duke/Ui.java | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 74ed877008..4aa78ce64c 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -74,8 +74,8 @@ private static void printIndividualPersonOrder(Person currentPerson) { Integer[] currentIndividualOrders = currentPerson.individualFoodOrders; for (int i = 0; i < totalMenuItems; i++) { if (currentIndividualOrders[i] != 0) { - double currentCost = currentIndividualOrders[i] * getFoodCost(i); - System.out.println("\t" + currentItem + ") " + getFoodName(i) + " | Quantity = " + double currentCost = currentIndividualOrders[i] * Menu.PRICELIST.get(i); + System.out.println("\t" + currentItem + ") " + Menu.FOODLIST.get(i) + " | Quantity = " + currentIndividualOrders[i] + " | Cost = $" + String.format("%.2f", currentCost)); totalCost = totalCost + currentCost; currentItem++; @@ -84,30 +84,6 @@ private static void printIndividualPersonOrder(Person currentPerson) { System.out.println("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); } - /** - * Obtains the corresponding food name of the current food index. - * - * @param currentFoodIndex Index of food item currently accessed. - * @return Name of food in String type. - */ - private static String getFoodName(int currentFoodIndex) { - String[] foodName = {"Ban Mian", "Chicken Rice", "Fried Prawn Noodles (Hokkien Mee)", - "Minced Meat Noodles(Ba Chor Mee)", "Fried Carrot Cake", "Fried Kway Teow (Char Kway Teow)", - "Pork Rib Soup (Bak Kut Teh)", "Nasi Lemak"}; - return foodName[currentFoodIndex]; - } - - /** - * Obtains the corresponding cost of the current food index. - * - * @param currentFoodIndex Index of food item currently accessed. - * @return Cost of food in Double type. - */ - private static double getFoodCost(int currentFoodIndex) { - double[] foodPrice = {3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 5.0, 3.6}; - return foodPrice[currentFoodIndex]; - } - public static void printMenuHeader() { System.out.println("index | Food Name | Price"); System.out.println(line); From a1a943d41b70f925b7c7263b0fec1fed0b48f34f Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Mon, 11 Oct 2021 11:32:34 +0800 Subject: [PATCH 049/429] Added ByeCommand class fix #43 --- src/main/java/seedu/duke/ByeCommand.java | 14 ++++++++++++++ src/main/java/seedu/duke/Duke.java | 1 - src/main/java/seedu/duke/Parser.java | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 src/main/java/seedu/duke/ByeCommand.java diff --git a/src/main/java/seedu/duke/ByeCommand.java b/src/main/java/seedu/duke/ByeCommand.java new file mode 100644 index 0000000000..d5c06c2598 --- /dev/null +++ b/src/main/java/seedu/duke/ByeCommand.java @@ -0,0 +1,14 @@ +package seedu.duke; + +public class ByeCommand extends Command { + + public static final String COMMAND_WORD = "bye"; + + /** + * Prints the goodbye message when the user exits the program. + */ + @Override + public void execute() { + Ui.printGoodbye(); + } +} diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 2dddde5e0c..79a4dd0360 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -7,6 +7,5 @@ public class Duke { public static void main(String[] args) { Ui.printWelcome(); - Ui.printGoodbye(); } } \ No newline at end of file diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 3e3375052f..66b79a9378 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -34,6 +34,8 @@ public static Command getCommand(String input) throws Exception { return new OrdersCommand(); case (MenuCommand.COMMAND_WORD): return new MenuCommand(); + case (ByeCommand.COMMAND_WORD): + return new ByeCommand(); default: return new UnknownCommand(); } From de32184ddef9156693397a1ad12e825d9a0945a8 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Mon, 11 Oct 2021 11:40:09 +0800 Subject: [PATCH 050/429] Fixed some errors --- src/main/java/seedu/duke/ByeCommand.java | 4 ---- src/main/java/seedu/duke/Duke.java | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/seedu/duke/ByeCommand.java b/src/main/java/seedu/duke/ByeCommand.java index d5c06c2598..798726c12c 100644 --- a/src/main/java/seedu/duke/ByeCommand.java +++ b/src/main/java/seedu/duke/ByeCommand.java @@ -4,11 +4,7 @@ public class ByeCommand extends Command { public static final String COMMAND_WORD = "bye"; - /** - * Prints the goodbye message when the user exits the program. - */ @Override public void execute() { - Ui.printGoodbye(); } } diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 79a4dd0360..2dddde5e0c 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -7,5 +7,6 @@ public class Duke { public static void main(String[] args) { Ui.printWelcome(); + Ui.printGoodbye(); } } \ No newline at end of file From 6bb667bd9f0930eb59d594725bb25ee98735fd4e Mon Sep 17 00:00:00 2001 From: markuslyq Date: Mon, 11 Oct 2021 11:54:44 +0800 Subject: [PATCH 051/429] Updated DeleteCommand --- src/main/java/seedu/duke/DeleteCommand.java | 18 ++++++++++++------ src/main/java/seedu/duke/Person.java | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/duke/DeleteCommand.java b/src/main/java/seedu/duke/DeleteCommand.java index cbc9762b44..54a749b1bc 100644 --- a/src/main/java/seedu/duke/DeleteCommand.java +++ b/src/main/java/seedu/duke/DeleteCommand.java @@ -39,12 +39,17 @@ private int getPersonIndex(String deleteParams) { * Get the index of the order to be deleted. * * @param deleteParams String from the user input after the delete command word. - * @return Returns the idnex of the order to be deleted in the form of an integer. + * @return Returns the index of the order to be deleted in the form of an integer. + * @throws IndexOutOfBoundsException When "/" is not found in the string. + * @throws LotsException When the order index is out of range. */ - private int getOrderIndex(String deleteParams) { + private int getOrderIndex(String deleteParams) throws IndexOutOfBoundsException, LotsException { int slashIndex = deleteParams.indexOf('/'); - //char OrderIndexInChar = deleteParams.charAt(slashIndex + 1); - return Character.getNumericValue(deleteParams.charAt(slashIndex + 1)) - 10; + int orderIndexInInteger = Character.getNumericValue(deleteParams.charAt(slashIndex + 1)) - 10; + if (orderIndexInInteger < 0) { + throw new LotsException("Please enter a valid order index!"); + } + return orderIndexInInteger; } /** @@ -66,9 +71,10 @@ public void execute() throws LotsException { * * @param manager The list of people that are ordering. */ - private void deleteOrder(PeopleManager manager) { + + private void deleteOrder(PeopleManager manager) throws IndexOutOfBoundsException, LotsException { Person personToDeleteFrom = manager.listOfPeople.get(personIndex); - personToDeleteFrom.individualFoodOrders[orderIndex] = 0; + personToDeleteFrom.deleteParticularOrder(orderIndex); //Add deletion message to notify user } } diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 70207f9e1e..8771b06e73 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -11,6 +11,7 @@ public class Person { /** * Constructor for Person. * Individual Food order list will be populated with 0 on initialisation. + * * @param personName Name of the person. */ public Person(String personName) { @@ -29,6 +30,7 @@ private void setupIndividualFoodOrders() { /** * Add the quantity of the corresponding food index by 1. + * * @param foodIndex Index of food in the menu. */ protected String addFoodToIndividualFoodOrders(int foodIndex) { @@ -43,6 +45,7 @@ protected String addFoodToIndividualFoodOrders(int foodIndex) { /** * Minus the quantity of the corresponding food index by 1. * If the quantity of food is 0, the quantity remains 0. + * * @param foodIndex Index of food in the menu. */ protected String removeFoodFromIndividualFoodOrders(int foodIndex) { @@ -57,4 +60,20 @@ protected String removeFoodFromIndividualFoodOrders(int foodIndex) { return foodIndexOutOfBoundsErrorMessage; } } + + public void deleteParticularOrder(int orderIndex) throws LotsException { + int numberOfOrders = 0; + for (int i = 0; i < totalMenuItems; i++) { + if (individualFoodOrders[i] > 0) { + numberOfOrders++; + } + if (orderIndex + 1 == numberOfOrders) { + individualFoodOrders[i] = 0; + } + } + if (orderIndex + 1 > numberOfOrders) { + throw new LotsException("Please enter a valid order index!"); + } + } + } From 23940e8c7cbfbda12dee3d701fe98cccfa087aad Mon Sep 17 00:00:00 2001 From: markuslyq Date: Mon, 11 Oct 2021 14:27:51 +0800 Subject: [PATCH 052/429] Created a few getters and setters in the PeopleManager class. --- src/main/java/seedu/duke/PeopleManager.java | 29 +++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java index 0506e47448..9203673058 100644 --- a/src/main/java/seedu/duke/PeopleManager.java +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -11,6 +11,7 @@ public PeopleManager() { /** * Loops through the list and count the number of people in the list. + * * @return the counter of the number of people in the list. */ public int countPeopleInList() { @@ -20,4 +21,32 @@ public int countPeopleInList() { } return counter; } + + /** + * Returns the person object given its index. + * + * @param personIndex The index of the person to retrieve. + * @return Returns a Person object of a particular index. + */ + public Person getPerson(int personIndex) { + return listOfPeople.get(personIndex); + } + + /** + * Adds a person object to the list of people. + * + * @param person Person to be added to the list. + */ + public void addPerson(Person person) { + listOfPeople.add(person); + } + + /** + * Returns the number of people in the linked list. + * + * @return Returns the length of the linked list. + */ + public int getSize() { + return listOfPeople.size(); + } } \ No newline at end of file From 5aac14c114cbfded7a5cb6fb53278c9209809109 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Mon, 11 Oct 2021 14:28:24 +0800 Subject: [PATCH 053/429] Added a method to set the quantity to 0 in the Person class. --- src/main/java/seedu/duke/Person.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 8771b06e73..3b952a2fd1 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -4,7 +4,7 @@ public class Person { protected int totalMenuItems = Menu.TOTAL_MENU_ITEMS; protected String personName; - protected Integer[] individualFoodOrders = new Integer[totalMenuItems]; + protected int[] individualFoodOrders = new int[totalMenuItems]; private String foodIndexOutOfBoundsErrorMessage = "Please enter the right menu number!"; private String functionPassedMessage = "Completed!"; @@ -61,6 +61,12 @@ protected String removeFoodFromIndividualFoodOrders(int foodIndex) { } } + /** + * Sets the quantity of a particular food order in the order array to 0 + * + * @param orderIndex Index of the order whose quantity is getting set to 0. + * @throws LotsException When order index is more than the number of orders. + */ public void deleteParticularOrder(int orderIndex) throws LotsException { int numberOfOrders = 0; for (int i = 0; i < totalMenuItems; i++) { From 0b1dfcd681f6e11230ffa51828718c7f29cda99d Mon Sep 17 00:00:00 2001 From: markuslyq Date: Mon, 11 Oct 2021 14:28:44 +0800 Subject: [PATCH 054/429] Made a few output changes. --- src/main/java/seedu/duke/DeleteCommand.java | 4 ++-- src/main/java/seedu/duke/OrdersCommand.java | 2 +- src/main/java/seedu/duke/Ui.java | 25 +++++++++++++++------ 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/main/java/seedu/duke/DeleteCommand.java b/src/main/java/seedu/duke/DeleteCommand.java index 2c99797303..274e277033 100644 --- a/src/main/java/seedu/duke/DeleteCommand.java +++ b/src/main/java/seedu/duke/DeleteCommand.java @@ -75,8 +75,8 @@ public void execute() throws LotsException { * @throws IndexOutOfBoundsException Throws when personIndex given is larger than the number of people. */ private void deleteOrder (PeopleManager manager) throws IndexOutOfBoundsException, LotsException { - Person personToDeleteFrom = manager.listOfPeople.get(personIndex); + Person personToDeleteFrom = manager.getPerson(personIndex); personToDeleteFrom.deleteParticularOrder(orderIndex); - //Add deletion message to notify user + Ui.printDeleteMessage(); } } diff --git a/src/main/java/seedu/duke/OrdersCommand.java b/src/main/java/seedu/duke/OrdersCommand.java index 36402959ca..db251ca596 100644 --- a/src/main/java/seedu/duke/OrdersCommand.java +++ b/src/main/java/seedu/duke/OrdersCommand.java @@ -9,6 +9,6 @@ public class OrdersCommand extends Command { */ @Override public void execute() { - Ui.printOrdersList(); + Ui.printOrdersList(peopleManager); } } diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 4aa78ce64c..e3dbe8f135 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -47,16 +47,18 @@ public static void printGoodbye() { /** * Prints a list of all the orders made so far. + * + * @param peopleManager List of people who are ordering. */ - public static void printOrdersList() { - int totalNumOfPeopleOrdered = PeopleManager.listOfPeople.size(); + public static void printOrdersList(PeopleManager peopleManager) { + int totalNumOfPeopleOrdered = peopleManager.getSize(); if (totalNumOfPeopleOrdered == 0) { System.out.println("Your order list is empty!"); } else { for (int i = 0; i < totalNumOfPeopleOrdered; i++) { - String currentPersonName = PeopleManager.listOfPeople.get(i).personName; + String currentPersonName = peopleManager.getPerson(i).personName; System.out.println((i + 1) + ". " + currentPersonName + ":"); - printIndividualPersonOrder(PeopleManager.listOfPeople.get(i)); + printIndividualPersonOrder(peopleManager.getPerson(i)); } } } @@ -71,7 +73,7 @@ private static void printIndividualPersonOrder(Person currentPerson) { double totalCost = 0; int currentItem = 1; int totalMenuItems = Menu.TOTAL_MENU_ITEMS; - Integer[] currentIndividualOrders = currentPerson.individualFoodOrders; + int[] currentIndividualOrders = currentPerson.individualFoodOrders; for (int i = 0; i < totalMenuItems; i++) { if (currentIndividualOrders[i] != 0) { double currentCost = currentIndividualOrders[i] * Menu.PRICELIST.get(i); @@ -84,6 +86,15 @@ private static void printIndividualPersonOrder(Person currentPerson) { System.out.println("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); } + //To be further improved + + /** + * Prints a message to notify the user of the deletion of an order. + */ + public static void printDeleteMessage() { + System.out.println("Alright, that order has been deleted!"); + } + public static void printMenuHeader() { System.out.println("index | Food Name | Price"); System.out.println(line); @@ -93,8 +104,8 @@ public static void printMenuHeader() { * Prints out the menu item that has been passed in * using the proper format followed by a small border. * - * @param index The Index of the food item. - * @param foodName The name of the food at the index in String. + * @param index The Index of the food item. + * @param foodName The name of the food at the index in String. * @param foodPrice The price of the food in Double. */ public static void printMenu(int index, String foodName, Double foodPrice) { From 42da97025358cb62b8f1d75ea2c346e9bc3c4517 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Mon, 11 Oct 2021 14:30:26 +0800 Subject: [PATCH 055/429] Update AddCommand Exceptions. --- src/main/java/seedu/duke/AddCommand.java | 46 +++++++++++++----------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/src/main/java/seedu/duke/AddCommand.java b/src/main/java/seedu/duke/AddCommand.java index 42463c4ba2..386d832889 100644 --- a/src/main/java/seedu/duke/AddCommand.java +++ b/src/main/java/seedu/duke/AddCommand.java @@ -15,16 +15,16 @@ public class AddCommand extends Command { * Constructor with Regex checking input. If it does not match desirable input, then * variables will be initialised with a fixed input. * @param input will be returned by functions if it passes regex. - * will return fixed variables if it does not pass regex, and will throw exceptions. + * will return fixed variables if it does not pass regex. */ - public AddCommand(String input) throws Exception { + public AddCommand(String input) throws LotsException { if (checkUserInput(input)) { int[] indexOfSlashes = indexOfSlashes(input); this.personName = getPersonName(input, indexOfSlashes[0], indexOfSlashes[1]); this.foodIndex = getFoodIndex(input, indexOfSlashes[1], indexOfSlashes[2]); this.foodQuantity = getFoodQuantity(input, indexOfSlashes[2]); } else { - //throw new lotsException(); + //adds a constant value to the initialised variable to flag it to be wrong. this.personName = ""; this.foodIndex = -1; this.foodQuantity = -1; @@ -35,15 +35,16 @@ public AddCommand(String input) throws Exception { * Adds a new person with the given attributes into the list of people. * If it did not pass regex, it will throw new exception and no new addition of * person to the list of people will happen. + * @throws LotsException Throws a new LotsException when the command is invalid. */ @Override - public void execute() { + public void execute() throws LotsException { if (personName != "" && foodIndex != -1 && foodQuantity != -1) { Person person = new Person(personName); person.addFoodToIndividualFoodOrders(foodIndex); PeopleManager.listOfPeople.add(person); } else { - //throw new lotsException(); + throw new LotsException("Please enter a valid Add Command!"); } } @@ -51,14 +52,19 @@ public void execute() { * Regex to check User Input before passing onto the class. * @param input user input. * @return a boolean true if the user input passes the regex. + * @throws IllegalArgumentException when the pattern for Regex is not able to be interpreted. */ - private boolean checkUserInput(String input) { - Pattern pattern = Pattern.compile( - "^add \\/n [a-zA-Z0-9][\\w \\d]{1,50} \\/i \\d{1,2} \\/q \\d{1,3}$", - Pattern.CASE_INSENSITIVE); - Matcher matcher = pattern.matcher(input); - boolean matchFound = matcher.find(); - return matchFound; + private boolean checkUserInput(String input) throws IllegalArgumentException { + try { + Pattern pattern = Pattern.compile( + "^add \\/n [a-zA-Z0-9][\\w \\d]{1,50} \\/i \\d{1,2} \\/q \\d{1,3}$", + Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(input); + boolean matchFound = matcher.find(); + return matchFound; + } catch (IllegalArgumentException e) { + return false; + } } /** @@ -102,21 +108,21 @@ private static String getPersonName(String input, int indexOfFirstSlash, int ind * @param indexOfSecondSlash Second "/" index. * @param indexOfThirdSlash Third "/" index. * @return Food index in int type. + * @throw NumberFormatException when the index is out of range. */ - private static int getFoodIndex(String input, int indexOfSecondSlash, int indexOfThirdSlash) throws Exception { + private static int getFoodIndex(String input, int indexOfSecondSlash, int indexOfThirdSlash) + throws NumberFormatException, LotsException { String subStringFoodIndex = input.substring(indexOfSecondSlash + 1, indexOfThirdSlash - 1).trim(); try { int foodIndex = Integer.parseInt(subStringFoodIndex); if (foodIndex > Menu.TOTAL_MENU_ITEMS || foodIndex < 0) { - //throw new lotsException return -1; } else { return foodIndex; } } catch (NumberFormatException e) { String errorMsg = "Please make sure the Food Index is keyed in correctly."; - System.out.println(errorMsg); - return -1; + throw new LotsException(errorMsg); } } @@ -125,21 +131,21 @@ private static int getFoodIndex(String input, int indexOfSecondSlash, int indexO * @param input User input. * @param indexOfThirdSlash Third "/" index. * @return Food Quantity in int type. + * @throws NumberFormatException when the quantity is out of range. */ - private static int getFoodQuantity(String input, int indexOfThirdSlash) throws Exception { + private static int getFoodQuantity(String input, int indexOfThirdSlash) + throws NumberFormatException, LotsException { String subStringFoodQuantity = input.substring(indexOfThirdSlash + 1, input.length()).trim(); try { int foodQuantity = Integer.parseInt(subStringFoodQuantity); if (foodQuantity > 999 || foodQuantity < 0) { - //throw new lotsException return -1; } else { return foodQuantity; } } catch (NumberFormatException e) { String errorMsg = "Please make sure the Food Quantity is keyed in correctly."; - System.out.println(errorMsg); - return -1; + throw new LotsException(errorMsg); } } } From a8f4f2bee8bfb6375f2967c419a1ec8a4e6f3c76 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Mon, 11 Oct 2021 14:34:33 +0800 Subject: [PATCH 056/429] Updated DeleteCommand --- src/main/java/seedu/duke/DeleteCommand.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/duke/DeleteCommand.java b/src/main/java/seedu/duke/DeleteCommand.java index 274e277033..bf728704e9 100644 --- a/src/main/java/seedu/duke/DeleteCommand.java +++ b/src/main/java/seedu/duke/DeleteCommand.java @@ -74,9 +74,9 @@ public void execute() throws LotsException { * @param manager The list of people that are ordering. * @throws IndexOutOfBoundsException Throws when personIndex given is larger than the number of people. */ - private void deleteOrder (PeopleManager manager) throws IndexOutOfBoundsException, LotsException { - Person personToDeleteFrom = manager.getPerson(personIndex); - personToDeleteFrom.deleteParticularOrder(orderIndex); - Ui.printDeleteMessage(); - } + private void deleteOrder(PeopleManager manager) throws IndexOutOfBoundsException, LotsException { + Person personToDeleteFrom = manager.getPerson(personIndex); + personToDeleteFrom.deleteParticularOrder(orderIndex); + Ui.printDeleteMessage(); } +} From 8a48249ac4a539d6d22b75b5c2d45b9fcff6c8e7 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Mon, 11 Oct 2021 14:37:28 +0800 Subject: [PATCH 057/429] Updated JavaDocs of Person class --- src/main/java/seedu/duke/Person.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 3b952a2fd1..bfc28d470d 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -62,7 +62,7 @@ protected String removeFoodFromIndividualFoodOrders(int foodIndex) { } /** - * Sets the quantity of a particular food order in the order array to 0 + * Sets the quantity of a particular food order in the order array to 0. * * @param orderIndex Index of the order whose quantity is getting set to 0. * @throws LotsException When order index is more than the number of orders. From e97b3a5a972c88f6d1ff375fca22e59a24355bc9 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Mon, 11 Oct 2021 20:04:01 +0800 Subject: [PATCH 058/429] Combined all classes in Duke class file to run. Fixed minor bugs found to get allow Duke to run at the bare minimum. Note: Yet to check for edge cases. Fix #50 --- src/main/java/seedu/duke/AddCommand.java | 41 +++++++++++--------- src/main/java/seedu/duke/DeleteCommand.java | 6 ++- src/main/java/seedu/duke/Duke.java | 28 ++++++++++++- src/main/java/seedu/duke/MenuCommand.java | 5 ++- src/main/java/seedu/duke/Parser.java | 9 +---- src/main/java/seedu/duke/PeopleManager.java | 11 +++++- src/main/java/seedu/duke/Person.java | 2 +- src/main/java/seedu/duke/Ui.java | 25 +++++++----- src/main/java/seedu/duke/UnknownCommand.java | 2 +- 9 files changed, 87 insertions(+), 42 deletions(-) diff --git a/src/main/java/seedu/duke/AddCommand.java b/src/main/java/seedu/duke/AddCommand.java index 386d832889..ebeb17b3a8 100644 --- a/src/main/java/seedu/duke/AddCommand.java +++ b/src/main/java/seedu/duke/AddCommand.java @@ -14,20 +14,18 @@ public class AddCommand extends Command { /** * Constructor with Regex checking input. If it does not match desirable input, then * variables will be initialised with a fixed input. + * * @param input will be returned by functions if it passes regex. * will return fixed variables if it does not pass regex. */ public AddCommand(String input) throws LotsException { if (checkUserInput(input)) { int[] indexOfSlashes = indexOfSlashes(input); - this.personName = getPersonName(input, indexOfSlashes[0], indexOfSlashes[1]); - this.foodIndex = getFoodIndex(input, indexOfSlashes[1], indexOfSlashes[2]); - this.foodQuantity = getFoodQuantity(input, indexOfSlashes[2]); + personName = getPersonName(input, indexOfSlashes[0], indexOfSlashes[1]); + foodIndex = getFoodIndex(input, indexOfSlashes[1], indexOfSlashes[2]); + foodQuantity = getFoodQuantity(input, indexOfSlashes[2]); } else { - //adds a constant value to the initialised variable to flag it to be wrong. - this.personName = ""; - this.foodIndex = -1; - this.foodQuantity = -1; + throw new LotsException("Wrong Command Format! (add /n /i /q "); } } @@ -35,6 +33,7 @@ public AddCommand(String input) throws LotsException { * Adds a new person with the given attributes into the list of people. * If it did not pass regex, it will throw new exception and no new addition of * person to the list of people will happen. + * * @throws LotsException Throws a new LotsException when the command is invalid. */ @Override @@ -43,6 +42,7 @@ public void execute() throws LotsException { Person person = new Person(personName); person.addFoodToIndividualFoodOrders(foodIndex); PeopleManager.listOfPeople.add(person); + Ui.printAddedOrderMessage(person); } else { throw new LotsException("Please enter a valid Add Command!"); } @@ -50,6 +50,7 @@ public void execute() throws LotsException { /** * Regex to check User Input before passing onto the class. + * * @param input user input. * @return a boolean true if the user input passes the regex. * @throws IllegalArgumentException when the pattern for Regex is not able to be interpreted. @@ -57,7 +58,7 @@ public void execute() throws LotsException { private boolean checkUserInput(String input) throws IllegalArgumentException { try { Pattern pattern = Pattern.compile( - "^add \\/n [a-zA-Z0-9][\\w \\d]{1,50} \\/i \\d{1,2} \\/q \\d{1,3}$", + "^add \\/n [a-zA-Z0-9][\\w \\d]{0,50} \\/i \\d{1,2} \\/q \\d{1,3}$", Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(input); boolean matchFound = matcher.find(); @@ -69,6 +70,7 @@ private boolean checkUserInput(String input) throws IllegalArgumentException { /** * Obtain index of "/" in the string to be use to split input strings into substrings. + * * @param input User input. * @return an array of index of "/". */ @@ -92,31 +94,33 @@ private static int[] indexOfSlashes(String input) { /** * Function used to parse the user input to get person name. - * @param input User input. - * @param indexOfFirstSlash First "/" index. + * + * @param input User input. + * @param indexOfFirstSlash First "/" index. * @param indexOfSecondSlash Second "/" index. * @return Person Name in String type. */ private static String getPersonName(String input, int indexOfFirstSlash, int indexOfSecondSlash) { - String tempPersonName = input.substring(indexOfFirstSlash + 1,indexOfSecondSlash - 1); + String tempPersonName = input.substring(indexOfFirstSlash + 2, indexOfSecondSlash - 1); return tempPersonName.trim(); } /** * Function used to parse the user input to get food index. - * @param input User input. + * + * @param input User input. * @param indexOfSecondSlash Second "/" index. - * @param indexOfThirdSlash Third "/" index. + * @param indexOfThirdSlash Third "/" index. * @return Food index in int type. * @throw NumberFormatException when the index is out of range. */ private static int getFoodIndex(String input, int indexOfSecondSlash, int indexOfThirdSlash) throws NumberFormatException, LotsException { - String subStringFoodIndex = input.substring(indexOfSecondSlash + 1, indexOfThirdSlash - 1).trim(); + String subStringFoodIndex = input.substring(indexOfSecondSlash + 2, indexOfThirdSlash - 1).trim(); try { int foodIndex = Integer.parseInt(subStringFoodIndex); - if (foodIndex > Menu.TOTAL_MENU_ITEMS || foodIndex < 0) { - return -1; + if (foodIndex > Menu.TOTAL_MENU_ITEMS || foodIndex <= 0) { + throw new LotsException("Food index is out of bounds! Please try again."); } else { return foodIndex; } @@ -128,14 +132,15 @@ private static int getFoodIndex(String input, int indexOfSecondSlash, int indexO /** * Function used to parse the user input to get food index. - * @param input User input. + * + * @param input User input. * @param indexOfThirdSlash Third "/" index. * @return Food Quantity in int type. * @throws NumberFormatException when the quantity is out of range. */ private static int getFoodQuantity(String input, int indexOfThirdSlash) throws NumberFormatException, LotsException { - String subStringFoodQuantity = input.substring(indexOfThirdSlash + 1, input.length()).trim(); + String subStringFoodQuantity = input.substring(indexOfThirdSlash + 2).trim(); try { int foodQuantity = Integer.parseInt(subStringFoodQuantity); if (foodQuantity > 999 || foodQuantity < 0) { diff --git a/src/main/java/seedu/duke/DeleteCommand.java b/src/main/java/seedu/duke/DeleteCommand.java index bf728704e9..4eaee8afe0 100644 --- a/src/main/java/seedu/duke/DeleteCommand.java +++ b/src/main/java/seedu/duke/DeleteCommand.java @@ -1,5 +1,6 @@ package seedu.duke; + public class DeleteCommand extends Command { public static final String COMMAND_WORD = "delete"; @@ -34,7 +35,7 @@ public DeleteCommand(String input) throws LotsException { private int getPersonIndex(String deleteParams) throws IndexOutOfBoundsException, NumberFormatException { int slashIndex = deleteParams.indexOf('/'); String personIndexInString = deleteParams.substring(0, slashIndex); - return Integer.parseInt(personIndexInString); + return Integer.parseInt(personIndexInString) - 1; } /** @@ -64,7 +65,7 @@ public void execute() throws LotsException { try { deleteOrder(peopleManager); } catch (IndexOutOfBoundsException e) { - throw new LotsException("Please enter a valid person's index followed by the order index!"); + throw new LotsException("Please enter a valid person's index followed by the order index! E.g) delete 1/a"); } } @@ -77,6 +78,7 @@ public void execute() throws LotsException { private void deleteOrder(PeopleManager manager) throws IndexOutOfBoundsException, LotsException { Person personToDeleteFrom = manager.getPerson(personIndex); personToDeleteFrom.deleteParticularOrder(orderIndex); + manager.deletePerson(personIndex); Ui.printDeleteMessage(); } } diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 2dddde5e0c..b611cdefef 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -1,12 +1,38 @@ package seedu.duke; +import java.util.logging.Logger; + public class Duke { /** * Main entry-point for the java.duke.Duke application. */ + public static Logger log = Logger.getLogger("LOTS"); + public static void main(String[] args) { Ui.printWelcome(); - + runDuke(); Ui.printGoodbye(); } + + private static void runDuke() { + Command currentCommand; + PeopleManager manager = new PeopleManager(); + boolean isEnd = false; + while (!isEnd) { + try { + String userInput = Ui.readInput(); + currentCommand = Parser.getCommand(userInput); + currentCommand.setData(manager); + currentCommand.execute(); + if (currentCommand instanceof ByeCommand) { + isEnd = true; + } + } catch (LotsException e) { + Ui.printWithBorder(e.getMessage()); + } catch (Exception x) { + Ui.printWithBorder("Oops! Unknown error. Please try again."); + x.printStackTrace(); + } + } + } } \ No newline at end of file diff --git a/src/main/java/seedu/duke/MenuCommand.java b/src/main/java/seedu/duke/MenuCommand.java index 2d449843d4..22c82039f3 100644 --- a/src/main/java/seedu/duke/MenuCommand.java +++ b/src/main/java/seedu/duke/MenuCommand.java @@ -19,11 +19,11 @@ public class MenuCommand extends Command { /** * MenuCommand calls access to file to retrieve stored menu. */ - public MenuCommand() throws FileNotFoundException { + public MenuCommand() throws LotsException { try { getMenu(); } catch (FileNotFoundException e) { - throw new FileNotFoundException("Menu file not found!"); + throw new LotsException("Menu file not found!"); } extractLocalMenuData(); } @@ -37,6 +37,7 @@ public void execute() { for (int i = 0; i < foodList.size(); i++) { Ui.printMenu(i + 1, foodList.get(i), priceList.get(i)); } + Ui.printWithBorder(""); } /** diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 66b79a9378..bae2431c61 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -11,7 +11,7 @@ public class Parser { * @param input The user's input in String. * @return The respective Command type. */ - public static Command getCommand(String input) throws Exception { + public static Command getCommand(String input) throws LotsException { assert input != null : "Input to getCommand Cannot be NULL!"; if (input.isBlank() || input.isEmpty()) { @@ -24,12 +24,7 @@ public static Command getCommand(String input) throws Exception { case (AddCommand.COMMAND_WORD): return new AddCommand(input); case (DeleteCommand.COMMAND_WORD): - try { - return new DeleteCommand(input); - } catch (LotsException e) { - System.out.println(e.getMessage()); - return new UnknownCommand(); - } + return new DeleteCommand(input); case (OrdersCommand.COMMAND_WORD): return new OrdersCommand(); case (MenuCommand.COMMAND_WORD): diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java index 9203673058..464508e4b5 100644 --- a/src/main/java/seedu/duke/PeopleManager.java +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -1,6 +1,7 @@ package seedu.duke; import java.util.LinkedList; +import java.util.logging.Logger; public class PeopleManager { @@ -41,6 +42,14 @@ public void addPerson(Person person) { listOfPeople.add(person); } + public void deletePerson(int personIndex) throws LotsException { + try { + listOfPeople.remove(personIndex); + } catch (Exception e) { + throw new LotsException(e.getMessage()); + } + } + /** * Returns the number of people in the linked list. * @@ -49,4 +58,4 @@ public void addPerson(Person person) { public int getSize() { return listOfPeople.size(); } -} \ No newline at end of file +} diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index bfc28d470d..74b279ed0a 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -35,7 +35,7 @@ private void setupIndividualFoodOrders() { */ protected String addFoodToIndividualFoodOrders(int foodIndex) { if (foodIndex < totalMenuItems && foodIndex >= 0) { - individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] + 1; + individualFoodOrders[foodIndex - 1] = individualFoodOrders[foodIndex - 1] + 1; return functionPassedMessage; } else { return foodIndexOutOfBoundsErrorMessage; diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index e3dbe8f135..c0ea991eb1 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -53,13 +53,14 @@ public static void printGoodbye() { public static void printOrdersList(PeopleManager peopleManager) { int totalNumOfPeopleOrdered = peopleManager.getSize(); if (totalNumOfPeopleOrdered == 0) { - System.out.println("Your order list is empty!"); + Ui.printWithBorder("Your order list is empty!"); } else { for (int i = 0; i < totalNumOfPeopleOrdered; i++) { String currentPersonName = peopleManager.getPerson(i).personName; - System.out.println((i + 1) + ". " + currentPersonName + ":"); + Ui.printWithoutBorder((i + 1) + ". " + currentPersonName + ":"); printIndividualPersonOrder(peopleManager.getPerson(i)); } + Ui.printWithBorder(""); } } @@ -71,19 +72,19 @@ public static void printOrdersList(PeopleManager peopleManager) { */ private static void printIndividualPersonOrder(Person currentPerson) { double totalCost = 0; - int currentItem = 1; + int currentItem = 97; //97 is the ascii for 'a'. int totalMenuItems = Menu.TOTAL_MENU_ITEMS; int[] currentIndividualOrders = currentPerson.individualFoodOrders; for (int i = 0; i < totalMenuItems; i++) { if (currentIndividualOrders[i] != 0) { double currentCost = currentIndividualOrders[i] * Menu.PRICELIST.get(i); - System.out.println("\t" + currentItem + ") " + Menu.FOODLIST.get(i) + " | Quantity = " + Ui.printWithoutBorder("\t" + (char) currentItem + ") " + Menu.FOODLIST.get(i) + " | Quantity = " + currentIndividualOrders[i] + " | Cost = $" + String.format("%.2f", currentCost)); totalCost = totalCost + currentCost; currentItem++; } } - System.out.println("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); + Ui.printWithoutBorder("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); } //To be further improved @@ -92,12 +93,18 @@ private static void printIndividualPersonOrder(Person currentPerson) { * Prints a message to notify the user of the deletion of an order. */ public static void printDeleteMessage() { - System.out.println("Alright, that order has been deleted!"); + Ui.printWithoutBorder("Alright, that order has been deleted!"); + } + + public static void printAddedOrderMessage(Person person) { + Ui.printWithoutBorder("We have updated the order list for: " + person.personName); + printIndividualPersonOrder(person); + Ui.printWithBorder(""); } public static void printMenuHeader() { - System.out.println("index | Food Name | Price"); - System.out.println(line); + Ui.printWithoutBorder("index | Food Name | Price"); + Ui.printWithoutBorder(line); } /** @@ -110,6 +117,6 @@ public static void printMenuHeader() { */ public static void printMenu(int index, String foodName, Double foodPrice) { System.out.format("%-8d%-33s%7.2f%n", index, foodName, foodPrice); - System.out.println(line); + Ui.printWithoutBorder(line); } } diff --git a/src/main/java/seedu/duke/UnknownCommand.java b/src/main/java/seedu/duke/UnknownCommand.java index 126f067e91..a859362491 100644 --- a/src/main/java/seedu/duke/UnknownCommand.java +++ b/src/main/java/seedu/duke/UnknownCommand.java @@ -7,6 +7,6 @@ public class UnknownCommand extends Command { public void execute() { - System.out.println("Unknown command. Please try again."); + Ui.printWithBorder("Unknown command. Please try again."); } } From 4f29afac04cfbed04b6ce6751f3e7711ee06768a Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Mon, 11 Oct 2021 20:27:40 +0800 Subject: [PATCH 059/429] Add input file to IO-redirect test. --- text-ui-test/input.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index e69de29bb2..0abaeaa993 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -0,0 +1 @@ +bye \ No newline at end of file From ea577844f63723166a2bee16a3a39e4837478138 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Mon, 11 Oct 2021 23:52:42 +0800 Subject: [PATCH 060/429] DeleteCommandTest-ML --- .../java/seedu/duke/DeleteCommandTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/test/java/seedu/duke/DeleteCommandTest.java diff --git a/src/test/java/seedu/duke/DeleteCommandTest.java b/src/test/java/seedu/duke/DeleteCommandTest.java new file mode 100644 index 0000000000..b76aa07a38 --- /dev/null +++ b/src/test/java/seedu/duke/DeleteCommandTest.java @@ -0,0 +1,21 @@ +package seedu.duke; + +import org.junit.jupiter.api.Test; + +import java.util.LinkedList; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +class DeleteCommandTest { + + protected PeopleManager emptyPeopleManager; + + @Test + void execute_emptyOrderList_expectException() throws LotsException { + String input = "delete 2/a"; + Command command = new DeleteCommand(input); + command.setData(emptyPeopleManager); + assertThrows(NullPointerException.class, + () -> command.execute()); + } +} \ No newline at end of file From 5849d4b7e86927237bf69c1f03bc2065f218c61b Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 12 Oct 2021 00:42:49 +0800 Subject: [PATCH 061/429] Add AddCommandTest Junit. Remove PersonTest Junit. Edit AddCommand Class and Person Class. Exceptions has been added into functions for Person Class. AddCommand Class has conditions modified. --- src/main/java/seedu/duke/AddCommand.java | 16 +- src/main/java/seedu/duke/Person.java | 15 +- src/test/java/seedu/duke/AddCommandTest.java | 200 +++++++++++++++++++ src/test/java/seedu/duke/PersonTest.java | 40 ---- 4 files changed, 213 insertions(+), 58 deletions(-) create mode 100644 src/test/java/seedu/duke/AddCommandTest.java diff --git a/src/main/java/seedu/duke/AddCommand.java b/src/main/java/seedu/duke/AddCommand.java index 386d832889..11bf829285 100644 --- a/src/main/java/seedu/duke/AddCommand.java +++ b/src/main/java/seedu/duke/AddCommand.java @@ -24,10 +24,7 @@ public AddCommand(String input) throws LotsException { this.foodIndex = getFoodIndex(input, indexOfSlashes[1], indexOfSlashes[2]); this.foodQuantity = getFoodQuantity(input, indexOfSlashes[2]); } else { - //adds a constant value to the initialised variable to flag it to be wrong. - this.personName = ""; - this.foodIndex = -1; - this.foodQuantity = -1; + throw new LotsException("Please enter a valid Add Command!"); } } @@ -39,7 +36,7 @@ public AddCommand(String input) throws LotsException { */ @Override public void execute() throws LotsException { - if (personName != "" && foodIndex != -1 && foodQuantity != -1) { + if (personName != "" || foodIndex != -1 || foodQuantity != -1) { Person person = new Person(personName); person.addFoodToIndividualFoodOrders(foodIndex); PeopleManager.listOfPeople.add(person); @@ -115,8 +112,8 @@ private static int getFoodIndex(String input, int indexOfSecondSlash, int indexO String subStringFoodIndex = input.substring(indexOfSecondSlash + 1, indexOfThirdSlash - 1).trim(); try { int foodIndex = Integer.parseInt(subStringFoodIndex); - if (foodIndex > Menu.TOTAL_MENU_ITEMS || foodIndex < 0) { - return -1; + if (foodIndex > Menu.TOTAL_MENU_ITEMS || foodIndex <= 0) { + throw new LotsException("Index out of range. Please try again!"); } else { return foodIndex; } @@ -138,8 +135,8 @@ private static int getFoodQuantity(String input, int indexOfThirdSlash) String subStringFoodQuantity = input.substring(indexOfThirdSlash + 1, input.length()).trim(); try { int foodQuantity = Integer.parseInt(subStringFoodQuantity); - if (foodQuantity > 999 || foodQuantity < 0) { - return -1; + if (foodQuantity > 1000 || foodQuantity <= 0) { + throw new LotsException("Quantity out of range(1 to 999) , please try again!"); } else { return foodQuantity; } @@ -148,4 +145,5 @@ private static int getFoodQuantity(String input, int indexOfThirdSlash) throw new LotsException(errorMsg); } } + } diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 70207f9e1e..cd24833f3e 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -6,7 +6,6 @@ public class Person { protected String personName; protected Integer[] individualFoodOrders = new Integer[totalMenuItems]; private String foodIndexOutOfBoundsErrorMessage = "Please enter the right menu number!"; - private String functionPassedMessage = "Completed!"; /** * Constructor for Person. @@ -19,10 +18,10 @@ public Person(String personName) { } /** - * Used to populate the array with 0. + * Used to populate the array with 0 from index 1 to total_menu_items(10). */ private void setupIndividualFoodOrders() { - for (int i = 0; i < totalMenuItems; i++) { + for (int i = 1; i < totalMenuItems + 1; i++) { individualFoodOrders[i] = 0; } } @@ -31,12 +30,11 @@ private void setupIndividualFoodOrders() { * Add the quantity of the corresponding food index by 1. * @param foodIndex Index of food in the menu. */ - protected String addFoodToIndividualFoodOrders(int foodIndex) { + protected void addFoodToIndividualFoodOrders(int foodIndex) throws LotsException { if (foodIndex < totalMenuItems && foodIndex >= 0) { individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] + 1; - return functionPassedMessage; } else { - return foodIndexOutOfBoundsErrorMessage; + throw new LotsException(foodIndexOutOfBoundsErrorMessage); } } @@ -45,16 +43,15 @@ protected String addFoodToIndividualFoodOrders(int foodIndex) { * If the quantity of food is 0, the quantity remains 0. * @param foodIndex Index of food in the menu. */ - protected String removeFoodFromIndividualFoodOrders(int foodIndex) { + protected void removeFoodFromIndividualFoodOrders(int foodIndex) throws LotsException { if (foodIndex < totalMenuItems && foodIndex >= 0) { if (individualFoodOrders[foodIndex] != 0) { individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] - 1; } else { individualFoodOrders[foodIndex] = 0; } - return functionPassedMessage; } else { - return foodIndexOutOfBoundsErrorMessage; + throw new LotsException(foodIndexOutOfBoundsErrorMessage); } } } diff --git a/src/test/java/seedu/duke/AddCommandTest.java b/src/test/java/seedu/duke/AddCommandTest.java new file mode 100644 index 0000000000..82be80367b --- /dev/null +++ b/src/test/java/seedu/duke/AddCommandTest.java @@ -0,0 +1,200 @@ +package seedu.duke; + +import org.junit.jupiter.api.Test; + + +public class AddCommandTest { + + @Test + public void execute_foodIndexIsNegative_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n jacob /i -1 /q 10"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Food Index is Negative. \n"); + } + } + + @Test + public void execute_quantityIsNegative_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n jacob /i 2 /q -10"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Quantity is Negative. \n"); + } + } + + @Test + public void execute_foodIndexIsZero_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n jacob /i 0 /q 10"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Food Index is zero. \n"); + } + } + + @Test + public void execute_quantityIsZero_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n jacob /i 2 /q 0"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Quantity is zero. \n"); + } + } + + @Test + public void execute_foodIndexPositiveButOutOfRange_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n jacob /i 13 /q 10"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Food Index Positive but out of range. \n"); + } + } + + @Test + public void execute_quantityPositiveButOutOfRange_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n jacob /i 2 /q 1000"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Quantity Positive but out of range. \n"); + } + } + + @Test + public void execute_wrongNumberOfSlashes_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n jacob /i 2 "); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Missing Slash. \n"); + } + } + + @Test + public void execute_alphaNumericNamesOnly_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n J@cob! /i 2 /q 10"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("There are other characters in Names. \n"); + } + } + + @Test + public void execute_inputForNameIsSpaces_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n /i 2 /q 10"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Name cannot be spaces. \n"); + } + } + + @Test + public void execute_inputForFoodIndexIsSpaces_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n Jenson /i 2 /q 10"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Food Index cannot be spaces. \n"); + } + } + + @Test + public void execute_inputForQuantityIsSpaces_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n Jenson /i 3 /q "); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Quantity cannot be spaces. \n"); + } + } + + @Test + public void execute_foodIndexCannotBeInWord_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n jacob /i Zero /q 10"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Food Index is in Words. \n"); + } + } + + @Test + public void execute_quantityCannotBeInWord_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n jacob /i 3 /q two hundred"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Quantity is in Words. \n"); + } + } + + @Test + public void execute_foodIndexContainsCharacters_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n jacob /i 2@1 /q 10"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Food Index contains characters. \n"); + } + } + + @Test + public void execute_quantityContainsCharacters_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n jacob /i 9 /q 2!4"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Quantity contains characters. \n"); + } + } + + @Test + public void execute_inputForNameIsMoreThan50Characters_throwsLotsException() + throws Exception { + try { + Command command; + command = Parser.getCommand("add /n Jenson Jacob Jenson Jacob Jenson Jacob Jenson Jacob Jenson Jacob " + + "Jenson Jacob Jenson Jacob Jenson Jacob Jenson /i 2 /q 10"); + command.execute(); + } catch (LotsException | NumberFormatException e) { + System.out.println("Name cannot be more than 50 spaces. \n"); + } + } +} diff --git a/src/test/java/seedu/duke/PersonTest.java b/src/test/java/seedu/duke/PersonTest.java index 488e449f9f..65b369adbc 100644 --- a/src/test/java/seedu/duke/PersonTest.java +++ b/src/test/java/seedu/duke/PersonTest.java @@ -8,44 +8,4 @@ public class PersonTest { - /** - * Checks if the specified index value will pass. - * after being inputted into the addFoodToIndividualFoodOrders function. - * @throws Exception when the output is incorrect. - */ - @Test - public void addFoodToIndividualFoodOrders_incrementIndex2ValueBy1_Index2ValueIncreasedBy1() throws Exception { - Person trialPerson = initialisePersonClass(); - //FoodIndex = -2 is not within the array. - assertEquals("Please enter the right menu number!",trialPerson.addFoodToIndividualFoodOrders(-2)); - //FoodIndex = 11 is not within the array. - assertEquals("Please enter the right menu number!", trialPerson.addFoodToIndividualFoodOrders(11)); - //FoodIndex = 2 is within the array. Function should enter if() loop. - assertEquals("Completed!",trialPerson.addFoodToIndividualFoodOrders(2)); - } - - /** - * Checks if the specified index value will pass. - * after being inputted into the removeFoodFromIndividualFoodOrders function. - * @throws Exception if the value is not the same. - */ - @Test - public void removeFoodFromIndividualFoodOrders_remainsZero() throws Exception { - Person trialPerson = initialisePersonClass(); - //FoodIndex = -3 is not within the array. - assertEquals("Please enter the right menu number!", trialPerson.removeFoodFromIndividualFoodOrders(-3)); - //FoodIndex = 30 is not within the array. - assertEquals("Please enter the right menu number!", trialPerson.removeFoodFromIndividualFoodOrders(30)); - //FoodIndex = 3 is within the array. - assertEquals("Completed!", trialPerson.removeFoodFromIndividualFoodOrders(3)); - } - - /** - * Function to initialise Person class with a person variable. - * @return variable of Person class. - */ - public Person initialisePersonClass() { - Person personA = new Person("Charles"); - return personA; - } } From 44f3ea87ece2067f64415e4d357f2407b22c0d59 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 12 Oct 2021 08:13:30 +0800 Subject: [PATCH 062/429] Add logging & Asserts into Duke. --- src/main/java/seedu/duke/Duke.java | 5 ++++- src/main/java/seedu/duke/Parser.java | 3 ++- src/main/java/seedu/duke/Ui.java | 6 ++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 9f60bfd003..17b4a8bc32 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -1,5 +1,6 @@ package seedu.duke; +import java.util.logging.Level; import java.util.logging.Logger; public class Duke { @@ -25,6 +26,7 @@ private static void runDuke() { try { String userInput = Ui.readInput(); currentCommand = Parser.getCommand(userInput); + assert currentCommand != null : "Command returned cannot be null!"; currentCommand.setData(manager); currentCommand.execute(); if (currentCommand instanceof ByeCommand) { @@ -34,7 +36,8 @@ private static void runDuke() { Ui.printWithBorder(e.getMessage()); } catch (Exception x) { Ui.printWithBorder("Oops! Unknown error. Please try again."); - x.printStackTrace(); + log.log(Level.SEVERE,x.getMessage()); + log.log(Level.SEVERE,x.getStackTrace().toString()); } } } diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index a47d86402b..92284b5199 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -16,7 +16,8 @@ public static Command getCommand(String input) throws LotsException { } String[] listOfInputs = input.split(" "); String commandInString = listOfInputs[0].toLowerCase(); - + Duke.log.info("Command: " + commandInString); + switch (commandInString) { case (AddCommand.COMMAND_WORD): return new AddCommand(input); diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 6bfda38c3b..083d9607c4 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -96,7 +96,13 @@ public static void printDeleteMessage() { Ui.printWithoutBorder("Alright, that order has been deleted!"); } + /** + * Prints the details of the order that has just been added. + * + * @param person The person object that just added an order. + */ public static void printAddedOrderMessage(Person person) { + assert person != null : "Person object cannot be null when adding!"; Ui.printWithoutBorder("We have updated the order list for: " + person.personName); printIndividualPersonOrder(person); Ui.printWithBorder(""); From 1d98e1b8528afe7df21675029e327f31844f8f12 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 12 Oct 2021 12:55:35 +0800 Subject: [PATCH 063/429] Edit minor details. --- src/main/java/seedu/duke/DeleteCommand.java | 6 +++--- src/main/java/seedu/duke/Duke.java | 4 ++-- src/main/java/seedu/duke/Parser.java | 1 - src/main/java/seedu/duke/Person.java | 24 ++++++++++----------- 4 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/main/java/seedu/duke/DeleteCommand.java b/src/main/java/seedu/duke/DeleteCommand.java index 4eaee8afe0..497822a398 100644 --- a/src/main/java/seedu/duke/DeleteCommand.java +++ b/src/main/java/seedu/duke/DeleteCommand.java @@ -5,7 +5,7 @@ public class DeleteCommand extends Command { public static final String COMMAND_WORD = "delete"; private int personIndex; - private int orderIndex; + private int foodIndex; /** * Splits the input given the regular expression of a whitespace and @@ -18,7 +18,7 @@ public DeleteCommand(String input) throws LotsException { String[] splitInput = input.split(" "); try { personIndex = getPersonIndex(splitInput[1]); - orderIndex = getOrderIndex(splitInput[1]); + foodIndex = getOrderIndex(splitInput[1]); } catch (NullPointerException | IndexOutOfBoundsException | NumberFormatException e) { throw new LotsException("Please enter a valid person's index followed by the order index!"); } @@ -77,7 +77,7 @@ public void execute() throws LotsException { */ private void deleteOrder(PeopleManager manager) throws IndexOutOfBoundsException, LotsException { Person personToDeleteFrom = manager.getPerson(personIndex); - personToDeleteFrom.deleteParticularOrder(orderIndex); + personToDeleteFrom.deleteParticularOrder(foodIndex); manager.deletePerson(personIndex); Ui.printDeleteMessage(); } diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 17b4a8bc32..2755e40bd9 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -36,8 +36,8 @@ private static void runDuke() { Ui.printWithBorder(e.getMessage()); } catch (Exception x) { Ui.printWithBorder("Oops! Unknown error. Please try again."); - log.log(Level.SEVERE,x.getMessage()); - log.log(Level.SEVERE,x.getStackTrace().toString()); + log.log(Level.SEVERE, x.getMessage()); + //x.printStackTrace(); } } } diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 92284b5199..c11c6b4726 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -16,7 +16,6 @@ public static Command getCommand(String input) throws LotsException { } String[] listOfInputs = input.split(" "); String commandInString = listOfInputs[0].toLowerCase(); - Duke.log.info("Command: " + commandInString); switch (commandInString) { case (AddCommand.COMMAND_WORD): diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 26b4f1d4ac..173d5e8e98 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -22,7 +22,7 @@ public Person(String personName) { * Used to populate the array with 0 from index 1 to total_menu_items(10). */ private void setupIndividualFoodOrders() { - for (int i = 1; i < totalMenuItems + 1; i++) { + for (int i = 0; i < totalMenuItems; i++) { individualFoodOrders[i] = 0; } } @@ -33,8 +33,8 @@ private void setupIndividualFoodOrders() { * @param foodIndex Index of food in the menu. */ protected void addFoodToIndividualFoodOrders(int foodIndex) throws LotsException { - if (foodIndex < totalMenuItems && foodIndex >= 0) { - individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] + 1; + if (foodIndex <= totalMenuItems && foodIndex > 0) { + individualFoodOrders[foodIndex - 1] = individualFoodOrders[foodIndex - 1] + 1; } else { throw new LotsException(foodIndexOutOfBoundsErrorMessage); } @@ -46,12 +46,12 @@ protected void addFoodToIndividualFoodOrders(int foodIndex) throws LotsException * * @param foodIndex Index of food in the menu. */ - protected void removeFoodFromIndividualFoodOrders(int foodIndex) throws LotsException { - if (foodIndex < totalMenuItems && foodIndex >= 0) { - if (individualFoodOrders[foodIndex] != 0) { - individualFoodOrders[foodIndex] = individualFoodOrders[foodIndex] - 1; + protected void removeFoodFromIndividualFoodOrders(int foodIndex, int quantity) throws LotsException { + if (foodIndex <= totalMenuItems && foodIndex > 0) { + if (individualFoodOrders[foodIndex - 1] != 0) { + individualFoodOrders[foodIndex - 1] = individualFoodOrders[foodIndex - 1] - quantity; } else { - individualFoodOrders[foodIndex] = 0; + individualFoodOrders[foodIndex - 1] = 0; } } else { throw new LotsException(foodIndexOutOfBoundsErrorMessage); @@ -61,20 +61,20 @@ protected void removeFoodFromIndividualFoodOrders(int foodIndex) throws LotsExce /** * Sets the quantity of a particular food order in the order array to 0. * - * @param orderIndex Index of the order whose quantity is getting set to 0. + * @param foodIndex Index of the order whose quantity is getting set to 0. * @throws LotsException When order index is more than the number of orders. */ - public void deleteParticularOrder(int orderIndex) throws LotsException { + public void deleteParticularOrder(int foodIndex) throws LotsException { int numberOfOrders = 0; for (int i = 0; i < totalMenuItems; i++) { if (individualFoodOrders[i] > 0) { numberOfOrders++; } - if (orderIndex + 1 == numberOfOrders) { + if (foodIndex + 1 == numberOfOrders) { individualFoodOrders[i] = 0; } } - if (orderIndex + 1 > numberOfOrders) { + if (foodIndex + 1 > numberOfOrders) { throw new LotsException("Please enter a valid order index!"); } } From 9d86514eb4e3391f720ce610bd30215bc44515ac Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 12 Oct 2021 12:57:53 +0800 Subject: [PATCH 064/429] Update DeleteCommand.java --- src/main/java/seedu/duke/DeleteCommand.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/DeleteCommand.java b/src/main/java/seedu/duke/DeleteCommand.java index 4eaee8afe0..bd9e5e9dda 100644 --- a/src/main/java/seedu/duke/DeleteCommand.java +++ b/src/main/java/seedu/duke/DeleteCommand.java @@ -77,8 +77,11 @@ public void execute() throws LotsException { */ private void deleteOrder(PeopleManager manager) throws IndexOutOfBoundsException, LotsException { Person personToDeleteFrom = manager.getPerson(personIndex); + assert(personToDeleteFrom != null); personToDeleteFrom.deleteParticularOrder(orderIndex); - manager.deletePerson(personIndex); - Ui.printDeleteMessage(); + Ui.printDeleteMessage(personToDeleteFrom); + if (personToDeleteFrom.isEmpty()) { + manager.deletePerson(personIndex); + } } } From 563a76b21fc9745c911bacb05cc04d632901db7a Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 12 Oct 2021 12:58:01 +0800 Subject: [PATCH 065/429] Update PeopleManager.java --- src/main/java/seedu/duke/PeopleManager.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java index 732ca5e258..8be2a0d829 100644 --- a/src/main/java/seedu/duke/PeopleManager.java +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -41,6 +41,11 @@ public void addPerson(Person person) { listOfPeople.add(person); } + /** + * Remove a particular person given its index. + * + * @param personIndex Index of the person to be removed. + */ public void deletePerson(int personIndex) throws LotsException { try { listOfPeople.remove(personIndex); @@ -57,4 +62,5 @@ public void deletePerson(int personIndex) throws LotsException { public int getSize() { return listOfPeople.size(); } + } From 72619d0329979f65427cfbe5776a1fed186a5c63 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 12 Oct 2021 12:58:24 +0800 Subject: [PATCH 066/429] Made a few output changes. --- src/main/java/seedu/duke/Person.java | 19 +++++++++++++++++++ src/main/java/seedu/duke/Ui.java | 4 ++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 26b4f1d4ac..87fa032ed5 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -79,4 +79,23 @@ public void deleteParticularOrder(int orderIndex) throws LotsException { } } + /** + * Checks if the individual order of this person is empty by checking + * if the quantity of food orders are 0. + * + * @return Returns true if all the quantity of the food orders are 0, else returns false. + */ + public boolean isEmpty() { + int numberOfOrders = 0; + for (int i = 0; i < totalMenuItems; i++) { + if (individualFoodOrders[i] > 0) { + numberOfOrders++; + } + } + if (numberOfOrders == 0) { + return true; + } + return false; + } + } diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 083d9607c4..c6cac00f69 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -92,8 +92,8 @@ private static void printIndividualPersonOrder(Person currentPerson) { /** * Prints a message to notify the user of the deletion of an order. */ - public static void printDeleteMessage() { - Ui.printWithoutBorder("Alright, that order has been deleted!"); + public static void printDeleteMessage(Person person) { + Ui.printWithoutBorder("Alright, that order has been deleted from " + person.personName + "!"); } /** From 24b703604a9f4413e4d09dcdf6cb3d9926e79fbe Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 12 Oct 2021 13:02:33 +0800 Subject: [PATCH 067/429] Moved classes into packages. --- src/main/java/seedu/duke/Duke.java | 4 ++++ src/main/java/seedu/duke/Parser.java | 9 +++++++++ src/main/java/seedu/duke/PeopleManager.java | 4 +++- src/main/java/seedu/duke/Person.java | 6 ++++-- src/main/java/seedu/duke/{ => command}/AddCommand.java | 9 +++++++-- src/main/java/seedu/duke/{ => command}/ByeCommand.java | 2 +- src/main/java/seedu/duke/{ => command}/Command.java | 5 ++++- .../java/seedu/duke/{ => command}/DeleteCommand.java | 7 ++++++- .../java/seedu/duke/{ => command}/MenuCommand.java | 10 +++++----- .../java/seedu/duke/{ => command}/OrdersCommand.java | 4 +++- .../java/seedu/duke/{ => command}/UnknownCommand.java | 4 +++- .../seedu/duke/{ => exceptions}/LotsException.java | 2 +- src/test/java/seedu/duke/AddCommandTest.java | 2 ++ src/test/java/seedu/duke/DeleteCommandTest.java | 5 +++-- src/test/java/seedu/duke/ParserTest.java | 3 ++- 15 files changed, 57 insertions(+), 19 deletions(-) rename src/main/java/seedu/duke/{ => command}/AddCommand.java (96%) rename src/main/java/seedu/duke/{ => command}/ByeCommand.java (84%) rename src/main/java/seedu/duke/{ => command}/Command.java (83%) rename src/main/java/seedu/duke/{ => command}/DeleteCommand.java (95%) rename src/main/java/seedu/duke/{ => command}/MenuCommand.java (93%) rename src/main/java/seedu/duke/{ => command}/OrdersCommand.java (83%) rename src/main/java/seedu/duke/{ => command}/UnknownCommand.java (80%) rename src/main/java/seedu/duke/{ => exceptions}/LotsException.java (81%) diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 2755e40bd9..a4a25cfd28 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -1,5 +1,9 @@ package seedu.duke; +import seedu.duke.command.ByeCommand; +import seedu.duke.command.Command; +import seedu.duke.exceptions.LotsException; + import java.util.logging.Level; import java.util.logging.Logger; diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index c11c6b4726..7de4d0c5f8 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -1,5 +1,14 @@ package seedu.duke; +import seedu.duke.command.AddCommand; +import seedu.duke.command.ByeCommand; +import seedu.duke.command.Command; +import seedu.duke.command.DeleteCommand; +import seedu.duke.command.MenuCommand; +import seedu.duke.command.OrdersCommand; +import seedu.duke.command.UnknownCommand; +import seedu.duke.exceptions.LotsException; + public class Parser { /** * Returns a Command object based on the user's input diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java index 732ca5e258..003fd18645 100644 --- a/src/main/java/seedu/duke/PeopleManager.java +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -1,10 +1,12 @@ package seedu.duke; +import seedu.duke.exceptions.LotsException; + import java.util.LinkedList; public class PeopleManager { - static LinkedList listOfPeople = new LinkedList(); + private static LinkedList listOfPeople = new LinkedList(); public PeopleManager() { } diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 173d5e8e98..05f3d0013a 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -1,5 +1,7 @@ package seedu.duke; +import seedu.duke.exceptions.LotsException; + public class Person { protected int totalMenuItems = Menu.TOTAL_MENU_ITEMS; @@ -32,7 +34,7 @@ private void setupIndividualFoodOrders() { * * @param foodIndex Index of food in the menu. */ - protected void addFoodToIndividualFoodOrders(int foodIndex) throws LotsException { + public void addFoodToIndividualFoodOrders(int foodIndex) throws LotsException { if (foodIndex <= totalMenuItems && foodIndex > 0) { individualFoodOrders[foodIndex - 1] = individualFoodOrders[foodIndex - 1] + 1; } else { @@ -46,7 +48,7 @@ protected void addFoodToIndividualFoodOrders(int foodIndex) throws LotsException * * @param foodIndex Index of food in the menu. */ - protected void removeFoodFromIndividualFoodOrders(int foodIndex, int quantity) throws LotsException { + public void removeFoodFromIndividualFoodOrders(int foodIndex, int quantity) throws LotsException { if (foodIndex <= totalMenuItems && foodIndex > 0) { if (individualFoodOrders[foodIndex - 1] != 0) { individualFoodOrders[foodIndex - 1] = individualFoodOrders[foodIndex - 1] - quantity; diff --git a/src/main/java/seedu/duke/AddCommand.java b/src/main/java/seedu/duke/command/AddCommand.java similarity index 96% rename from src/main/java/seedu/duke/AddCommand.java rename to src/main/java/seedu/duke/command/AddCommand.java index 0cc8d66048..8b3fc15819 100644 --- a/src/main/java/seedu/duke/AddCommand.java +++ b/src/main/java/seedu/duke/command/AddCommand.java @@ -1,4 +1,9 @@ -package seedu.duke; +package seedu.duke.command; + +import seedu.duke.exceptions.LotsException; +import seedu.duke.Menu; +import seedu.duke.Person; +import seedu.duke.Ui; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -41,7 +46,7 @@ public void execute() throws LotsException { if (personName != "" || foodIndex != -1 || foodQuantity != -1) { Person person = new Person(personName); person.addFoodToIndividualFoodOrders(foodIndex); - PeopleManager.listOfPeople.add(person); + peopleManager.addPerson(person); Ui.printAddedOrderMessage(person); } else { throw new LotsException("Please enter a valid Add Command!"); diff --git a/src/main/java/seedu/duke/ByeCommand.java b/src/main/java/seedu/duke/command/ByeCommand.java similarity index 84% rename from src/main/java/seedu/duke/ByeCommand.java rename to src/main/java/seedu/duke/command/ByeCommand.java index 798726c12c..a5f09e1941 100644 --- a/src/main/java/seedu/duke/ByeCommand.java +++ b/src/main/java/seedu/duke/command/ByeCommand.java @@ -1,4 +1,4 @@ -package seedu.duke; +package seedu.duke.command; public class ByeCommand extends Command { diff --git a/src/main/java/seedu/duke/Command.java b/src/main/java/seedu/duke/command/Command.java similarity index 83% rename from src/main/java/seedu/duke/Command.java rename to src/main/java/seedu/duke/command/Command.java index 6a9d68042a..80aa334db1 100644 --- a/src/main/java/seedu/duke/Command.java +++ b/src/main/java/seedu/duke/command/Command.java @@ -1,4 +1,7 @@ -package seedu.duke; +package seedu.duke.command; + +import seedu.duke.exceptions.LotsException; +import seedu.duke.PeopleManager; public class Command { diff --git a/src/main/java/seedu/duke/DeleteCommand.java b/src/main/java/seedu/duke/command/DeleteCommand.java similarity index 95% rename from src/main/java/seedu/duke/DeleteCommand.java rename to src/main/java/seedu/duke/command/DeleteCommand.java index 497822a398..1c40535067 100644 --- a/src/main/java/seedu/duke/DeleteCommand.java +++ b/src/main/java/seedu/duke/command/DeleteCommand.java @@ -1,6 +1,11 @@ -package seedu.duke; +package seedu.duke.command; +import seedu.duke.exceptions.LotsException; +import seedu.duke.PeopleManager; +import seedu.duke.Person; +import seedu.duke.Ui; + public class DeleteCommand extends Command { public static final String COMMAND_WORD = "delete"; diff --git a/src/main/java/seedu/duke/MenuCommand.java b/src/main/java/seedu/duke/command/MenuCommand.java similarity index 93% rename from src/main/java/seedu/duke/MenuCommand.java rename to src/main/java/seedu/duke/command/MenuCommand.java index 22c82039f3..582a17c197 100644 --- a/src/main/java/seedu/duke/MenuCommand.java +++ b/src/main/java/seedu/duke/command/MenuCommand.java @@ -1,10 +1,10 @@ -package seedu.duke; +package seedu.duke.command; + +import seedu.duke.exceptions.LotsException; +import seedu.duke.Menu; +import seedu.duke.Ui; import java.io.FileNotFoundException; -import java.lang.reflect.Array; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; import java.util.Scanner; import java.io.File; import java.util.ArrayList; diff --git a/src/main/java/seedu/duke/OrdersCommand.java b/src/main/java/seedu/duke/command/OrdersCommand.java similarity index 83% rename from src/main/java/seedu/duke/OrdersCommand.java rename to src/main/java/seedu/duke/command/OrdersCommand.java index db251ca596..c671989f26 100644 --- a/src/main/java/seedu/duke/OrdersCommand.java +++ b/src/main/java/seedu/duke/command/OrdersCommand.java @@ -1,4 +1,6 @@ -package seedu.duke; +package seedu.duke.command; + +import seedu.duke.Ui; public class OrdersCommand extends Command { diff --git a/src/main/java/seedu/duke/UnknownCommand.java b/src/main/java/seedu/duke/command/UnknownCommand.java similarity index 80% rename from src/main/java/seedu/duke/UnknownCommand.java rename to src/main/java/seedu/duke/command/UnknownCommand.java index a859362491..486fe67fe6 100644 --- a/src/main/java/seedu/duke/UnknownCommand.java +++ b/src/main/java/seedu/duke/command/UnknownCommand.java @@ -1,4 +1,6 @@ -package seedu.duke; +package seedu.duke.command; + +import seedu.duke.Ui; /** * The command class in the command diff --git a/src/main/java/seedu/duke/LotsException.java b/src/main/java/seedu/duke/exceptions/LotsException.java similarity index 81% rename from src/main/java/seedu/duke/LotsException.java rename to src/main/java/seedu/duke/exceptions/LotsException.java index e250d675cc..3e56e1d38b 100644 --- a/src/main/java/seedu/duke/LotsException.java +++ b/src/main/java/seedu/duke/exceptions/LotsException.java @@ -1,4 +1,4 @@ -package seedu.duke; +package seedu.duke.exceptions; public class LotsException extends Exception { public LotsException(String errorMessage) { diff --git a/src/test/java/seedu/duke/AddCommandTest.java b/src/test/java/seedu/duke/AddCommandTest.java index 82be80367b..45bc7eae66 100644 --- a/src/test/java/seedu/duke/AddCommandTest.java +++ b/src/test/java/seedu/duke/AddCommandTest.java @@ -1,6 +1,8 @@ package seedu.duke; import org.junit.jupiter.api.Test; +import seedu.duke.command.Command; +import seedu.duke.exceptions.LotsException; public class AddCommandTest { diff --git a/src/test/java/seedu/duke/DeleteCommandTest.java b/src/test/java/seedu/duke/DeleteCommandTest.java index 24b4c485b7..f6159a21e4 100644 --- a/src/test/java/seedu/duke/DeleteCommandTest.java +++ b/src/test/java/seedu/duke/DeleteCommandTest.java @@ -1,8 +1,9 @@ package seedu.duke; import org.junit.jupiter.api.Test; - -import java.util.LinkedList; +import seedu.duke.command.Command; +import seedu.duke.command.DeleteCommand; +import seedu.duke.exceptions.LotsException; import static org.junit.jupiter.api.Assertions.assertThrows; diff --git a/src/test/java/seedu/duke/ParserTest.java b/src/test/java/seedu/duke/ParserTest.java index 0f8a9e3e6b..0db2fa8c9e 100644 --- a/src/test/java/seedu/duke/ParserTest.java +++ b/src/test/java/seedu/duke/ParserTest.java @@ -1,7 +1,8 @@ package seedu.duke; -import jdk.jshell.spi.ExecutionControlProvider; import org.junit.jupiter.api.Test; +import seedu.duke.command.Command; +import seedu.duke.command.UnknownCommand; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; From e61a0c0db84ae43127b078e2f6e7a71a7576a856 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 12 Oct 2021 13:38:14 +0800 Subject: [PATCH 068/429] Added a few assertions and made some output changes when there are no orders. --- src/main/java/seedu/duke/PeopleManager.java | 4 ++++ src/main/java/seedu/duke/Ui.java | 11 ++++++++-- .../seedu/duke/command/DeleteCommand.java | 21 ++++++++++++------- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java index da2805a527..1616945f5d 100644 --- a/src/main/java/seedu/duke/PeopleManager.java +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -65,4 +65,8 @@ public int getSize() { return listOfPeople.size(); } + public boolean isEmpty() { + return listOfPeople.isEmpty(); + } + } diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index c6cac00f69..aac4c4c604 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -87,8 +87,6 @@ private static void printIndividualPersonOrder(Person currentPerson) { Ui.printWithoutBorder("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); } - //To be further improved - /** * Prints a message to notify the user of the deletion of an order. */ @@ -96,6 +94,14 @@ public static void printDeleteMessage(Person person) { Ui.printWithoutBorder("Alright, that order has been deleted from " + person.personName + "!"); } + + /** + * Prints a message to notify the user of an empty order list. + */ + public static void printEmptyMessage() { + Ui.printWithBorder("There are currently no orders!"); + } + /** * Prints the details of the order that has just been added. * @@ -125,4 +131,5 @@ public static void printMenu(int index, String foodName, Double foodPrice) { System.out.format("%-8d%-33s%7.2f%n", index, foodName, foodPrice); Ui.printWithoutBorder(line); } + } diff --git a/src/main/java/seedu/duke/command/DeleteCommand.java b/src/main/java/seedu/duke/command/DeleteCommand.java index 766c81d6ec..ad472d2589 100644 --- a/src/main/java/seedu/duke/command/DeleteCommand.java +++ b/src/main/java/seedu/duke/command/DeleteCommand.java @@ -47,7 +47,7 @@ private int getPersonIndex(String deleteParams) throws IndexOutOfBoundsException * Get the index of the order to be deleted. * * @param deleteParams String from the user input after the delete command word. - * @return Returns the idnex of the order to be deleted in the form of an integer. + * @return Returns the index of the order to be deleted in the form of an integer. * @throws IndexOutOfBoundsException When "/" is not found in the string. * @throws LotsException When the order index is out of range. */ @@ -57,6 +57,7 @@ private int getOrderIndex(String deleteParams) throws IndexOutOfBoundsException, if (orderIndexInInteger < 0) { throw new LotsException("Please enter a valid order index!"); } + assert orderIndexInInteger >= 0 : "Order index cannot be negative."; return orderIndexInInteger; } @@ -70,7 +71,7 @@ public void execute() throws LotsException { try { deleteOrder(peopleManager); } catch (IndexOutOfBoundsException e) { - throw new LotsException("Please enter a valid person's index followed by the order index! E.g) delete 1/a"); + throw new LotsException("Please enter a valid person's index followed by the order index! i.e. delete 1/a"); } } @@ -81,12 +82,16 @@ public void execute() throws LotsException { * @throws IndexOutOfBoundsException Throws when personIndex given is larger than the number of people. */ private void deleteOrder(PeopleManager manager) throws IndexOutOfBoundsException, LotsException { - Person personToDeleteFrom = manager.getPerson(personIndex); - assert(personToDeleteFrom != null); - personToDeleteFrom.deleteParticularOrder(foodIndex); - Ui.printDeleteMessage(personToDeleteFrom); - if (personToDeleteFrom.isEmpty()) { - manager.deletePerson(personIndex); + if (manager.isEmpty()) { + Ui.printEmptyMessage(); + } else { + Person personToDeleteFrom = manager.getPerson(personIndex); + assert personToDeleteFrom != null : "Person does not exists."; + personToDeleteFrom.deleteParticularOrder(foodIndex); + Ui.printDeleteMessage(personToDeleteFrom); + if (personToDeleteFrom.isEmpty()) { + manager.deletePerson(personIndex); + } } } } From a887412fd565b857d77925f3a87067c95d2a43b9 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 12 Oct 2021 13:43:51 +0800 Subject: [PATCH 069/429] Refracted and implemented more SLAP. --- .../java/seedu/duke/command/DeleteCommand.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/duke/command/DeleteCommand.java b/src/main/java/seedu/duke/command/DeleteCommand.java index ad472d2589..4122a56959 100644 --- a/src/main/java/seedu/duke/command/DeleteCommand.java +++ b/src/main/java/seedu/duke/command/DeleteCommand.java @@ -89,9 +89,20 @@ private void deleteOrder(PeopleManager manager) throws IndexOutOfBoundsException assert personToDeleteFrom != null : "Person does not exists."; personToDeleteFrom.deleteParticularOrder(foodIndex); Ui.printDeleteMessage(personToDeleteFrom); - if (personToDeleteFrom.isEmpty()) { - manager.deletePerson(personIndex); - } + deletePersonIfEmpty(manager, personToDeleteFrom); + } + } + + /** + * Removes the person the list if his individual order list is empty. + * + * @param manager The list of people that are ordering. + * @param personToDeleteFrom Person whose order is to be deleted from. + * @throws LotsException When there is an error in removing the person from the people manager. + */ + private void deletePersonIfEmpty(PeopleManager manager, Person personToDeleteFrom) throws LotsException { + if (personToDeleteFrom.isEmpty()) { + manager.deletePerson(personIndex); } } } From 6161f98d7dd36bfacdefa97be047a2ed388cb3c3 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 12 Oct 2021 14:12:03 +0800 Subject: [PATCH 070/429] Update DeleteCommandTest.java --- .../java/seedu/duke/DeleteCommandTest.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/test/java/seedu/duke/DeleteCommandTest.java b/src/test/java/seedu/duke/DeleteCommandTest.java index 24b4c485b7..36a2b0cbcb 100644 --- a/src/test/java/seedu/duke/DeleteCommandTest.java +++ b/src/test/java/seedu/duke/DeleteCommandTest.java @@ -3,12 +3,36 @@ import org.junit.jupiter.api.Test; import java.util.LinkedList; +import seedu.duke.AddCommand; +import seedu.duke.Command; +import seedu.duke.DeleteCommand; +import seedu.duke.LotsException; import static org.junit.jupiter.api.Assertions.assertThrows; class DeleteCommandTest { protected PeopleManager emptyPeopleManager; + protected PeopleManager peopleManagerWithThreeOrders; + + void setUp() throws LotsException { + String input1 = "add /n markus /i 1 /q 1"; + Command command1 = new AddCommand(input1); + command1.setData(peopleManagerWithThreeOrders); + command1.execute(); + + String input2 = "add /n adam /i 4 /q 1"; + Command command2 = new AddCommand(input2); + command2.setData(peopleManagerWithThreeOrders); + command2.execute(); + + String input3 = "add /n andrew /i 8 /q 1"; + Command command3 = new AddCommand(input3); + command3.setData(peopleManagerWithThreeOrders); + command3.execute(); + + } + @Test void execute_emptyOrderList_expectException() throws LotsException { @@ -18,4 +42,6 @@ void execute_emptyOrderList_expectException() throws LotsException { assertThrows(NullPointerException.class, () -> command.execute()); } + + void execute_inputWithoutFoodIndex_expect } From 277cf4cfca75789b1b40045ec6c76342e0945411 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 12 Oct 2021 18:25:14 +0800 Subject: [PATCH 071/429] Added regex into DeleteCommand class. --- .../seedu/duke/command/DeleteCommand.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/command/DeleteCommand.java b/src/main/java/seedu/duke/command/DeleteCommand.java index 4122a56959..0ab2a146eb 100644 --- a/src/main/java/seedu/duke/command/DeleteCommand.java +++ b/src/main/java/seedu/duke/command/DeleteCommand.java @@ -6,6 +6,9 @@ import seedu.duke.Person; import seedu.duke.Ui; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + public class DeleteCommand extends Command { public static final String COMMAND_WORD = "delete"; @@ -21,11 +24,34 @@ public class DeleteCommand extends Command { */ public DeleteCommand(String input) throws LotsException { String[] splitInput = input.split(" "); + if (!checkUserInput(input)) { + throw new LotsException("Please enter a valid person's index followed by the order index! i.e. delete 1/a"); + } + assert checkUserInput(input)==true : "Invalid delete input command"; try { personIndex = getPersonIndex(splitInput[1]); foodIndex = getOrderIndex(splitInput[1]); } catch (NullPointerException | IndexOutOfBoundsException | NumberFormatException e) { - throw new LotsException("Please enter a valid person's index followed by the order index!"); + throw new LotsException("Please enter a valid person's index followed by the order index! i.e. delete 1/a"); + } + } + + /** + * Regex to check User Input before passing onto the class. + * + * @param input user input. + * @return a boolean true if the user input passes the regex. + * @throws IllegalArgumentException when the pattern for Regex is not able to be interpreted. + */ + private boolean checkUserInput(String input) throws IllegalArgumentException { + try { + Pattern pattern = Pattern.compile( + "^delete [1-9][0-9]?\\/[a-zA-Z]$", + Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(input); + return matcher.find(); + } catch (IllegalArgumentException e) { + return false; } } From dcb12685cabfcb13b924eca52a47f62698c8a6f3 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 12 Oct 2021 18:27:05 +0800 Subject: [PATCH 072/429] Added regex into DeleteCommand class. --- src/main/java/seedu/duke/command/DeleteCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/command/DeleteCommand.java b/src/main/java/seedu/duke/command/DeleteCommand.java index 0ab2a146eb..691753bb32 100644 --- a/src/main/java/seedu/duke/command/DeleteCommand.java +++ b/src/main/java/seedu/duke/command/DeleteCommand.java @@ -27,7 +27,7 @@ public DeleteCommand(String input) throws LotsException { if (!checkUserInput(input)) { throw new LotsException("Please enter a valid person's index followed by the order index! i.e. delete 1/a"); } - assert checkUserInput(input)==true : "Invalid delete input command"; + assert checkUserInput(input) == true : "Invalid delete input command"; try { personIndex = getPersonIndex(splitInput[1]); foodIndex = getOrderIndex(splitInput[1]); @@ -122,7 +122,7 @@ private void deleteOrder(PeopleManager manager) throws IndexOutOfBoundsException /** * Removes the person the list if his individual order list is empty. * - * @param manager The list of people that are ordering. + * @param manager The list of people that are ordering. * @param personToDeleteFrom Person whose order is to be deleted from. * @throws LotsException When there is an error in removing the person from the people manager. */ From 0bd636773f93b8e6cb03c759aa6a29cda31f9190 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 12 Oct 2021 18:32:46 +0800 Subject: [PATCH 073/429] Add checks for IO-Redirection test for add command. --- build.gradle | 1 + text-ui-test/EXPECTED.TXT | 10 +++++++++- text-ui-test/input.txt | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b0c5528fb5..91fffd027d 100644 --- a/build.gradle +++ b/build.gradle @@ -43,4 +43,5 @@ checkstyle { run{ standardInput = System.in + enableAssertions = true } diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index f2de9fcad8..4aad29c3ef 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,4 +1,12 @@ Welcome to L.O.T.S! What would you like to track today? ============================================================================================ -Thank you for using L.O.T.S! Good bye! +Unknown command. Please try again. +============================================================================================ +Unknown command. Please try again. +============================================================================================ +Unknown command. Please try again. ============================================================================================ +Unknown command. Please try again. +============================================================================================ +Thank you for using L.O.T.S! Good bye! +============================================================================================ \ No newline at end of file diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 0abaeaa993..7582ca2e61 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1 +1,19 @@ + +a +/// +deleteadwe +delete1/a +menu123asd +list +list1223 +add +add/n +add/n a /i 2 /q 2 +add /n /i /q +add /n /i 1 /q 1 +add /n a /i /q 1 +add /n a /i 1 /q +add /n a /i a /q a +add /n test /i 1 /q 1 +add / bye \ No newline at end of file From 2740effaa511c5c5efdedf2b248e60e1c0eb9257 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 12 Oct 2021 19:18:16 +0800 Subject: [PATCH 074/429] Added more JUnit test cases for DeleteCommand class. --- .../java/seedu/duke/DeleteCommandTest.java | 79 ++++++++++++++----- 1 file changed, 60 insertions(+), 19 deletions(-) diff --git a/src/test/java/seedu/duke/DeleteCommandTest.java b/src/test/java/seedu/duke/DeleteCommandTest.java index 988199aa2a..9933226925 100644 --- a/src/test/java/seedu/duke/DeleteCommandTest.java +++ b/src/test/java/seedu/duke/DeleteCommandTest.java @@ -1,5 +1,6 @@ package seedu.duke; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import seedu.duke.command.AddCommand; @@ -7,39 +8,79 @@ import seedu.duke.command.DeleteCommand; import seedu.duke.exceptions.LotsException; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; class DeleteCommandTest { - protected PeopleManager emptyPeopleManager; - protected PeopleManager peopleManagerWithThreeOrders; + protected PeopleManager peopleManager = new PeopleManager(); + @BeforeEach void setUp() throws LotsException { - String input1 = "add /n markus /i 1 /q 1"; - Command command1 = new AddCommand(input1); - command1.setData(peopleManagerWithThreeOrders); - command1.execute(); + String[] names = {"Markus", "Adam", "Andrew"}; + String[] foodIndex = {"1", "4", "8"}; - String input2 = "add /n adam /i 4 /q 1"; - Command command2 = new AddCommand(input2); - command2.setData(peopleManagerWithThreeOrders); - command2.execute(); - - String input3 = "add /n andrew /i 8 /q 1"; - Command command3 = new AddCommand(input3); - command3.setData(peopleManagerWithThreeOrders); - command3.execute(); + for (int i = 0; i < 3; i++) { + String input = "add /n " + names[i] + " /i " + foodIndex[i] + " /q 1"; + Command command = new AddCommand(input); + command.setData(peopleManager); + command.execute(); + } + } + @Test + void execute_validInput_expectException() throws LotsException { + String input = "delete 2/a"; + Command command = new DeleteCommand(input); + command.setData(peopleManager); + command.execute(); + assertEquals(20, peopleManager.getSize()); } + @Test + void execute_personIndexOutOfBounds_expectException() throws LotsException { + String input = "delete 99/a"; + Command command = new DeleteCommand(input); + command.setData(peopleManager); + assertThrows(LotsException.class, + () -> command.execute()); + } @Test - void execute_emptyOrderList_expectException() throws LotsException { - String input = "delete 2/a"; + void execute_orderIndexOutOfBounds_expectException() throws LotsException { + String input = "delete 2/b"; Command command = new DeleteCommand(input); - command.setData(emptyPeopleManager); - assertThrows(NullPointerException.class, + command.setData(peopleManager); + assertThrows(LotsException.class, () -> command.execute()); } + @Test + void execute_inputWithoutFoodIndex_expectException() { + String input = "delete 2"; + assertThrows(LotsException.class, + () -> new DeleteCommand(input)); + } + + @Test + void execute_invalidPersonIndex_expectException() { + String input = "delete markus/a"; + assertThrows(LotsException.class, + () -> new DeleteCommand(input)); + } + + @Test + void execute_invalidOrderIndex_expectException() { + String input = "delete 1/1"; + assertThrows(LotsException.class, + () -> new DeleteCommand(input)); + } + + @Test + void execute_invalidInput_expectException() { + String input = "delete Markus/1"; + assertThrows(LotsException.class, + () -> new DeleteCommand(input)); + } + } From 4d369434791de1f5bcdc25f6e1d915d227426aaa Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 12 Oct 2021 19:18:29 +0800 Subject: [PATCH 075/429] Add more output-redirect test & removed function to read from file. --- src/main/java/seedu/duke/Ui.java | 2 +- .../java/seedu/duke/command/MenuCommand.java | 22 +---- text-ui-test/EXPECTED.TXT | 96 ++++++++++++++++++- text-ui-test/input.txt | 11 ++- 4 files changed, 107 insertions(+), 24 deletions(-) diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index aac4c4c604..3564e1096c 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -91,7 +91,7 @@ private static void printIndividualPersonOrder(Person currentPerson) { * Prints a message to notify the user of the deletion of an order. */ public static void printDeleteMessage(Person person) { - Ui.printWithoutBorder("Alright, that order has been deleted from " + person.personName + "!"); + Ui.printWithBorder("Alright, that order has been deleted from " + person.personName + "!"); } diff --git a/src/main/java/seedu/duke/command/MenuCommand.java b/src/main/java/seedu/duke/command/MenuCommand.java index 582a17c197..01ae284494 100644 --- a/src/main/java/seedu/duke/command/MenuCommand.java +++ b/src/main/java/seedu/duke/command/MenuCommand.java @@ -5,8 +5,6 @@ import seedu.duke.Ui; import java.io.FileNotFoundException; -import java.util.Scanner; -import java.io.File; import java.util.ArrayList; public class MenuCommand extends Command { @@ -44,25 +42,7 @@ public void execute() { * Get menu data from foodData.txt */ private void getMenu() throws FileNotFoundException { - File myObject = new File("data/foodData.txt"); - Scanner myReader = new Scanner(myObject); - extractMenuData(myReader); - myReader.close(); - } - - /** - * extractMenuData seperates txt file content into individual lines - * and further seperates each line into food name and price to be - * stored in seperate arraylists. - * - * @param myReader contains menu data collected from the txt file. - */ - private void extractMenuData(Scanner myReader) { - while (myReader.hasNextLine()) { - String data = myReader.nextLine(); - foodList.add(data.substring(0, data.indexOf("|"))); - priceList.add(Double.parseDouble(data.substring(data.indexOf("|") + 1))); - } + extractLocalMenuData(); } private void extractLocalMenuData() { diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 4aad29c3ef..a5ca6d1d9b 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -8,5 +8,99 @@ Unknown command. Please try again. ============================================================================================ Unknown command. Please try again. ============================================================================================ +Unknown command. Please try again. +============================================================================================ +Unknown command. Please try again. +============================================================================================ +Your order list is empty! +============================================================================================ +Unknown command. Please try again. +============================================================================================ +Please enter a valid Add Command! +============================================================================================ +Unknown command. Please try again. +============================================================================================ +Unknown command. Please try again. +============================================================================================ +Please enter a valid Add Command! +============================================================================================ +Please enter a valid Add Command! +============================================================================================ +Please enter a valid Add Command! +============================================================================================ +Please enter a valid Add Command! +============================================================================================ +Please enter a valid Add Command! +============================================================================================ +We have updated the order list for: test + a) Ban Mian | Quantity = 1 | Cost = $3.00 +[Total Cost = $3.00] + +============================================================================================ +We have updated the order list for: moretest + a) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 +[Total Cost = $5.00] + +============================================================================================ +1. test: + a) Ban Mian | Quantity = 1 | Cost = $3.00 +[Total Cost = $3.00] +2. moretest: + a) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 +[Total Cost = $5.00] + +============================================================================================ +We have updated the order list for: toDelete + a) Fried Prawn Noodles (Hokkien Mee) | Quantity = 1 | Cost = $3.50 +[Total Cost = $3.50] + +============================================================================================ +1. test: + a) Ban Mian | Quantity = 1 | Cost = $3.00 +[Total Cost = $3.00] +2. moretest: + a) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 +[Total Cost = $5.00] +3. toDelete: + a) Fried Prawn Noodles (Hokkien Mee) | Quantity = 1 | Cost = $3.50 +[Total Cost = $3.50] + +============================================================================================ +Alright, that order has been deleted from toDelete! +============================================================================================ +1. test: + a) Ban Mian | Quantity = 1 | Cost = $3.00 +[Total Cost = $3.00] +2. moretest: + a) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 +[Total Cost = $5.00] + +============================================================================================ +index | Food Name | Price +-------------------------------------------------- +1 Ban Mian 3.00 +-------------------------------------------------- +2 Chicken Rice 3.00 +-------------------------------------------------- +3 Fried Prawn Noodles (Hokkien Mee) 3.50 +-------------------------------------------------- +4 Minced MeatNoodles(Ba Chor Mee) 3.00 +-------------------------------------------------- +5 Fried Carrot Cake 3.00 +-------------------------------------------------- +6 Fried Kway Teow (Char Kway Teow) 3.00 +-------------------------------------------------- +7 Pork Rib Soup (Bak Kut Teh) 5.00 +-------------------------------------------------- +8 Nasi Lemak 3.60 +-------------------------------------------------- + +============================================================================================ +Please enter a valid person's index followed by the order index! i.e. delete 1/a +============================================================================================ +Please enter a valid order index! +============================================================================================ +Please enter a valid person's index followed by the order index! i.e. delete 1/a +============================================================================================ Thank you for using L.O.T.S! Good bye! -============================================================================================ \ No newline at end of file +============================================================================================ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 7582ca2e61..e4f435a28e 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -15,5 +15,14 @@ add /n a /i /q 1 add /n a /i 1 /q add /n a /i a /q a add /n test /i 1 /q 1 -add / +add /n moretest /i 7 /q 2 +list +add /n toDelete /i 3 /q 2 +list +delete 3/a +list +menu +delete 5/a +delete 1/c +delete a/1 bye \ No newline at end of file From 198959821edceb16d6dccb0b040168892077d76e Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 12 Oct 2021 19:25:41 +0800 Subject: [PATCH 076/429] Edit minor parts in MenuCommand class to get from local data. --- .../java/seedu/duke/command/MenuCommand.java | 22 +++---------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/src/main/java/seedu/duke/command/MenuCommand.java b/src/main/java/seedu/duke/command/MenuCommand.java index 01ae284494..d9fd1f0e0c 100644 --- a/src/main/java/seedu/duke/command/MenuCommand.java +++ b/src/main/java/seedu/duke/command/MenuCommand.java @@ -17,13 +17,9 @@ public class MenuCommand extends Command { /** * MenuCommand calls access to file to retrieve stored menu. */ - public MenuCommand() throws LotsException { - try { - getMenu(); - } catch (FileNotFoundException e) { - throw new LotsException("Menu file not found!"); - } - extractLocalMenuData(); + public MenuCommand() { + priceList = Menu.PRICELIST; + foodList = Menu.FOODLIST; } /** @@ -37,16 +33,4 @@ public void execute() { } Ui.printWithBorder(""); } - - /** - * Get menu data from foodData.txt - */ - private void getMenu() throws FileNotFoundException { - extractLocalMenuData(); - } - - private void extractLocalMenuData() { - priceList = Menu.PRICELIST; - foodList = Menu.FOODLIST; - } } From b928f56f2515cec2263ff2cf731988a4c3218b66 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Tue, 12 Oct 2021 20:13:25 +0800 Subject: [PATCH 077/429] Added JUnit test for orders command --- src/test/java/seedu/duke/UiTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/test/java/seedu/duke/UiTest.java b/src/test/java/seedu/duke/UiTest.java index f8a98f7279..872403a23f 100644 --- a/src/test/java/seedu/duke/UiTest.java +++ b/src/test/java/seedu/duke/UiTest.java @@ -1,7 +1,20 @@ package seedu.duke; import org.junit.jupiter.api.Test; +import seedu.duke.command.Command; +import seedu.duke.exceptions.LotsException; public class UiTest { + @Test + void execute_inputContainsExtraInputs_throwsLotsException() throws LotsException { + try { + Command command; + command = Parser.getCommand("list a"); + command.execute(); + } catch (LotsException e) { + System.out.println("Please make sure there is no inputs after the list command!"); + } + } + } From bb65d3278ba483a48dd8b87511225a0f51aa8f34 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Tue, 12 Oct 2021 20:15:43 +0800 Subject: [PATCH 078/429] Minor edits to OrdersCommand --- src/main/java/seedu/duke/Parser.java | 2 +- src/main/java/seedu/duke/Ui.java | 6 ++++-- .../java/seedu/duke/command/OrdersCommand.java | 16 +++++++++++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 7de4d0c5f8..5e9f13713a 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -32,7 +32,7 @@ public static Command getCommand(String input) throws LotsException { case (DeleteCommand.COMMAND_WORD): return new DeleteCommand(input); case (OrdersCommand.COMMAND_WORD): - return new OrdersCommand(); + return new OrdersCommand(input); case (MenuCommand.COMMAND_WORD): return new MenuCommand(); case (ByeCommand.COMMAND_WORD): diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index aac4c4c604..e952ac362f 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -1,5 +1,7 @@ package seedu.duke; +import seedu.duke.exceptions.LotsException; + import java.util.Scanner; public class Ui { @@ -50,10 +52,10 @@ public static String readInput() { * * @param peopleManager List of people who are ordering. */ - public static void printOrdersList(PeopleManager peopleManager) { + public static void printOrdersList(PeopleManager peopleManager) throws LotsException { int totalNumOfPeopleOrdered = peopleManager.getSize(); if (totalNumOfPeopleOrdered == 0) { - Ui.printWithBorder("Your order list is empty!"); + Ui.printEmptyMessage(); } else { for (int i = 0; i < totalNumOfPeopleOrdered; i++) { String currentPersonName = peopleManager.getPerson(i).personName; diff --git a/src/main/java/seedu/duke/command/OrdersCommand.java b/src/main/java/seedu/duke/command/OrdersCommand.java index c671989f26..0162229009 100644 --- a/src/main/java/seedu/duke/command/OrdersCommand.java +++ b/src/main/java/seedu/duke/command/OrdersCommand.java @@ -1,16 +1,30 @@ package seedu.duke.command; import seedu.duke.Ui; +import seedu.duke.exceptions.LotsException; public class OrdersCommand extends Command { public static final String COMMAND_WORD = "list"; + /** + * Checks input for characters after list command. + * + * @param input Input entered by the user. + * @throws LotsException If characters exist in the input after the list command. + */ + public OrdersCommand(String input) throws LotsException { + String[] splitInput = input.split(" "); + if (splitInput.length > 1) { + throw new LotsException("Please make sure there is no inputs after the list command!"); + } + } + /** * Prints all the current orders. */ @Override - public void execute() { + public void execute() throws LotsException { Ui.printOrdersList(peopleManager); } } From 8ab60605d108663a3b506aba63710f8de37a8114 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Tue, 12 Oct 2021 20:28:37 +0800 Subject: [PATCH 079/429] Minor edits to fix issues --- src/main/java/seedu/duke/Ui.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 5ed1acfb4d..dbf0cfaf9a 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -52,10 +52,10 @@ public static String readInput() { * * @param peopleManager List of people who are ordering. */ - public static void printOrdersList(PeopleManager peopleManager) throws LotsException { + public static void printOrdersList(PeopleManager peopleManager) { int totalNumOfPeopleOrdered = peopleManager.getSize(); if (totalNumOfPeopleOrdered == 0) { - Ui.printEmptyMessage(); + Ui.printWithBorder("Your order list is empty!"); } else { for (int i = 0; i < totalNumOfPeopleOrdered; i++) { String currentPersonName = peopleManager.getPerson(i).personName; From 4e46cfe30bd8b0ae619b691407ba92610eb49874 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Tue, 12 Oct 2021 21:26:07 +0800 Subject: [PATCH 080/429] Added assertions to orders command --- src/main/java/seedu/duke/Ui.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index dbf0cfaf9a..cf3eb5ca4f 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -57,8 +57,10 @@ public static void printOrdersList(PeopleManager peopleManager) { if (totalNumOfPeopleOrdered == 0) { Ui.printWithBorder("Your order list is empty!"); } else { + assert totalNumOfPeopleOrdered != 0 : "Order list cannot be empty."; for (int i = 0; i < totalNumOfPeopleOrdered; i++) { String currentPersonName = peopleManager.getPerson(i).personName; + assert currentPersonName != null : "Person must exist."; Ui.printWithoutBorder((i + 1) + ". " + currentPersonName + ":"); printIndividualPersonOrder(peopleManager.getPerson(i)); } @@ -77,6 +79,7 @@ private static void printIndividualPersonOrder(Person currentPerson) { int currentItem = 97; //97 is the ascii for 'a'. int totalMenuItems = Menu.TOTAL_MENU_ITEMS; int[] currentIndividualOrders = currentPerson.individualFoodOrders; + assert currentIndividualOrders != null : "Person must have food orders."; for (int i = 0; i < totalMenuItems; i++) { if (currentIndividualOrders[i] != 0) { double currentCost = currentIndividualOrders[i] * Menu.PRICELIST.get(i); From 5c4dbaadf9ddf15b016c47007434eef624f18c80 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Wed, 13 Oct 2021 12:27:53 +0800 Subject: [PATCH 081/429] Add assert into AddCommand Class --- src/main/java/seedu/duke/command/AddCommand.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/seedu/duke/command/AddCommand.java b/src/main/java/seedu/duke/command/AddCommand.java index 8b3fc15819..4e20514090 100644 --- a/src/main/java/seedu/duke/command/AddCommand.java +++ b/src/main/java/seedu/duke/command/AddCommand.java @@ -107,6 +107,7 @@ private static int[] indexOfSlashes(String input) { */ private static String getPersonName(String input, int indexOfFirstSlash, int indexOfSecondSlash) { String tempPersonName = input.substring(indexOfFirstSlash + 2, indexOfSecondSlash - 1); + assert tempPersonName != null : "Input to Person Name cannot be NULL!"; return tempPersonName.trim(); } @@ -122,6 +123,7 @@ private static String getPersonName(String input, int indexOfFirstSlash, int ind private static int getFoodIndex(String input, int indexOfSecondSlash, int indexOfThirdSlash) throws NumberFormatException, LotsException { String subStringFoodIndex = input.substring(indexOfSecondSlash + 2, indexOfThirdSlash - 1).trim(); + assert subStringFoodIndex != "" : "Input to AddCommand Cannot be NULL!"; try { int foodIndex = Integer.parseInt(subStringFoodIndex); if (foodIndex > Menu.TOTAL_MENU_ITEMS || foodIndex <= 0) { @@ -146,6 +148,7 @@ private static int getFoodIndex(String input, int indexOfSecondSlash, int indexO private static int getFoodQuantity(String input, int indexOfThirdSlash) throws NumberFormatException, LotsException { String subStringFoodQuantity = input.substring(indexOfThirdSlash + 2).trim(); + assert subStringFoodQuantity != "" : "Input to AddCommand Cannot be NULL!"; try { int foodQuantity = Integer.parseInt(subStringFoodQuantity); if (foodQuantity > 1000 || foodQuantity <= 0) { From 9625837bd3c7301525290c430d8cc252f4b4f470 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Wed, 13 Oct 2021 13:24:57 +0800 Subject: [PATCH 082/429] update PeopleManagerTest and PersonTest --- .../java/seedu/duke/PeopleManagerTest.java | 50 ++++++++++++++++++ src/test/java/seedu/duke/PersonTest.java | 52 +++++++++++++++++-- 2 files changed, 99 insertions(+), 3 deletions(-) create mode 100644 src/test/java/seedu/duke/PeopleManagerTest.java diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java new file mode 100644 index 0000000000..781ebe5dab --- /dev/null +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -0,0 +1,50 @@ +package seedu.duke; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.duke.exceptions.LotsException; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows;; + +public class PeopleManagerTest { + protected PeopleManager peopleManager = new PeopleManager(); + + + @BeforeEach + void setUp() throws LotsException { + String[] names = {"Markus", "Adam", "Andrew"}; + for (int i = 0; i < 3; i++) { + Person person = new Person(names[i]); + peopleManager.addPerson(person); + } + } + + @Test + void countPeopleInList_Test() { + assertEquals(3, peopleManager.countPeopleInList()); + } + + @Test + void getPerson_Test() { + assertEquals("Adam", peopleManager.getPerson(1)); + } + + @Test + void getSize_Test() { + assertEquals(3, peopleManager.getSize()); + } + + @Test + void isEmpty_Test() { + assertEquals(false, peopleManager.isEmpty()); + } + + @Test + public void deletePerson_InvalidPersonIndex() { + assertThrows(LotsException.class, () -> { + peopleManager.deletePerson(5); + } ); + } + +} diff --git a/src/test/java/seedu/duke/PersonTest.java b/src/test/java/seedu/duke/PersonTest.java index 65b369adbc..1c89ff4acd 100644 --- a/src/test/java/seedu/duke/PersonTest.java +++ b/src/test/java/seedu/duke/PersonTest.java @@ -1,11 +1,57 @@ package seedu.duke; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import seedu.duke.exceptions.LotsException; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows;; public class PersonTest { + private String TEST_NAME = "hello"; + @Test + public void addFoodToIndividualFoodOrders_Negative_Zero() { + Person person = new Person(TEST_NAME); + assertThrows(LotsException.class, () -> { + person.addFoodToIndividualFoodOrders(-1); + } ); + assertThrows(LotsException.class, () -> { + person.addFoodToIndividualFoodOrders(0); + } ); + } + + @Test + public void addFoodToIndividualFoodOrders_MoreThantotalMenuItems() { + Person person = new Person(TEST_NAME); + assertThrows(LotsException.class, () -> { + person.addFoodToIndividualFoodOrders(88); + } ); + } + + @Test + public void removeFoodFromIndividualFoodOrders_Negative_Zero() { + Person person = new Person(TEST_NAME); + assertThrows(LotsException.class, () -> { + person.removeFoodFromIndividualFoodOrders(-1,1); + } ); + assertThrows(LotsException.class, () -> { + person.removeFoodFromIndividualFoodOrders(0,1); + } ); + } + + @Test + public void removeFoodFromIndividualFoodOrders_MoreThantotalMenuItems() { + Person person = new Person(TEST_NAME); + assertThrows(LotsException.class, () -> { + person.removeFoodFromIndividualFoodOrders(88,1); + } ); + } + + /*@Test + public void deleteParticularOrder_OutOfRange() { + Person person = new Person(TEST_NAME); + assertThrows(LotsException.class, () -> { + person.deleteParticularOrder(person.numberOfOrders+1); + } ); + }*/ + } From c59d4a8ed6968e4103b548c10a09c03a535d04d2 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Wed, 13 Oct 2021 13:32:06 +0800 Subject: [PATCH 083/429] update --- src/test/java/seedu/duke/PeopleManagerTest.java | 5 ++--- src/test/java/seedu/duke/PersonTest.java | 16 ++++++++-------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java index 781ebe5dab..fad8c5d140 100644 --- a/src/test/java/seedu/duke/PeopleManagerTest.java +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -5,12 +5,11 @@ import seedu.duke.exceptions.LotsException; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows;; +import static org.junit.jupiter.api.Assertions.assertThrows; public class PeopleManagerTest { protected PeopleManager peopleManager = new PeopleManager(); - @BeforeEach void setUp() throws LotsException { String[] names = {"Markus", "Adam", "Andrew"}; @@ -44,7 +43,7 @@ void isEmpty_Test() { public void deletePerson_InvalidPersonIndex() { assertThrows(LotsException.class, () -> { peopleManager.deletePerson(5); - } ); + }); } } diff --git a/src/test/java/seedu/duke/PersonTest.java b/src/test/java/seedu/duke/PersonTest.java index 1c89ff4acd..6f596ff5a9 100644 --- a/src/test/java/seedu/duke/PersonTest.java +++ b/src/test/java/seedu/duke/PersonTest.java @@ -3,20 +3,20 @@ import org.junit.jupiter.api.Test; import seedu.duke.exceptions.LotsException; -import static org.junit.jupiter.api.Assertions.assertThrows;; +import static org.junit.jupiter.api.Assertions.assertThrows; public class PersonTest { - private String TEST_NAME = "hello"; + private static final String TEST_NAME = "hello"; @Test public void addFoodToIndividualFoodOrders_Negative_Zero() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.addFoodToIndividualFoodOrders(-1); - } ); + }); assertThrows(LotsException.class, () -> { person.addFoodToIndividualFoodOrders(0); - } ); + }); } @Test @@ -24,7 +24,7 @@ public void addFoodToIndividualFoodOrders_MoreThantotalMenuItems() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.addFoodToIndividualFoodOrders(88); - } ); + }); } @Test @@ -32,10 +32,10 @@ public void removeFoodFromIndividualFoodOrders_Negative_Zero() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.removeFoodFromIndividualFoodOrders(-1,1); - } ); + }); assertThrows(LotsException.class, () -> { person.removeFoodFromIndividualFoodOrders(0,1); - } ); + }); } @Test @@ -43,7 +43,7 @@ public void removeFoodFromIndividualFoodOrders_MoreThantotalMenuItems() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.removeFoodFromIndividualFoodOrders(88,1); - } ); + }); } /*@Test From 36a428c28b0bb2bef931f11cf1186cf1eee0a8d1 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Wed, 13 Oct 2021 14:06:31 +0800 Subject: [PATCH 084/429] minor update --- src/test/java/seedu/duke/PeopleManagerTest.java | 10 +++++----- src/test/java/seedu/duke/PersonTest.java | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java index fad8c5d140..4408c2dc79 100644 --- a/src/test/java/seedu/duke/PeopleManagerTest.java +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -20,27 +20,27 @@ void setUp() throws LotsException { } @Test - void countPeopleInList_Test() { + public void testcountPeopleInList() { assertEquals(3, peopleManager.countPeopleInList()); } @Test - void getPerson_Test() { + public void testgetPerson() { assertEquals("Adam", peopleManager.getPerson(1)); } @Test - void getSize_Test() { + public void testgetSize() { assertEquals(3, peopleManager.getSize()); } @Test - void isEmpty_Test() { + public void isEmpty_Test() { assertEquals(false, peopleManager.isEmpty()); } @Test - public void deletePerson_InvalidPersonIndex() { + public void deletePerson_InvalidPersonIndex_expectException() { assertThrows(LotsException.class, () -> { peopleManager.deletePerson(5); }); diff --git a/src/test/java/seedu/duke/PersonTest.java b/src/test/java/seedu/duke/PersonTest.java index 6f596ff5a9..fedde696d9 100644 --- a/src/test/java/seedu/duke/PersonTest.java +++ b/src/test/java/seedu/duke/PersonTest.java @@ -9,7 +9,7 @@ public class PersonTest { private static final String TEST_NAME = "hello"; @Test - public void addFoodToIndividualFoodOrders_Negative_Zero() { + public void addFoodToIndividualFoodOrders_zeroOrLess_expectException() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.addFoodToIndividualFoodOrders(-1); @@ -20,7 +20,7 @@ public void addFoodToIndividualFoodOrders_Negative_Zero() { } @Test - public void addFoodToIndividualFoodOrders_MoreThantotalMenuItems() { + public void addFoodToIndividualFoodOrders_moreThantotalMenuItems_expectException() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.addFoodToIndividualFoodOrders(88); @@ -28,7 +28,7 @@ public void addFoodToIndividualFoodOrders_MoreThantotalMenuItems() { } @Test - public void removeFoodFromIndividualFoodOrders_Negative_Zero() { + public void removeFoodFromIndividualFoodOrders_zeroOrLess_expectException() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.removeFoodFromIndividualFoodOrders(-1,1); @@ -39,7 +39,7 @@ public void removeFoodFromIndividualFoodOrders_Negative_Zero() { } @Test - public void removeFoodFromIndividualFoodOrders_MoreThantotalMenuItems() { + public void removeFoodFromIndividualFoodOrders_moreThantotalMenuItems_expectException() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.removeFoodFromIndividualFoodOrders(88,1); From a2ba65bf54dabd5cde572ba70e6d3e9c9e9601ca Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Wed, 13 Oct 2021 16:06:58 +0800 Subject: [PATCH 085/429] gradle update --- build.gradle | 4 ++-- .../java/seedu/duke/PeopleManagerTest.java | 18 +++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 91fffd027d..f38e97bd7a 100644 --- a/build.gradle +++ b/build.gradle @@ -10,8 +10,8 @@ repositories { } dependencies { - testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.0' - testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.5.0' + testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.6.0' + testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.6.0' } test { diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java index 4408c2dc79..7c11ef5434 100644 --- a/src/test/java/seedu/duke/PeopleManagerTest.java +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -1,17 +1,21 @@ package seedu.duke; -import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; + import seedu.duke.exceptions.LotsException; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; +@TestInstance(Lifecycle.PER_CLASS) public class PeopleManagerTest { protected PeopleManager peopleManager = new PeopleManager(); - - @BeforeEach - void setUp() throws LotsException { + //Person personfind = new Person("Adam"); + + @BeforeAll + void setUp() { String[] names = {"Markus", "Adam", "Andrew"}; for (int i = 0; i < 3; i++) { Person person = new Person(names[i]); @@ -24,10 +28,10 @@ public void testcountPeopleInList() { assertEquals(3, peopleManager.countPeopleInList()); } - @Test + /*@Test public void testgetPerson() { assertEquals("Adam", peopleManager.getPerson(1)); - } + }*/ @Test public void testgetSize() { @@ -42,7 +46,7 @@ public void isEmpty_Test() { @Test public void deletePerson_InvalidPersonIndex_expectException() { assertThrows(LotsException.class, () -> { - peopleManager.deletePerson(5); + peopleManager.deletePerson(8); }); } From faeaee6242a2b498193b9c2a3037ba69b10e3e41 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Fri, 15 Oct 2021 21:17:55 +0800 Subject: [PATCH 086/429] Update PeopleManagerTest.java --- src/test/java/seedu/duke/PeopleManagerTest.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java index 7c11ef5434..99f1c6673b 100644 --- a/src/test/java/seedu/duke/PeopleManagerTest.java +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -2,20 +2,19 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestInstance; import seedu.duke.exceptions.LotsException; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -@TestInstance(Lifecycle.PER_CLASS) -public class PeopleManagerTest { - protected PeopleManager peopleManager = new PeopleManager(); +class PeopleManagerTest { + static PeopleManager peopleManager; //Person personfind = new Person("Adam"); @BeforeAll - void setUp() { + public static void setUp() { + peopleManager = new PeopleManager(); String[] names = {"Markus", "Adam", "Andrew"}; for (int i = 0; i < 3; i++) { Person person = new Person(names[i]); @@ -28,11 +27,6 @@ public void testcountPeopleInList() { assertEquals(3, peopleManager.countPeopleInList()); } - /*@Test - public void testgetPerson() { - assertEquals("Adam", peopleManager.getPerson(1)); - }*/ - @Test public void testgetSize() { assertEquals(3, peopleManager.getSize()); From 51515e46857bff39a07b20bd5d9b53e849187b76 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Fri, 15 Oct 2021 21:22:16 +0800 Subject: [PATCH 087/429] Update PeopleManagerTest.java --- src/test/java/seedu/duke/PeopleManagerTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java index 99f1c6673b..18e68627a5 100644 --- a/src/test/java/seedu/duke/PeopleManagerTest.java +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -10,7 +10,6 @@ class PeopleManagerTest { static PeopleManager peopleManager; - //Person personfind = new Person("Adam"); @BeforeAll public static void setUp() { From 20833960e81bffc7c9e67dd9012cd35456015baa Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Fri, 15 Oct 2021 21:50:05 +0800 Subject: [PATCH 088/429] Update PeopleManagerTest.java --- src/test/java/seedu/duke/PeopleManagerTest.java | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java index 18e68627a5..28db8bdc4c 100644 --- a/src/test/java/seedu/duke/PeopleManagerTest.java +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -21,26 +21,9 @@ public static void setUp() { } } - @Test - public void testcountPeopleInList() { - assertEquals(3, peopleManager.countPeopleInList()); - } - - @Test - public void testgetSize() { - assertEquals(3, peopleManager.getSize()); - } - @Test public void isEmpty_Test() { assertEquals(false, peopleManager.isEmpty()); } - @Test - public void deletePerson_InvalidPersonIndex_expectException() { - assertThrows(LotsException.class, () -> { - peopleManager.deletePerson(8); - }); - } - } From 2eb04cb87a54ba07478abf5d7f7c459d06859c13 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Fri, 15 Oct 2021 23:38:52 +0800 Subject: [PATCH 089/429] update --- src/test/java/seedu/duke/PeopleManagerTest.java | 2 +- src/test/java/seedu/duke/PersonTest.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java index 28db8bdc4c..189a54f68e 100644 --- a/src/test/java/seedu/duke/PeopleManagerTest.java +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -22,7 +22,7 @@ public static void setUp() { } @Test - public void isEmpty_Test() { + public void isEmpty_listOfPeopleNotEmpty_falseReturned() { assertEquals(false, peopleManager.isEmpty()); } diff --git a/src/test/java/seedu/duke/PersonTest.java b/src/test/java/seedu/duke/PersonTest.java index fedde696d9..af93623ff9 100644 --- a/src/test/java/seedu/duke/PersonTest.java +++ b/src/test/java/seedu/duke/PersonTest.java @@ -9,7 +9,7 @@ public class PersonTest { private static final String TEST_NAME = "hello"; @Test - public void addFoodToIndividualFoodOrders_zeroOrLess_expectException() { + public void addFoodToIndividualFoodOrders_menuIndexLessThanOne_expectException() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.addFoodToIndividualFoodOrders(-1); @@ -20,7 +20,7 @@ public void addFoodToIndividualFoodOrders_zeroOrLess_expectException() { } @Test - public void addFoodToIndividualFoodOrders_moreThantotalMenuItems_expectException() { + public void addFoodToIndividualFoodOrders_menuIndexOutOfBounds_expectException() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.addFoodToIndividualFoodOrders(88); @@ -28,7 +28,7 @@ public void addFoodToIndividualFoodOrders_moreThantotalMenuItems_expectException } @Test - public void removeFoodFromIndividualFoodOrders_zeroOrLess_expectException() { + public void removeFoodFromIndividualFoodOrders_menuIndexLessThanOne_expectException() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.removeFoodFromIndividualFoodOrders(-1,1); @@ -47,7 +47,7 @@ public void removeFoodFromIndividualFoodOrders_moreThantotalMenuItems_expectExce } /*@Test - public void deleteParticularOrder_OutOfRange() { + public void deleteParticularOrder_menuIndexOutOfBounds_throwsLotsException() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.deleteParticularOrder(person.numberOfOrders+1); From 5955e4df7d2cf20f7a6ad903672afdd1f6a65d2f Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sat, 16 Oct 2021 11:07:59 +0800 Subject: [PATCH 090/429] Edit multiple command classes to clean up code. --- src/main/java/META-INF/MANIFEST.MF | 3 +++ src/main/java/seedu/duke/Ui.java | 25 +++++++++---------- .../java/seedu/duke/command/AddCommand.java | 2 +- .../seedu/duke/command/DeleteCommand.java | 2 +- .../java/seedu/duke/command/MenuCommand.java | 6 ++--- .../seedu/duke/command/OrdersCommand.java | 2 +- 6 files changed, 20 insertions(+), 20 deletions(-) create mode 100644 src/main/java/META-INF/MANIFEST.MF diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..19e86fe56e --- /dev/null +++ b/src/main/java/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: seedu.duke.Duke + diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index cf3eb5ca4f..3b2dec7528 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -1,6 +1,5 @@ package seedu.duke; -import seedu.duke.exceptions.LotsException; import java.util.Scanner; @@ -55,16 +54,16 @@ public static String readInput() { public static void printOrdersList(PeopleManager peopleManager) { int totalNumOfPeopleOrdered = peopleManager.getSize(); if (totalNumOfPeopleOrdered == 0) { - Ui.printWithBorder("Your order list is empty!"); + printWithBorder("Your order list is empty!"); } else { assert totalNumOfPeopleOrdered != 0 : "Order list cannot be empty."; for (int i = 0; i < totalNumOfPeopleOrdered; i++) { String currentPersonName = peopleManager.getPerson(i).personName; assert currentPersonName != null : "Person must exist."; - Ui.printWithoutBorder((i + 1) + ". " + currentPersonName + ":"); + printWithoutBorder((i + 1) + ". " + currentPersonName + ":"); printIndividualPersonOrder(peopleManager.getPerson(i)); } - Ui.printWithBorder(""); + printWithBorder(""); } } @@ -83,20 +82,20 @@ private static void printIndividualPersonOrder(Person currentPerson) { for (int i = 0; i < totalMenuItems; i++) { if (currentIndividualOrders[i] != 0) { double currentCost = currentIndividualOrders[i] * Menu.PRICELIST.get(i); - Ui.printWithoutBorder("\t" + (char) currentItem + ") " + Menu.FOODLIST.get(i) + " | Quantity = " + printWithoutBorder("\t" + (char) currentItem + ") " + Menu.FOODLIST.get(i) + " | Quantity = " + currentIndividualOrders[i] + " | Cost = $" + String.format("%.2f", currentCost)); totalCost = totalCost + currentCost; currentItem++; } } - Ui.printWithoutBorder("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); + printWithoutBorder("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); } /** * Prints a message to notify the user of the deletion of an order. */ public static void printDeleteMessage(Person person) { - Ui.printWithBorder("Alright, that order has been deleted from " + person.personName + "!"); + printWithBorder("Alright, that order has been deleted from " + person.personName + "!"); } @@ -104,7 +103,7 @@ public static void printDeleteMessage(Person person) { * Prints a message to notify the user of an empty order list. */ public static void printEmptyMessage() { - Ui.printWithBorder("There are currently no orders!"); + printWithBorder("There are currently no orders!"); } /** @@ -114,14 +113,14 @@ public static void printEmptyMessage() { */ public static void printAddedOrderMessage(Person person) { assert person != null : "Person object cannot be null when adding!"; - Ui.printWithoutBorder("We have updated the order list for: " + person.personName); + printWithoutBorder("We have updated the order list for: " + person.personName); printIndividualPersonOrder(person); - Ui.printWithBorder(""); + printWithBorder(""); } public static void printMenuHeader() { - Ui.printWithoutBorder("index | Food Name | Price"); - Ui.printWithoutBorder(line); + printWithoutBorder("index | Food Name | Price"); + printWithoutBorder(line); } /** @@ -134,7 +133,7 @@ public static void printMenuHeader() { */ public static void printMenu(int index, String foodName, Double foodPrice) { System.out.format("%-8d%-33s%7.2f%n", index, foodName, foodPrice); - Ui.printWithoutBorder(line); + printWithoutBorder(line); } } diff --git a/src/main/java/seedu/duke/command/AddCommand.java b/src/main/java/seedu/duke/command/AddCommand.java index 8b3fc15819..5c464b061a 100644 --- a/src/main/java/seedu/duke/command/AddCommand.java +++ b/src/main/java/seedu/duke/command/AddCommand.java @@ -46,7 +46,7 @@ public void execute() throws LotsException { if (personName != "" || foodIndex != -1 || foodQuantity != -1) { Person person = new Person(personName); person.addFoodToIndividualFoodOrders(foodIndex); - peopleManager.addPerson(person); + super.peopleManager.addPerson(person); Ui.printAddedOrderMessage(person); } else { throw new LotsException("Please enter a valid Add Command!"); diff --git a/src/main/java/seedu/duke/command/DeleteCommand.java b/src/main/java/seedu/duke/command/DeleteCommand.java index 691753bb32..e3b5d80f4b 100644 --- a/src/main/java/seedu/duke/command/DeleteCommand.java +++ b/src/main/java/seedu/duke/command/DeleteCommand.java @@ -95,7 +95,7 @@ private int getOrderIndex(String deleteParams) throws IndexOutOfBoundsException, @Override public void execute() throws LotsException { try { - deleteOrder(peopleManager); + deleteOrder(super.peopleManager); } catch (IndexOutOfBoundsException e) { throw new LotsException("Please enter a valid person's index followed by the order index! i.e. delete 1/a"); } diff --git a/src/main/java/seedu/duke/command/MenuCommand.java b/src/main/java/seedu/duke/command/MenuCommand.java index d9fd1f0e0c..3dbaba1aa2 100644 --- a/src/main/java/seedu/duke/command/MenuCommand.java +++ b/src/main/java/seedu/duke/command/MenuCommand.java @@ -1,18 +1,16 @@ package seedu.duke.command; -import seedu.duke.exceptions.LotsException; import seedu.duke.Menu; import seedu.duke.Ui; -import java.io.FileNotFoundException; import java.util.ArrayList; public class MenuCommand extends Command { public static final String COMMAND_WORD = "menu"; - private ArrayList priceList = new ArrayList<>(); - private ArrayList foodList = new ArrayList<>(); + private ArrayList priceList; + private ArrayList foodList; /** * MenuCommand calls access to file to retrieve stored menu. diff --git a/src/main/java/seedu/duke/command/OrdersCommand.java b/src/main/java/seedu/duke/command/OrdersCommand.java index 0162229009..9273ff2d9a 100644 --- a/src/main/java/seedu/duke/command/OrdersCommand.java +++ b/src/main/java/seedu/duke/command/OrdersCommand.java @@ -25,6 +25,6 @@ public OrdersCommand(String input) throws LotsException { */ @Override public void execute() throws LotsException { - Ui.printOrdersList(peopleManager); + Ui.printOrdersList(super.peopleManager); } } From 18bfd85915e20164488d98f08415229ab4d8b805 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sat, 16 Oct 2021 11:23:16 +0800 Subject: [PATCH 091/429] Fix thaddyz peopleManager test class. --- .../java/seedu/duke/PeopleManagerTest.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java index 189a54f68e..a4ee3c0acd 100644 --- a/src/test/java/seedu/duke/PeopleManagerTest.java +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -8,9 +8,14 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; +//@@author thaddyz class PeopleManagerTest { static PeopleManager peopleManager; + /** + * Adds 3 people into the peopleManager Class. + * This method will only run once for this test class. + */ @BeforeAll public static void setUp() { peopleManager = new PeopleManager(); @@ -21,6 +26,23 @@ public static void setUp() { } } + @Test + public void countPeopleInList_listNotEmpty_normalResponse() { + assertEquals(3, peopleManager.countPeopleInList()); + } + + @Test + public void getSize_listNotEmpty_normalResponse() { + assertEquals(3, peopleManager.getSize()); + } + + @Test + public void deletePerson_InvalidPersonIndex_expectException() { + assertThrows(LotsException.class, () -> { + peopleManager.deletePerson(8); + }); + } + @Test public void isEmpty_listOfPeopleNotEmpty_falseReturned() { assertEquals(false, peopleManager.isEmpty()); From 59b6d6144f9683fb044226a8d289641d37787613 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sat, 16 Oct 2021 11:43:48 +0800 Subject: [PATCH 092/429] Add clearlistOfPeople method in PeopleManager class as a bug fix for testcases. --- src/main/java/seedu/duke/PeopleManager.java | 8 ++++++++ src/test/java/seedu/duke/DeleteCommandTest.java | 3 ++- src/test/java/seedu/duke/PeopleManagerTest.java | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java index 1616945f5d..6235d72d25 100644 --- a/src/main/java/seedu/duke/PeopleManager.java +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -69,4 +69,12 @@ public boolean isEmpty() { return listOfPeople.isEmpty(); } + /** + * Clears the arraylist of people + * stored. Mainly used before each test method. + */ + public static void clearListOfPeople() { + listOfPeople.clear(); + } + } diff --git a/src/test/java/seedu/duke/DeleteCommandTest.java b/src/test/java/seedu/duke/DeleteCommandTest.java index 9933226925..86a4b1fb1a 100644 --- a/src/test/java/seedu/duke/DeleteCommandTest.java +++ b/src/test/java/seedu/duke/DeleteCommandTest.java @@ -19,6 +19,7 @@ class DeleteCommandTest { void setUp() throws LotsException { String[] names = {"Markus", "Adam", "Andrew"}; String[] foodIndex = {"1", "4", "8"}; + PeopleManager.clearListOfPeople(); for (int i = 0; i < 3; i++) { String input = "add /n " + names[i] + " /i " + foodIndex[i] + " /q 1"; @@ -34,7 +35,7 @@ void execute_validInput_expectException() throws LotsException { Command command = new DeleteCommand(input); command.setData(peopleManager); command.execute(); - assertEquals(20, peopleManager.getSize()); + assertEquals(2, peopleManager.getSize()); } @Test diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java index a4ee3c0acd..b90a4fec5c 100644 --- a/src/test/java/seedu/duke/PeopleManagerTest.java +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -20,6 +20,8 @@ class PeopleManagerTest { public static void setUp() { peopleManager = new PeopleManager(); String[] names = {"Markus", "Adam", "Andrew"}; + PeopleManager.clearListOfPeople(); + for (int i = 0; i < 3; i++) { Person person = new Person(names[i]); peopleManager.addPerson(person); From 9311f858a2a9e3e1921f863694c9263fc6779886 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Sat, 16 Oct 2021 11:57:31 +0800 Subject: [PATCH 093/429] Remove countPeopleInList() function. --- src/main/java/seedu/duke/PeopleManager.java | 13 ------------- src/test/java/seedu/duke/PeopleManagerTest.java | 5 +---- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java index 6235d72d25..fa98a2debc 100644 --- a/src/main/java/seedu/duke/PeopleManager.java +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -11,19 +11,6 @@ public class PeopleManager { public PeopleManager() { } - /** - * Loops through the list and count the number of people in the list. - * - * @return the counter of the number of people in the list. - */ - public int countPeopleInList() { - int counter = 0; - for (int i = 0; i < listOfPeople.size(); i++) { - counter++; - } - return counter; - } - /** * Returns the person object given its index. * diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java index b90a4fec5c..ca12c8ebbf 100644 --- a/src/test/java/seedu/duke/PeopleManagerTest.java +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -28,10 +28,7 @@ public static void setUp() { } } - @Test - public void countPeopleInList_listNotEmpty_normalResponse() { - assertEquals(3, peopleManager.countPeopleInList()); - } + @Test public void getSize_listNotEmpty_normalResponse() { From 23f96cfe43c223a7013fb8735a83d1fd9664739b Mon Sep 17 00:00:00 2001 From: markuslyq Date: Sat, 16 Oct 2021 13:22:17 +0800 Subject: [PATCH 094/429] Edit list order command to show as integer instead of Chat and edited delete command to accept integer as food index instead of characters. --- src/main/java/seedu/duke/Ui.java | 6 ++++-- src/main/java/seedu/duke/command/DeleteCommand.java | 5 +++-- src/test/java/seedu/duke/DeleteCommandTest.java | 12 ++++++------ 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 3b2dec7528..347b5d0d31 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -60,7 +60,7 @@ public static void printOrdersList(PeopleManager peopleManager) { for (int i = 0; i < totalNumOfPeopleOrdered; i++) { String currentPersonName = peopleManager.getPerson(i).personName; assert currentPersonName != null : "Person must exist."; - printWithoutBorder((i + 1) + ". " + currentPersonName + ":"); + printWithoutBorder((i + 1) + ") " + currentPersonName + ":"); printIndividualPersonOrder(peopleManager.getPerson(i)); } printWithBorder(""); @@ -79,13 +79,15 @@ private static void printIndividualPersonOrder(Person currentPerson) { int totalMenuItems = Menu.TOTAL_MENU_ITEMS; int[] currentIndividualOrders = currentPerson.individualFoodOrders; assert currentIndividualOrders != null : "Person must have food orders."; + int index = 1; for (int i = 0; i < totalMenuItems; i++) { if (currentIndividualOrders[i] != 0) { double currentCost = currentIndividualOrders[i] * Menu.PRICELIST.get(i); - printWithoutBorder("\t" + (char) currentItem + ") " + Menu.FOODLIST.get(i) + " | Quantity = " + printWithoutBorder("\t(" + index + ") " + Menu.FOODLIST.get(i) + " | Quantity = " + currentIndividualOrders[i] + " | Cost = $" + String.format("%.2f", currentCost)); totalCost = totalCost + currentCost; currentItem++; + index++; } } printWithoutBorder("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); diff --git a/src/main/java/seedu/duke/command/DeleteCommand.java b/src/main/java/seedu/duke/command/DeleteCommand.java index e3b5d80f4b..9ccfc55668 100644 --- a/src/main/java/seedu/duke/command/DeleteCommand.java +++ b/src/main/java/seedu/duke/command/DeleteCommand.java @@ -46,7 +46,7 @@ public DeleteCommand(String input) throws LotsException { private boolean checkUserInput(String input) throws IllegalArgumentException { try { Pattern pattern = Pattern.compile( - "^delete [1-9][0-9]?\\/[a-zA-Z]$", + "^delete [1-9][0-9]?/[1-9][0-9]{0,2}$", //max 999 food orders per pax Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(input); return matcher.find(); @@ -79,7 +79,8 @@ private int getPersonIndex(String deleteParams) throws IndexOutOfBoundsException */ private int getOrderIndex(String deleteParams) throws IndexOutOfBoundsException, LotsException { int slashIndex = deleteParams.indexOf('/'); - int orderIndexInInteger = Character.getNumericValue(deleteParams.charAt(slashIndex + 1)) - 10; + String orderIndexInString = deleteParams.substring(slashIndex + 1); + int orderIndexInInteger = Integer.parseInt(orderIndexInString) - 1; if (orderIndexInInteger < 0) { throw new LotsException("Please enter a valid order index!"); } diff --git a/src/test/java/seedu/duke/DeleteCommandTest.java b/src/test/java/seedu/duke/DeleteCommandTest.java index 86a4b1fb1a..35b61aefef 100644 --- a/src/test/java/seedu/duke/DeleteCommandTest.java +++ b/src/test/java/seedu/duke/DeleteCommandTest.java @@ -31,7 +31,7 @@ void setUp() throws LotsException { @Test void execute_validInput_expectException() throws LotsException { - String input = "delete 2/a"; + String input = "delete 2/1"; Command command = new DeleteCommand(input); command.setData(peopleManager); command.execute(); @@ -40,7 +40,7 @@ void execute_validInput_expectException() throws LotsException { @Test void execute_personIndexOutOfBounds_expectException() throws LotsException { - String input = "delete 99/a"; + String input = "delete 99/1"; Command command = new DeleteCommand(input); command.setData(peopleManager); assertThrows(LotsException.class, @@ -49,7 +49,7 @@ void execute_personIndexOutOfBounds_expectException() throws LotsException { @Test void execute_orderIndexOutOfBounds_expectException() throws LotsException { - String input = "delete 2/b"; + String input = "delete 2/2"; Command command = new DeleteCommand(input); command.setData(peopleManager); assertThrows(LotsException.class, @@ -65,21 +65,21 @@ void execute_inputWithoutFoodIndex_expectException() { @Test void execute_invalidPersonIndex_expectException() { - String input = "delete markus/a"; + String input = "delete markus/1"; assertThrows(LotsException.class, () -> new DeleteCommand(input)); } @Test void execute_invalidOrderIndex_expectException() { - String input = "delete 1/1"; + String input = "delete 1/a"; assertThrows(LotsException.class, () -> new DeleteCommand(input)); } @Test void execute_invalidInput_expectException() { - String input = "delete Markus/1"; + String input = "delete Markus/a"; assertThrows(LotsException.class, () -> new DeleteCommand(input)); } From b61171b38463df9e6918ca86ae776d4f0373db7f Mon Sep 17 00:00:00 2001 From: markuslyq Date: Sat, 16 Oct 2021 13:26:42 +0800 Subject: [PATCH 095/429] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 41 +++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index a5ca6d1d9b..b04e8d4f58 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -33,47 +33,50 @@ Please enter a valid Add Command! Please enter a valid Add Command! ============================================================================================ We have updated the order list for: test - a) Ban Mian | Quantity = 1 | Cost = $3.00 + (1) Ban Mian | Quantity = 1 | Cost = $3.00 [Total Cost = $3.00] ============================================================================================ We have updated the order list for: moretest - a) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 + (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 [Total Cost = $5.00] ============================================================================================ -1. test: - a) Ban Mian | Quantity = 1 | Cost = $3.00 +1) test: + (1) Ban Mian | Quantity = 1 | Cost = $3.00 [Total Cost = $3.00] -2. moretest: - a) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 +2) moretest: + (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 [Total Cost = $5.00] ============================================================================================ We have updated the order list for: toDelete - a) Fried Prawn Noodles (Hokkien Mee) | Quantity = 1 | Cost = $3.50 + (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 1 | Cost = $3.50 [Total Cost = $3.50] ============================================================================================ -1. test: - a) Ban Mian | Quantity = 1 | Cost = $3.00 +1) test: + (1) Ban Mian | Quantity = 1 | Cost = $3.00 [Total Cost = $3.00] -2. moretest: - a) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 +2) moretest: + (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 [Total Cost = $5.00] -3. toDelete: - a) Fried Prawn Noodles (Hokkien Mee) | Quantity = 1 | Cost = $3.50 +3) toDelete: + (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 1 | Cost = $3.50 [Total Cost = $3.50] ============================================================================================ -Alright, that order has been deleted from toDelete! +Please enter a valid person's index followed by the order index! i.e. delete 1/a ============================================================================================ -1. test: - a) Ban Mian | Quantity = 1 | Cost = $3.00 +1) test: + (1) Ban Mian | Quantity = 1 | Cost = $3.00 [Total Cost = $3.00] -2. moretest: - a) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 +2) moretest: + (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 [Total Cost = $5.00] +3) toDelete: + (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 1 | Cost = $3.50 +[Total Cost = $3.50] ============================================================================================ index | Food Name | Price @@ -98,7 +101,7 @@ index | Food Name | Price ============================================================================================ Please enter a valid person's index followed by the order index! i.e. delete 1/a ============================================================================================ -Please enter a valid order index! +Please enter a valid person's index followed by the order index! i.e. delete 1/a ============================================================================================ Please enter a valid person's index followed by the order index! i.e. delete 1/a ============================================================================================ From 0bfe13d644aa72fdcdc2bedf2f26db0651f507ab Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sat, 16 Oct 2021 14:05:26 +0800 Subject: [PATCH 096/429] Fix regex. --- src/main/java/seedu/duke/command/DeleteCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/command/DeleteCommand.java b/src/main/java/seedu/duke/command/DeleteCommand.java index 9ccfc55668..98a8133be9 100644 --- a/src/main/java/seedu/duke/command/DeleteCommand.java +++ b/src/main/java/seedu/duke/command/DeleteCommand.java @@ -46,7 +46,7 @@ public DeleteCommand(String input) throws LotsException { private boolean checkUserInput(String input) throws IllegalArgumentException { try { Pattern pattern = Pattern.compile( - "^delete [1-9][0-9]?/[1-9][0-9]{0,2}$", //max 999 food orders per pax + "^delete [1-9][0-9]?/[1-9][0-9]?$", //max 99 food orders per pax Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(input); return matcher.find(); From 467f5b33baf9ff61e5ac6afa7367bd3afffaeb4a Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sat, 16 Oct 2021 21:22:43 +0800 Subject: [PATCH 097/429] edit command added --- src/main/java/seedu/duke/Parser.java | 3 + src/main/java/seedu/duke/Person.java | 42 +++++ src/main/java/seedu/duke/Ui.java | 8 + .../java/seedu/duke/command/EditCommand.java | 154 ++++++++++++++++++ 4 files changed, 207 insertions(+) create mode 100644 src/main/java/seedu/duke/command/EditCommand.java diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 5e9f13713a..645f71d96d 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -7,6 +7,7 @@ import seedu.duke.command.MenuCommand; import seedu.duke.command.OrdersCommand; import seedu.duke.command.UnknownCommand; +import seedu.duke.command.EditCommand; import seedu.duke.exceptions.LotsException; public class Parser { @@ -31,6 +32,8 @@ public static Command getCommand(String input) throws LotsException { return new AddCommand(input); case (DeleteCommand.COMMAND_WORD): return new DeleteCommand(input); + case (EditCommand.COMMAND_WORD): + return new EditCommand(input); case (OrdersCommand.COMMAND_WORD): return new OrdersCommand(input); case (MenuCommand.COMMAND_WORD): diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 846a364f1a..d6909195cb 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -81,6 +81,48 @@ public void deleteParticularOrder(int foodIndex) throws LotsException { } } + /** + * Sets the quantity of a particular food to quantity requested by user. + * + * @param foodIndex Index of the order whose quantity is to be changed. + * @param quantity Quantity of food to be set. + * @throws LotsException When foodIndex is more than number of food in menu or + * order quantity is less than 0. + */ + public void editParticularOrder(int foodIndex, int quantity) throws LotsException { + int numberOfOrders = 0; + if (foodIndex <= totalMenuItems && foodIndex >= 0) { + for (int i = 0; i < totalMenuItems; i++) { + findAndEditParticularOrder(numberOfOrders, foodIndex, quantity, i); + } + } else { + throw new LotsException(foodIndexOutOfBoundsErrorMessage); + } + } + + /** + * Extention of editParticularOrder() to find the particular order to edit. + * + * @param numberOfOrders Number of orders tagged to the person of interest. + * @param foodIndex Index of the order whose quantity is to be changed. + * @param quantity Quantity of food to be set. + * @param i Current index of individualFoodOrders array to search. + * @throws LotsException When foodIndex is more than number of food in menu or + * order quantity is less than 0. + */ + private void findAndEditParticularOrder(int numberOfOrders, int foodIndex, int quantity, int i) throws LotsException { + if (individualFoodOrders[i] > 0) { + numberOfOrders++; + } + if (foodIndex + 1 == numberOfOrders) { + if (quantity == 0) { + deleteParticularOrder(foodIndex); + } else { + individualFoodOrders[i] = quantity; + } + } + } + /** * Checks if the individual order of this person is empty by checking * if the quantity of food orders are 0. diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 347b5d0d31..ac1847f8f1 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -100,6 +100,14 @@ public static void printDeleteMessage(Person person) { printWithBorder("Alright, that order has been deleted from " + person.personName + "!"); } + /** + * Prints a message to notify the user of the edit made to his order. + * Additionally, user's edited orders will printed to show changes made. + */ + public static void printEditMessage(Person person, int foodIndex) { + printWithBorder("Order "+ (foodIndex + 1) +" from " + person.personName + "'s order has been edited"); + printIndividualPersonOrder(person); + } /** * Prints a message to notify the user of an empty order list. diff --git a/src/main/java/seedu/duke/command/EditCommand.java b/src/main/java/seedu/duke/command/EditCommand.java new file mode 100644 index 0000000000..e13e5d68c4 --- /dev/null +++ b/src/main/java/seedu/duke/command/EditCommand.java @@ -0,0 +1,154 @@ +package seedu.duke.command; + +import seedu.duke.exceptions.LotsException; +import seedu.duke.PeopleManager; +import seedu.duke.Person; +import seedu.duke.Ui; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class EditCommand extends Command { + + public static final String COMMAND_WORD = "edit"; + private int personIndex; + private int foodIndex, quantity; + + /** + * Splits the input given the regular expression of a whitespace and + * initialise the personIndex, orderIndex and quantity. + * + * @param input The entire line of command entered by the user. + * @throws LotsException If there is no input after the edit command or when the personIndex, + * foodIndex or quantity is not a positive integer. + */ + public EditCommand(String input) throws LotsException { + String[] splitInput = input.split(" "); + if (!checkUserInput(input)) { + throw new LotsException("Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8 (wrong input test)"); + } + assert checkUserInput(input) == true : "Invalid edit input command"; + try { + personIndex = getPersonIndex(splitInput[1]); + foodIndex = getOrderIndex(splitInput[1]); + quantity = getQuantity(splitInput[3]); + } catch (NullPointerException | IndexOutOfBoundsException | NumberFormatException e) { + throw new LotsException("Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8"); + } + } + + /** + * Regex to check User Input before passing onto the class. + * + * @param input The entire line of command entered by the user. + * @return a boolean true if the user input passes the regex. + * @throws IllegalArgumentException when the pattern for Regex is not able to be interpreted. + */ + private boolean checkUserInput(String input) throws IllegalArgumentException { + try { + Pattern pattern = Pattern.compile( + "^edit [1-9][0-9]?/[1-9][0-9]? /q [0-9][0-9]?$", //max 99 food orders and quantity per pax + Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(input); + return matcher.find(); + } catch (IllegalArgumentException e) { + return false; + } + } + + /** + * Get the index of the person whose order is to be edited. + * + * @param editParams String from the user input after the edit command word. + * @return Returns the index of the person in the form of an integer. + * @throws IndexOutOfBoundsException When "/" is not found in the string. + * @throws NumberFormatException When the person index can't be parsed into an integer. + */ + private int getPersonIndex(String editParams) throws IndexOutOfBoundsException, NumberFormatException { + int slashIndex = editParams.indexOf('/'); + String personIndexInString = editParams.substring(0, slashIndex); + return Integer.parseInt(personIndexInString) - 1; + } + + /** + * Get the index of the order to be edited. + * + * @param editParams String from the user input after the edit command word. + * @return Returns the index of the order to be edited in the form of an integer. + * @throws IndexOutOfBoundsException When "/" is not found in the string. + * @throws LotsException When the order index is out of range. + */ + private int getOrderIndex(String editParams) throws IndexOutOfBoundsException, LotsException { + int slashIndex = editParams.indexOf('/'); + String orderIndexInString = editParams.substring(slashIndex + 1); + int orderIndexInInteger = Integer.parseInt(orderIndexInString) - 1; + if (orderIndexInInteger < 0) { + throw new LotsException("Please enter a valid order index!"); + } + assert orderIndexInInteger >= 0 : "Order index cannot be negative."; + return orderIndexInInteger; + } + + /** + * Get the edited quantity. + * + * @param editParams String from the user input after /q. + * @return Returns the edited quantity in the form of an integer. + * @throws LotsException When the quantity is out of range. + */ + private int getQuantity(String editParams) throws LotsException { + int quantityInInteger = Integer.parseInt(editParams); + if (quantityInInteger < 0) { + throw new LotsException("Please enter a valid quantity number!"); + } + assert quantityInInteger >= 0 : "Quantity number cannot be negative."; + return quantityInInteger; + } + + /** + * Edits the quantity of a specific order from a particular person. + * + * @throws LotsException If the order or person's index to be deleted is out of bounds. + */ + @Override + public void execute() throws LotsException { + try { + editOrder(super.peopleManager); + } catch (IndexOutOfBoundsException e) { + throw new LotsException("Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8"); + } + } + + /** + * Change the quantity of that particular order index to the specified quantity. + * + * @param manager The list of people that are ordering. + * @throws IndexOutOfBoundsException Throws when personIndex given is larger than the number of people. + * @throws LotsException When there is an error in editing the quanity in Person. + */ + private void editOrder(PeopleManager manager) throws IndexOutOfBoundsException, LotsException { + if (manager.isEmpty()) { + Ui.printEmptyMessage(); + } else { + Person personToEditFrom = manager.getPerson(personIndex); + assert personToEditFrom != null : "Person does not exists."; + personToEditFrom.editParticularOrder(foodIndex, quantity); + Ui.printEditMessage(personToEditFrom, foodIndex); + //delete order if quantity 0 + deletePersonIfEmpty(manager, personToEditFrom); + } + } + + /** + * Removes the person the list if his individual order list is empty. + * + * @param manager The list of people that are ordering. + * @param personToDeleteFrom Person whose order is to be deleted from. + * @throws LotsException When there is an error in removing the person from the people manager. + */ + private void deletePersonIfEmpty(PeopleManager manager, Person personToDeleteFrom) throws LotsException { + if (personToDeleteFrom.isEmpty()) { + manager.deletePerson(personIndex); + } + } +} From 61fcab319472b58b6cf624958ed4e5a076477397 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sat, 16 Oct 2021 21:35:02 +0800 Subject: [PATCH 098/429] checkstyle --- src/main/java/seedu/duke/Person.java | 5 +++-- src/main/java/seedu/duke/Ui.java | 2 +- src/main/java/seedu/duke/command/EditCommand.java | 14 +++++++++----- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index d6909195cb..63891254bd 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -108,9 +108,10 @@ public void editParticularOrder(int foodIndex, int quantity) throws LotsExceptio * @param quantity Quantity of food to be set. * @param i Current index of individualFoodOrders array to search. * @throws LotsException When foodIndex is more than number of food in menu or - * order quantity is less than 0. + * order quantity is less than 0. */ - private void findAndEditParticularOrder(int numberOfOrders, int foodIndex, int quantity, int i) throws LotsException { + private void findAndEditParticularOrder(int numberOfOrders, int foodIndex, int quantity, int i) + throws LotsException { if (individualFoodOrders[i] > 0) { numberOfOrders++; } diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index ac1847f8f1..715c446e3f 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -105,7 +105,7 @@ public static void printDeleteMessage(Person person) { * Additionally, user's edited orders will printed to show changes made. */ public static void printEditMessage(Person person, int foodIndex) { - printWithBorder("Order "+ (foodIndex + 1) +" from " + person.personName + "'s order has been edited"); + printWithBorder("Order " + (foodIndex + 1) + " from " + person.personName + "'s order has been edited"); printIndividualPersonOrder(person); } diff --git a/src/main/java/seedu/duke/command/EditCommand.java b/src/main/java/seedu/duke/command/EditCommand.java index e13e5d68c4..5e38269ffd 100644 --- a/src/main/java/seedu/duke/command/EditCommand.java +++ b/src/main/java/seedu/duke/command/EditCommand.java @@ -12,7 +12,8 @@ public class EditCommand extends Command { public static final String COMMAND_WORD = "edit"; private int personIndex; - private int foodIndex, quantity; + private int foodIndex; + private int quantity; /** * Splits the input given the regular expression of a whitespace and @@ -20,12 +21,13 @@ public class EditCommand extends Command { * * @param input The entire line of command entered by the user. * @throws LotsException If there is no input after the edit command or when the personIndex, - * foodIndex or quantity is not a positive integer. + * foodIndex or quantity is not a positive integer. */ public EditCommand(String input) throws LotsException { String[] splitInput = input.split(" "); if (!checkUserInput(input)) { - throw new LotsException("Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8 (wrong input test)"); + throw new LotsException("Please enter a valid person's index followed by the order index" + + " and order quantity! i.e. edit 1/1 /q 8 (wrong input test)"); } assert checkUserInput(input) == true : "Invalid edit input command"; try { @@ -33,7 +35,8 @@ public EditCommand(String input) throws LotsException { foodIndex = getOrderIndex(splitInput[1]); quantity = getQuantity(splitInput[3]); } catch (NullPointerException | IndexOutOfBoundsException | NumberFormatException e) { - throw new LotsException("Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8"); + throw new LotsException("Please enter a valid person's index followed by the order index" + + " and order quantity! i.e. edit 1/1 /q 8"); } } @@ -115,7 +118,8 @@ public void execute() throws LotsException { try { editOrder(super.peopleManager); } catch (IndexOutOfBoundsException e) { - throw new LotsException("Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8"); + throw new LotsException("Please enter a valid person's index followed by the order index" + + " and order quantity! i.e. edit 1/1 /q 8"); } } From 9d42f882185e43e663ebdb556a012861bba687b0 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sat, 16 Oct 2021 21:38:09 +0800 Subject: [PATCH 099/429] checkstyle2 --- src/main/java/seedu/duke/Person.java | 2 +- src/main/java/seedu/duke/command/EditCommand.java | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 63891254bd..7bb6942d97 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -87,7 +87,7 @@ public void deleteParticularOrder(int foodIndex) throws LotsException { * @param foodIndex Index of the order whose quantity is to be changed. * @param quantity Quantity of food to be set. * @throws LotsException When foodIndex is more than number of food in menu or - * order quantity is less than 0. + * order quantity is less than 0. */ public void editParticularOrder(int foodIndex, int quantity) throws LotsException { int numberOfOrders = 0; diff --git a/src/main/java/seedu/duke/command/EditCommand.java b/src/main/java/seedu/duke/command/EditCommand.java index 5e38269ffd..77ff165c91 100644 --- a/src/main/java/seedu/duke/command/EditCommand.java +++ b/src/main/java/seedu/duke/command/EditCommand.java @@ -26,8 +26,8 @@ public class EditCommand extends Command { public EditCommand(String input) throws LotsException { String[] splitInput = input.split(" "); if (!checkUserInput(input)) { - throw new LotsException("Please enter a valid person's index followed by the order index" + - " and order quantity! i.e. edit 1/1 /q 8 (wrong input test)"); + throw new LotsException("Please enter a valid person's index followed by the order index" + + " and order quantity! i.e. edit 1/1 /q 8 (wrong input test)"); } assert checkUserInput(input) == true : "Invalid edit input command"; try { @@ -35,8 +35,8 @@ public EditCommand(String input) throws LotsException { foodIndex = getOrderIndex(splitInput[1]); quantity = getQuantity(splitInput[3]); } catch (NullPointerException | IndexOutOfBoundsException | NumberFormatException e) { - throw new LotsException("Please enter a valid person's index followed by the order index" + - " and order quantity! i.e. edit 1/1 /q 8"); + throw new LotsException("Please enter a valid person's index followed by the order index" + + " and order quantity! i.e. edit 1/1 /q 8"); } } @@ -118,8 +118,8 @@ public void execute() throws LotsException { try { editOrder(super.peopleManager); } catch (IndexOutOfBoundsException e) { - throw new LotsException("Please enter a valid person's index followed by the order index" + - " and order quantity! i.e. edit 1/1 /q 8"); + throw new LotsException("Please enter a valid person's index followed by the order index" + + " and order quantity! i.e. edit 1/1 /q 8"); } } From 0973d8b2241d91761d11bea7353a35302354ac1b Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sat, 16 Oct 2021 21:48:32 +0800 Subject: [PATCH 100/429] Create File for UML diagrams & add Implementation for Parser in DG. --- .../Parser Sequence Diag.drawio | 1 + .../ParserDiagrams/Parser Sequence Diag.jpg | Bin 0 -> 97992 bytes .../ParserDiagrams/ParserClassDiag-Page-1.jpg | Bin 0 -> 56861 bytes .../ParserDiagrams/ParserClassDiag.drawio | 1 + docs/AndrewsDG.md | 67 ++++++++++++++++++ docs/_config.yml | 3 +- 6 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio create mode 100644 UMLdiagrams/ParserDiagrams/Parser Sequence Diag.jpg create mode 100644 UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg create mode 100644 UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio create mode 100644 docs/AndrewsDG.md diff --git a/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio b/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio new file mode 100644 index 0000000000..7936390dff --- /dev/null +++ b/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.jpg b/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f3a665a0ee70f765d1ed15551635e88fbbba4ba0 GIT binary patch literal 97992 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�z@Sz9{@^*U-6XzX|tBb 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 M|NdqM`EBU`0lDu|l>h($ literal 0 HcmV?d00001 diff --git a/UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio b/UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio new file mode 100644 index 0000000000..bf877f44fb --- /dev/null +++ b/UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/AndrewsDG.md b/docs/AndrewsDG.md new file mode 100644 index 0000000000..2a81ca1ba2 --- /dev/null +++ b/docs/AndrewsDG.md @@ -0,0 +1,67 @@ +# Developer Guide + +## Acknowledgements + +{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} + +## Design & implementation + +### Parser +The purpose of the parser is to handle the obtaining of the command that the user has typed in. +This class diagram is a brief overview of how the Parser is related to other classes.
+Image of class Diag here. + +Below is a step by step example on how the parser is used when a user keys in an input. +Assuming the input is not going to be **null** or **blank**, + +Step 1)
+Lets assume the input passed in is `delete 1/2`. The method `getCommand()` would then split the user's +input into an array of strings along the spaces and store them in the array `listOfInputs`. After which, +it will get the user's command from the 0th array element and store it in another variable called `commandInString`. +
insert Obj Diag here.
+ +Step 2)
+The method will then parse `commandInString` through the switch cases and try to match it with +one of the known commands. If it is able to match it with a command, the method will instantiate +it's respective command object and return it. Else it would return an `unnknownCommandClass` instead. +Below is a sequence diagram modeling how the function works. +
Insert sequence diagram here + + +## Product scope +### Target user profile + +* User has good typing skills. +* Is comfortable without GUI. +* Tends to make large orders of food. +* Wishes to track multiple different orders of food. + +### Value proposition + +* Large orders can be confusing to keep track, especially if orders are to different stores. +* Allows users to keep track of bulk orders easily. +* Easily keep track of costs. +* Ensures that no orders are left out. +* Knows which order belongs to which store. +* Allow flexibility and control over what description you would like of your friends. +* Users are able to delete/edit entries quickly. +* Comments on the food can also be described by you (e.g. No meat for BanMian). + +## User Stories + +|Version| As a ... | I want to ... | So that I can ...| +|--------|----------|---------------|------------------| +|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| +|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| + +## Non-Functional Requirements + +{Give non-functional requirements} + +## Glossary + +* *glossary item* - Definition + +## Instructions for manual testing + +{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} diff --git a/docs/_config.yml b/docs/_config.yml index c4192631f2..51f41fea34 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1 +1,2 @@ -theme: jekyll-theme-cayman \ No newline at end of file +theme: jekyll-theme-cayman +markdown: GFM \ No newline at end of file From 4b24f35d1abf8e23b8d590483aff2b5e2151f0d7 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sat, 16 Oct 2021 22:59:20 +0800 Subject: [PATCH 101/429] Add more diagrams --- .../ParserDiagrams/ParserClassDiag-Page-2.jpg | Bin 0 -> 19650 bytes .../ParserDiagrams/ParserClassDiag.drawio | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-2.jpg diff --git a/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-2.jpg b/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6cb2fbbc0ed64e21f50cadf56a6316e2c832aa25 GIT binary patch literal 19650 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 literal 0 HcmV?d00001 diff --git a/UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio b/UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio index bf877f44fb..41208b1ca2 100644 --- a/UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio +++ b/UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file From b87c320897c2f67425c463e0f7ef0098d54ab0c4 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sun, 17 Oct 2021 09:47:42 +0800 Subject: [PATCH 102/429] Add images & testing note box --- docs/AndrewsDG.md | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/docs/AndrewsDG.md b/docs/AndrewsDG.md index 2a81ca1ba2..1b6dfc5be0 100644 --- a/docs/AndrewsDG.md +++ b/docs/AndrewsDG.md @@ -7,9 +7,12 @@ ## Design & implementation ### Parser -The purpose of the parser is to handle the obtaining of the command that the user has typed in. -This class diagram is a brief overview of how the Parser is related to other classes.
-Image of class Diag here. +The purpose of the parser is to the command that the user has typed in and return its respective command +object. The class diagram below is a brief overview of how the Parser is related to other classes. +
![Adding Event](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) +

Below is a step by step example on how the parser is used when a user keys in an input. Assuming the input is not going to be **null** or **blank**, @@ -18,15 +21,33 @@ Step 1)
Lets assume the input passed in is `delete 1/2`. The method `getCommand()` would then split the user's input into an array of strings along the spaces and store them in the array `listOfInputs`. After which, it will get the user's command from the 0th array element and store it in another variable called `commandInString`. -
insert Obj Diag here.
+
Step 2)
The method will then parse `commandInString` through the switch cases and try to match it with one of the known commands. If it is able to match it with a command, the method will instantiate it's respective command object and return it. Else it would return an `unnknownCommandClass` instead. Below is a sequence diagram modeling how the function works. -
Insert sequence diagram here - +
![Adding Event](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) + +#### Alternate implementation + +Initially we thought of having each command's respective functions to be executed inside the switch statement. +A rough example of the `delete` and `add` function can be seen below. +``` +case "delete": + functionToDeleteTask(input); + break; +case "add": + functionToAddTask(input); + break; +``` + +The upside of doing would be that there is less code overall. +However, doing so would cause our code to have a higher amount of coupling and would also cause the code to be +messier and therefore harder to read. By having a command class for each respective command, this allows us +to segregate all the necessary functions for each command in their own respective class, therefore making +testing easier. ## Product scope ### Target user profile From db5139525b871bff929585a61deddfcb190dd93d Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sun, 17 Oct 2021 12:30:24 +0800 Subject: [PATCH 103/429] Edit DG div class --- docs/AndrewsDG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/AndrewsDG.md b/docs/AndrewsDG.md index 1b6dfc5be0..92a1d08303 100644 --- a/docs/AndrewsDG.md +++ b/docs/AndrewsDG.md @@ -10,8 +10,10 @@ The purpose of the parser is to the command that the user has typed in and return its respective command object. The class diagram below is a brief overview of how the Parser is related to other classes.
![Adding Event](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) -
+
+ :information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. +
Below is a step by step example on how the parser is used when a user keys in an input. From c8898f8a8a4e37b96354717c35e2441af85b9961 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sun, 17 Oct 2021 12:58:29 +0800 Subject: [PATCH 104/429] Add jemoji plugin for markdown. --- docs/_config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index 51f41fea34..72ead93ca6 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,2 +1,4 @@ theme: jekyll-theme-cayman -markdown: GFM \ No newline at end of file +markdown: GFM +plugins: + - jemoji \ No newline at end of file From 1a29242bc2936006c0d69284c3eecec9b8a5fafb Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sun, 17 Oct 2021 13:33:24 +0800 Subject: [PATCH 105/429] Edit image name. --- docs/AndrewsDG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/AndrewsDG.md b/docs/AndrewsDG.md index 92a1d08303..641f32ddf1 100644 --- a/docs/AndrewsDG.md +++ b/docs/AndrewsDG.md @@ -9,7 +9,7 @@ ### Parser The purpose of the parser is to the command that the user has typed in and return its respective command object. The class diagram below is a brief overview of how the Parser is related to other classes. -
![Adding Event](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) +
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg)
:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. @@ -30,7 +30,7 @@ The method will then parse `commandInString` through the switch cases and try to one of the known commands. If it is able to match it with a command, the method will instantiate it's respective command object and return it. Else it would return an `unnknownCommandClass` instead. Below is a sequence diagram modeling how the function works. -
![Adding Event](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) +
![Sqeuence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) #### Alternate implementation From ceed88b3998f22a192b396d9fe21d70261cb5f9c Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sun, 17 Oct 2021 14:41:45 +0800 Subject: [PATCH 106/429] updates --- docs/YZDeveloperGuide.md | 38 +++++++++++++++++++ .../java/seedu/duke/command/EditCommand.java | 7 ++-- 2 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 docs/YZDeveloperGuide.md diff --git a/docs/YZDeveloperGuide.md b/docs/YZDeveloperGuide.md new file mode 100644 index 0000000000..64e1f0ed2b --- /dev/null +++ b/docs/YZDeveloperGuide.md @@ -0,0 +1,38 @@ +# Developer Guide + +## Acknowledgements + +{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} + +## Design & implementation + +{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} + + +## Product scope +### Target user profile + +{Describe the target user profile} + +### Value proposition + +{Describe the value proposition: what problem does it solve?} + +## User Stories + +|Version| As a ... | I want to ... | So that I can ...| +|--------|----------|---------------|------------------| +|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| +|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| + +## Non-Functional Requirements + +{Give non-functional requirements} + +## Glossary + +* *glossary item* - Definition + +## Instructions for manual testing + +{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} diff --git a/src/main/java/seedu/duke/command/EditCommand.java b/src/main/java/seedu/duke/command/EditCommand.java index 77ff165c91..0cc5f8e7ed 100644 --- a/src/main/java/seedu/duke/command/EditCommand.java +++ b/src/main/java/seedu/duke/command/EditCommand.java @@ -27,7 +27,7 @@ public EditCommand(String input) throws LotsException { String[] splitInput = input.split(" "); if (!checkUserInput(input)) { throw new LotsException("Please enter a valid person's index followed by the order index" - + " and order quantity! i.e. edit 1/1 /q 8 (wrong input test)"); + + " and order quantity! i.e. edit 1/1 /q 8"); } assert checkUserInput(input) == true : "Invalid edit input command"; try { @@ -45,12 +45,11 @@ public EditCommand(String input) throws LotsException { * * @param input The entire line of command entered by the user. * @return a boolean true if the user input passes the regex. - * @throws IllegalArgumentException when the pattern for Regex is not able to be interpreted. */ - private boolean checkUserInput(String input) throws IllegalArgumentException { + private boolean checkUserInput(String input) { try { Pattern pattern = Pattern.compile( - "^edit [1-9][0-9]?/[1-9][0-9]? /q [0-9][0-9]?$", //max 99 food orders and quantity per pax + "^edit [1-9][0-9]?/[1-9][0-9]? /q \\d{1,3}?$", //max 99 food orders and quantity per pax Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(input); return matcher.find(); From f1e30d8794acd0e6a985e0c51c38440942bce57c Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sun, 17 Oct 2021 16:05:54 +0800 Subject: [PATCH 107/429] Integrated DG. --- docs/DeveloperGuide.md | 45 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 64e1f0ed2b..48da41fcd6 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -8,6 +8,51 @@ {Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} +### Parser + +The purpose of the parser is to the command that the user has typed in and return its respective command +object. The class diagram below is a brief overview of how the Parser is related to other classes. +
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) +
+ +:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. + +
+ +Below is a step by step example on how the parser is used when a user keys in an input. +Assuming the input is not going to be **null** or **blank**, + +Step 1)
+Lets assume the input passed in is `delete 1/2`. The method `getCommand()` would then split the user's +input into an array of strings along the spaces and store them in the array `listOfInputs`. After which, +it will get the user's command from the 0th array element and store it in another variable called `commandInString`. +
+ +Step 2)
+The method will then parse `commandInString` through the switch cases and try to match it with +one of the known commands. If it is able to match it with a command, the method will instantiate +it's respective command object and return it. Else it would return an `unnknownCommandClass` instead. +Below is a sequence diagram modeling how the function works. +
![Sqeuence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) + +#### Alternate implementation + +Initially we thought of having each command's respective functions to be executed inside the switch statement. +A rough example of the `delete` and `add` function can be seen below. +``` +case "delete": + functionToDeleteTask(input); + break; +case "add": + functionToAddTask(input); + break; +``` + +The upside of doing would be that there is less code overall. +However, doing so would cause our code to have a higher amount of coupling and would also cause the code to be +messier and therefore harder to read. By having a command class for each respective command, this allows us +to segregate all the necessary functions for each command in their own respective class, therefore making +testing easier. ## Product scope ### Target user profile From fd108c8f334b86e9296beba6c47497d707357bb1 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Sun, 17 Oct 2021 23:04:20 +0800 Subject: [PATCH 108/429] Enabled ability to specify quantity of orders --- src/main/java/seedu/duke/Person.java | 4 ++-- src/main/java/seedu/duke/command/AddCommand.java | 2 +- src/test/java/seedu/duke/PersonTest.java | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 846a364f1a..1335b72ca9 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -34,9 +34,9 @@ private void setupIndividualFoodOrders() { * * @param foodIndex Index of food in the menu. */ - public void addFoodToIndividualFoodOrders(int foodIndex) throws LotsException { + public void addFoodToIndividualFoodOrders(int foodIndex, int foodQuantity) throws LotsException { if (foodIndex <= totalMenuItems && foodIndex > 0) { - individualFoodOrders[foodIndex - 1] = individualFoodOrders[foodIndex - 1] + 1; + individualFoodOrders[foodIndex - 1] = individualFoodOrders[foodIndex - 1] + foodQuantity; } else { throw new LotsException(foodIndexOutOfBoundsErrorMessage); } diff --git a/src/main/java/seedu/duke/command/AddCommand.java b/src/main/java/seedu/duke/command/AddCommand.java index 74849a000b..75644d8a9c 100644 --- a/src/main/java/seedu/duke/command/AddCommand.java +++ b/src/main/java/seedu/duke/command/AddCommand.java @@ -45,7 +45,7 @@ public AddCommand(String input) throws LotsException { public void execute() throws LotsException { if (personName != "" || foodIndex != -1 || foodQuantity != -1) { Person person = new Person(personName); - person.addFoodToIndividualFoodOrders(foodIndex); + person.addFoodToIndividualFoodOrders(foodIndex, foodQuantity); super.peopleManager.addPerson(person); Ui.printAddedOrderMessage(person); } else { diff --git a/src/test/java/seedu/duke/PersonTest.java b/src/test/java/seedu/duke/PersonTest.java index af93623ff9..d99a31fcf3 100644 --- a/src/test/java/seedu/duke/PersonTest.java +++ b/src/test/java/seedu/duke/PersonTest.java @@ -12,10 +12,10 @@ public class PersonTest { public void addFoodToIndividualFoodOrders_menuIndexLessThanOne_expectException() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { - person.addFoodToIndividualFoodOrders(-1); + person.addFoodToIndividualFoodOrders(-1, 1); }); assertThrows(LotsException.class, () -> { - person.addFoodToIndividualFoodOrders(0); + person.addFoodToIndividualFoodOrders(0, 1); }); } @@ -23,7 +23,7 @@ public void addFoodToIndividualFoodOrders_menuIndexLessThanOne_expectException() public void addFoodToIndividualFoodOrders_menuIndexOutOfBounds_expectException() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { - person.addFoodToIndividualFoodOrders(88); + person.addFoodToIndividualFoodOrders(88, 1); }); } @@ -39,7 +39,7 @@ public void removeFoodFromIndividualFoodOrders_menuIndexLessThanOne_expectExcept } @Test - public void removeFoodFromIndividualFoodOrders_moreThantotalMenuItems_expectException() { + public void removeFoodFromIndividualFoodOrders_moreThanTotalMenuItems_expectException() { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.removeFoodFromIndividualFoodOrders(88,1); From d1cdf190ac50c131b6dc974fd809bc283ab2647c Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Sun, 17 Oct 2021 23:09:45 +0800 Subject: [PATCH 109/429] Edited expected outcome for IO test. --- text-ui-test/EXPECTED.TXT | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index b04e8d4f58..2dad5d2029 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -38,32 +38,32 @@ We have updated the order list for: test ============================================================================================ We have updated the order list for: moretest - (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 -[Total Cost = $5.00] + (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 2 | Cost = $10.00 +[Total Cost = $10.00] ============================================================================================ 1) test: (1) Ban Mian | Quantity = 1 | Cost = $3.00 [Total Cost = $3.00] 2) moretest: - (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 -[Total Cost = $5.00] + (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 2 | Cost = $10.00 +[Total Cost = $10.00] ============================================================================================ We have updated the order list for: toDelete - (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 1 | Cost = $3.50 -[Total Cost = $3.50] + (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 +[Total Cost = $7.00] ============================================================================================ 1) test: (1) Ban Mian | Quantity = 1 | Cost = $3.00 [Total Cost = $3.00] 2) moretest: - (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 -[Total Cost = $5.00] + (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 2 | Cost = $10.00 +[Total Cost = $10.00] 3) toDelete: - (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 1 | Cost = $3.50 -[Total Cost = $3.50] + (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 +[Total Cost = $7.00] ============================================================================================ Please enter a valid person's index followed by the order index! i.e. delete 1/a @@ -72,11 +72,11 @@ Please enter a valid person's index followed by the order index! i.e. delete 1/a (1) Ban Mian | Quantity = 1 | Cost = $3.00 [Total Cost = $3.00] 2) moretest: - (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 1 | Cost = $5.00 -[Total Cost = $5.00] + (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 2 | Cost = $10.00 +[Total Cost = $10.00] 3) toDelete: - (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 1 | Cost = $3.50 -[Total Cost = $3.50] + (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 +[Total Cost = $7.00] ============================================================================================ index | Food Name | Price From 4be0cdd2bb55594a4912817bc6418be1425e8217 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Sun, 17 Oct 2021 23:46:29 +0800 Subject: [PATCH 110/429] Implemented an Order Class Better organisation of orders for ease of handling. --- src/main/java/seedu/duke/Order.java | 37 ++++++++++++++++++++++++ src/main/java/seedu/duke/Person.java | 33 +++++---------------- src/main/java/seedu/duke/Ui.java | 10 +++---- src/test/java/seedu/duke/PersonTest.java | 19 ------------ 4 files changed, 50 insertions(+), 49 deletions(-) create mode 100644 src/main/java/seedu/duke/Order.java diff --git a/src/main/java/seedu/duke/Order.java b/src/main/java/seedu/duke/Order.java new file mode 100644 index 0000000000..eb29d63da3 --- /dev/null +++ b/src/main/java/seedu/duke/Order.java @@ -0,0 +1,37 @@ +package seedu.duke; + +import java.util.ArrayList; + +public class Order { + + private String foodName; + private int foodIndex; + private int quantity; + private double costOfOrder; + private static ArrayList menuList = Menu.FOODLIST; + private static ArrayList priceList = Menu.PRICELIST; + + public Order(int foodIndex, int quantity) { + this.foodIndex = foodIndex; + this.foodName = menuList.get(foodIndex); + this.quantity = quantity; + this.costOfOrder = quantity * priceList.get(foodIndex); + } + + public void setQuantity(int quantityToSet) { + this.quantity = quantityToSet; + this.costOfOrder = quantityToSet * priceList.get(foodIndex); + } + + public int getQuantity() { + return quantity; + } + + public double getCost() { + return costOfOrder; + } + + public String toString() { + return foodName + " | Quantity = " + quantity + " | Cost = $" + String.format("%.2f", costOfOrder); + } +} diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 1335b72ca9..be82e3a489 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -6,7 +6,7 @@ public class Person { protected int totalMenuItems = Menu.TOTAL_MENU_ITEMS; protected String personName; - protected int[] individualFoodOrders = new int[totalMenuItems]; + protected Order[] individualFoodOrders = new Order[totalMenuItems]; private String foodIndexOutOfBoundsErrorMessage = "Please enter the right menu number!"; /** @@ -25,36 +25,19 @@ public Person(String personName) { */ private void setupIndividualFoodOrders() { for (int i = 0; i < totalMenuItems; i++) { - individualFoodOrders[i] = 0; + individualFoodOrders[i] = new Order(i, 0); } } /** - * Add the quantity of the corresponding food index by 1. + * Add the quantity of the corresponding food index. * * @param foodIndex Index of food in the menu. */ public void addFoodToIndividualFoodOrders(int foodIndex, int foodQuantity) throws LotsException { if (foodIndex <= totalMenuItems && foodIndex > 0) { - individualFoodOrders[foodIndex - 1] = individualFoodOrders[foodIndex - 1] + foodQuantity; - } else { - throw new LotsException(foodIndexOutOfBoundsErrorMessage); - } - } - - /** - * Minus the quantity of the corresponding food index by 1. - * If the quantity of food is 0, the quantity remains 0. - * - * @param foodIndex Index of food in the menu. - */ - public void removeFoodFromIndividualFoodOrders(int foodIndex, int quantity) throws LotsException { - if (foodIndex <= totalMenuItems && foodIndex > 0) { - if (individualFoodOrders[foodIndex - 1] != 0) { - individualFoodOrders[foodIndex - 1] = individualFoodOrders[foodIndex - 1] - quantity; - } else { - individualFoodOrders[foodIndex - 1] = 0; - } + int updatedQuantity = individualFoodOrders[foodIndex - 1].getQuantity() + foodQuantity; + individualFoodOrders[foodIndex - 1].setQuantity(updatedQuantity); } else { throw new LotsException(foodIndexOutOfBoundsErrorMessage); } @@ -69,11 +52,11 @@ public void removeFoodFromIndividualFoodOrders(int foodIndex, int quantity) thro public void deleteParticularOrder(int foodIndex) throws LotsException { int numberOfOrders = 0; for (int i = 0; i < totalMenuItems; i++) { - if (individualFoodOrders[i] > 0) { + if (individualFoodOrders[i].getQuantity() > 0) { numberOfOrders++; } if (foodIndex + 1 == numberOfOrders) { - individualFoodOrders[i] = 0; + individualFoodOrders[i].setQuantity(0); } } if (foodIndex + 1 > numberOfOrders) { @@ -90,7 +73,7 @@ public void deleteParticularOrder(int foodIndex) throws LotsException { public boolean isEmpty() { int numberOfOrders = 0; for (int i = 0; i < totalMenuItems; i++) { - if (individualFoodOrders[i] > 0) { + if (individualFoodOrders[i].getQuantity() > 0) { numberOfOrders++; } } diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 347b5d0d31..609f88ea5e 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -77,14 +77,14 @@ private static void printIndividualPersonOrder(Person currentPerson) { double totalCost = 0; int currentItem = 97; //97 is the ascii for 'a'. int totalMenuItems = Menu.TOTAL_MENU_ITEMS; - int[] currentIndividualOrders = currentPerson.individualFoodOrders; + Order[] currentIndividualOrders = currentPerson.individualFoodOrders; assert currentIndividualOrders != null : "Person must have food orders."; int index = 1; for (int i = 0; i < totalMenuItems; i++) { - if (currentIndividualOrders[i] != 0) { - double currentCost = currentIndividualOrders[i] * Menu.PRICELIST.get(i); - printWithoutBorder("\t(" + index + ") " + Menu.FOODLIST.get(i) + " | Quantity = " - + currentIndividualOrders[i] + " | Cost = $" + String.format("%.2f", currentCost)); + Order currentOrder = currentIndividualOrders[i]; + if (currentOrder.getQuantity() != 0) { + double currentCost = currentOrder.getCost(); + printWithoutBorder("\t(" + index + ") " + currentOrder); totalCost = totalCost + currentCost; currentItem++; index++; diff --git a/src/test/java/seedu/duke/PersonTest.java b/src/test/java/seedu/duke/PersonTest.java index d99a31fcf3..c9aaa10564 100644 --- a/src/test/java/seedu/duke/PersonTest.java +++ b/src/test/java/seedu/duke/PersonTest.java @@ -26,25 +26,6 @@ public void addFoodToIndividualFoodOrders_menuIndexOutOfBounds_expectException() person.addFoodToIndividualFoodOrders(88, 1); }); } - - @Test - public void removeFoodFromIndividualFoodOrders_menuIndexLessThanOne_expectException() { - Person person = new Person(TEST_NAME); - assertThrows(LotsException.class, () -> { - person.removeFoodFromIndividualFoodOrders(-1,1); - }); - assertThrows(LotsException.class, () -> { - person.removeFoodFromIndividualFoodOrders(0,1); - }); - } - - @Test - public void removeFoodFromIndividualFoodOrders_moreThanTotalMenuItems_expectException() { - Person person = new Person(TEST_NAME); - assertThrows(LotsException.class, () -> { - person.removeFoodFromIndividualFoodOrders(88,1); - }); - } /*@Test public void deleteParticularOrder_menuIndexOutOfBounds_throwsLotsException() { From 6fc8247a381c778e9003d46f39fc3e7494aa5dcc Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Mon, 18 Oct 2021 10:30:30 +0800 Subject: [PATCH 111/429] Add find class and some junits test case for find function. --- src/main/java/seedu/duke/Parser.java | 3 + src/main/java/seedu/duke/Person.java | 8 +- src/main/java/seedu/duke/Ui.java | 2 +- .../java/seedu/duke/command/FindCommand.java | 117 ++++++++++++++++++ src/test/java/seedu/duke/FindCommandTest.java | 35 ++++++ 5 files changed, 162 insertions(+), 3 deletions(-) create mode 100644 src/main/java/seedu/duke/command/FindCommand.java create mode 100644 src/test/java/seedu/duke/FindCommandTest.java diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index 645f71d96d..fc34178230 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -4,6 +4,7 @@ import seedu.duke.command.ByeCommand; import seedu.duke.command.Command; import seedu.duke.command.DeleteCommand; +import seedu.duke.command.FindCommand; import seedu.duke.command.MenuCommand; import seedu.duke.command.OrdersCommand; import seedu.duke.command.UnknownCommand; @@ -38,6 +39,8 @@ public static Command getCommand(String input) throws LotsException { return new OrdersCommand(input); case (MenuCommand.COMMAND_WORD): return new MenuCommand(); + case (FindCommand.COMMAND_WORD): + return new FindCommand(input); case (ByeCommand.COMMAND_WORD): return new ByeCommand(); default: diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 98e45d6990..73fafde3a0 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -95,14 +95,14 @@ public void editParticularOrder(int foodIndex, int quantity) throws LotsExceptio */ private void findAndEditParticularOrder(int numberOfOrders, int foodIndex, int quantity, int i) throws LotsException { - if (individualFoodOrders[i] > 0) { + if (individualFoodOrders[i].getQuantity() > 0) { numberOfOrders++; } if (foodIndex + 1 == numberOfOrders) { if (quantity == 0) { deleteParticularOrder(foodIndex); } else { - individualFoodOrders[i] = quantity; + individualFoodOrders[i].setQuantity(quantity); } } } @@ -126,4 +126,8 @@ public boolean isEmpty() { return false; } + public String getPersonName() { + return personName; + } + } diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 673afca108..ee2656cb68 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -73,7 +73,7 @@ public static void printOrdersList(PeopleManager peopleManager) { * * @param currentPerson Person entry in the list that is currently being accessed. */ - private static void printIndividualPersonOrder(Person currentPerson) { + public static void printIndividualPersonOrder(Person currentPerson) { double totalCost = 0; int currentItem = 97; //97 is the ascii for 'a'. int totalMenuItems = Menu.TOTAL_MENU_ITEMS; diff --git a/src/main/java/seedu/duke/command/FindCommand.java b/src/main/java/seedu/duke/command/FindCommand.java new file mode 100644 index 0000000000..89d7fb12ed --- /dev/null +++ b/src/main/java/seedu/duke/command/FindCommand.java @@ -0,0 +1,117 @@ +package seedu.duke.command; + +import seedu.duke.Person; +import seedu.duke.Ui; +import seedu.duke.exceptions.LotsException; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class FindCommand extends Command { + + public static final String COMMAND_WORD = "find"; + private String stringToFind; + private static final String REGEX = "^find /n [a-zA-Z0-9][\\w ]{0,50}$"; + + public FindCommand(String input) throws LotsException { + if (checkUserInput(input)) { + stringToFind = getSearchString(input).toLowerCase(); + } else { + throw new LotsException("Wrong format for command Find. E.g) find /n "); + } + } + + @Override + public void execute() throws LotsException { + boolean hasMatch; + hasMatch = checkIfMatchAndPrint(); + if (!hasMatch) { + Ui.printWithBorder("No names matched your input."); + } + } + + /** + * Returns true if there was a match with the search input given, + * false otherwise. + * + * @return True if there was a match, else false. + * @throws LotsException LotsException If there is an error in the indexing. + */ + private boolean checkIfMatchAndPrint() throws LotsException { + int totalPeople = super.peopleManager.getSize(); + Person currentPerson; + boolean hasMatch = false; + assert stringToFind != null : "stringToFind Cannot be null"; + try { + for (int i = 0; i < totalPeople; i++) { + currentPerson = super.peopleManager.getPerson(i); + String name = currentPerson.getPersonName().toLowerCase(); + + if (name.contains(stringToFind)) { + Ui.printWithoutBorder((i + 1) + ") " + name + ":"); + Ui.printIndividualPersonOrder(currentPerson); + hasMatch = true; + } + } + Ui.printWithBorder(""); + } catch (IndexOutOfBoundsException e) { + throw new LotsException("Find command error! Please contact an admin."); + } + return hasMatch; + } + + /** + * Returns the string that the user wishes to search for. + * + * @param input The user input in String. + * @return The substring that the user wants to search. + * @throws LotsException If unable to find + */ + private String getSearchString(String input) throws LotsException { + String stringToReturn; + assert input != null : "Input string cannot be null"; + int indexOfSlash = getIndexOfSlash(input); + try { + stringToReturn = input.substring(indexOfSlash).strip(); + return stringToReturn; + } catch (IndexOutOfBoundsException e) { + throw new LotsException("Error in Find command. Please contact an Admin."); + } + } + + /** + * Returns the index + 2 of the first "/" in the input. + * else, throws a LotsException. + * + * @param input The String containing whole user input. + * @return Returns the index + 2 of the first "/" + * @throws LotsException Thrown if unable to find a "/" in the input. + */ + private int getIndexOfSlash(String input) throws LotsException { + int index; + index = input.indexOf("/") + 2; // +2 to skip over /n + assert index >= 1 : "/ index in find command cannot be less than 1 (-1 + 2)."; + if (index == 1) { + throw new LotsException("Wrong format for command Find! /n is not found in input."); + } + return index; + } + + /** + * Regex to check User Input before creating the class. + * + * @param input The user input in String. + * @return True if the user input passes the regex. Else false. + * @throws IllegalArgumentException Thrown when there is a pattern error. + */ + private boolean checkUserInput(String input) { + try { + Pattern pattern = Pattern.compile(REGEX, Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(input); + boolean matchFound = matcher.find(); + return matchFound; + } catch (IllegalArgumentException e) { + return false; + } + } +} diff --git a/src/test/java/seedu/duke/FindCommandTest.java b/src/test/java/seedu/duke/FindCommandTest.java new file mode 100644 index 0000000000..13a693adf8 --- /dev/null +++ b/src/test/java/seedu/duke/FindCommandTest.java @@ -0,0 +1,35 @@ +package seedu.duke; + +import org.junit.jupiter.api.Test; +import seedu.duke.command.FindCommand; +import seedu.duke.exceptions.LotsException; + +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class FindCommandTest { + + @Test + public void inputRegex_emptyCommand_lotsExceptionThrown() { + String input = ""; + assertThrows(LotsException.class, () -> new FindCommand(input)); + } + + @Test + public void inputRegex_incompleteCommand_lotsExceptionThrown() { + String input = "find"; + assertThrows(LotsException.class, () -> new FindCommand(input)); + } + + @Test + public void inputRegex_emptySearch_lotsExceptionThrown() { + String input = "find /n"; + assertThrows(LotsException.class, () -> new FindCommand(input)); + } + + @Test + public void inputRegex_wrongSlashPosition_lotsExceptionThrown() { + String input = "find n/"; + assertThrows(LotsException.class, () -> new FindCommand(input)); + } +} From c52b7cf2b3680ead966f8c3babdd2d547b528f62 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Mon, 18 Oct 2021 10:43:38 +0800 Subject: [PATCH 112/429] Edit minor java docs. --- src/main/java/seedu/duke/command/FindCommand.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/command/FindCommand.java b/src/main/java/seedu/duke/command/FindCommand.java index 89d7fb12ed..83f814e8c2 100644 --- a/src/main/java/seedu/duke/command/FindCommand.java +++ b/src/main/java/seedu/duke/command/FindCommand.java @@ -21,6 +21,13 @@ public FindCommand(String input) throws LotsException { } } + /** + * Checks if the search is contained in any of the names + * of the current order. If yes, prints it out. + * If not, prints the no names matched line. + * + * @throws LotsException If there's any error that only an admin can resolve. + */ @Override public void execute() throws LotsException { boolean hasMatch; @@ -98,10 +105,11 @@ private int getIndexOfSlash(String input) throws LotsException { } /** - * Regex to check User Input before creating the class. + * Returns true if input matches the regex provided, + * else false. * * @param input The user input in String. - * @return True if the user input passes the regex. Else false. + * @return True if the user input matches the regex. Else false. * @throws IllegalArgumentException Thrown when there is a pattern error. */ private boolean checkUserInput(String input) { From 3e71b6602215b860a579aafe991fa0106f4053ce Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Mon, 18 Oct 2021 13:51:02 +0800 Subject: [PATCH 113/429] Edit Diagrams for Find Class --- .../Parser Sequence Diag.drawio | 2 +- .../ParserDiagrams/Parser Sequence Diag.jpg | Bin 97992 -> 110515 bytes .../ParserDiagrams/ParserClassDiag-Page-1.jpg | Bin 56861 -> 63530 bytes .../ParserDiagrams/ParserClassDiag.drawio | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio b/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio index 7936390dff..8e43679b3d 100644 --- a/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio +++ b/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.jpg b/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.jpg index f3a665a0ee70f765d1ed15551635e88fbbba4ba0..8c3506548f89b87fb78d74cec98f137e0d4549bf 100644 GIT binary patch delta 69355 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 delta 59672 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
iTKOa6L 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 Date: Tue, 19 Oct 2021 13:56:05 +0800 Subject: [PATCH 128/429] Delete DeleteCommand Class Diagram.jpg --- .../DeleteCommand Class Diagram.jpg | Bin 74506 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 UMLdiagrams/DeleteCommandDiagram/DeleteCommand Class Diagram.jpg diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Class Diagram.jpg b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Class Diagram.jpg deleted file mode 100644 index 87e84640649411dfb398fee540fca4917f99356c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74506 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%0AI%;cR^TMy@v3 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 From 3ad7e7610a712c25767c3726164d151c12c94f32 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 19 Oct 2021 19:56:47 +0800 Subject: [PATCH 129/429] Create MarkusDG.md --- docs/MarkusDG.md | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs/MarkusDG.md diff --git a/docs/MarkusDG.md b/docs/MarkusDG.md new file mode 100644 index 0000000000..974b247d21 --- /dev/null +++ b/docs/MarkusDG.md @@ -0,0 +1,91 @@ +# Developer Guide + +## Acknowledgements + +{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} + +## Design & implementation + +### Parser +The purpose of the parser is to the command that the user has typed in and return its respective command +object. The class diagram below is a brief overview of how the Parser is related to other classes. +
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) +

+ +Below is a step by step example on how the parser is used when a user keys in an input. +Assuming the input is not going to be **null** or **blank**, + +Step 1)
+Lets assume the input passed in is `delete 1/2`. The method `getCommand()` would then split the user's +input into an array of strings along the spaces and store them in the array `listOfInputs`. After which, +it will get the user's command from the 0th array element and store it in another variable called `commandInString`. +
+ +Step 2)
+The method will then parse `commandInString` through the switch cases and try to match it with +one of the known commands. If it is able to match it with a command, the method will instantiate +it's respective command object and return it. Else it would return an `unnknownCommandClass` instead. +Below is a sequence diagram modeling how the function works. +
![Sqeuence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) + +#### Alternate implementation + +Initially we thought of having each command's respective functions to be executed inside the switch statement. +A rough example of the `delete` and `add` function can be seen below. +``` +case "delete": + functionToDeleteTask(input); + break; +case "add": + functionToAddTask(input); + break; +``` + +The upside of doing would be that there is less code overall. +However, doing so would cause our code to have a higher amount of coupling and would also cause the code to be +messier and therefore harder to read. By having a command class for each respective command, this allows us +to segregate all the necessary functions for each command in their own respective class, therefore making +testing easier. + +## Product scope +### Target user profile + +* User has good typing skills. +* Is comfortable without GUI. +* Tends to make large orders of food. +* Wishes to track multiple different orders of food. + +### Value proposition + +* Large orders can be confusing to keep track, especially if orders are to different stores. +* Allows users to keep track of bulk orders easily. +* Easily keep track of costs. +* Ensures that no orders are left out. +* Knows which order belongs to which store. +* Allow flexibility and control over what description you would like of your friends. +* Users are able to delete/edit entries quickly. +* Comments on the food can also be described by you (e.g. No meat for BanMian). + +## User Stories + +|Version| As a ... | I want to ... | So that I can ...| +|--------|----------|---------------|------------------| +|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| +|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| + +## Non-Functional Requirements + +{Give non-functional requirements} + +## Glossary + +* *glossary item* - Definition + +## Instructions for manual testing + +Before jumping into the details of testing, please setup the project by following the +instructions provided at [Developer setup steps](settingUp.md). From 8b2f4fe62ede7cb95e5499c1685b0414012482ec Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 19 Oct 2021 22:02:05 +0800 Subject: [PATCH 130/429] Fixed bugs regarding the edit function and made some minor output changes. --- src/main/java/seedu/duke/Person.java | 61 +++++++------------ src/main/java/seedu/duke/Ui.java | 24 ++++++-- .../seedu/duke/command/DeleteCommand.java | 16 ++--- 3 files changed, 48 insertions(+), 53 deletions(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 73fafde3a0..c726315bba 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -50,61 +50,44 @@ public void addFoodToIndividualFoodOrders(int foodIndex, int foodQuantity) throw * @throws LotsException When order index is more than the number of orders. */ public void deleteParticularOrder(int foodIndex) throws LotsException { - int numberOfOrders = 0; - for (int i = 0; i < totalMenuItems; i++) { - if (individualFoodOrders[i].getQuantity() > 0) { - numberOfOrders++; - } - if (foodIndex + 1 == numberOfOrders) { - individualFoodOrders[i].setQuantity(0); - } - } - if (foodIndex + 1 > numberOfOrders) { - throw new LotsException("Please enter a valid order index!"); - } + editParticularOrder(foodIndex, 0); } /** * Sets the quantity of a particular food to quantity requested by user. - * + * * @param foodIndex Index of the order whose quantity is to be changed. - * @param quantity Quantity of food to be set. + * @param quantity Quantity of food to be set. * @throws LotsException When foodIndex is more than number of food in menu or - * order quantity is less than 0. + * order quantity is less than 0. */ public void editParticularOrder(int foodIndex, int quantity) throws LotsException { - int numberOfOrders = 0; - if (foodIndex <= totalMenuItems && foodIndex >= 0) { - for (int i = 0; i < totalMenuItems; i++) { - findAndEditParticularOrder(numberOfOrders, foodIndex, quantity, i); - } - } else { - throw new LotsException(foodIndexOutOfBoundsErrorMessage); + try { + int indexToEdit = getIndexToEdit(foodIndex); + individualFoodOrders[indexToEdit].setQuantity(quantity); + } catch (IndexOutOfBoundsException e) { + throw new LotsException("Please enter a valid order index!" + System.lineSeparator() + + "You can enter \"list\" to check your order index."); } } /** - * Extention of editParticularOrder() to find the particular order to edit. - * - * @param numberOfOrders Number of orders tagged to the person of interest. + * Get the correct index of the Order array to be edited. + * * @param foodIndex Index of the order whose quantity is to be changed. - * @param quantity Quantity of food to be set. - * @param i Current index of individualFoodOrders array to search. - * @throws LotsException When foodIndex is more than number of food in menu or - * order quantity is less than 0. + * @return The index of Order array to be edited. */ - private void findAndEditParticularOrder(int numberOfOrders, int foodIndex, int quantity, int i) - throws LotsException { - if (individualFoodOrders[i].getQuantity() > 0) { - numberOfOrders++; - } - if (foodIndex + 1 == numberOfOrders) { - if (quantity == 0) { - deleteParticularOrder(foodIndex); - } else { - individualFoodOrders[i].setQuantity(quantity); + private int getIndexToEdit(int foodIndex) { + int numberOfOrders = 0; + for (int i = 0; i < totalMenuItems; i++) { + if (individualFoodOrders[i].getQuantity() > 0) { + numberOfOrders++; + } + if (foodIndex + 1 == numberOfOrders) { + return i; } } + return -1; } /** diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index a765f38829..d0d75596fb 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -21,6 +21,13 @@ public static void printGoodbye() { printWithBorder(byeMsg); } + /** + * Prints the border. + */ + public static void printBorder() { + System.out.println(BORDER); + } + /** * Prints the string provided followed by the border. * @@ -63,7 +70,7 @@ public static void printOrdersList(PeopleManager peopleManager) { printWithoutBorder((i + 1) + ") " + currentPersonName + ":"); printIndividualPersonOrder(peopleManager.getPerson(i)); } - printWithBorder(""); + printBorder(); } } @@ -90,14 +97,18 @@ public static void printIndividualPersonOrder(Person currentPerson) { index++; } } - printWithoutBorder("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); + if (totalCost > 0.00) { + printWithoutBorder("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); + } } /** * Prints a message to notify the user of the deletion of an order. */ - public static void printDeleteMessage(Person person) { - printWithBorder("Alright, that order has been deleted from " + person.personName + "!"); + public static void printDeleteMessage(Person person, int foodIndex) { + printWithoutBorder("Alright, order " + (foodIndex + 1) + " has been deleted from " + person.personName + "!"); + printIndividualPersonOrder(person); + printBorder(); } /** @@ -105,8 +116,9 @@ public static void printDeleteMessage(Person person) { * Additionally, user's edited orders will printed to show changes made. */ public static void printEditMessage(Person person, int foodIndex) { - printWithBorder("Order " + (foodIndex + 1) + " from " + person.personName + "'s order has been edited"); + printWithoutBorder("Order " + (foodIndex + 1) + " from " + person.personName + "'s order has been edited"); printIndividualPersonOrder(person); + printBorder(); } /** @@ -125,7 +137,7 @@ public static void printAddedOrderMessage(Person person) { assert person != null : "Person object cannot be null when adding!"; printWithoutBorder("We have updated the order list for: " + person.personName); printIndividualPersonOrder(person); - printWithBorder(""); + printBorder(); } public static void printMenuHeader() { diff --git a/src/main/java/seedu/duke/command/DeleteCommand.java b/src/main/java/seedu/duke/command/DeleteCommand.java index 98a8133be9..498aa38d50 100644 --- a/src/main/java/seedu/duke/command/DeleteCommand.java +++ b/src/main/java/seedu/duke/command/DeleteCommand.java @@ -30,7 +30,7 @@ public DeleteCommand(String input) throws LotsException { assert checkUserInput(input) == true : "Invalid delete input command"; try { personIndex = getPersonIndex(splitInput[1]); - foodIndex = getOrderIndex(splitInput[1]); + foodIndex = getFoodIndex(splitInput[1]); } catch (NullPointerException | IndexOutOfBoundsException | NumberFormatException e) { throw new LotsException("Please enter a valid person's index followed by the order index! i.e. delete 1/a"); } @@ -77,15 +77,15 @@ private int getPersonIndex(String deleteParams) throws IndexOutOfBoundsException * @throws IndexOutOfBoundsException When "/" is not found in the string. * @throws LotsException When the order index is out of range. */ - private int getOrderIndex(String deleteParams) throws IndexOutOfBoundsException, LotsException { + private int getFoodIndex(String deleteParams) throws IndexOutOfBoundsException, LotsException { int slashIndex = deleteParams.indexOf('/'); - String orderIndexInString = deleteParams.substring(slashIndex + 1); - int orderIndexInInteger = Integer.parseInt(orderIndexInString) - 1; - if (orderIndexInInteger < 0) { + String foodIndexInString = deleteParams.substring(slashIndex + 1); + int foodIndexInInteger = Integer.parseInt(foodIndexInString) - 1; + if (foodIndexInInteger < 0) { throw new LotsException("Please enter a valid order index!"); } - assert orderIndexInInteger >= 0 : "Order index cannot be negative."; - return orderIndexInInteger; + assert foodIndexInInteger >= 0 : "Order index cannot be negative."; + return foodIndexInInteger; } /** @@ -115,7 +115,7 @@ private void deleteOrder(PeopleManager manager) throws IndexOutOfBoundsException Person personToDeleteFrom = manager.getPerson(personIndex); assert personToDeleteFrom != null : "Person does not exists."; personToDeleteFrom.deleteParticularOrder(foodIndex); - Ui.printDeleteMessage(personToDeleteFrom); + Ui.printDeleteMessage(personToDeleteFrom, foodIndex); deletePersonIfEmpty(manager, personToDeleteFrom); } } From 036796c86f83676f6a5ef86aa51eabff6507c99f Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 19 Oct 2021 22:03:48 +0800 Subject: [PATCH 131/429] Updated MarkusDG.md --- docs/MarkusDG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/MarkusDG.md b/docs/MarkusDG.md index 974b247d21..d59b874536 100644 --- a/docs/MarkusDG.md +++ b/docs/MarkusDG.md @@ -51,6 +51,23 @@ messier and therefore harder to read. By having a command class for each respect to segregate all the necessary functions for each command in their own respective class, therefore making testing easier. +### Delete Command + +The purpose of the delete command is to delete a specific order from a particular person. The class diagram below shows the structure of the deleteCommand class and its relationship with other classes. +
![Class Diagram](https://github.com/AY2122S1-CS2113-T13-2/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Class%20Diagram.jpg?raw=true) +
+ +:information_source: **Note:** This is not a full representation of all the classes. Only methods and attributes associated with the deleteCommand class is being shown. + +
+ +Below is an example of how the deleteCommand class behaves at each step. +Assume that there are 3 persons with 3 orders each. + +Step 1.
+
+ + ## Product scope ### Target user profile From a25edadc213edb7c969ecdcb663da9a2310f7c22 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 19 Oct 2021 22:08:11 +0800 Subject: [PATCH 132/429] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 6 ------ 1 file changed, 6 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 2dad5d2029..a861d885e8 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -35,12 +35,10 @@ Please enter a valid Add Command! We have updated the order list for: test (1) Ban Mian | Quantity = 1 | Cost = $3.00 [Total Cost = $3.00] - ============================================================================================ We have updated the order list for: moretest (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 2 | Cost = $10.00 [Total Cost = $10.00] - ============================================================================================ 1) test: (1) Ban Mian | Quantity = 1 | Cost = $3.00 @@ -48,12 +46,10 @@ We have updated the order list for: moretest 2) moretest: (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 2 | Cost = $10.00 [Total Cost = $10.00] - ============================================================================================ We have updated the order list for: toDelete (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 [Total Cost = $7.00] - ============================================================================================ 1) test: (1) Ban Mian | Quantity = 1 | Cost = $3.00 @@ -64,7 +60,6 @@ We have updated the order list for: toDelete 3) toDelete: (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 [Total Cost = $7.00] - ============================================================================================ Please enter a valid person's index followed by the order index! i.e. delete 1/a ============================================================================================ @@ -77,7 +72,6 @@ Please enter a valid person's index followed by the order index! i.e. delete 1/a 3) toDelete: (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 [Total Cost = $7.00] - ============================================================================================ index | Food Name | Price -------------------------------------------------- From 3a5bd5dbcd4f03a07992538d431b54805f803ab4 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 19 Oct 2021 23:36:17 +0800 Subject: [PATCH 133/429] Add Wai Kit Developer Guide. --- .../AddCommandDiagram.drawio | 1 + .../AddCommandDiagram.drawio.png | Bin 0 -> 80653 bytes docs/WKDG.md | 43 ++++++++++++++++++ docs/img.png | Bin 0 -> 44644 bytes 4 files changed, 44 insertions(+) create mode 100644 UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio create mode 100644 UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio.png create mode 100644 docs/WKDG.md create mode 100644 docs/img.png diff --git a/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio b/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio new file mode 100644 index 0000000000..4f8ddae539 --- /dev/null +++ b/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio.png b/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..71f77a22ac230a342817ef51ab178def1b89c18e GIT binary patch literal 80653 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

({%T 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 UsL(*(1plckpHX_PXnE&<0ZiFgHUIzs diff --git a/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.jpg b/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5da9169d078d746483ee32516b9e690576d0fcad GIT binary patch literal 95733 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 E0?f*J`~Uy| literal 0 HcmV?d00001 diff --git a/docs/WKDG.md b/docs/WKDG.md index 710acb1011..6dfd0e1bfb 100644 --- a/docs/WKDG.md +++ b/docs/WKDG.md @@ -11,8 +11,12 @@ The purpose of the AddCommand is to take in the user input and split the input t The three categories are the input name, order index and quantity. These data will then be added into a new Person object, which will be added into the list of People. The class diagram below is a brief overview of how the Parser is related to other classes. +
![AddCommandDiagram](https://github.com/WaiKit-nus/tp/blob/AddCommandClassDG-WK/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio.png) +

## Product scope ### Target user profile From 41c520814604cfee6cfc27f41a75595644c263e7 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Wed, 20 Oct 2021 00:01:56 +0800 Subject: [PATCH 135/429] Update WKDG --- docs/WKDG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/WKDG.md b/docs/WKDG.md index 6dfd0e1bfb..5aba93511f 100644 --- a/docs/WKDG.md +++ b/docs/WKDG.md @@ -11,13 +11,19 @@ The purpose of the AddCommand is to take in the user input and split the input t The three categories are the input name, order index and quantity. These data will then be added into a new Person object, which will be added into the list of People. The class diagram below is a brief overview of how the Parser is related to other classes. -
![AddCommandDiagram](https://github.com/WaiKit-nus/tp/blob/AddCommandClassDG-WK/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio.png) +
![AddCommandDiagram](https://raw.githubusercontent.com/WaiKit-nus/tp/AddCommandClassDG-WK/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.jpg)
:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram.
+Listed below is an example on the usage of Add Command. +1) Example Command: `add /n Jacob /i 3 /q 2`. This command translates into adding a person named Jacob, ordering the 3rd food on the menu with 2 quantity. +2) The Add command will take in this input from the Parser class, which will then split this input string into `personName`, `foodIndex` and `foodQuantity` respectively. +A new `Person` object will be instantiated and the data `personName`, `foodIndex` and `foodQuantity` is passed into this object. +3) This `Person` object will be added into the `listOfPeople` in the `PeopleManager` class. + ## Product scope ### Target user profile From 8fbeb432943d702db599b12af60540e1cfa0997e Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Wed, 20 Oct 2021 00:17:11 +0800 Subject: [PATCH 136/429] Update DeleteCommand Diagram.drawio --- UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio index 54885fa03d..7ae5206dd7 100644 --- a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio +++ b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio @@ -1,4 +1,4 @@ - + @@ -15,7 +15,7 @@ - + From e681bf30b57d5db69c08962332e67735411a5244 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Wed, 20 Oct 2021 00:17:46 +0800 Subject: [PATCH 137/429] Added DeleteCommand Diagram.jpg --- .../DeleteCommand Diagram.jpg | Bin 82322 -> 82284 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.jpg b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.jpg index c8e03612781a86fe7598e74ac21ae250fee65ec7..337d54f53fc240c39658ee1539665b6424461ce1 100644 GIT binary patch literal 82284 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á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
6x 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 Date: Wed, 20 Oct 2021 01:04:13 +0800 Subject: [PATCH 138/429] Update MarkusDG.md --- docs/MarkusDG.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/MarkusDG.md b/docs/MarkusDG.md index d59b874536..c152a2f032 100644 --- a/docs/MarkusDG.md +++ b/docs/MarkusDG.md @@ -64,9 +64,24 @@ The purpose of the delete command is to delete a specific order from a particula Below is an example of how the deleteCommand class behaves at each step. Assume that there are 3 persons with 3 orders each. -Step 1.
+Step 1:
+Assuming that the user execute `delete 1/2` command to delete the the order of index `‘2’` from the person of index `‘1’`, the parser would instantiate an object of deleteCommand class, which is a subclass of the Command class. In the constructor of the deleteCommand class, the input entered by the user would then be taken as a parameter.
+Step 2:
+The input is then split and initialised to its respectively attributes using the `getPersonIndex()` and `getFoodIndex()` methods. In this case, `'1'` would be initialised as personIndex and `'2'` as foodIndex. The deleteCommand class is then returned to Duke, the main program, via the Parser class. +
+ +Step 3:
+Duke then calls the `execute()` method of deleteCommand, which executes the `deleteOrder()` method. An instance of peopleManager, initialised in the Command class, is parsed as a paramenter. +
+ +Step 4:
+Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class by changing the quantity of that particular order to 0 using `setQuantity()` in the Order class. +
+ +Step 5:
+`printDeleteMessage()` is called to notify the user of the deletion and if the person no longer has any orders tagged to him, that paricular person would be deleted of the list too. ## Product scope ### Target user profile From ad4a24b490247d2f8eb2b3b8f07941425357ebab Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Wed, 20 Oct 2021 01:05:36 +0800 Subject: [PATCH 139/429] Update MarkusDG.md --- docs/MarkusDG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MarkusDG.md b/docs/MarkusDG.md index c152a2f032..8b1e7ec5f6 100644 --- a/docs/MarkusDG.md +++ b/docs/MarkusDG.md @@ -54,7 +54,7 @@ testing easier. ### Delete Command The purpose of the delete command is to delete a specific order from a particular person. The class diagram below shows the structure of the deleteCommand class and its relationship with other classes. -
![Class Diagram](https://github.com/AY2122S1-CS2113-T13-2/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Class%20Diagram.jpg?raw=true) +
![Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Diagram.jpg?raw=true)

:information_source: **Note:** This is not a full representation of all the classes. Only methods and attributes associated with the deleteCommand class is being shown. From ac084d2db2253d9c95cada051ea0cf69be6402a8 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Wed, 20 Oct 2021 01:12:00 +0800 Subject: [PATCH 140/429] Update MarkusDG.md --- docs/MarkusDG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/MarkusDG.md b/docs/MarkusDG.md index 8b1e7ec5f6..4f9dcf1444 100644 --- a/docs/MarkusDG.md +++ b/docs/MarkusDG.md @@ -73,15 +73,16 @@ The input is then split and initialised to its respectively attributes using the
Step 3:
-Duke then calls the `execute()` method of deleteCommand, which executes the `deleteOrder()` method. An instance of peopleManager, initialised in the Command class, is parsed as a paramenter. +Duke calls the `execute()` method of deleteCommand, which executes the `deleteOrder()` method. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter.
Step 4:
-Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class by changing the quantity of that particular order to 0 using `setQuantity()` in the Order class. +Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class as only the Person class has access to the Order class which holds the quantity of the order. The quantity of that particular order is then changed to 0 using `setQuantity()` in the Order class. This is to encapsulate the quantity attribute so as to prevent any unauthorised parties from accessing them directly.
Step 5:
`printDeleteMessage()` is called to notify the user of the deletion and if the person no longer has any orders tagged to him, that paricular person would be deleted of the list too. +
## Product scope ### Target user profile From 9fdcf838e91ab476d7aebb2c6bf508670c5b1c66 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Wed, 20 Oct 2021 01:14:07 +0800 Subject: [PATCH 141/429] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index db4cf47b61..fed5f40c89 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -8,7 +8,7 @@ ### Parser The purpose of the parser is to the command that the user has typed in and return its respective command -object. The class diagram below is a brief overview of how the Parser is related to other classes. +object. The class diagram below is a brief overview of how the Parser is related to other classes.
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg)
@@ -29,7 +29,7 @@ Step 2)
The method will then parse `commandInString` through the switch cases and try to match it with one of the known commands. If it is able to match it with a command, the method will instantiate it's respective command object and return it. Else it would return an `unnknownCommandClass` instead. -Below is a sequence diagram modeling how the function works. +Below is a sequence diagram modeling how the function works.
![Sqeuence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) #### Alternate implementation @@ -49,7 +49,40 @@ The upside of doing would be that there is less code overall. However, doing so would cause our code to have a higher amount of coupling and would also cause the code to be messier and therefore harder to read. By having a command class for each respective command, this allows us to segregate all the necessary functions for each command in their own respective class, therefore making -testing easier. +testing easier. + +### Delete Command + +The purpose of the delete command is to delete a specific order from a particular person. The class diagram below shows the structure of the deleteCommand class and its relationship with other classes. +
![Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Diagram.jpg?raw=true) +
+ +:information_source: **Note:** This is not a full representation of all the classes. Only methods and attributes associated with the deleteCommand class is being shown. + +
+ +Below is an example of how the deleteCommand class behaves at each step. +Assume that there are 3 persons with 3 orders each. + +Step 1:
+Assuming that the user execute `delete 1/2` command to delete the the order of index `‘2’` from the person of index `‘1’`, the parser would instantiate an object of deleteCommand class, which is a subclass of the Command class. In the constructor of the deleteCommand class, the input entered by the user would then be taken as a parameter. +
+ +Step 2:
+The input is then split and initialised to its respectively attributes using the `getPersonIndex()` and `getFoodIndex()` methods. In this case, `'1'` would be initialised as personIndex and `'2'` as foodIndex. The deleteCommand class is then returned to Duke, the main program, via the Parser class. +
+ +Step 3:
+Duke calls the `execute()` method of deleteCommand, which executes `deleteOrder()`. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter. +
+ +Step 4:
+Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class as only the Person class has access to the Order class which holds the quantity of the order. The quantity of that particular order is then changed to 0 using `setQuantity()` in the Order class. This is to encapsulate the quantity attribute so as to prevent any unauthorised parties from accessing them directly. +
+ +Step 5:
+`printDeleteMessage()` is called to notify the user of the deletion and if the person no longer has any orders tagged to him, that paricular person would be deleted from the list too. +
## Product scope ### Target user profile From a7028d66d6e2238cfd33efb18be6057c5b02139f Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Wed, 20 Oct 2021 01:14:42 +0800 Subject: [PATCH 142/429] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index fed5f40c89..0dd932abd4 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -54,7 +54,7 @@ testing easier. ### Delete Command The purpose of the delete command is to delete a specific order from a particular person. The class diagram below shows the structure of the deleteCommand class and its relationship with other classes. -
![Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Diagram.jpg?raw=true) +
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Diagram.jpg?raw=true)
:information_source: **Note:** This is not a full representation of all the classes. Only methods and attributes associated with the deleteCommand class is being shown. From 885696d3e04a5c4dc360dc38868efd01c831cbf6 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Wed, 20 Oct 2021 17:10:54 +0800 Subject: [PATCH 143/429] editCMDtest --- .../editCommandClassDiagram.jpg | Bin 0 -> 140625 bytes src/main/java/seedu/duke/Person.java | 6 +- src/test/java/seedu/duke/EditCommandTest.java | 87 ++++++++++++++++++ 3 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 UMLdiagrams/EditCommandDiagrams/editCommandClassDiagram.jpg create mode 100644 src/test/java/seedu/duke/EditCommandTest.java diff --git a/UMLdiagrams/EditCommandDiagrams/editCommandClassDiagram.jpg b/UMLdiagrams/EditCommandDiagrams/editCommandClassDiagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..24d3cb1643ab333b8de1959026521c725e3706ba GIT binary patch literal 140625 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 z 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

Fk~kz4>&cw2J$Ytx{7ZNL;ZQpcnwG# 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

VXtc15v7XuK56Bh>wKF{zY3(R-80pI}(;ZTBp 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 R-1q;-;D5;&{PuJBzW_(KNYelS literal 0 HcmV?d00001 diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 73fafde3a0..2b11c74e97 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -93,16 +93,16 @@ public void editParticularOrder(int foodIndex, int quantity) throws LotsExceptio * @throws LotsException When foodIndex is more than number of food in menu or * order quantity is less than 0. */ - private void findAndEditParticularOrder(int numberOfOrders, int foodIndex, int quantity, int i) + private void findAndEditParticularOrder(int numberOfOrders, int foodIndex, int quantity, int index) throws LotsException { - if (individualFoodOrders[i].getQuantity() > 0) { + if (individualFoodOrders[index].getQuantity() > 0) { numberOfOrders++; } if (foodIndex + 1 == numberOfOrders) { if (quantity == 0) { deleteParticularOrder(foodIndex); } else { - individualFoodOrders[i].setQuantity(quantity); + individualFoodOrders[index].setQuantity(quantity); } } } diff --git a/src/test/java/seedu/duke/EditCommandTest.java b/src/test/java/seedu/duke/EditCommandTest.java new file mode 100644 index 0000000000..405217c035 --- /dev/null +++ b/src/test/java/seedu/duke/EditCommandTest.java @@ -0,0 +1,87 @@ +package seedu.duke; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import seedu.duke.command.AddCommand; +import seedu.duke.command.Command; +import seedu.duke.command.EditCommand; +import seedu.duke.exceptions.LotsException; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +class EditCommandTest { + + static protected PeopleManager peopleManager = new PeopleManager(); + + @BeforeAll + public static void setUp() throws LotsException { + String[] names = {"Markus", "Adam", "Andrew"}; + String[] foodIndex = {"1", "4", "8"}; + PeopleManager.clearListOfPeople(); + + for (int i = 0; i < 3; i++) { + String input = "add /n " + names[i] + " /i " + foodIndex[i] + " /q 1"; + Command command = new AddCommand(input); + command.setData(peopleManager); + command.execute(); + } + } + + @Test + void execute_personIndexOutOfBounds_expectException() throws LotsException { + String input = "edit 100/1 /q 2"; + assertThrows(LotsException.class, + () -> new EditCommand(input)); + } + + @Test + void execute_orderIndexOutOfBounds_expectException() throws LotsException { + String input = "edit 2/800 /q 2"; + assertThrows(LotsException.class, + () -> new EditCommand(input)); + } + + @Test + void execute_quantityOutOfBounds_expectException() throws LotsException { + String input = "edit 2/1 /q -2123"; + assertThrows(LotsException.class, + () -> new EditCommand(input)); + } + + @Test + void execute_inputWithoutFoodIndex_expectException() { + String input = "edit 2 /q 4"; + assertThrows(LotsException.class, + () -> new EditCommand(input)); + } + + @Test + void execute_invalidPersonIndex_expectException() { + String input = "edit markus/1 /q 3"; + assertThrows(LotsException.class, + () -> new EditCommand(input)); + } + + @Test + void execute_invalidOrderIndex_expectException() { + String input = "edit 1/a /q 3"; + assertThrows(LotsException.class, + () -> new EditCommand(input)); + } + + @Test + void execute_invalidQuantityIndex_expectException() { + String input = "edit 1/1 /q c"; + assertThrows(LotsException.class, + () -> new EditCommand(input)); + } + + @Test + void execute_invalidInput_expectException() { + String input = "edit Markus/a"; + assertThrows(LotsException.class, + () -> new EditCommand(input)); + } + +} From fb9f674c237c353f4e37a187a3466ca669cb4a07 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Wed, 20 Oct 2021 17:59:31 +0800 Subject: [PATCH 144/429] Created AdamDG and UML diagram files --- .../OrderCommand Diagram.drawio | 1 + .../OrderCommand Diagram.jpg | Bin 0 -> 83654 bytes docs/AdamDG.md | 45 ++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.drawio create mode 100644 UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.jpg create mode 100644 docs/AdamDG.md diff --git a/UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.drawio b/UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.drawio new file mode 100644 index 0000000000..8364abbaeb --- /dev/null +++ b/UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.jpg b/UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0e84f220f34f7f97a2096d8cded6b4b090ca6a56 GIT binary patch literal 83654 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

hAy_|eE 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 C@JCtz literal 0 HcmV?d00001 diff --git a/docs/AdamDG.md b/docs/AdamDG.md new file mode 100644 index 0000000000..31be4845cc --- /dev/null +++ b/docs/AdamDG.md @@ -0,0 +1,45 @@ +# Developer Guide + +## Acknowledgements + +{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} + +## Design & implementation + +###UI Component + +###Orders Command + +The purpose of the OrdersCommand is to display the list of current orders stored. The class diagram below shows the structure of +the OrdersCommand class and how it is related to the other classes. + +![](../UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.jpg) + + +## Product scope +### Target user profile + +{Describe the target user profile} + +### Value proposition + +{Describe the value proposition: what problem does it solve?} + +## User Stories + +|Version| As a ... | I want to ... | So that I can ...| +|--------|----------|---------------|------------------| +|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| +|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| + +## Non-Functional Requirements + +{Give non-functional requirements} + +## Glossary + +* *glossary item* - Definition + +## Instructions for manual testing + +{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} From d446768c07def08d6f1ef43e3c0f1b1df12fa7a9 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Wed, 20 Oct 2021 18:28:42 +0800 Subject: [PATCH 145/429] Editted AdamDG --- docs/AdamDG.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/AdamDG.md b/docs/AdamDG.md index 31be4845cc..96b83192a5 100644 --- a/docs/AdamDG.md +++ b/docs/AdamDG.md @@ -6,14 +6,26 @@ ## Design & implementation -###UI Component - ###Orders Command The purpose of the OrdersCommand is to display the list of current orders stored. The class diagram below shows the structure of the OrdersCommand class and how it is related to the other classes. -![](../UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.jpg) +
![OrdersCommand Diagram](../UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.jpg) +

+ +Below is an example of how the OrdersCommand is used, assuming that there are orders currently stored. +1) Taking in the input `list`, the parser will instantiate an OrdersCommand object, which in turn is returned to the +main duke program. +2) When the main duke program calls the `execute()` method of OrdersCommand, the `printOrdersList()` method of the UI +class is executed. +3) Within the `printOrdersList()` method, the method loops through each person stored in the PeopleManager to print the +names of all persons currently stored. On top of that, `printIndividualPersonOrder()` is called to print the `foodIndex` and +`quantity` data stored for each person. ## Product scope From 79356ccee76a47f671c4d79c6283781fa35604bc Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Wed, 20 Oct 2021 18:32:01 +0800 Subject: [PATCH 146/429] Editted AdamDG --- docs/AdamDG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/AdamDG.md b/docs/AdamDG.md index 96b83192a5..dd1f13f9c1 100644 --- a/docs/AdamDG.md +++ b/docs/AdamDG.md @@ -6,12 +6,12 @@ ## Design & implementation -###Orders Command +### Orders Command The purpose of the OrdersCommand is to display the list of current orders stored. The class diagram below shows the structure of the OrdersCommand class and how it is related to the other classes. -
![OrdersCommand Diagram](../UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.jpg) +
![OrdersCommand Diagram](https://github.com/mohamad-adam8991/tp/blob/AdamDG_MA/UMLdiagrams/OrderCommandDiagram/OrderCommand%20Diagram.jpg)
:information_source: **Note:** This diagram only shows methods and attributes related to the OrdersCommand class. From 0008581afca05480f02916be90748695aeee371d Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Wed, 20 Oct 2021 22:38:31 +0800 Subject: [PATCH 147/429] Update IO-Redirection Test. --- text-ui-test/EXPECTED.TXT | 158 ++++++++++++++++++++++++++------------ text-ui-test/input.txt | 53 +++++++++---- 2 files changed, 143 insertions(+), 68 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index a861d885e8..4c7f36e265 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -9,6 +9,26 @@ Unknown command. Please try again. Unknown command. Please try again. ============================================================================================ Unknown command. Please try again. +============================================================================================ +index | Food Name | Price +-------------------------------------------------- +1 Ban Mian 3.00 +-------------------------------------------------- +2 Chicken Rice 3.00 +-------------------------------------------------- +3 Fried Prawn Noodles (Hokkien Mee) 3.50 +-------------------------------------------------- +4 Minced MeatNoodles(Ba Chor Mee) 3.00 +-------------------------------------------------- +5 Fried Carrot Cake 3.00 +-------------------------------------------------- +6 Fried Kway Teow (Char Kway Teow) 3.00 +-------------------------------------------------- +7 Pork Rib Soup (Bak Kut Teh) 5.00 +-------------------------------------------------- +8 Nasi Lemak 3.60 +-------------------------------------------------- + ============================================================================================ Unknown command. Please try again. ============================================================================================ @@ -18,9 +38,7 @@ Unknown command. Please try again. ============================================================================================ Please enter a valid Add Command! ============================================================================================ -Unknown command. Please try again. -============================================================================================ -Unknown command. Please try again. +Please enter a valid Add Command! ============================================================================================ Please enter a valid Add Command! ============================================================================================ @@ -30,74 +48,112 @@ Please enter a valid Add Command! ============================================================================================ Please enter a valid Add Command! ============================================================================================ +Index out of range. Please try again! +============================================================================================ Please enter a valid Add Command! ============================================================================================ -We have updated the order list for: test - (1) Ban Mian | Quantity = 1 | Cost = $3.00 -[Total Cost = $3.00] +We have updated the order list for: tim + (1) Chicken Rice | Quantity = 3 | Cost = $9.00 +[Total Cost = $9.00] +============================================================================================ +We have updated the order list for: tim + (1) Chicken Rice | Quantity = 3 | Cost = $9.00 + (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 2 | Cost = $6.00 +[Total Cost = $15.00] +============================================================================================ +We have updated the order list for: tim + (1) Ban Mian | Quantity = 3 | Cost = $9.00 + (2) Chicken Rice | Quantity = 3 | Cost = $9.00 + (3) Minced MeatNoodles(Ba Chor Mee) | Quantity = 2 | Cost = $6.00 +[Total Cost = $24.00] +============================================================================================ +We have updated the order list for: tim + (1) Ban Mian | Quantity = 5 | Cost = $15.00 + (2) Chicken Rice | Quantity = 3 | Cost = $9.00 + (3) Minced MeatNoodles(Ba Chor Mee) | Quantity = 2 | Cost = $6.00 +[Total Cost = $30.00] +============================================================================================ +Alright, order 3 has been deleted from tim! + (1) Ban Mian | Quantity = 5 | Cost = $15.00 + (2) Chicken Rice | Quantity = 3 | Cost = $9.00 +[Total Cost = $24.00] +============================================================================================ +We have updated the order list for: aim + (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 +[Total Cost = $7.00] ============================================================================================ -We have updated the order list for: moretest - (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 2 | Cost = $10.00 +We have updated the order list for: aim + (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 + (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 1 | Cost = $3.00 [Total Cost = $10.00] ============================================================================================ -1) test: - (1) Ban Mian | Quantity = 1 | Cost = $3.00 -[Total Cost = $3.00] -2) moretest: - (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 2 | Cost = $10.00 -[Total Cost = $10.00] +Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8 +============================================================================================ +Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8 +============================================================================================ +Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8 ============================================================================================ -We have updated the order list for: toDelete +Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8 +============================================================================================ +Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8 +============================================================================================ +Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8 +============================================================================================ +Order 2 from aim's order has been edited (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 -[Total Cost = $7.00] + (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 +[Total Cost = $19.00] ============================================================================================ -1) test: - (1) Ban Mian | Quantity = 1 | Cost = $3.00 -[Total Cost = $3.00] -2) moretest: - (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 2 | Cost = $10.00 -[Total Cost = $10.00] -3) toDelete: +Order 1 from tim's order has been edited + (1) Chicken Rice | Quantity = 3 | Cost = $9.00 +[Total Cost = $9.00] +============================================================================================ +1) tim: + (1) Chicken Rice | Quantity = 3 | Cost = $9.00 +[Total Cost = $9.00] +2) aim: (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 -[Total Cost = $7.00] + (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 +[Total Cost = $19.00] ============================================================================================ -Please enter a valid person's index followed by the order index! i.e. delete 1/a +Wrong format for command Find. E.g) find /n ============================================================================================ -1) test: - (1) Ban Mian | Quantity = 1 | Cost = $3.00 -[Total Cost = $3.00] -2) moretest: - (1) Pork Rib Soup (Bak Kut Teh) | Quantity = 2 | Cost = $10.00 -[Total Cost = $10.00] -3) toDelete: +Wrong format for command Find. E.g) find /n +============================================================================================ +Wrong format for command Find. E.g) find /n +============================================================================================ +2) aim: (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 -[Total Cost = $7.00] + (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 +[Total Cost = $19.00] + ============================================================================================ -index | Food Name | Price --------------------------------------------------- -1 Ban Mian 3.00 --------------------------------------------------- -2 Chicken Rice 3.00 --------------------------------------------------- -3 Fried Prawn Noodles (Hokkien Mee) 3.50 --------------------------------------------------- -4 Minced MeatNoodles(Ba Chor Mee) 3.00 --------------------------------------------------- -5 Fried Carrot Cake 3.00 --------------------------------------------------- -6 Fried Kway Teow (Char Kway Teow) 3.00 --------------------------------------------------- -7 Pork Rib Soup (Bak Kut Teh) 5.00 --------------------------------------------------- -8 Nasi Lemak 3.60 --------------------------------------------------- +1) tim: + (1) Chicken Rice | Quantity = 3 | Cost = $9.00 +[Total Cost = $9.00] +2) aim: + (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 + (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 +[Total Cost = $19.00] +============================================================================================ +Alright, order 1 has been deleted from tim! ============================================================================================ Please enter a valid person's index followed by the order index! i.e. delete 1/a ============================================================================================ +Unknown command. Please try again. +============================================================================================ Please enter a valid person's index followed by the order index! i.e. delete 1/a ============================================================================================ Please enter a valid person's index followed by the order index! i.e. delete 1/a ============================================================================================ +Alright, order 1 has been deleted from aim! + (1) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 +[Total Cost = $12.00] +============================================================================================ +Alright, order 1 has been deleted from aim! +============================================================================================ +Your order list is empty! +============================================================================================ Thank you for using L.O.T.S! Good bye! ============================================================================================ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index e4f435a28e..6dd3c6913b 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1,28 +1,47 @@ a /// -deleteadwe -delete1/a +abcd123 +adw 12312 daw +menu menu123asd list list1223 add -add/n -add/n a /i 2 /q 2 add /n /i /q -add /n /i 1 /q 1 -add /n a /i /q 1 -add /n a /i 1 /q -add /n a /i a /q a -add /n test /i 1 /q 1 -add /n moretest /i 7 /q 2 -list -add /n toDelete /i 3 /q 2 +add /nabd/i1/q +add /n /i 5 /q 1 +add /n abc /i /q 2 +add /n abc /i 3 /q +add /n abc /i 9 /q 2 +add /n abc /i 3 /q 1000 +add /n tim /i 2 /q 3 +add /n tim /i 4 /q 2 +add /n tim /i 1 /q 3 +add /n tim /i 1 /q 2 +delete 1/3 +add /n aim /i 3 /q 2 +add /n aim /i 4 /q 1 +edit / /q +edit 1/1/q2 +edit 1/1 /q +edit 0/1 /q 2 +edit 1/0 /q 1 +edit 1/1 /q 1000 +edit 2/2 /q 4 +edit 1/1 /q 0 list -delete 3/a +find /n +find /nabcd +find /n +find /n aim +find /n im +delete 1/1 +delete / +delete1/1 +delete 0/1 +delete 1/0 +delete 1/1 +delete 1/1 list -menu -delete 5/a -delete 1/c -delete a/1 bye \ No newline at end of file From 0051bff394f17c87982b9603b22cc35111593ee5 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Thu, 21 Oct 2021 12:45:12 +0800 Subject: [PATCH 148/429] dg update --- docs/YZDeveloperGuide.md | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/docs/YZDeveloperGuide.md b/docs/YZDeveloperGuide.md index 64e1f0ed2b..7a9bd3f938 100644 --- a/docs/YZDeveloperGuide.md +++ b/docs/YZDeveloperGuide.md @@ -2,22 +2,46 @@ ## Acknowledgements -{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} - ## Design & implementation -{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} +### Edit Command +The purpose of the edit is allow the user to edit his order quantity. +The class diagram below is a brief overview of how the EditCommand class is related to other classes. +
![Class Diagram](https://raw.githubusercontent.com/thaddyyz/tp/master/UMLdiagrams/EditCommandDiagrams/editCommandClassDiagram.jpg) +
+ +:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. + +
+ +Below is a step by step example on how the parser is used when a user keys in an input. +Assuming the input is not going to be **null** or **blank**, + +Step 1)
+Lets assume the input passed in is `delete 1/2`. The method `getCommand()` would then split the user's +input into an array of strings along the spaces and store them in the array `listOfInputs`. After which, +it will get the user's command from the 0th array element and store it in another variable called `commandInString`. +
+#### Alternate implementation + +The EditCommand function can be integrated with the deleteCommand class. +``` + +``` + +The upside of doing would be that there is less code overall. +However, doing so would result in multiple functions being in the same class which would: +1. Make the code messier. +2. Make the code more vulnerable to functionality bugs. +3. Make the code more complex to debug. +4. Make testing process more complicated. ## Product scope ### Target user profile -{Describe the target user profile} - ### Value proposition -{Describe the value proposition: what problem does it solve?} - ## User Stories |Version| As a ... | I want to ... | So that I can ...| From 5d2c9cf0c5759ae50013ee7e683c8e2c500954cc Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Thu, 21 Oct 2021 13:04:05 +0800 Subject: [PATCH 149/429] tmp --- META-INF/MANIFEST.MF | 3 +++ src/main/java/META-INF/MANIFEST.MF | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 META-INF/MANIFEST.MF create mode 100644 src/main/java/META-INF/MANIFEST.MF diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..19e86fe56e --- /dev/null +++ b/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: seedu.duke.Duke + diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..19e86fe56e --- /dev/null +++ b/src/main/java/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: seedu.duke.Duke + From a2506e40ce7b070c1bdc2a9dbfdb4b7fb47a7df8 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Thu, 21 Oct 2021 13:24:17 +0800 Subject: [PATCH 150/429] Added DeleteCommand Sequence Diagram.drawio --- .../DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio | 1 + 1 file changed, 1 insertion(+) create mode 100644 UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio new file mode 100644 index 0000000000..8c44442af5 --- /dev/null +++ b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio @@ -0,0 +1 @@ +7ZjLcpswFIafhmU6RhgbL2Pn0kU6yTSdSbOU4QTUCMQIEeM+fSUQYC5OcGrctNOVpV8XxP/pnMPYsFZhds1xHHxhHlADTbzMsC4MhEyELPmjlK1WTAcVis+Jp7VauCc/QYsTrabEg6QxUTBGBYmbosuiCFzR0DDnbNOc9sRo86kx9qEj3LuYdtUH4omgUB17UuufgfhB+WRzokdCXE7WQhJgj212JOvSsFacMVG0wmwFVLlX+lKsu9ozWh2MQySGLLCidHmV8YW7vZnE0e3DN4Svz/QuL5im+oUN6/x2/UNZWZxabEsr5AvEqpmG9IY8ASWR7C1j4CQEAVyOUC3f1dpSghFYamrczPuU4jgh63zbiVQ4uClPyAt8haTgn6ssjTzwdK8yL+8Izp4rHGpT/RbABWR77TEr0+V1BSYPyLdySnVXNSd9Ux3d3dTUK7bBDnGrFLG+aX61dQ1DNjSPA9igLps2kpiRSOTPtZeGfdHCwbgImM8iTHeBHN/Y/Tdrr9tTu2H2vM/srtfmYiyvrY7XHkliLNyg47kyg8gEcU6JH0lpzYRgYe4e5uJc5RzlvdxKahB5pbKmzH0up+lE5wwlAF4nTQ3xXyZLzH14bR7q58SBYiFjsplQe2zXS+/UTaz5npn9gMsdEpZyF/SiFrvqFO/HOf2HQ8du5qkqb70RO85YoWP/LyFZqxR8mBIy+6vjwD6khPSa3VNCZmN5Pe94zUGkPBpeQHaKBYtBDi09nAS5z2YxvFM2ICPiuzZdtR9V+9PCfndFKVLy25dpWEUZFDe/WWTQvHkFkDVrblEcdbQq4xzho6HnA0G6xrcVWtV5PCTSDgeLBoKd/SmwnaAd+fNh0QEr0dE1lniOAtY8EdihETs9Gdhps0KiduUbGWxZEU6dpM2TJenph4vlNnJ7fqQkLbv1vyfF9PpPKOvyFw== \ No newline at end of file From f35fda85e3b022807046dac698dde1c376ef0402 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Thu, 21 Oct 2021 14:34:18 +0800 Subject: [PATCH 151/429] Update DeleteCommand Diagram.drawio --- UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio index 7ae5206dd7..9fd483a3b4 100644 --- a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio +++ b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio @@ -1,4 +1,4 @@ - + @@ -15,7 +15,7 @@ - + From d5cb3c5e843f7cc2ac581a5518b2e0603451eddf Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Thu, 21 Oct 2021 15:03:46 +0800 Subject: [PATCH 152/429] Added Order Command to main DG file --- docs/DeveloperGuide.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 0dd932abd4..70c79c2b4b 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -84,6 +84,27 @@ Step 5:
`printDeleteMessage()` is called to notify the user of the deletion and if the person no longer has any orders tagged to him, that paricular person would be deleted from the list too.
+### Orders Command + +The purpose of the OrdersCommand is to display the list of current orders stored. The class diagram below shows the structure of +the OrdersCommand class and how it is related to the other classes. + +
![OrdersCommand Diagram](https://github.com/mohamad-adam8991/tp/blob/AdamDG_MA/UMLdiagrams/OrderCommandDiagram/OrderCommand%20Diagram.jpg) +
+ +:information_source: **Note:** This diagram only shows methods and attributes related to the OrdersCommand class. + +
+ +Below is an example of how the OrdersCommand is used, assuming that there are orders currently stored. +1) Taking in the input `list`, the parser will instantiate an OrdersCommand object, which in turn is returned to the + main duke program. +2) When the main duke program calls the `execute()` method of OrdersCommand, the `printOrdersList()` method of the UI + class is executed. +3) Within the `printOrdersList()` method, the method loops through each person stored in the PeopleManager to print the + names of all persons currently stored. On top of that, `printIndividualPersonOrder()` is called to print the `foodIndex` and + `quantity` data stored for each person. + ## Product scope ### Target user profile From d7456cba7340431d1e0e71c47425dce15090baa1 Mon Sep 17 00:00:00 2001 From: WaiKit-nus Date: Thu, 21 Oct 2021 15:29:58 +0800 Subject: [PATCH 153/429] Add TotalNumberOfOrdersAndPeople --- src/main/java/seedu/duke/PeopleManager.java | 12 ++++++++++++ src/main/java/seedu/duke/Person.java | 14 ++++++++++++++ src/main/java/seedu/duke/Ui.java | 21 +++++++++++++++++---- 3 files changed, 43 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java index 5ae69a391b..08fb2eb7fe 100644 --- a/src/main/java/seedu/duke/PeopleManager.java +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -66,6 +66,18 @@ public boolean isEmpty() { return listOfPeople.isEmpty(); } + /** + * Get total number of orders for everyone. + * @return total number of orders for everyone. + */ + public int getTotalNumberOfOrdersEveryone() { + int totalQuantity = 0; + for(int i = 0; i < listOfPeople.size(); i++) { + totalQuantity = totalQuantity + listOfPeople.get(i).getTotalNumberOfOrders(); + } + return totalQuantity; + } + /** * Clears the arraylist of people * stored. Mainly used before each test method. diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index c726315bba..aa8fab9fad 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -9,6 +9,20 @@ public class Person { protected Order[] individualFoodOrders = new Order[totalMenuItems]; private String foodIndexOutOfBoundsErrorMessage = "Please enter the right menu number!"; + /** + * Function to get the total number of orders for a person. + * @return quantity of orders. + */ + public int getTotalNumberOfOrders() { + int counter = 0; + for(int i = 0; i < individualFoodOrders.length; i++) { + if(individualFoodOrders[i].getQuantity() != 0) { + counter = counter + individualFoodOrders[i].getQuantity(); + } + } + return counter; + } + /** * Constructor for Person. * Individual Food order list will be populated with 0 on initialisation. diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index d0d75596fb..1944d04aa0 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -1,11 +1,12 @@ package seedu.duke; +import javax.sound.sampled.Line; import java.util.Scanner; public class Ui { - private static final String line = "--------------------------------------------------"; + private static final String LINE = "--------------------------------------------------"; private static final String BORDER = "==================================" + "=============================" + "============================="; @@ -64,6 +65,7 @@ public static void printOrdersList(PeopleManager peopleManager) { printWithBorder("Your order list is empty!"); } else { assert totalNumOfPeopleOrdered != 0 : "Order list cannot be empty."; + printSummaryForList(peopleManager); for (int i = 0; i < totalNumOfPeopleOrdered; i++) { String currentPersonName = peopleManager.getName(i); assert currentPersonName != null : "Person must exist."; @@ -98,7 +100,11 @@ public static void printIndividualPersonOrder(Person currentPerson) { } } if (totalCost > 0.00) { - printWithoutBorder("[Total Cost = $" + String.format("%.2f", totalCost) + "]"); + String printTotalCost = "[Total Cost = $" + String.format("%.2f", totalCost) + "]"; + int individualQuantity = currentPerson.getTotalNumberOfOrders(); + String printIndividualQuantity = "[Total Quantity = " + + Integer.toString(individualQuantity) + "]"; + printWithoutBorder(printTotalCost + " " + printIndividualQuantity); } } @@ -142,7 +148,7 @@ public static void printAddedOrderMessage(Person person) { public static void printMenuHeader() { printWithoutBorder("index | Food Name | Price"); - printWithoutBorder(line); + printWithoutBorder(LINE); } /** @@ -155,7 +161,14 @@ public static void printMenuHeader() { */ public static void printMenu(int index, String foodName, Double foodPrice) { System.out.format("%-8d%-33s%7.2f%n", index, foodName, foodPrice); - printWithoutBorder(line); + printWithoutBorder(LINE); + } + + public static void printSummaryForList(PeopleManager peopleManager) { + String summary = "SUMMARY: [Total number of People: " + peopleManager.getSize() + + "] [Total number of Orders: " + peopleManager.getTotalNumberOfOrdersEveryone() + "]"; + printWithoutBorder(summary); + printWithoutBorder(LINE); } } From 505c71247e906e6d06a8bbefac3b61964195836e Mon Sep 17 00:00:00 2001 From: WaiKit-nus Date: Thu, 21 Oct 2021 15:39:27 +0800 Subject: [PATCH 154/429] Add AddCommandDG into Main DG. --- docs/DeveloperGuide.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 70c79c2b4b..133f102abf 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -89,7 +89,7 @@ Step 5:
The purpose of the OrdersCommand is to display the list of current orders stored. The class diagram below shows the structure of the OrdersCommand class and how it is related to the other classes. -
![OrdersCommand Diagram](https://github.com/mohamad-adam8991/tp/blob/AdamDG_MA/UMLdiagrams/OrderCommandDiagram/OrderCommand%20Diagram.jpg) +
![OrdersCommand Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/OrderCommandDiagram/OrderCommand%20Diagram.jpg)
:information_source: **Note:** This diagram only shows methods and attributes related to the OrdersCommand class. @@ -105,6 +105,25 @@ Below is an example of how the OrdersCommand is used, assuming that there are or names of all persons currently stored. On top of that, `printIndividualPersonOrder()` is called to print the `foodIndex` and `quantity` data stored for each person. +###Add Command +The purpose of the AddCommand is to take in the user input and split the input to three different categories. +The three categories are the input name, order index and quantity. These data will then be added into a new Person object, +which will be added into the list of People. +The class diagram below is a brief overview of how the AddCommand is related to other classes. + +
![AddCommandDiagram](https://raw.githubusercontent.com/WaiKit-nus/tp/AddCommandClassDG-WK/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.jpg) +
+ +:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. + +
+ +Listed below is an example on the usage of Add Command. +1) Example Command: `add /n Jacob /i 3 /q 2`. This command translates into adding a person named Jacob, ordering the 3rd food on the menu with 2 quantity. +2) The Add command will take in this input from the Parser class, which will then split this input string into `personName`, `foodIndex` and `foodQuantity` respectively. + A new `Person` object will be instantiated and the data `personName`, `foodIndex` and `foodQuantity` is passed into this object. +3) This `Person` object will be added into the `listOfPeople` in the `PeopleManager` class. + ## Product scope ### Target user profile From 75164260dd2a30f7613f8205afc7109630c32f5b Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Fri, 22 Oct 2021 19:06:03 +0800 Subject: [PATCH 155/429] update --- src/main/java/seedu/duke/Person.java | 63 ++++++++++------------------ 1 file changed, 23 insertions(+), 40 deletions(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 2b11c74e97..de8381b098 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -50,61 +50,44 @@ public void addFoodToIndividualFoodOrders(int foodIndex, int foodQuantity) throw * @throws LotsException When order index is more than the number of orders. */ public void deleteParticularOrder(int foodIndex) throws LotsException { - int numberOfOrders = 0; - for (int i = 0; i < totalMenuItems; i++) { - if (individualFoodOrders[i].getQuantity() > 0) { - numberOfOrders++; - } - if (foodIndex + 1 == numberOfOrders) { - individualFoodOrders[i].setQuantity(0); - } - } - if (foodIndex + 1 > numberOfOrders) { - throw new LotsException("Please enter a valid order index!"); - } + editParticularOrder(foodIndex, 0); } /** * Sets the quantity of a particular food to quantity requested by user. - * + * * @param foodIndex Index of the order whose quantity is to be changed. - * @param quantity Quantity of food to be set. + * @param quantity Quantity of food to be set. * @throws LotsException When foodIndex is more than number of food in menu or - * order quantity is less than 0. + * order quantity is less than 0. */ public void editParticularOrder(int foodIndex, int quantity) throws LotsException { - int numberOfOrders = 0; - if (foodIndex <= totalMenuItems && foodIndex >= 0) { - for (int i = 0; i < totalMenuItems; i++) { - findAndEditParticularOrder(numberOfOrders, foodIndex, quantity, i); - } - } else { - throw new LotsException(foodIndexOutOfBoundsErrorMessage); + try { + int indexToEdit = getIndexToEdit(foodIndex); + individualFoodOrders[indexToEdit].setQuantity(quantity); + } catch (IndexOutOfBoundsException e) { + throw new LotsException("Please enter a valid order index!" + System.lineSeparator() + + "You can enter \"list\" to check your order index."); } } /** - * Extention of editParticularOrder() to find the particular order to edit. - * - * @param numberOfOrders Number of orders tagged to the person of interest. + * Get the correct index of the Order array to be edited. + * * @param foodIndex Index of the order whose quantity is to be changed. - * @param quantity Quantity of food to be set. - * @param i Current index of individualFoodOrders array to search. - * @throws LotsException When foodIndex is more than number of food in menu or - * order quantity is less than 0. + * @return The index of Order array to be edited. */ - private void findAndEditParticularOrder(int numberOfOrders, int foodIndex, int quantity, int index) - throws LotsException { - if (individualFoodOrders[index].getQuantity() > 0) { - numberOfOrders++; - } - if (foodIndex + 1 == numberOfOrders) { - if (quantity == 0) { - deleteParticularOrder(foodIndex); - } else { - individualFoodOrders[index].setQuantity(quantity); + private int getIndexToEdit(int foodIndex) { + int numberOfOrders = 0; + for (int i = 0; i < totalMenuItems; i++) { + if (individualFoodOrders[i].getQuantity() > 0) { + numberOfOrders++; + } + if (foodIndex + 1 == numberOfOrders) { + return i; } } + return -1; } /** @@ -130,4 +113,4 @@ public String getPersonName() { return personName; } -} +} \ No newline at end of file From 0a520dd784f15b1121d93c68c9845ccd4945aedc Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Fri, 22 Oct 2021 20:53:07 +0800 Subject: [PATCH 156/429] checkstyle --- src/test/java/seedu/duke/EditCommandTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/duke/EditCommandTest.java b/src/test/java/seedu/duke/EditCommandTest.java index 405217c035..c438c9fb6b 100644 --- a/src/test/java/seedu/duke/EditCommandTest.java +++ b/src/test/java/seedu/duke/EditCommandTest.java @@ -12,7 +12,7 @@ class EditCommandTest { - static protected PeopleManager peopleManager = new PeopleManager(); + protected static PeopleManager peopleManager = new PeopleManager(); @BeforeAll public static void setUp() throws LotsException { From 86841121c76a388952e0505b5a5eaad10239cbbe Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Fri, 22 Oct 2021 21:11:45 +0800 Subject: [PATCH 157/429] DG update --- docs/DeveloperGuide.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 48da41fcd6..7663f44b57 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -54,6 +54,27 @@ messier and therefore harder to read. By having a command class for each respect to segregate all the necessary functions for each command in their own respective class, therefore making testing easier. +### Edit Command +The purpose of the edit is allow the user to edit his order quantity. +The class diagram below is a brief overview of how the EditCommand class is related to other classes. +
![Class Diagram](https://raw.githubusercontent.com/thaddyyz/tp/master/UMLdiagrams/EditCommandDiagrams/editCommandClassDiagram.jpg) +
+
+ +#### Alternate implementation + +The EditCommand function can be integrated with the deleteCommand class. +``` + +``` + +The upside of doing would be that there is less code overall. +However, doing so would result in multiple functions being in the same class which would: +1. Make the code messier. +2. Make the code more vulnerable to functionality bugs. +3. Make the code more complex to debug. +4. Make testing process more complicated. + ## Product scope ### Target user profile From 747a67ff371f9607f0fd487d2397783e5b97665d Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Fri, 22 Oct 2021 21:40:52 +0800 Subject: [PATCH 158/429] Added exceptions to handle limit of people and food order quantities being exceeded. --- src/main/java/seedu/duke/Person.java | 13 +++++++ .../java/seedu/duke/command/AddCommand.java | 37 ++++++++++++++++++- 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index c726315bba..991ac92270 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -71,6 +71,19 @@ public void editParticularOrder(int foodIndex, int quantity) throws LotsExceptio } } + /** + * Get the total food order quantity of the particular person. + * + * @return numOfOrders Total food order quantity. + */ + public int getIndividualOrdersQuantity() { + int numOfOrders = 0; + for (int i = 0; i < totalMenuItems; i++) { + numOfOrders = numOfOrders + individualFoodOrders[i].getQuantity(); + } + return numOfOrders; + } + /** * Get the correct index of the Order array to be edited. * diff --git a/src/main/java/seedu/duke/command/AddCommand.java b/src/main/java/seedu/duke/command/AddCommand.java index a52a6b3c9c..1bf419539a 100644 --- a/src/main/java/seedu/duke/command/AddCommand.java +++ b/src/main/java/seedu/duke/command/AddCommand.java @@ -1,6 +1,5 @@ package seedu.duke.command; -import seedu.duke.PeopleManager; import seedu.duke.exceptions.LotsException; import seedu.duke.Menu; import seedu.duke.Person; @@ -43,9 +42,12 @@ public AddCommand(String input) throws LotsException { * person to the list of people will happen. * * @throws LotsException Throws a new LotsException when the command is invalid. + * @throws LotsException Throws a new LotsException when exceeding limit of total people. */ @Override public void execute() throws LotsException { + checkNumOfPeopleOutOfLimit(); + checkQuantityOutOfLimit(); if ((personName != "" || foodIndex != -1 || foodQuantity != -1) && getMatchedIndex(personName) > peopleManager.getSize()) { Person person = new Person(personName); @@ -185,4 +187,37 @@ private int getMatchedIndex(String currName) { } return currNumOfPeople + 1; } + + /** + * Function to check if the total number of people in the list will exceed the limit of 99 after adding. + * + * @throws LotsException when the total number of people exceeds the limit after adding. + */ + private void checkNumOfPeopleOutOfLimit() throws LotsException { + int currTotalPeople = peopleManager.getSize(); + if (currTotalPeople + 1 > 99) { + throw new LotsException("Maximum number of people reached! Please make sure the total number of people" + + "ordering is less than 100."); + } + } + + /** + * Function to check if the total quantity of orders of every person in the list will exceed the limit of 999 after + * adding. + * + * @throws LotsException when the total quantity of orders exceeds the limit + */ + private void checkQuantityOutOfLimit() throws LotsException { + int totalOrderQuantity = foodQuantity; + int currTotalPeople = peopleManager.getSize(); + for (int i = 0; i < currTotalPeople; i++) { + Person currPerson = peopleManager.getPerson(i); + int currPersonFoodQuantity = currPerson.getIndividualOrdersQuantity(); + totalOrderQuantity = totalOrderQuantity + currPersonFoodQuantity; + } + if (totalOrderQuantity > 999) { + throw new LotsException("Total quantity of food orders has exceeded the limit! " + + "Please make sure that the total quantity of all orders is less than 1000"); } + } + } From 81e7ad4cd7da3ffaa6ad662dc794af0d8018567b Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Fri, 22 Oct 2021 21:41:47 +0800 Subject: [PATCH 159/429] Added JUnit tests for exceeding limits of total order quantity and total number of people ordering. --- src/test/java/seedu/duke/AddCommandTest.java | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/test/java/seedu/duke/AddCommandTest.java b/src/test/java/seedu/duke/AddCommandTest.java index 30696439ed..10a48c3004 100644 --- a/src/test/java/seedu/duke/AddCommandTest.java +++ b/src/test/java/seedu/duke/AddCommandTest.java @@ -6,6 +6,8 @@ import seedu.duke.command.Command; import seedu.duke.exceptions.LotsException; +import java.util.LongSummaryStatistics; + import static org.junit.jupiter.api.Assertions.assertEquals; public class AddCommandTest { @@ -227,4 +229,30 @@ public void execute_inputForNameIsMoreThan50Characters_throwsLotsException() System.out.println("Name cannot be more than 50 spaces. \n"); } } + + @Test + public void execute_numberOfPeopleExceedsLimit_throwsLotsException() throws Exception { + try { + PeopleManager.clearListOfPeople(); + for (int i = 0; i < 100; i++) { + String sampleInput = "add /n " + i + " /i 1 /q 1"; + Command command = new AddCommand(sampleInput); + command.setData(peopleManager); + command.execute(); + } + } catch (LotsException e) { + System.out.println("Total number of people cannot be more than 99. \n"); + } + } + + @Test + public void execute_numberOfTotalOrdersExceedsLimit_throwsLotsException() throws Exception { + try { + Command command = new AddCommand("add /n Adam /i 1 /q 999"); + command.setData(peopleManager); + command.execute(); + } catch (LotsException e) { + System.out.println("Total number of orders cannot be more than 999. \n"); + } + } } From d9638498a8e048c941b89dc2efb4ea4dacded6c4 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Fri, 22 Oct 2021 21:54:11 +0800 Subject: [PATCH 160/429] Added JavDocs for Order class --- src/main/java/seedu/duke/Order.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/java/seedu/duke/Order.java b/src/main/java/seedu/duke/Order.java index eb29d63da3..a621d367d5 100644 --- a/src/main/java/seedu/duke/Order.java +++ b/src/main/java/seedu/duke/Order.java @@ -11,6 +11,12 @@ public class Order { private static ArrayList menuList = Menu.FOODLIST; private static ArrayList priceList = Menu.PRICELIST; + /** + * Constructor for Order. + * + * @param foodIndex Index of food to be added to the order. + * @param quantity Quantity of food items to be added to the order. + */ public Order(int foodIndex, int quantity) { this.foodIndex = foodIndex; this.foodName = menuList.get(foodIndex); @@ -18,19 +24,38 @@ public Order(int foodIndex, int quantity) { this.costOfOrder = quantity * priceList.get(foodIndex); } + /** + * Function to update quantity of a particular order to a specified value. + * @param quantityToSet Quantity of food items to be set. + */ public void setQuantity(int quantityToSet) { this.quantity = quantityToSet; this.costOfOrder = quantityToSet * priceList.get(foodIndex); } + /** + * Function to get quantity of a particular order. + * + * @return Returns the quantity of a particular order. + */ public int getQuantity() { return quantity; } + /** + * Function to get total cost of a particular order. + * + * @return Returns the total cost of a particular order. + */ public double getCost() { return costOfOrder; } + /** + * Function to represent the order data in a String format. + * + * @return Returns the data of a particular order as a String. + */ public String toString() { return foodName + " | Quantity = " + quantity + " | Cost = $" + String.format("%.2f", costOfOrder); } From a89d0059e9296667beb9b755bd9e0f6fae3e72c5 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Fri, 22 Oct 2021 21:58:52 +0800 Subject: [PATCH 161/429] Fixed checkstyle issues --- src/main/java/seedu/duke/command/AddCommand.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/duke/command/AddCommand.java b/src/main/java/seedu/duke/command/AddCommand.java index 1bf419539a..9390bd011c 100644 --- a/src/main/java/seedu/duke/command/AddCommand.java +++ b/src/main/java/seedu/duke/command/AddCommand.java @@ -196,8 +196,8 @@ private int getMatchedIndex(String currName) { private void checkNumOfPeopleOutOfLimit() throws LotsException { int currTotalPeople = peopleManager.getSize(); if (currTotalPeople + 1 > 99) { - throw new LotsException("Maximum number of people reached! Please make sure the total number of people" + - "ordering is less than 100."); + throw new LotsException("Maximum number of people reached! Please make sure the total number of people" + + "ordering is less than 100."); } } @@ -216,8 +216,9 @@ private void checkQuantityOutOfLimit() throws LotsException { totalOrderQuantity = totalOrderQuantity + currPersonFoodQuantity; } if (totalOrderQuantity > 999) { - throw new LotsException("Total quantity of food orders has exceeded the limit! " + - "Please make sure that the total quantity of all orders is less than 1000"); } + throw new LotsException("Total quantity of food orders has exceeded the limit! " + + "Please make sure that the total quantity of all orders is less than 1000"); + } } } From 1197b83283ac9f7cbcc9432feb756f57ae9e65f2 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sun, 24 Oct 2021 14:47:10 +0800 Subject: [PATCH 162/429] Edit Parser Diagram. --- .../Parser Sequence Diag.drawio | 2 +- .../ParserDiagrams/Parser Sequence Diag.jpg | Bin 110515 -> 93859 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio b/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio index 8e43679b3d..29543c94c4 100644 --- a/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio +++ b/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.drawio @@ -1 +1 @@ -7V1tc5s4EP41nul9CIOExMvHxGnSzrXTTnN3ud43YhSbC0YejGv7fv0JGzB6wQYHME6cLzULFnj30e6zqxUdGMPp6j5yZ5Ov1CPBAOreamDcDiCEuoHZP4lkvZWY0NoKxpHvbUVgJ3jw/yOpUE+lC98jc+7CmNIg9me8cETDkIxiTuZGEV3ylz3TgL/rzB0TSfAwcgNZ+uh78WQrtbG+k38i/niS3Rno6Zmpm12cCuYT16PLgsj4ODCGEaXx9tN0NSRBorxML9vv3ZWczR8sImFc5Qv/eL+e44j+5dD75ePT8t/HT0PzKh3llxss0h/sBnH6vPE6UwJ79FnycTEN7iJ3yj7eLCd+TB5m7iiRL5ntmWwSTwN2BNhH+eGyO5EoJquCKH3Ye0KnJI7W7JIUKUamyeVO78hKZZOCzs1Mw25q63E+1k4d7EOqEbV2jHBxc7eKnNH6iz4Lvz3+Ad37KyxpZ2BcX3vekE6nbujt09MX/5kEfpioakYinz0PidiZIBV/38luGHRjl8miVHcjGgTubO4/bYbVmSQio0U093+RH2S+nSEbKV2EHvHSoxxemwNm6JccsMmgz+wm6exyXmmf9KyRTdG1cFywl8pcdlvWMmVriQaaUT+MN/fFNwN8KxiHRvGEjmnoBkXz1FKzrNe9wKqubF7XSFY1UKi6tYlhS6rezYoPfjhbxL9Juk9+rM8c63Xgj0MmeqJxTKdMZyT0rhNPncgCOno5rGWm3Gj9Nzu40jVdx5nkZ/IFDTgoE9yu0iG2R+viUcHE6V3cKM6eI6SbmUtWfpzcBmjATA+399CxnR7vbpEcrAsH4g1Kpxy78ZhUQAvxuFAlYyUigRszL8EHQYXt069+T2bDDmPAMjVT3/0ZJj+/IdIcfsw5XUQjkg5TDD3CyAYWXAUWgLlVgTTQBpv5D6wEV2WUg4c9QwGEqfE9dz7ZTHvAhzbeH1T1qweNV5jKWDGVM9krbXwlOBLH0o8zqThQzns6MimSTDp0g4CZhVFGEmeuSPZCvPUOsJjmg+YVACV6K9jfVtgfNeDKlYpUcpxbEjDPdaE5G1+FNdPi3ZetYDpIM4x2yI7SbP0kO3sRVl3lMIm3J+I7yp9g1Z8kVegOnZFQjDTsdApguwIRSgmKrkEMOYbi2Nn5BhjKNigcRuPBIJcaWNcsgMxWAhoSHWVJHJI5iiPNc2SimsExu5A+P89JK3FPZt4cDM+UfOdEm8MwsHE7LHufm2qfZWM+mDhIy0S1ebUCs6IPbJmHOSrP+C3ySDS/0IeBXCVBuBrfa404ZM9zDszBqa1tfm6dmjYAubx6cHa8K96QWaM6cTAtZLdCHDAQhqhMHITiBjb6xxqAXAHhUHimtOH4YO+cJtgjE2sY7kpsoCZSSiCHnG6DPlDmQ19JuLjE/IGyZIAhkkJR1yUDIOcOvY38OcLOuGgAlNx43yx5X7Hfrhv7WysaYFsI2a8oGpi63bvwD2XOX4Chokre87i/W5fTEYdgbDgdVgwyJ9UBi9CQLrGGnG86Gm6ugIDFolfba3PKHOmj58cXLjGQ6wdmxfWi1lhERhrOgUUcQ916RSGgUXdyvCsKkUGvVvnA4SwMWyEUptlQMcEUmUkf2IS89l5A5IfP76yUULnDo+FagglaqSWYFRfQGkOTsgHhUksoryWYPWg/gGfUfwDfQAMCrF1xe19E4BUNCNk6bCtEwGqwHcHqYTsClGuKN2vyFgoLzJ0W8Wzlx11UFmB3zQgsbhRafm0+0jimBpCz+zuSYiiw3HGbgiFXwCRsNtQCnOOSgUg3BFiaxjGwLAXSqbuKM995bAMLsoBWoLDJNOZ8MqM1jt0tUBTlqAtQmgIKQsbxQBEYmThU28CoUPe6AONYYGBwZGyRgYGBrVVcz2kMG4oy3QUbjWHDeY3TKK6bIB4o4rhto0Sum11Q0hhKTKsdlEjjNocS5WY/5XLYdzeaM0uIaOlxJawULtWrMADyubSi7JXvnioCygENVGGUtqlAAfqyw7i2thFPva1qBS+7tS3Gckgt7Our267Ibe6lbMySikNyWfXqVz1THNzmCyv606zUpCfdD69ynfmmRGENoPam0EYLTUrlKOufe17F8JbKnzWqmtB2moGEUMc0REhUrmMioGHIj2U6mglPiTA1PVMsaRjXf4YvIV2Gl7WogdyLYmFDChKOKki0tSpiKLxCDwLyfnhVj8gne+eH+gco2ocPzo+35IYPrkIZVfsBu25HsUG1esjB5gA7+4l98ttym3UCygIqz28dqhSDB1eOjKoroQ13o1im3UY3itVxjQYp0m/M4vMGR5/Dhzjyw3ESRkRAMZ8e8wUaN4XWiNlwE1VEzE19z0u+zoI9i/HuLvjLIctdxDTlASAH4ZAGNAFMWih69oNAFDVOAUyBFiq6UVUMoLWghM668poHLi5oWR1mDh29dUjXbJ37E1aDkanphWXmujso8koefx8g3qRbVyI3ttFZE+9WbOGtREKlDWSr9cVXL3bK7JEy378kY+XJGFBU7Lo12RltL0S1txf2LBlDMum9JGNKOPYuGYOGMMSxyRjE/esHzB7xkowV3UzXyRiwsYbB6wmVhDhxZa1lCoWV2dhm8YdJNwI9XGzGGVjDZDTu1ACa7jQhT0GSmj0FbviSi8aJ6B0nclnLSs74sBzQUEsR7e7H6vMnav/+5WH1c7R6Mr7Phq5q3fv8ErmN1+FfYobNY/M5wWsoDH6yfC7ZeF1ItKDFt2DZBtIgaCCfS/qwSzszbKO12pASoVBFud7SRiXJe1SCXPlGJVvBklvcqKQ0WoX6UEdJyQHtlkOuXOWn3KakfF5Fh5txfeeHb2+Z/rBz5nOUcnDuW87vZpOSU/Hd3VU2djjwpEmJUs1yIa4AyTPdr9zGTqUqmC7mPHVcVrsblWzc1kYlW4xMR5MMdrj7z362l+/+yyTj4/8= \ No newline at end of file +7V1bl5pIEP41npN9GA4N3VweZ5zMJGeTkzm5TbIvexhpRzZIu4hR99dvo1z6pqIDqCPzEimxgaqvq76qriY9sz9e3MfeZPSR+DjsGbq/6Jm3PcMAtgXpP6lkuZYgZK0Fz3HgZyeVgi/BfzgT6pl0Fvh4yp2YEBImwYQXDkgU4UHCybw4JnP+tCEJ+atOvGcsCb4MvFCWPgZ+MlpLHaSX8nc4eB7lVwZ69s3Yy0/OBNOR55M5IzLf9sx+TEiy/jRe9HGYKi/Xy/p3dxu+LW4sxlFS5Qd/+b+HSUy+u+R+/vg0/+fxXd+6ykb57YWz7IG9MMnuN1nmSqC3Pkk/zsbhXeyN6ceb+ShI8JeJN0jlc2p7Khsl45AeAfpRvrn8SjhO8IIRZTd7j8kYJ/GSnpIhxcw1OS/1Du1MNmJ0buUa9jJbPxdjleqgHzKNqLVjRrObu0XsDpYf9En06fGr4d1fIUk7PfP62vf7ZDz2In+bnj4EQxwGUaqqCY4Dej84pt+EmfihlN1Q6CYelcWZ7gYkDL3JNHhaDatTSYwHs3ga/Maf8XQ9Q1ZSMot87GdHBbxWB9TQvwrApoMO6UWy2eW+0D7Zt2Y+RZfCMWMvlbmcpqxlydYSDTQhQZSsrotueuhWMA6JkxF5JpEXsubZS82yXrcCq7qyeV1DWdVAoerGJoYjqTrCcyoo58abIJrMkj8kC6SPHFD3eh0GzxEVPZEkIWOqORz516m/TmUhGfzarWuq4nj5gx5c6Zquo1zyM/2BBlyYC24X2RDroyV7xBg6u4oXJ/l9RGQ1f/EiSNLLAA1Y2eH6GjpysuPyEunBkjkQL7Bx4tELP+MKmME+F7BkxMQ49BLqK/hQqEBA9tOHdE6USKMhW7P08s+0+FluQM3lx5ySWTzA2TBsABJGNpHgMJAAz7UKpIFWCC0esBJolbHO2O0fGBBmxve96Wg1+QEf4HivUNW77jQeM6GRYkLnshfa+EpwJ66tH2ZScaCC/bRkUiiZtO+FITULJY44yV2R7IV46+3gMvWHzisANuiNsb+jsD+swaErFalkOrc4pJ6rIzsrX4U0y+bdl6PgO1AzzWYoj9Jsp0l5tiKsusqNNN4eifUoH8Hef5JUoTtkgiMx0tCvMwA7FYhQRlB0zUAGx1BcJ/++BoayDgq70bgzyGUG1jUbQKuRgAZFR7khDskcxZXmOcxLGJWDY34iGQ6nuJG4t4l/c2A8Uwpe0G0OycBBzXDtbc6qea6N+JDiQi0X7c2uFcgVPWHDbMxV+cdPsY/jaUciUhMBh7cPqsb6GqMPefQ8B/7g7q1tfm4dmzwAudS6c3ZcFHvIrVGdPlg2dBqhDwgIQ1SmD0KJA5mnxx2AXAdZkwcOi2dKHg4P+e5xQj60kIaMstwG9sTLBuBBt93QD5S50UcczbrI31OWD5ABpYDUdvkAyHnEycb/AmFnXEAASoa8bZZcFgNw9mUAjRUQkCME7hcUECzdOTkSYMjMf00CGDAq6uYnHv3LlTodcjhGptti9SB3VS1wCQ3qEncouKerofqKCUgsgzW9WqfMl976QdIxip7cfWFVXEFqjEvk1OEcuMQhBO6kiIRh7js5LopI5NDbq5TgchY2GqEVllVTYcES+ckpcAp5NX7NKRhcvnl/YWWFyp0fNdcVLNBIXcGquLBWG6aUjQldXWFzXcE6gbYE44z6EoxX0JhgKKtvN8uuLYFF4yFlhXxhthE2YNfYpWCfYJeCsalNoUTmWdcYqE9lUW0Xx20UGYz2ehRo8GD6gfk1bMu1NADd8u9AnqFAdMvdC6ZcEpOwWVN/cIFLCiLdFGBpmYfAciOQjt1ynHvQQ/taoA00hsem05jzzJTbuE67QFFUpjqg1AUUCM3DgSLQMnGopoFRoQTWAeNQYCBwYGyRgYGAo1Vc4KkNG4qKXYeN2rDhvsRpsEsokAeKOG7TKJFLaB1KakOJZTeDEmnc+lCi3AmoXBl78OIptYSIlhMuh22ES/VSDDD4jFpR+yq2VrGAckENpRilbSpQgFPZhLy3tiFPve1qVS+nsV3IckhlNv3t27/I7fwldMwNFYf0tOo1sP1MsXMPsFHRn+YFJz1thHiR6yx2LAoLAXvvGK213KRUjrIIuuVtDa+pCLpHbdNw3HogIVQzTRESlauZEGjI4MeyXM0yjokwNT1TrGuY13dB1L0RZGU1oSfFRqYUIVxVhGhqXcRUuIQTiMbbsVU9HB/tnSDqB1A0E2+fHK/JAe9chTKrNgW23ZPigGqVkJ29AU7+iKfkseWO6/USFIPLi9vqYlZdEK25J8W2nCZ6UuyWizRQkX/T2GFY/87Sd7ndeL5fHqQhRQQW9e8JX6nxMogNqC1XEUbE3jjw/fTnNPDTeO+VREAOX94sIRknAAUY+yQkKXCyitEwCENRVDsdcISVGtX73NoMUPCsS7BFHONimN1iCtHSu4l0zdG5P2FZGFqazqw377u3oijp8dcB4kXadSlymxuZ1PEexgbeXSSU3EC+bM9O61ZZPlQm/t+iXxGZR11i1ltl2LzNFKW7dk12RhsP4d4bD08sMYMyB949Py4qN4N7bzxsKTczTGGIQ3MzA51ee2B+i1JulkKTweb59QhuROLO1Ay2t3WQjwgO0hB4Oa2ScCcutDVMpJAyN1sl+FS6EujRbDVOz+6no3Ff0bzNG6cUKkwTtKfQi34VoucLT+fyDpaC9yE5rDWVz919Xrx/R5w/P3xZ/BwsnsyHSd9TLYOfXzq38jr8q86Q9QqzunRLNpNuGTbfkeWYUDNADVld2pa9sVHDMRurFCkRahxAvC4rMZH3LzkKuuw0t39JabcKhaIjZCdbIXYeu5eUj6DoebvY9GQbHE9u/5Jb8W3fVXZ7uMZRExSl3uWiXJmfnHN6coQtTNt815F3MDmoqR1MjhigNswPCglvyZyWxZaND1Q0X5VPIMB/PeKhk8H9/ve3D98+L+6+oh8P0Lr9uJjcqtg2u+jlr948/FrWvaRwqgD45nUvsS9KLpCrmHYd8VVpOQULZS1H0tc+doaTDQcVxKhVwyloKGu4MY5mnd16aQMAZzdkHNluCkLL2g37QdLZrSc1CCBXtltTBSWl3RTvGmHt9rTs4pvCbJZiMbFVsymactHNLR56szC5ZDOJ3XlyM26rXlGxSs/OrmGQpvnd9BKnlw1lu9U0vehh+d+PrvOE8j9xNd/+Dw== \ No newline at end of file diff --git a/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.jpg b/UMLdiagrams/ParserDiagrams/Parser Sequence Diag.jpg index 8c3506548f89b87fb78d74cec98f137e0d4549bf..b830c261b62d074f8e4e6d05e39f00cfbbb09ab5 100644 GIT binary patch literal 93859 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%0A*i7Q8JIG1 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 From dcfbe9e66b21009ada504a497bced58ea3bab682 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sun, 24 Oct 2021 15:23:13 +0800 Subject: [PATCH 163/429] Add Junit for testing more than 99 people. --- src/test/java/seedu/duke/ParserTest.java | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/duke/ParserTest.java b/src/test/java/seedu/duke/ParserTest.java index 0db2fa8c9e..afe80902e3 100644 --- a/src/test/java/seedu/duke/ParserTest.java +++ b/src/test/java/seedu/duke/ParserTest.java @@ -3,9 +3,9 @@ import org.junit.jupiter.api.Test; import seedu.duke.command.Command; import seedu.duke.command.UnknownCommand; +import seedu.duke.exceptions.LotsException; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; public class ParserTest { @@ -20,4 +20,21 @@ public void getCommand_spaces_nullReturned() throws Exception { Command output = Parser.getCommand(" "); assertTrue(output instanceof UnknownCommand); } + + @Test + public void addCommand_AddMoreThan99_ErrorThrown() throws Exception { + String com; + PeopleManager manager = new PeopleManager(); + PeopleManager.clearListOfPeople(); + for (int i = 1; i <= 99; i++) { + com = "add /n " + i + " /i 1 /q 2"; + Command output = Parser.getCommand(com); + output.setData(manager); + output.execute(); + } + com = "add /n 100 /i 1 /q 2"; + Command output = Parser.getCommand(com); + output.setData(manager); + assertThrows(LotsException.class,() -> output.execute()); + } } From 6123b3c0c500d153c6d8bec0e448dabe84005c3a Mon Sep 17 00:00:00 2001 From: markuslyq Date: Sun, 24 Oct 2021 16:14:11 +0800 Subject: [PATCH 164/429] Fixed a bug regarding the quantity limit of one food order. --- src/main/java/seedu/duke/Order.java | 20 +++++++++++++++++-- src/main/java/seedu/duke/Person.java | 7 +++++-- src/main/java/seedu/duke/Ui.java | 2 +- .../java/seedu/duke/command/AddCommand.java | 2 +- .../java/seedu/duke/PeopleManagerTest.java | 2 +- src/test/java/seedu/duke/PersonTest.java | 4 ++-- 6 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/duke/Order.java b/src/main/java/seedu/duke/Order.java index a621d367d5..a83aae003b 100644 --- a/src/main/java/seedu/duke/Order.java +++ b/src/main/java/seedu/duke/Order.java @@ -1,5 +1,7 @@ package seedu.duke; +import seedu.duke.exceptions.LotsException; + import java.util.ArrayList; public class Order { @@ -16,11 +18,13 @@ public class Order { * * @param foodIndex Index of food to be added to the order. * @param quantity Quantity of food items to be added to the order. + * @throws LotsException if the quantity for this particular food exceeds 999. */ - public Order(int foodIndex, int quantity) { + public Order(int foodIndex, int quantity) throws LotsException { this.foodIndex = foodIndex; this.foodName = menuList.get(foodIndex); this.quantity = quantity; + checkQuantity(); this.costOfOrder = quantity * priceList.get(foodIndex); } @@ -28,8 +32,9 @@ public Order(int foodIndex, int quantity) { * Function to update quantity of a particular order to a specified value. * @param quantityToSet Quantity of food items to be set. */ - public void setQuantity(int quantityToSet) { + public void setQuantity(int quantityToSet) throws LotsException { this.quantity = quantityToSet; + checkQuantity(); this.costOfOrder = quantityToSet * priceList.get(foodIndex); } @@ -59,4 +64,15 @@ public double getCost() { public String toString() { return foodName + " | Quantity = " + quantity + " | Cost = $" + String.format("%.2f", costOfOrder); } + + /** + * Checks if the quantity for this particular food exceeds 999. + * + * @throws LotsException if the quantity for this particular food exceeds 999. + */ + public void checkQuantity() throws LotsException { + if (quantity > 999) { + throw new LotsException("Please keep the food quantity to less than 1000!"); + } + } } diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 991ac92270..6995d8156f 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -14,16 +14,19 @@ public class Person { * Individual Food order list will be populated with 0 on initialisation. * * @param personName Name of the person. + * @throws LotsException if the quantity for this particular food exceeds 999. */ - public Person(String personName) { + public Person(String personName) throws LotsException { this.personName = personName; setupIndividualFoodOrders(); } /** * Used to populate the array with 0 from index 1 to total_menu_items(10). + * + * @throws LotsException if the quantity for this particular food exceeds 999. */ - private void setupIndividualFoodOrders() { + private void setupIndividualFoodOrders() throws LotsException { for (int i = 0; i < totalMenuItems; i++) { individualFoodOrders[i] = new Order(i, 0); } diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index d0d75596fb..280c7f9ada 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -50,7 +50,7 @@ public static void printWithoutBorder(String stringToPrint) { */ public static String readInput() { String input = SC.nextLine(); - return input.strip(); + return input.replaceAll("\\s{2,}", " ").strip(); } /** diff --git a/src/main/java/seedu/duke/command/AddCommand.java b/src/main/java/seedu/duke/command/AddCommand.java index 9390bd011c..1eab9b46ac 100644 --- a/src/main/java/seedu/duke/command/AddCommand.java +++ b/src/main/java/seedu/duke/command/AddCommand.java @@ -47,7 +47,7 @@ public AddCommand(String input) throws LotsException { @Override public void execute() throws LotsException { checkNumOfPeopleOutOfLimit(); - checkQuantityOutOfLimit(); + //checkQuantityOutOfLimit(); if ((personName != "" || foodIndex != -1 || foodQuantity != -1) && getMatchedIndex(personName) > peopleManager.getSize()) { Person person = new Person(personName); diff --git a/src/test/java/seedu/duke/PeopleManagerTest.java b/src/test/java/seedu/duke/PeopleManagerTest.java index ca12c8ebbf..537487972a 100644 --- a/src/test/java/seedu/duke/PeopleManagerTest.java +++ b/src/test/java/seedu/duke/PeopleManagerTest.java @@ -17,7 +17,7 @@ class PeopleManagerTest { * This method will only run once for this test class. */ @BeforeAll - public static void setUp() { + public static void setUp() throws LotsException { peopleManager = new PeopleManager(); String[] names = {"Markus", "Adam", "Andrew"}; PeopleManager.clearListOfPeople(); diff --git a/src/test/java/seedu/duke/PersonTest.java b/src/test/java/seedu/duke/PersonTest.java index c9aaa10564..7173ba2af9 100644 --- a/src/test/java/seedu/duke/PersonTest.java +++ b/src/test/java/seedu/duke/PersonTest.java @@ -9,7 +9,7 @@ public class PersonTest { private static final String TEST_NAME = "hello"; @Test - public void addFoodToIndividualFoodOrders_menuIndexLessThanOne_expectException() { + public void addFoodToIndividualFoodOrders_menuIndexLessThanOne_expectException() throws LotsException { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.addFoodToIndividualFoodOrders(-1, 1); @@ -20,7 +20,7 @@ public void addFoodToIndividualFoodOrders_menuIndexLessThanOne_expectException() } @Test - public void addFoodToIndividualFoodOrders_menuIndexOutOfBounds_expectException() { + public void addFoodToIndividualFoodOrders_menuIndexOutOfBounds_expectException() throws LotsException { Person person = new Person(TEST_NAME); assertThrows(LotsException.class, () -> { person.addFoodToIndividualFoodOrders(88, 1); From 6f67c31a806078284cdf3f996d6f7d47759a96fa Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Sun, 24 Oct 2021 16:17:20 +0800 Subject: [PATCH 165/429] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 133f102abf..fd0304c493 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -105,7 +105,7 @@ Below is an example of how the OrdersCommand is used, assuming that there are or names of all persons currently stored. On top of that, `printIndividualPersonOrder()` is called to print the `foodIndex` and `quantity` data stored for each person. -###Add Command +### Add Command The purpose of the AddCommand is to take in the user input and split the input to three different categories. The three categories are the input name, order index and quantity. These data will then be added into a new Person object, which will be added into the list of People. From 89919a0fe79f846f36efa2470e29b8a58cb1a991 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Sun, 24 Oct 2021 22:30:20 +0800 Subject: [PATCH 166/429] Update AndrewDG to include design & implementation for Logic Portion. --- .../ParserDiagrams/LogicSequenceDiag.drawio | 1 + .../ParserDiagrams/LogicSequenceDiag.jpg | Bin 0 -> 34455 bytes .../ParserDiagrams/SwitchClassCode.jpg | Bin 0 -> 43051 bytes docs/AndrewsDG.md | 164 +++++++++++++++--- 4 files changed, 142 insertions(+), 23 deletions(-) create mode 100644 UMLdiagrams/ParserDiagrams/LogicSequenceDiag.drawio create mode 100644 UMLdiagrams/ParserDiagrams/LogicSequenceDiag.jpg create mode 100644 UMLdiagrams/ParserDiagrams/SwitchClassCode.jpg diff --git a/UMLdiagrams/ParserDiagrams/LogicSequenceDiag.drawio b/UMLdiagrams/ParserDiagrams/LogicSequenceDiag.drawio new file mode 100644 index 0000000000..b46595cb59 --- /dev/null +++ b/UMLdiagrams/ParserDiagrams/LogicSequenceDiag.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/UMLdiagrams/ParserDiagrams/LogicSequenceDiag.jpg b/UMLdiagrams/ParserDiagrams/LogicSequenceDiag.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eb5718f17f3b91d8b03ffcca765d4bd09100973e GIT binary patch literal 34455 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 HWbD5I_ozmQ literal 0 HcmV?d00001 diff --git a/UMLdiagrams/ParserDiagrams/SwitchClassCode.jpg b/UMLdiagrams/ParserDiagrams/SwitchClassCode.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d115fdf563f482c263fd14610a26339b33a23e7 GIT binary patch literal 43051 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 literal 0 HcmV?d00001 diff --git a/docs/AndrewsDG.md b/docs/AndrewsDG.md index 974b247d21..ed888d0cfd 100644 --- a/docs/AndrewsDG.md +++ b/docs/AndrewsDG.md @@ -3,12 +3,15 @@ ## Acknowledgements {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} +## Architecture -## Design & implementation +## Design -### Parser -The purpose of the parser is to the command that the user has typed in and return its respective command -object. The class diagram below is a brief overview of how the Parser is related to other classes. +### Logical Component +The logical component of the program consists multiple classes. Namely: `Parser`,`Command` & +the various child class of `Command`. +The class diagram below is a brief overview of how the `Parser` & the various `Command` class +are related to one another.
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg)
@@ -16,25 +19,142 @@ object. The class diagram below is a brief overview of how the Parser is related
-Below is a step by step example on how the parser is used when a user keys in an input. -Assuming the input is not going to be **null** or **blank**, +Below is a brief explanation on how the logical component works. + +1) When the user key's in an input, `Duke.class` passes the entire String into the `Parser` class to be processed. +2) The `Parser` class will then decide based on the input, which specific command type to be returned. + (e.g. `AddCommand`,`EditCommand`, etc...) +3) The `PeopleManager` for each Command Class is then setup by calling the + `setData(People Manager)` function. +4) Next, the `execute()` function is called to perform whatever operation the + command is supposed to do. +5) Depending on the which specific Command type it is, the `Command` might be able to + communicate with other components such as the `Menu` & `Ui` class to perform it's respective + tasks. (e.g. Printing the Menu) +
+ +All the specific types of command class are a child class of `Command` to allow the program +to treat all commands the same when they return from the `Parser` class. Below is a quick overview +of how the `Parser` class works. + +1) `Parser` checks to make sure input is neither blank nor empty. +2) The command word of the input (e.g.`"add"`, `"edit"`) is put through a switch statement. +3) The return item is then determined by which case of the switch statement the command word +falls into. + +
+Below is a sequence diagram modeling how the `Parser` class works. + +![Squence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) + +### Delete Command + +The purpose of the delete command is to delete a specific order from a particular person. The class diagram below shows the structure of the deleteCommand class and its relationship with other classes. +
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Diagram.jpg?raw=true) +
+ +:information_source: **Note:** This is not a full representation of all the classes. Only methods and attributes associated with the deleteCommand class is being shown. + +
+ +Below is an example of how the deleteCommand class behaves at each step. +Assume that there are 3 persons with 3 orders each. + +Step 1:
+Assuming that the user execute `delete 1/2` command to delete the the order of index `‘2’` from the person of index `‘1’`, the parser would instantiate an object of deleteCommand class, which is a subclass of the Command class. In the constructor of the deleteCommand class, the input entered by the user would then be taken as a parameter. +
+ +Step 2:
+The input is then split and initialised to its respectively attributes using the `getPersonIndex()` and `getFoodIndex()` methods. In this case, `'1'` would be initialised as personIndex and `'2'` as foodIndex. The deleteCommand class is then returned to Duke, the main program, via the Parser class. +
+ +Step 3:
+Duke calls the `execute()` method of deleteCommand, which executes `deleteOrder()`. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter. +
+ +Step 4:
+Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class as only the Person class has access to the Order class which holds the quantity of the order. The quantity of that particular order is then changed to 0 using `setQuantity()` in the Order class. This is to encapsulate the quantity attribute so as to prevent any unauthorised parties from accessing them directly. +
+ +Step 5:
+`printDeleteMessage()` is called to notify the user of the deletion and if the person no longer has any orders tagged to him, that paricular person would be deleted from the list too. +
+ +### Orders Command + +The purpose of the OrdersCommand is to display the list of current orders stored. The class diagram below shows the structure of +the OrdersCommand class and how it is related to the other classes. + +
![OrdersCommand Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/OrderCommandDiagram/OrderCommand%20Diagram.jpg) +
+ +:information_source: **Note:** This diagram only shows methods and attributes related to the OrdersCommand class. + +
+ +Below is an example of how the OrdersCommand is used, assuming that there are orders currently stored. +1) Taking in the input `list`, the parser will instantiate an OrdersCommand object, which in turn is returned to the + main duke program. +2) When the main duke program calls the `execute()` method of OrdersCommand, the `printOrdersList()` method of the UI + class is executed. +3) Within the `printOrdersList()` method, the method loops through each person stored in the PeopleManager to print the + names of all persons currently stored. On top of that, `printIndividualPersonOrder()` is called to print the `foodIndex` and + `quantity` data stored for each person. + +### Add Command +The purpose of the AddCommand is to take in the user input and split the input to three different categories. +The three categories are the input name, order index and quantity. These data will then be added into a new Person object, +which will be added into the list of People. +The class diagram below is a brief overview of how the AddCommand is related to other classes. + +
![AddCommandDiagram](https://raw.githubusercontent.com/WaiKit-nus/tp/AddCommandClassDG-WK/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.jpg) +
+ +:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. + +
+ +Listed below is an example on the usage of Add Command. +1) Example Command: `add /n Jacob /i 3 /q 2`. This command translates into adding a person named Jacob, ordering the 3rd food on the menu with 2 quantity. +2) The Add command will take in this input from the Parser class, which will then split this input string into `personName`, `foodIndex` and `foodQuantity` respectively. + A new `Person` object will be instantiated and the data `personName`, `foodIndex` and `foodQuantity` is passed into this object. +3) This `Person` object will be added into the `listOfPeople` in the `PeopleManager` class. + +## Implementation + +### Logical Components + +Below is a step by step example on how the Logical components interact when a user keys in an input. Step 1)
-Lets assume the input passed in is `delete 1/2`. The method `getCommand()` would then split the user's -input into an array of strings along the spaces and store them in the array `listOfInputs`. After which, -it will get the user's command from the 0th array element and store it in another variable called `commandInString`. +Lets assume the user input is `delete 1/2`. `Duke` will then call the method +`Parser.getCommand("delete 1/2")`. The method would split the user's input into an array of +strings along the spaces and store them in the array `listOfInputs`. After which, +it will get the string `"delete"` from the 0th element of `listOfInputs` and store +it in `commandInString`.
Step 2)
The method will then parse `commandInString` through the switch cases and try to match it with -one of the known commands. If it is able to match it with a command, the method will instantiate -it's respective command object and return it. Else it would return an `unnknownCommandClass` instead. -Below is a sequence diagram modeling how the function works. -
![Sqeuence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) +one of the known commands words stored in each respective command's class attribute called `COMMAND_WORD`. +In this case, the `"delete"` command will cause the parser to return a `DeleteCommand` object. +The image below shows the codes for the switch statement. -#### Alternate implementation +![Switch case Code](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/SwitchClassCode.jpg) + +Step 3)
+Next, `Duke` will then use the returned command to call `Command.execute()` which will interact +with the `Manager Components` of the program who will then remove the 2nd order from the first +person in the list. -Initially we thought of having each command's respective functions to be executed inside the switch statement. +Below is a Sequence diagram for the entire process mentioned above. + +![Squence Diagram of Logic](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/LogicSequenceDiag.jpg) + + +#### Alternate implementation +For the `Parser` class, we initially had thought of having each command's respective +functions to be executed inside the switch statement. A rough example of the `delete` and `add` function can be seen below. ``` case "delete": @@ -44,12 +164,11 @@ case "add": functionToAddTask(input); break; ``` - The upside of doing would be that there is less code overall. -However, doing so would cause our code to have a higher amount of coupling and would also cause the code to be -messier and therefore harder to read. By having a command class for each respective command, this allows us -to segregate all the necessary functions for each command in their own respective class, therefore making -testing easier. +However, doing so would cause our code to have a higher amount of coupling and would also +cause the code to be messier and therefore harder to read. By having a command class +for each respective command, this allows us to segregate all the necessary functions +for each command in their own respective class, therefore making testing easier too. ## Product scope ### Target user profile @@ -66,7 +185,7 @@ testing easier. * Easily keep track of costs. * Ensures that no orders are left out. * Knows which order belongs to which store. -* Allow flexibility and control over what description you would like of your friends. +* Allow flexibility and control over what description you would like of your friends. * Users are able to delete/edit entries quickly. * Comments on the food can also be described by you (e.g. No meat for BanMian). @@ -87,5 +206,4 @@ testing easier. ## Instructions for manual testing -Before jumping into the details of testing, please setup the project by following the -instructions provided at [Developer setup steps](settingUp.md). +{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} From f046c11d607a6e83e1ecc8818c80974192ee0200 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Sun, 24 Oct 2021 22:47:18 +0800 Subject: [PATCH 167/429] update --- src/main/java/seedu/duke/Person.java | 20 +++++++++++++++++-- src/test/java/seedu/duke/EditCommandTest.java | 7 +++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index de8381b098..5fc9c493dc 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -14,16 +14,19 @@ public class Person { * Individual Food order list will be populated with 0 on initialisation. * * @param personName Name of the person. + * @throws LotsException if the quantity for this particular food exceeds 999. */ - public Person(String personName) { + public Person(String personName) throws LotsException { this.personName = personName; setupIndividualFoodOrders(); } /** * Used to populate the array with 0 from index 1 to total_menu_items(10). + * + * @throws LotsException if the quantity for this particular food exceeds 999. */ - private void setupIndividualFoodOrders() { + private void setupIndividualFoodOrders() throws LotsException { for (int i = 0; i < totalMenuItems; i++) { individualFoodOrders[i] = new Order(i, 0); } @@ -71,6 +74,19 @@ public void editParticularOrder(int foodIndex, int quantity) throws LotsExceptio } } + /** + * Get the total food order quantity of the particular person. + * + * @return numOfOrders Total food order quantity. + */ + public int getIndividualOrdersQuantity() { + int numOfOrders = 0; + for (int i = 0; i < totalMenuItems; i++) { + numOfOrders = numOfOrders + individualFoodOrders[i].getQuantity(); + } + return numOfOrders; + } + /** * Get the correct index of the Order array to be edited. * diff --git a/src/test/java/seedu/duke/EditCommandTest.java b/src/test/java/seedu/duke/EditCommandTest.java index c438c9fb6b..11f6ad1ec9 100644 --- a/src/test/java/seedu/duke/EditCommandTest.java +++ b/src/test/java/seedu/duke/EditCommandTest.java @@ -49,6 +49,13 @@ void execute_quantityOutOfBounds_expectException() throws LotsException { () -> new EditCommand(input)); } + @Test + void execute_quantityOverLimit_expectException() throws LotsException { + String input = "edit 2/1 /q 1000"; + assertThrows(LotsException.class, + () -> new EditCommand(input)); + } + @Test void execute_inputWithoutFoodIndex_expectException() { String input = "edit 2 /q 4"; From d75e12c9265e5691931c31ff299de8f103b6c177 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Mon, 25 Oct 2021 00:07:33 +0800 Subject: [PATCH 168/429] Edit Image position. --- docs/AndrewsDG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/AndrewsDG.md b/docs/AndrewsDG.md index ed888d0cfd..ea2b9fcf7d 100644 --- a/docs/AndrewsDG.md +++ b/docs/AndrewsDG.md @@ -12,7 +12,7 @@ The logical component of the program consists multiple classes. Namely: `Parser` the various child class of `Command`. The class diagram below is a brief overview of how the `Parser` & the various `Command` class are related to one another. -
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) +
Insert Abstract Class diagram here
:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. @@ -37,6 +37,8 @@ All the specific types of command class are a child class of `Command` to allow to treat all commands the same when they return from the `Parser` class. Below is a quick overview of how the `Parser` class works. +![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) + 1) `Parser` checks to make sure input is neither blank nor empty. 2) The command word of the input (e.g.`"add"`, `"edit"`) is put through a switch statement. 3) The return item is then determined by which case of the switch statement the command word From 140b2b24c6e43a7e75c137e1e4052e0d11c932b8 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 00:23:05 +0800 Subject: [PATCH 169/429] Update DeleteCommand Sequence Diagram.drawio --- .../DeleteCommand Sequence Diagram.drawio | 160 +++++++++++++++++- 1 file changed, 159 insertions(+), 1 deletion(-) diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio index 8c44442af5..e8f7674e28 100644 --- a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio +++ b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio @@ -1 +1,159 @@ -7ZjLcpswFIafhmU6RhgbL2Pn0kU6yTSdSbOU4QTUCMQIEeM+fSUQYC5OcGrctNOVpV8XxP/pnMPYsFZhds1xHHxhHlADTbzMsC4MhEyELPmjlK1WTAcVis+Jp7VauCc/QYsTrabEg6QxUTBGBYmbosuiCFzR0DDnbNOc9sRo86kx9qEj3LuYdtUH4omgUB17UuufgfhB+WRzokdCXE7WQhJgj212JOvSsFacMVG0wmwFVLlX+lKsu9ozWh2MQySGLLCidHmV8YW7vZnE0e3DN4Svz/QuL5im+oUN6/x2/UNZWZxabEsr5AvEqpmG9IY8ASWR7C1j4CQEAVyOUC3f1dpSghFYamrczPuU4jgh63zbiVQ4uClPyAt8haTgn6ssjTzwdK8yL+8Izp4rHGpT/RbABWR77TEr0+V1BSYPyLdySnVXNSd9Ux3d3dTUK7bBDnGrFLG+aX61dQ1DNjSPA9igLps2kpiRSOTPtZeGfdHCwbgImM8iTHeBHN/Y/Tdrr9tTu2H2vM/srtfmYiyvrY7XHkliLNyg47kyg8gEcU6JH0lpzYRgYe4e5uJc5RzlvdxKahB5pbKmzH0up+lE5wwlAF4nTQ3xXyZLzH14bR7q58SBYiFjsplQe2zXS+/UTaz5npn9gMsdEpZyF/SiFrvqFO/HOf2HQ8du5qkqb70RO85YoWP/LyFZqxR8mBIy+6vjwD6khPSa3VNCZmN5Pe94zUGkPBpeQHaKBYtBDi09nAS5z2YxvFM2ICPiuzZdtR9V+9PCfndFKVLy25dpWEUZFDe/WWTQvHkFkDVrblEcdbQq4xzho6HnA0G6xrcVWtV5PCTSDgeLBoKd/SmwnaAd+fNh0QEr0dE1lniOAtY8EdihETs9Gdhps0KiduUbGWxZEU6dpM2TJenph4vlNnJ7fqQkLbv1vyfF9PpPKOvyFw== \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From da72ed443899e7fe5e19c038e88f0bf8a0899547 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 00:31:57 +0800 Subject: [PATCH 170/429] Update DeleteCommand Sequence Diagram.drawio --- .../DeleteCommand Sequence Diagram.drawio | 42 ++++++++++++------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio index e8f7674e28..cce43a7e39 100644 --- a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio +++ b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio @@ -1,4 +1,4 @@ - + @@ -16,7 +16,7 @@ - + @@ -39,12 +39,12 @@ - + - + @@ -83,7 +83,7 @@ - + @@ -99,10 +99,10 @@ - + - + @@ -125,10 +125,16 @@ - + - + + + + + + + @@ -138,21 +144,27 @@ - - - - - - + + + + + + + + + + + + From 3a17635a1bd7706ee1b5fecef2273fc06bde113e Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 00:33:16 +0800 Subject: [PATCH 171/429] Added DeleteCommand Sequence Diagram.jpg --- .../DeleteCommand Sequence Diagram.jpg | Bin 0 -> 48525 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.jpg diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.jpg b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4b2ab7d6fa49b3d45d44da4a4e61763e142d814e GIT binary patch literal 48525 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 Date: Mon, 25 Oct 2021 00:48:29 +0800 Subject: [PATCH 172/429] Add test case for Order Count < 999 --- src/main/java/seedu/duke/Order.java | 17 +++-------------- src/main/java/seedu/duke/Person.java | 3 +++ src/test/java/seedu/duke/ParserTest.java | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/main/java/seedu/duke/Order.java b/src/main/java/seedu/duke/Order.java index a83aae003b..440400fef8 100644 --- a/src/main/java/seedu/duke/Order.java +++ b/src/main/java/seedu/duke/Order.java @@ -13,6 +13,7 @@ public class Order { private static ArrayList menuList = Menu.FOODLIST; private static ArrayList priceList = Menu.PRICELIST; + //@@author markuslyq /** * Constructor for Order. * @@ -24,7 +25,6 @@ public Order(int foodIndex, int quantity) throws LotsException { this.foodIndex = foodIndex; this.foodName = menuList.get(foodIndex); this.quantity = quantity; - checkQuantity(); this.costOfOrder = quantity * priceList.get(foodIndex); } @@ -32,11 +32,11 @@ public Order(int foodIndex, int quantity) throws LotsException { * Function to update quantity of a particular order to a specified value. * @param quantityToSet Quantity of food items to be set. */ - public void setQuantity(int quantityToSet) throws LotsException { + public void setQuantity(int quantityToSet) { this.quantity = quantityToSet; - checkQuantity(); this.costOfOrder = quantityToSet * priceList.get(foodIndex); } + //@@author /** * Function to get quantity of a particular order. @@ -64,15 +64,4 @@ public double getCost() { public String toString() { return foodName + " | Quantity = " + quantity + " | Cost = $" + String.format("%.2f", costOfOrder); } - - /** - * Checks if the quantity for this particular food exceeds 999. - * - * @throws LotsException if the quantity for this particular food exceeds 999. - */ - public void checkQuantity() throws LotsException { - if (quantity > 999) { - throw new LotsException("Please keep the food quantity to less than 1000!"); - } - } } diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 5fc9c493dc..a9893d0f51 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -40,6 +40,9 @@ private void setupIndividualFoodOrders() throws LotsException { public void addFoodToIndividualFoodOrders(int foodIndex, int foodQuantity) throws LotsException { if (foodIndex <= totalMenuItems && foodIndex > 0) { int updatedQuantity = individualFoodOrders[foodIndex - 1].getQuantity() + foodQuantity; + if (updatedQuantity > 999) { + throw new LotsException("Please keep the food quantity to less than 1000!"); + } individualFoodOrders[foodIndex - 1].setQuantity(updatedQuantity); } else { throw new LotsException(foodIndexOutOfBoundsErrorMessage); diff --git a/src/test/java/seedu/duke/ParserTest.java b/src/test/java/seedu/duke/ParserTest.java index afe80902e3..d2e6e743ad 100644 --- a/src/test/java/seedu/duke/ParserTest.java +++ b/src/test/java/seedu/duke/ParserTest.java @@ -37,4 +37,18 @@ public void addCommand_AddMoreThan99_ErrorThrown() throws Exception { output.setData(manager); assertThrows(LotsException.class,() -> output.execute()); } + + @Test + public void addCommand_AddMoreThan999Quanitity_ThrowError() throws Exception { + String com = "add /n a /i 1 /q 999"; + PeopleManager manager = new PeopleManager(); + PeopleManager.clearListOfPeople(); + Command output = Parser.getCommand(com); + output.setData(manager); + output.execute(); + com = "add /n a /i 1 /q 1"; + Command last = Parser.getCommand(com); + last.setData(manager); + assertThrows(LotsException.class, () -> last.execute()); + } } From 85c1d47d167f5e805a57e98306e6d1491d7bd51c Mon Sep 17 00:00:00 2001 From: WaiKit-nus Date: Mon, 25 Oct 2021 01:02:23 +0800 Subject: [PATCH 173/429] Add TotalNumberOfOrders into Main --- text-ui-test/EXPECTED.TXT | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 4c7f36e265..9cbe661b62 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -54,38 +54,38 @@ Please enter a valid Add Command! ============================================================================================ We have updated the order list for: tim (1) Chicken Rice | Quantity = 3 | Cost = $9.00 -[Total Cost = $9.00] +[Total Cost = $9.00] [Total Quantity = 3] ============================================================================================ We have updated the order list for: tim (1) Chicken Rice | Quantity = 3 | Cost = $9.00 (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 2 | Cost = $6.00 -[Total Cost = $15.00] +[Total Cost = $15.00] [Total Quantity = 5] ============================================================================================ We have updated the order list for: tim (1) Ban Mian | Quantity = 3 | Cost = $9.00 (2) Chicken Rice | Quantity = 3 | Cost = $9.00 (3) Minced MeatNoodles(Ba Chor Mee) | Quantity = 2 | Cost = $6.00 -[Total Cost = $24.00] +[Total Cost = $24.00] [Total Quantity = 8] ============================================================================================ We have updated the order list for: tim (1) Ban Mian | Quantity = 5 | Cost = $15.00 (2) Chicken Rice | Quantity = 3 | Cost = $9.00 (3) Minced MeatNoodles(Ba Chor Mee) | Quantity = 2 | Cost = $6.00 -[Total Cost = $30.00] +[Total Cost = $30.00] [Total Quantity = 10] ============================================================================================ Alright, order 3 has been deleted from tim! (1) Ban Mian | Quantity = 5 | Cost = $15.00 (2) Chicken Rice | Quantity = 3 | Cost = $9.00 -[Total Cost = $24.00] +[Total Cost = $24.00] [Total Quantity = 8] ============================================================================================ We have updated the order list for: aim (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 -[Total Cost = $7.00] +[Total Cost = $7.00] [Total Quantity = 2] ============================================================================================ We have updated the order list for: aim (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 1 | Cost = $3.00 -[Total Cost = $10.00] +[Total Cost = $10.00] [Total Quantity = 3] ============================================================================================ Please enter a valid person's index followed by the order index and order quantity! i.e. edit 1/1 /q 8 ============================================================================================ @@ -102,19 +102,21 @@ Please enter a valid person's index followed by the order index and order quanti Order 2 from aim's order has been edited (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 -[Total Cost = $19.00] +[Total Cost = $19.00] [Total Quantity = 6] ============================================================================================ Order 1 from tim's order has been edited (1) Chicken Rice | Quantity = 3 | Cost = $9.00 -[Total Cost = $9.00] +[Total Cost = $9.00] [Total Quantity = 3] ============================================================================================ +SUMMARY: [Total number of People: 2] [Total number of Orders: 9] +-------------------------------------------------- 1) tim: (1) Chicken Rice | Quantity = 3 | Cost = $9.00 -[Total Cost = $9.00] +[Total Cost = $9.00] [Total Quantity = 3] 2) aim: (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 -[Total Cost = $19.00] +[Total Cost = $19.00] [Total Quantity = 6] ============================================================================================ Wrong format for command Find. E.g) find /n ============================================================================================ @@ -125,16 +127,16 @@ Wrong format for command Find. E.g) find /n 2) aim: (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 -[Total Cost = $19.00] +[Total Cost = $19.00] [Total Quantity = 6] ============================================================================================ 1) tim: (1) Chicken Rice | Quantity = 3 | Cost = $9.00 -[Total Cost = $9.00] +[Total Cost = $9.00] [Total Quantity = 3] 2) aim: (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 -[Total Cost = $19.00] +[Total Cost = $19.00] [Total Quantity = 6] ============================================================================================ Alright, order 1 has been deleted from tim! @@ -149,7 +151,7 @@ Please enter a valid person's index followed by the order index! i.e. delete 1/a ============================================================================================ Alright, order 1 has been deleted from aim! (1) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 -[Total Cost = $12.00] +[Total Cost = $12.00] [Total Quantity = 4] ============================================================================================ Alright, order 1 has been deleted from aim! ============================================================================================ From 7efb7fa5f3436ef18509e0a275d35681360ae868 Mon Sep 17 00:00:00 2001 From: WaiKit-nus Date: Mon, 25 Oct 2021 01:05:51 +0800 Subject: [PATCH 174/429] Change checkstyle --- src/main/java/seedu/duke/PeopleManager.java | 2 +- src/main/java/seedu/duke/Person.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java index 08fb2eb7fe..5575e31df6 100644 --- a/src/main/java/seedu/duke/PeopleManager.java +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -72,7 +72,7 @@ public boolean isEmpty() { */ public int getTotalNumberOfOrdersEveryone() { int totalQuantity = 0; - for(int i = 0; i < listOfPeople.size(); i++) { + for (int i = 0; i < listOfPeople.size(); i++) { totalQuantity = totalQuantity + listOfPeople.get(i).getTotalNumberOfOrders(); } return totalQuantity; diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 4ca0c24734..13bf1b13c5 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -15,8 +15,8 @@ public class Person { */ public int getTotalNumberOfOrders() { int counter = 0; - for(int i = 0; i < individualFoodOrders.length; i++) { - if(individualFoodOrders[i].getQuantity() != 0) { + for (int i = 0; i < individualFoodOrders.length; i++) { + if (individualFoodOrders[i].getQuantity() != 0) { counter = counter + individualFoodOrders[i].getQuantity(); } } From 2f2794f01bf35f631983e66032be0a537c9a83a6 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Mon, 25 Oct 2021 09:11:05 +0800 Subject: [PATCH 175/429] Slight amend to Io test --- text-ui-test/input.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 6dd3c6913b..15e1c07ac6 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -17,8 +17,10 @@ add /n abc /i 9 /q 2 add /n abc /i 3 /q 1000 add /n tim /i 2 /q 3 add /n tim /i 4 /q 2 +list add /n tim /i 1 /q 3 add /n tim /i 1 /q 2 +list delete 1/3 add /n aim /i 3 /q 2 add /n aim /i 4 /q 1 @@ -29,6 +31,7 @@ edit 0/1 /q 2 edit 1/0 /q 1 edit 1/1 /q 1000 edit 2/2 /q 4 +list edit 1/1 /q 0 list find /n From dae49da36d819087893afed3efc55800ccd42993 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Mon, 25 Oct 2021 09:18:49 +0800 Subject: [PATCH 176/429] Edit IO-test --- text-ui-test/EXPECTED.TXT | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 9cbe661b62..f691889ddd 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -61,6 +61,13 @@ We have updated the order list for: tim (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 2 | Cost = $6.00 [Total Cost = $15.00] [Total Quantity = 5] ============================================================================================ +SUMMARY: [Total number of People: 1] [Total number of Orders: 5] +-------------------------------------------------- +1) tim: + (1) Chicken Rice | Quantity = 3 | Cost = $9.00 + (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 2 | Cost = $6.00 +[Total Cost = $15.00] [Total Quantity = 5] +============================================================================================ We have updated the order list for: tim (1) Ban Mian | Quantity = 3 | Cost = $9.00 (2) Chicken Rice | Quantity = 3 | Cost = $9.00 @@ -73,6 +80,14 @@ We have updated the order list for: tim (3) Minced MeatNoodles(Ba Chor Mee) | Quantity = 2 | Cost = $6.00 [Total Cost = $30.00] [Total Quantity = 10] ============================================================================================ +SUMMARY: [Total number of People: 1] [Total number of Orders: 10] +-------------------------------------------------- +1) tim: + (1) Ban Mian | Quantity = 5 | Cost = $15.00 + (2) Chicken Rice | Quantity = 3 | Cost = $9.00 + (3) Minced MeatNoodles(Ba Chor Mee) | Quantity = 2 | Cost = $6.00 +[Total Cost = $30.00] [Total Quantity = 10] +============================================================================================ Alright, order 3 has been deleted from tim! (1) Ban Mian | Quantity = 5 | Cost = $15.00 (2) Chicken Rice | Quantity = 3 | Cost = $9.00 @@ -104,6 +119,17 @@ Order 2 from aim's order has been edited (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 [Total Cost = $19.00] [Total Quantity = 6] ============================================================================================ +SUMMARY: [Total number of People: 2] [Total number of Orders: 14] +-------------------------------------------------- +1) tim: + (1) Ban Mian | Quantity = 5 | Cost = $15.00 + (2) Chicken Rice | Quantity = 3 | Cost = $9.00 +[Total Cost = $24.00] [Total Quantity = 8] +2) aim: + (1) Fried Prawn Noodles (Hokkien Mee) | Quantity = 2 | Cost = $7.00 + (2) Minced MeatNoodles(Ba Chor Mee) | Quantity = 4 | Cost = $12.00 +[Total Cost = $19.00] [Total Quantity = 6] +============================================================================================ Order 1 from tim's order has been edited (1) Chicken Rice | Quantity = 3 | Cost = $9.00 [Total Cost = $9.00] [Total Quantity = 3] From d8c31ab7986d2251481d08ea3e14698b5c5ea297 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Mon, 25 Oct 2021 11:57:36 +0800 Subject: [PATCH 177/429] Add Overall Class Diagram --- .../AddCommandDiagram/AddCommandDiagram.drawio | 2 +- .../OverallClassDiagram.drawio | 1 + .../OverallClassDiagram/OverallClassDiagram.jpg | Bin 0 -> 50625 bytes 3 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 UMLdiagrams/OverallClassDiagram/OverallClassDiagram.drawio create mode 100644 UMLdiagrams/OverallClassDiagram/OverallClassDiagram.jpg diff --git a/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio b/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio index 4f8ddae539..bc0852a64d 100644 --- a/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio +++ b/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio @@ -1 +1 @@ -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 \ No newline at end of file +7Vpbc9soFP41nkl2JhndfMlj7CTdzsRNWne326cdIrDNFgkV4djKr1+QQBKWZCsTK6539iUxhwOG73znArjnToLNBwai5ZRCRHqOBTc996bnOH3PFn+lIMkEV4NBJlgwDDORXQhm+AUpoaWkKwxRbChySgnHkSn0aRginxsywBhdm2pzSsxvjcACVQQzH5Cq9BuGfJlJR32rkP+O8GKpv9m2VE8AtLISxEsA6bokcm977oRRyrNPwWaCiMRO45KNu2vozRfGUMjbDBg+PoxG8+nP7398/Tz+ePvzZbr+80LD/AzISu34EbAYMbVmnmgg4jUOCAhFazynIZ+pHku0/SUm8B4kdCUXEnPg/9Ct8ZIy/CL0ARFdthCIbsaVnV3L0JjJkWpOhmKh86h3Z2+JpmBjKN6DmOvVUEJAFOOndH1yYADYAodjyjkNlFIVPIXnM2IcbUoiBeYHRAPEWSJUNrmpsyGK2ZoS64ImzlDJliWKXCkZUMxc5DMXxhMflP1eYUu3asueM5Y+hPiEBgEI4RkOI2EWwRT3WvydcYbDxXnWUCoVw6+XmKNZBHzZXgsnlzbjgbYnIHgRis++QFLQpg7a3czbD7gC2G0J8KArgO1RBeAm0Ere0gKgV3Ov7+zn3qAGGtvtDJurBvJp5p33nAGREeFJxJbBgqdASIUY8RvAwZnQEsGU5eR8RDQiaJpJG0ejDfJXHMnp1bhniqv2YHQVQgSV97ekNEFz/gpCj1pbUVlt2NJqnRFajq8YzZWbLWNfY47TwFdupQ2+3rAjfD23AhSCorxQTcr4ki5oCMhtIR2bUBY695RGCsB/EOeJyqFgxakJr4CRJX/J8Zd93fxe7rvRuTNrJXkLXsuKSTSfCJWZWIrusNzz7qQZ0xXz0S6iKSBE7hfJqEUYkTDtNDFDBHD8bFZph3cQt+Ig1xAeKejnCTDZapf47Y7qor7XWQDxmqL+w3R6/enm728PX27KtcYxAkduxLcEjlpgOwscTr8B1yLdlXJdNTOeAsg12a8W5GFn9XLVuXcnuXf2b68tQo7VGURV/74QTYJj/jDPwBKkA4GkEMnYolqKiHktx2IaHoOX7uk5v9vk/AY7mwtqkWEzvM+i9N9HgfEmNwUO+blplPpZAIRqlrQeTFVLw/YEIDkDRARx1Gopu6YR2/kEArRnBp1eGueQ5ZIOm2JYkyaOb4OIJ1rziVKCQCNIvuhk9yVvMAPzKdC9bZDp7ujoDmricG28+P8OajtlmBlj5LS8IunuDmpYE7vcPIJIR+6Zt08VI3d035Sz7HTum3SGOdbxsXx4tC6H+WFy//mRRig84PFRs2rv8VG/Nvwix0d97ip5wwOD719Zet5WnBgc/eSoLbVVWc4phVmKb07UUu/nCoQc86Sk9v7JNjfv6dSWXt2Nn6xkUl6e1cE/qYN7123uZ6V8pkd9pTNUPDq0rvryeY5cU73ezEc/2nreUTPHhXVpWX0zfdgDZ2/+EC1R+WGBgYx8qRCCeJmuye42w1gtM4y+mTlchkmHim2BpKQQUeEmcWnmR5o6Y174eX0jouv38rsGfXtovUnf9awtUmYrLiiab/0NrO0fg7XvxLCOiFOxnOc03CLpKTKKq1FbceYQRhwct2i99IZX5cgjY5G9/+mjJvR0GG36LaONPrT8KvVs9QH8t2oCN28Ht7ggMig3TRdzRn+gCSVUAh/S7HgvYN4SVQpjmY+xD8i16ggwhCmb6qoAk2EHqKntgelnw1E16dc9NnZ2jeJVX+BrjINDiJ8xXAFyJ2q9tOqL/7tGcvumka5qLkgOZCTRLH7LlQXT4gdx7u2/ \ No newline at end of file diff --git a/UMLdiagrams/OverallClassDiagram/OverallClassDiagram.drawio b/UMLdiagrams/OverallClassDiagram/OverallClassDiagram.drawio new file mode 100644 index 0000000000..c0826a3361 --- /dev/null +++ b/UMLdiagrams/OverallClassDiagram/OverallClassDiagram.drawio @@ -0,0 +1 @@ +3Vptc5s4EP41nklvJh5AvPmjX5JeZ+omqXvX5lNHNbKtK0YOyLHprz8BwiAkMG6Mc7l+SNEiCenZZ3e1K/fAeL1/H8LNako85PcMzdv3wKRnGLrtAPZfIokzycB2MsEyxB7vVAhm+BfiQo1Lt9hDkdCREuJTvBGFcxIEaE4FGQxDshO7LYgvfnUDl0gSzObQl6VfsUdXmdS1tEL+J8LLVf5lXeNv1jDvzAXRCnpkVxKBmx4Yh4TQ7Gm9HyM/AS/HJRt3W/P2sLAQBbTNAOf+znUX06fHv748jD7cPP2a7v6+1t1smmfob/mOx2S9hoHHF03jHIloh9c+DFhrBH28DJh0zj6NQiaQ18KX94xCivYlEV/be0TWiIYx68LfWjlOnCgOb+4K1A2by1ZlxAEXQq7p5WHqAgz2wPE4BZuBhE3PYFvVOEJX73qG7bNljH6E7GlJUyCSDhGiE0jhFevF+MFeaj0wZH/vEdn4aJpJa0ejPZpvKUqm5+OeCZb1EZJt4KFkA6zXaLfCFM02cJ683TFbZLIVXbMNT/SSxny0oEp9NbPjuBZP1JrdldKS8ZLSQLLZMvYKdbwNfA3QDl/T6QhfE0hAIY95TN4kIV2RJQmgf1NIRyKURZ+PhGw4gP8gSmPu/uGWEhFeBmMYf0vG9628+Vh+N9nzybNWfGh5wyQIsOYPn8x/ZqJbnOw57VDruCKyDeeoiWgcCArDJWpUMncjCUyNKg6RDyl+FgPP+Q0ESAYyHI2/v5LXN4AleP0DmUsEB67K7RudeRCzzu3fTafDT5PvX+8+TzIHMqMhDpav4TkOWnyJ51AC25nnMKwaXIt4Vwp2cmh8CyArwp8SZKsr8gLZupujXOf2LZ7qzLYIuZ0hpDLvy3MLdGbARlcGDFQG/BaQs1pyrrNMwtQk5O5C7/LWaFqiNdqto63ZGTS6BM11mqcT7wNj0j6LCZhtWQoJSb+nLQwopnGp2+UZeVDv2wnGpipNSoJxyssrFfxjFdxNKfAD73yVj/pCZuyknCe16ejGiJ/MsyzN8+51s+HT1dw22DmdWZcpAXXJbO1a62uakLBpfd02jiZtrHWPQswwSDxfKvRgtErXpItpHdmgQMrq0B7TLFs0bZO3D+kiey4+nDTiUqP62VqnW84P8Xj2GM+f7AewiK+/Wcvh7qNzbffapYf5sfh86WE6lOED41KHDWH2FpVmviepVeehQQeGEBoAcCvsy2ZUj2aRRRgtFeUyuPioCqkPe3wBz63X4PlJnGzFpEsyRFKiadSc1fMpMi5LSjyVatJ3tErh+rT+IjXPxij7VT1npc6lHXWZXZEvP/SX/ZjS3xmXIaluDvrAGBT/gMANVx/088PVEdqejSnyFcof8mnGxxG9W2S5uMQsdpygIhEiGpKfaEx8kkSigKQpwYIptCKSsoTkcILn0B/yF2vseSk3VUcika+1JGmfYOh2JcFQpF6qcnV3mZd8h6NQDg48/Iy9LfRv2cE3PQJH/18lAVsM9U5e8byAkppch1CzCiMSSCoopcc1m1ZAU49DhasDxd2VpcBh0FlpypGAyO+uEjg+wTU6ZE81peeWiU9DUaFRQy+6p1JheY66gnLFclnhTFgdoVw9fLVY2S2xOkdhT7k8uSJ6D8OouTx1Bvur5gy6wv4MVTHqHFc/SiDqbijY8SG/88fBZksrVsjrEnVXaJfjmXmyTarwtbrimf1fsslmrNyWXOzOf2kSNhfNP8SijXPIRn4zAckrMnkFJpvWaqzH9FQJxW9mMZzSR6sxZkepNdD6muW6BrCMganrjuD5rOqvYWqqJXIyZIsu1NHaZezHUx/WLH6ZlnUvft8Hbv4F \ No newline at end of file diff --git a/UMLdiagrams/OverallClassDiagram/OverallClassDiagram.jpg b/UMLdiagrams/OverallClassDiagram/OverallClassDiagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..be80b22209a037b5db892037a33486c67313609b GIT binary patch literal 50625 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�L5VYX9cbSEN*l^ev{y@_{}}RWnHO!*?DDv$9vyQX zkE zB!1UK2`;~Vp7`;&zvA={q{dRGI<3=-aR6Tr>)pJ?{^3zEMvpp0L+P>-6Vo3%2T+{( zDNl7CC~rjuYwSQGy|P3Z(q^Opov4*L7gR#tMgYFrL16JnUO=k*o0ly0PBU(y}YTYrsZg{7UIa&%!^O)A9T>j7Xtw1l6$Q ze=u34qI975NrlsH5s1X}j8JZ#m;3|ZTf~C)X%$hmEWqg03EB7@dYnQD;vTsc=jX6@lsl0X%Hm9P++u7R1DeLo2s?2jQ^&tB z%|{HZr8CiAifkzmdY}zvcwOny9Mv*^1S~`}rZj;I4jO)Voqg+n3casQE3L-5^T|mWRGwjv9c<>$7dCW!svn+Ep*c zMoj8VY72a3NmWIsOP1lH@|J&B*Tf(-??uU%c1F*5%rf%_N;T+ zIW5;r^u*DdOp^jLCtcN=^Vc$n%VxUlmqp%39!XyHU8<|eWpweVz&eiuJGOhipug;{JZ*V5G#efoF!dTK2B?%)r+pv(7CeyxY@RZUN0<+rnrZj&~Aa3rrOme=&; zyJLH#zbysbg;<$9#=A6J)e%GzkVoVHeh5Ag4 zoP6Cfo##rQm(;Gl<5l(RtIgFO*6ziZlrKgu3FVxza@o@9eft9}J+!K>?3m?g{wu%W z+M>VpmFm0JKKaW3mR%rtvD?1djLAaFjTL-KZ>_%Y;FnOX{6aN}OwId+(I-+ll?$$= zE$7Wva+Fk5JPf?H@4}uJVQZD1Pt|x`_GX$@)~>sAfQ`9aDV3FMk9f|e{QBjxG~?b~ zx3(z0=PL2SZ-lq4$}<%$soXkk<<|B&o|6`D`<(6Vx8Qq6_usl!^_AKy>ks@o{!Gkr zs#>wA^sZ-htCe(lR;<}As26<4?dQak6Z}lx{fa4HoW7RJ@45TCe;fOreczaC)1MiV z<9)B|YFukr`o(95E3;Jg+*?v5H7RA$YbD^8tOL%kBo7;fWVD8DTM$+9U9)WEeNi#3 z3#s~-6|6oVmlF2!exdPRnn!Z&*An2)>nNiXOM_2;KSr##9u$$=Gj!jlwTXGgl6 z{P^&QuawPm-oR5%rjZk8XFBH@-IUtptSYH7-DmHIc_t^;JJh||ey=vOx6;<9K95JYPcOrGK}g1?n_8{DyG~Ei{2Dny)zp+{ z;gmf`I^He3@%*Bq?o5*{f=jNrxp{>xy!Pg`-Gh}$T{W|pEqm*du7}C)EqHqU)!(dKyBACM zt6xa=zTdT7lTUN+N!}ezS97*iP0X*}mA!DLTzB1++TC`Q{~3HP{%6o&zW+du;UBVy z{8IV6^YiL2o7A6T`2K^v!5+b9f9ZaE^Yi&%&dPsku>HsQfFHqc{1y1^&Cln5jotq& d;ID6}U`FDPT8Ie3(ICZ?&aF2Vo+ literal 0 HcmV?d00001 From 2b9b6025f92e0f1c1a494c864feb0656df6e7f84 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 20:50:02 +0800 Subject: [PATCH 178/429] Added Logical Component Diagram.drawio --- UMLdiagrams/Logical Component Diagram.drawio | 1 + 1 file changed, 1 insertion(+) create mode 100644 UMLdiagrams/Logical Component Diagram.drawio diff --git a/UMLdiagrams/Logical Component Diagram.drawio b/UMLdiagrams/Logical Component Diagram.drawio new file mode 100644 index 0000000000..2a1fc75031 --- /dev/null +++ b/UMLdiagrams/Logical Component Diagram.drawio @@ -0,0 +1 @@ +UzV2zq1wL0osyPDNT0nNUTV2VTV2LsrPL4GwciucU3NyVI0MMlNUjV1UjYwMgFjVyA2HrCFY1qAgsSg1rwSLBiADYTaQg2Y1AA== \ No newline at end of file From 9bf04d88e8dfc2f443433db93d66deb890f032a2 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 21:20:05 +0800 Subject: [PATCH 179/429] Update Logical Component Diagram.drawio --- UMLdiagrams/Logical Component Diagram.drawio | 83 +++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git a/UMLdiagrams/Logical Component Diagram.drawio b/UMLdiagrams/Logical Component Diagram.drawio index 2a1fc75031..57ca6dd608 100644 --- a/UMLdiagrams/Logical Component Diagram.drawio +++ b/UMLdiagrams/Logical Component Diagram.drawio @@ -1 +1,82 @@ -UzV2zq1wL0osyPDNT0nNUTV2VTV2LsrPL4GwciucU3NyVI0MMlNUjV1UjYwMgFjVyA2HrCFY1qAgsSg1rwSLBiADYTaQg2Y1AA== \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From cc4ff775af8496f6257a0d1fb8a195b461eba45a Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Mon, 25 Oct 2021 22:21:28 +0800 Subject: [PATCH 180/429] Add DG portion for Misc & Logic portion --- docs/AndrewsDG.md | 120 +++++++++++++++++++- docs/DeveloperGuide.md | 247 +++++++++++++++++++++++++++++++---------- 2 files changed, 305 insertions(+), 62 deletions(-) diff --git a/docs/AndrewsDG.md b/docs/AndrewsDG.md index ea2b9fcf7d..9d81bc26fc 100644 --- a/docs/AndrewsDG.md +++ b/docs/AndrewsDG.md @@ -195,17 +195,125 @@ for each command in their own respective class, therefore making testing easier |Version| As a ... | I want to ... | So that I can ...| |--------|----------|---------------|------------------| -|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| -|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| +|v1.0|New student on campus|View the menu.|Avoid having to go down physically to the shops.| +|v1.0|User|View the current orders with their names attached.|Able to track who ordered what.| +|v1.0|User|Add my choices of food from the menu.| Track what orders I plan to get.| +|v1.0|User|Delete order's that I've added.|So i can remove orders if someone changes their mind.| +|v2.0|New User|Easily understand how to use the app.| Navigate the program with ease.| +|v2.0|Person ordering for a group.|View the cost breakdown for the current order.| Know how much each person owes me.| +|v2.0|Person ordering for a large group.|View the total number of orders keyed in.| Ensure that everyone has ordered.| +|v2.0|User|Amend existing orders.|Edit an order without having to re-type it.| +|v2.0|Person ordering for a large group.|Find a specific order by name.|Easy know what they ordered without having to scroll through.| +|v2.5|Tech illiterate| View a user guide.| Learn how to use the program.| +|-|Person ordering for a group| Track everyone's food allergies.| Avoid ordering the wrong order.| +|-|Person ordering food for friends| Track what add-ons my friends want.|Track how much it is and won't forget about it.| +|-|Lecturer| Know how many people does a food serve.|Easily order food for the class.| +|-|Host of a party| Sort the menu based on categories| Keep track of different varieties of food.| +|-|Indecisive user| View recommendations based on my frequent orders.| Simplify my ordering process.| +|-|Non-local| View the menu with descriptions in multiple languages.| Order food without a language barrier.| +|-|User with poor data| Download the menu and order list.| Track my orders even without the internet.| +|-|User| View if a food item is sold out.| Decide whether to order from another store.| +|-|Health conscious user| View the nutritional value of a food.| Easily track my diet.| +|-|Ordering for a large group| View the recommended serving size.| Decide on how much food to order.| +|-|Recurring user| Store my favourite food| Easily find what I like.| +|-|Recurring user| Saved my food orders| Easily place my regular order again.| +|-|User| Retrieve my previous order.| Place my previous orders again.| +|-|User| View menu from a file| Avoid having to scroll through the whole menu.| +|-|User| Track who has paid| Know who still owes me money.| ## Non-Functional Requirements -{Give non-functional requirements} +- Program should be able to work on most Operating Systems such as `Windows`, `Linux`, +`OS-X` & `Unix`. + +- User needs to have Java `11` or above installed in order for the program to work. + +- The program should be able to support up to all these values stated below. + - Up to `99` _Unique person_ at a time. + - Maximum of `99` _Unique Food_ items in the menu. + - Maximum of `999` quantity for each distinct food item in a person's order. ## Glossary -* *glossary item* - Definition +* `Unique Person` - Every entry with a different name counts as a unique person. +* `Unique Food` - Every element in the food array menu counts as a unique food. ## Instructions for manual testing - -{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} +The instructions below give a brief overview on how to test the functions manually. + +- :information_source: More test cases can be found in each of their respective test class under +`src/test/java/seedu.duke` + +[Starting up & Shutting down](#Starting-up-&-Shutting-down) +
[Add function](#Add-Function) +
[Edit function](#Edit-Function) +
[Find function](#Find-Function) +
[Delete function](#Delete-Function) + +--- + +### Starting up & Shutting down +1) To begin, download the .jar file and place it in a folder. +2) Open the CLI at the file location and run by the jar file by giving the command, +`java -jar .jar` + - E.g) With `CS2113T.jar` the command would be `java -jar CS2113T.jar` +3) To end the program, enter the command `bye` or simply close the CLI window. + +--- + +### Add Function +- The format of the command is `add /n /i /q ` +- Prerequisite: The `Menu` has to contain at least `2` food item. + +| **Test Case** | **Command** | **Expected Result** | +|:------------:|:-------------|:--------------------| +|Add 1 person.|`add /n abc /i 1 /q 2`| Adds person named `abc` with `2` quantities of item `1`| +|Add a different order to the same person.| `add /n abc /i 2 /q 1`| Person `abc` should have 2 distinct orders under him| +|Add on to an existing order.| `add /n abc /i 1 /q 1`| Person `abc` order `1` quantity should increase by 1| +|Missing parameters| `add /n /i /q`| Error message to user| +|Exceeding more than 999 quantity| `add /n abc /i 1 /q 1000`| Error message to user| +|Food item not on the menu| `add /n abc /i 0 /q 1` | Error message to user| + +--- + +### Edit Function +- The format of the command is `edit / /q ` +- Prerequisite: The current list has to contain at least `2` person each with `2` + distinct orders. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:------------|:-------------------| +|Edit order quantity to 3| `edit 1/1 /q 3`| Order 1 of person number 1 now has 3 quantity| +|Edit order to 0|`edit 1/2 /q 0`| 2nd order of person number 1 should deleted| +|Missing parameters| `edit 1/2 /q`| Error message to user| +|Edit order to more than 999| `edit 1/1 /q 1000`| Error message to user| +|Edit order out of food/person index| `edit 1/999 /q 2`| Error message to user| + +--- + +### Find Function +- The format of the command is `find /n ` +- Prerequisite: Contains 2 person with names of `abc` & `bcd`. + - The above names are just for testing purposes. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:----------|:---------------------| +|Find person `abc`| `find /n abc`| list person `abc`| +|Find person with substring| `find /n ab`| list person `abc`| +|Find multiple people| `find /n bc`| list both `abc` & `bcd`| +|Missing parameters| `find /n`| Error message to user| +|Person does not exists| `find /n zzz`| Inform that no names match| + +--- + +### Delete Function +- The format of the command is `delete /` +- Prerequisite: The current list has to contain at least `2` person each with `2` + distinct orders. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:-------------|:-------------------| +|Delete an order| `delete 1/1` | Order 1 of person 1 is deleted| +|Delete all orders from a person| `delete 1/1`| Person should not be listed anymore| +|Missing parameters| `delete 1/`| Error message to user| +|Out of index| `delete 100/1`| Error message to user| \ No newline at end of file diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 47bef07aed..97bcf78eaa 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -3,53 +3,51 @@ ## Acknowledgements {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} +## Architecture -## Design & implementation +## Design -### Parser -The purpose of the parser is to the command that the user has typed in and return its respective command -object. The class diagram below is a brief overview of how the Parser is related to other classes. -
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) +### Logical Component +The logical component of the program consists multiple classes. Namely: `Parser`,`Command` & +the various child class of `Command`. +The class diagram below is a brief overview of how the `Parser` & the various `Command` class +are related to one another. +
Insert Abstract Class diagram here
:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram.
-Below is a step by step example on how the parser is used when a user keys in an input. -Assuming the input is not going to be **null** or **blank**, +Below is a brief explanation on how the logical component works. -Step 1)
-Lets assume the input passed in is `delete 1/2`. The method `getCommand()` would then split the user's -input into an array of strings along the spaces and store them in the array `listOfInputs`. After which, -it will get the user's command from the 0th array element and store it in another variable called `commandInString`. -
+1) When the user key's in an input, `Duke.class` passes the entire String into the `Parser` class to be processed. +2) The `Parser` class will then decide based on the input, which specific command type to be returned. + (e.g. `AddCommand`,`EditCommand`, etc...) +3) The `PeopleManager` for each Command Class is then setup by calling the + `setData(People Manager)` function. +4) Next, the `execute()` function is called to perform whatever operation the + command is supposed to do. +5) Depending on the which specific Command type it is, the `Command` might be able to + communicate with other components such as the `Menu` & `Ui` class to perform it's respective + tasks. (e.g. Printing the Menu) +
-Step 2)
-The method will then parse `commandInString` through the switch cases and try to match it with -one of the known commands. If it is able to match it with a command, the method will instantiate -it's respective command object and return it. Else it would return an `unnknownCommandClass` instead. -Below is a sequence diagram modeling how the function works. -
![Sqeuence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) +All the specific types of command class are a child class of `Command` to allow the program +to treat all commands the same when they return from the `Parser` class. Below is a quick overview +of how the `Parser` class works. -#### Alternate implementation +![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) -Initially we thought of having each command's respective functions to be executed inside the switch statement. -A rough example of the `delete` and `add` function can be seen below. -``` -case "delete": - functionToDeleteTask(input); - break; -case "add": - functionToAddTask(input); - break; -``` +1) `Parser` checks to make sure input is neither blank nor empty. +2) The command word of the input (e.g.`"add"`, `"edit"`) is put through a switch statement. +3) The return item is then determined by which case of the switch statement the command word + falls into. -The upside of doing would be that there is less code overall. -However, doing so would cause our code to have a higher amount of coupling and would also cause the code to be -messier and therefore harder to read. By having a command class for each respective command, this allows us -to segregate all the necessary functions for each command in their own respective class, therefore making -testing easier. +
+Below is a sequence diagram modeling how the `Parser` class works. + +![Squence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) ### Delete Command @@ -73,11 +71,11 @@ The input is then split and initialised to its respectively attributes using the
Step 3:
-Duke calls the `execute()` method of deleteCommand, which executes `deleteOrder()`. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter. +Duke calls the `execute()` method of deleteCommand, which executes `deleteOrder()`. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter.
Step 4:
-Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class as only the Person class has access to the Order class which holds the quantity of the order. The quantity of that particular order is then changed to 0 using `setQuantity()` in the Order class. This is to encapsulate the quantity attribute so as to prevent any unauthorised parties from accessing them directly. +Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class as only the Person class has access to the Order class which holds the quantity of the order. The quantity of that particular order is then changed to 0 using `setQuantity()` in the Order class. This is to encapsulate the quantity attribute so as to prevent any unauthorised parties from accessing them directly.
Step 5:
@@ -124,26 +122,55 @@ Listed below is an example on the usage of Add Command. A new `Person` object will be instantiated and the data `personName`, `foodIndex` and `foodQuantity` is passed into this object. 3) This `Person` object will be added into the `listOfPeople` in the `PeopleManager` class. -### Edit Command -The purpose of the edit is allow the user to edit his order quantity. -The class diagram below is a brief overview of how the EditCommand class is related to other classes. -
![Class Diagram](https://raw.githubusercontent.com/thaddyyz/tp/master/UMLdiagrams/EditCommandDiagrams/editCommandClassDiagram.jpg) -
+## Implementation + +### Logical Components + +Below is a step by step example on how the Logical components interact when a user keys in an input. + +Step 1)
+Lets assume the user input is `delete 1/2`. `Duke` will then call the method +`Parser.getCommand("delete 1/2")`. The method would split the user's input into an array of +strings along the spaces and store them in the array `listOfInputs`. After which, +it will get the string `"delete"` from the 0th element of `listOfInputs` and store +it in `commandInString`.
-#### Alternate implementation +Step 2)
+The method will then parse `commandInString` through the switch cases and try to match it with +one of the known commands words stored in each respective command's class attribute called `COMMAND_WORD`. +In this case, the `"delete"` command will cause the parser to return a `DeleteCommand` object. +The image below shows the codes for the switch statement. -The EditCommand function can be integrated with the deleteCommand class. -``` +![Switch case Code](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/SwitchClassCode.jpg) -``` +Step 3)
+Next, `Duke` will then use the returned command to call `Command.execute()` which will interact +with the `Manager Components` of the program who will then remove the 2nd order from the first +person in the list. + +Below is a Sequence diagram for the entire process mentioned above. +![Squence Diagram of Logic](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/LogicSequenceDiag.jpg) + + +#### Alternate implementation +For the `Parser` class, we initially had thought of having each command's respective +functions to be executed inside the switch statement. +A rough example of the `delete` and `add` function can be seen below. +``` +case "delete": + functionToDeleteTask(input); + break; +case "add": + functionToAddTask(input); + break; +``` The upside of doing would be that there is less code overall. -However, doing so would result in multiple functions being in the same class which would: -1. Make the code messier. -2. Make the code more vulnerable to functionality bugs. -3. Make the code more complex to debug. -4. Make testing process more complicated. +However, doing so would cause our code to have a higher amount of coupling and would also +cause the code to be messier and therefore harder to read. By having a command class +for each respective command, this allows us to segregate all the necessary functions +for each command in their own respective class, therefore making testing easier too. ## Product scope ### Target user profile @@ -168,17 +195,125 @@ However, doing so would result in multiple functions being in the same class whi |Version| As a ... | I want to ... | So that I can ...| |--------|----------|---------------|------------------| -|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| -|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| +|v1.0|New student on campus|View the menu.|Avoid having to go down physically to the shops.| +|v1.0|User|View the current orders with their names attached.|Able to track who ordered what.| +|v1.0|User|Add my choices of food from the menu.| Track what orders I plan to get.| +|v1.0|User|Delete order's that I've added.|So i can remove orders if someone changes their mind.| +|v2.0|New User|Easily understand how to use the app.| Navigate the program with ease.| +|v2.0|Person ordering for a group.|View the cost breakdown for the current order.| Know how much each person owes me.| +|v2.0|Person ordering for a large group.|View the total number of orders keyed in.| Ensure that everyone has ordered.| +|v2.0|User|Amend existing orders.|Edit an order without having to re-type it.| +|v2.0|Person ordering for a large group.|Find a specific order by name.|Easy know what they ordered without having to scroll through.| +|v2.5|Tech illiterate| View a user guide.| Learn how to use the program.| +|-|Person ordering for a group| Track everyone's food allergies.| Avoid ordering the wrong order.| +|-|Person ordering food for friends| Track what add-ons my friends want.|Track how much it is and won't forget about it.| +|-|Lecturer| Know how many people does a food serve.|Easily order food for the class.| +|-|Host of a party| Sort the menu based on categories| Keep track of different varieties of food.| +|-|Indecisive user| View recommendations based on my frequent orders.| Simplify my ordering process.| +|-|Non-local| View the menu with descriptions in multiple languages.| Order food without a language barrier.| +|-|User with poor data| Download the menu and order list.| Track my orders even without the internet.| +|-|User| View if a food item is sold out.| Decide whether to order from another store.| +|-|Health conscious user| View the nutritional value of a food.| Easily track my diet.| +|-|Ordering for a large group| View the recommended serving size.| Decide on how much food to order.| +|-|Recurring user| Store my favourite food| Easily find what I like.| +|-|Recurring user| Saved my food orders| Easily place my regular order again.| +|-|User| Retrieve my previous order.| Place my previous orders again.| +|-|User| View menu from a file| Avoid having to scroll through the whole menu.| +|-|User| Track who has paid| Know who still owes me money.| ## Non-Functional Requirements -{Give non-functional requirements} +- Program should be able to work on most Operating Systems such as `Windows`, `Linux`, + `OS-X` & `Unix`. + +- User needs to have Java `11` or above installed in order for the program to work. + +- The program should be able to support up to all these values stated below. + - Up to `99` _Unique person_ at a time. + - Maximum of `99` _Unique Food_ items in the menu. + - Maximum of `999` quantity for each distinct food item in a person's order. ## Glossary -* *glossary item* - Definition +* `Unique Person` - Every entry with a different name counts as a unique person. +* `Unique Food` - Every element in the food array menu counts as a unique food. ## Instructions for manual testing - -{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} +The instructions below give a brief overview on how to test the functions manually. + +- :information_source: More test cases can be found in each of their respective test class under + `src/test/java/seedu.duke` + +[Starting up & Shutting down](#Starting-up-&-Shutting-down) +
[Add function](#Add-Function) +
[Edit function](#Edit-Function) +
[Find function](#Find-Function) +
[Delete function](#Delete-Function) + +--- + +### Starting up & Shutting down +1) To begin, download the .jar file and place it in a folder. +2) Open the CLI at the file location and run by the jar file by giving the command, + `java -jar .jar` + - E.g) With `CS2113T.jar` the command would be `java -jar CS2113T.jar` +3) To end the program, enter the command `bye` or simply close the CLI window. + +--- + +### Add Function +- The format of the command is `add /n /i /q ` +- Prerequisite: The `Menu` has to contain at least `2` food item. + +| **Test Case** | **Command** | **Expected Result** | +|:------------:|:-------------|:--------------------| +|Add 1 person.|`add /n abc /i 1 /q 2`| Adds person named `abc` with `2` quantities of item `1`| +|Add a different order to the same person.| `add /n abc /i 2 /q 1`| Person `abc` should have 2 distinct orders under him| +|Add on to an existing order.| `add /n abc /i 1 /q 1`| Person `abc` order `1` quantity should increase by 1| +|Missing parameters| `add /n /i /q`| Error message to user| +|Exceeding more than 999 quantity| `add /n abc /i 1 /q 1000`| Error message to user| +|Food item not on the menu| `add /n abc /i 0 /q 1` | Error message to user| + +--- + +### Edit Function +- The format of the command is `edit / /q ` +- Prerequisite: The current list has to contain at least `2` person each with `2` + distinct orders. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:------------|:-------------------| +|Edit order quantity to 3| `edit 1/1 /q 3`| Order 1 of person number 1 now has 3 quantity| +|Edit order to 0|`edit 1/2 /q 0`| 2nd order of person number 1 should deleted| +|Missing parameters| `edit 1/2 /q`| Error message to user| +|Edit order to more than 999| `edit 1/1 /q 1000`| Error message to user| +|Edit order out of food/person index| `edit 1/999 /q 2`| Error message to user| + +--- + +### Find Function +- The format of the command is `find /n ` +- Prerequisite: Contains 2 person with names of `abc` & `bcd`. + - The above names are just for testing purposes. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:----------|:---------------------| +|Find person `abc`| `find /n abc`| list person `abc`| +|Find person with substring| `find /n ab`| list person `abc`| +|Find multiple people| `find /n bc`| list both `abc` & `bcd`| +|Missing parameters| `find /n`| Error message to user| +|Person does not exists| `find /n zzz`| Inform that no names match| + +--- + +### Delete Function +- The format of the command is `delete /` +- Prerequisite: The current list has to contain at least `2` person each with `2` + distinct orders. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:-------------|:-------------------| +|Delete an order| `delete 1/1` | Order 1 of person 1 is deleted| +|Delete all orders from a person| `delete 1/1`| Person should not be listed anymore| +|Missing parameters| `delete 1/`| Error message to user| +|Out of index| `delete 100/1`| Error message to user| \ No newline at end of file From e180233e7b11100a01e192b1e255e90b00d1fcf7 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 22:41:32 +0800 Subject: [PATCH 181/429] Added Logical Component Diagram.jpg --- UMLdiagrams/Logical Component Diagram.jpg | Bin 0 -> 21822 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 UMLdiagrams/Logical Component Diagram.jpg diff --git a/UMLdiagrams/Logical Component Diagram.jpg b/UMLdiagrams/Logical Component Diagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e308f5108070b0c88d586d1924bcae9c73071161 GIT binary patch literal 21822 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 YHHgk Date: Mon, 25 Oct 2021 22:43:11 +0800 Subject: [PATCH 182/429] Added LogicalComponentDiagrams Directory --- .../Logical Component Diagram.drawio | 0 .../Logical Component Diagram.jpg | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename UMLdiagrams/{ => LogicalComponentDiagrams}/Logical Component Diagram.drawio (100%) rename UMLdiagrams/{ => LogicalComponentDiagrams}/Logical Component Diagram.jpg (100%) diff --git a/UMLdiagrams/Logical Component Diagram.drawio b/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.drawio similarity index 100% rename from UMLdiagrams/Logical Component Diagram.drawio rename to UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.drawio diff --git a/UMLdiagrams/Logical Component Diagram.jpg b/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg similarity index 100% rename from UMLdiagrams/Logical Component Diagram.jpg rename to UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg From ca4e422a0b25cd8cc8241823c45eab26b46e3537 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 22:43:56 +0800 Subject: [PATCH 183/429] Update MarkusDG.md --- docs/MarkusDG.md | 80 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 70 insertions(+), 10 deletions(-) diff --git a/docs/MarkusDG.md b/docs/MarkusDG.md index 4f9dcf1444..47bef07aed 100644 --- a/docs/MarkusDG.md +++ b/docs/MarkusDG.md @@ -8,7 +8,7 @@ ### Parser The purpose of the parser is to the command that the user has typed in and return its respective command -object. The class diagram below is a brief overview of how the Parser is related to other classes. +object. The class diagram below is a brief overview of how the Parser is related to other classes.
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg)
@@ -29,7 +29,7 @@ Step 2)
The method will then parse `commandInString` through the switch cases and try to match it with one of the known commands. If it is able to match it with a command, the method will instantiate it's respective command object and return it. Else it would return an `unnknownCommandClass` instead. -Below is a sequence diagram modeling how the function works. +Below is a sequence diagram modeling how the function works.
![Sqeuence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) #### Alternate implementation @@ -46,15 +46,15 @@ case "add": ``` The upside of doing would be that there is less code overall. -However, doing so would cause our code to have a higher amount of coupling and would also cause the code to be +However, doing so would cause our code to have a higher amount of coupling and would also cause the code to be messier and therefore harder to read. By having a command class for each respective command, this allows us to segregate all the necessary functions for each command in their own respective class, therefore making -testing easier. +testing easier. ### Delete Command The purpose of the delete command is to delete a specific order from a particular person. The class diagram below shows the structure of the deleteCommand class and its relationship with other classes. -
![Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Diagram.jpg?raw=true) +
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Diagram.jpg?raw=true)
:information_source: **Note:** This is not a full representation of all the classes. Only methods and attributes associated with the deleteCommand class is being shown. @@ -73,7 +73,7 @@ The input is then split and initialised to its respectively attributes using the
Step 3:
-Duke calls the `execute()` method of deleteCommand, which executes the `deleteOrder()` method. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter. +Duke calls the `execute()` method of deleteCommand, which executes `deleteOrder()`. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter.
Step 4:
@@ -81,9 +81,70 @@ Within the `deleteOrder()` method, the person whose order is to be deleted is in
Step 5:
-`printDeleteMessage()` is called to notify the user of the deletion and if the person no longer has any orders tagged to him, that paricular person would be deleted of the list too. +`printDeleteMessage()` is called to notify the user of the deletion and if the person no longer has any orders tagged to him, that paricular person would be deleted from the list too.
+### Orders Command + +The purpose of the OrdersCommand is to display the list of current orders stored. The class diagram below shows the structure of +the OrdersCommand class and how it is related to the other classes. + +
![OrdersCommand Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/OrderCommandDiagram/OrderCommand%20Diagram.jpg) +
+ +:information_source: **Note:** This diagram only shows methods and attributes related to the OrdersCommand class. + +
+ +Below is an example of how the OrdersCommand is used, assuming that there are orders currently stored. +1) Taking in the input `list`, the parser will instantiate an OrdersCommand object, which in turn is returned to the + main duke program. +2) When the main duke program calls the `execute()` method of OrdersCommand, the `printOrdersList()` method of the UI + class is executed. +3) Within the `printOrdersList()` method, the method loops through each person stored in the PeopleManager to print the + names of all persons currently stored. On top of that, `printIndividualPersonOrder()` is called to print the `foodIndex` and + `quantity` data stored for each person. + +### Add Command +The purpose of the AddCommand is to take in the user input and split the input to three different categories. +The three categories are the input name, order index and quantity. These data will then be added into a new Person object, +which will be added into the list of People. +The class diagram below is a brief overview of how the AddCommand is related to other classes. + +
![AddCommandDiagram](https://raw.githubusercontent.com/WaiKit-nus/tp/AddCommandClassDG-WK/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.jpg) +
+ +:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. + +
+ +Listed below is an example on the usage of Add Command. +1) Example Command: `add /n Jacob /i 3 /q 2`. This command translates into adding a person named Jacob, ordering the 3rd food on the menu with 2 quantity. +2) The Add command will take in this input from the Parser class, which will then split this input string into `personName`, `foodIndex` and `foodQuantity` respectively. + A new `Person` object will be instantiated and the data `personName`, `foodIndex` and `foodQuantity` is passed into this object. +3) This `Person` object will be added into the `listOfPeople` in the `PeopleManager` class. + +### Edit Command +The purpose of the edit is allow the user to edit his order quantity. +The class diagram below is a brief overview of how the EditCommand class is related to other classes. +
![Class Diagram](https://raw.githubusercontent.com/thaddyyz/tp/master/UMLdiagrams/EditCommandDiagrams/editCommandClassDiagram.jpg) +
+
+ +#### Alternate implementation + +The EditCommand function can be integrated with the deleteCommand class. +``` + +``` + +The upside of doing would be that there is less code overall. +However, doing so would result in multiple functions being in the same class which would: +1. Make the code messier. +2. Make the code more vulnerable to functionality bugs. +3. Make the code more complex to debug. +4. Make testing process more complicated. + ## Product scope ### Target user profile @@ -99,7 +160,7 @@ Step 5:
* Easily keep track of costs. * Ensures that no orders are left out. * Knows which order belongs to which store. -* Allow flexibility and control over what description you would like of your friends. +* Allow flexibility and control over what description you would like of your friends. * Users are able to delete/edit entries quickly. * Comments on the food can also be described by you (e.g. No meat for BanMian). @@ -120,5 +181,4 @@ Step 5:
## Instructions for manual testing -Before jumping into the details of testing, please setup the project by following the -instructions provided at [Developer setup steps](settingUp.md). +{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} From 345ad68bc3de8e1c15d206a39042dcc5380089d0 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 22:49:22 +0800 Subject: [PATCH 184/429] Added Logical Component Diagram.jpg --- .../Logical Component Diagram.jpg | Bin 21822 -> 22970 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg b/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg index e308f5108070b0c88d586d1924bcae9c73071161..2101488e9f3ca90d066687ab82ffd369b3f931e6 100644 GIT binary patch literal 22970 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 YHHgk Date: Mon, 25 Oct 2021 22:51:08 +0800 Subject: [PATCH 185/429] Added Logical Component Diagram.jpg --- .../Logical Component Diagram.jpg | Bin 22970 -> 19609 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg b/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg index 2101488e9f3ca90d066687ab82ffd369b3f931e6..5a3dcc71fe972b35065e050f4d0a7c12667b92f5 100644 GIT binary patch literal 19609 zcmeIZ1z4L)w3i$j48Bm}3$Avgq=mKsih0>z7y1VWMEQrw*& z!7aGE|LNYlvd{U>x#zq0yXQRjdH%_hyel(nX6d_T-kJ5D4W3N^Zp%x{NdwNE0|3t9 zKY+8T^AF`DB=mn*RhE`}CiO?dd2#^0oWBhKSXn#TtI9mRuc4`R|6ASn^1{%;_B;F! zuK00x`@fA20Q7SFgZBSb)iony2SYs4I{xcuk0*|2)(8*ZHT@HI`34*O2?u_I?Ln#% zc%098_@U`9u)!~|v!kse9;fLWzM-xCH+TdOKen=jeWUfQeB=0ru{Br?f7QT$sR0fE zRe%iODIWfpmY@2xNd^D}cL0D3AAZ&uL<0atZvg;u?9V!e&j7%!Hvm9kr|k>-7k@Bw z5&wJM!~_7?%m4sxY61YnT>!v!?eC2K?EBLe|ADOc@qMWAa@ycOrT|NTG2lKx4qy#1 z1aRUZ9>602H-P_a7$5<-aQ<8Q_Im+eE?&O)tz5l)`O@WUSFc~ccJo;!QxK2Pw zaP8VnqML-bZr>)lef`EA;ybsA@$l_$gPi-;^TNfe_>Q*;t`XpC|H*Rp6+m?LT>QE9 z3+Lzn=ZVf;AUbze2cW^5@BD>x`0`x?fQwfyUA}tl!ufB_8n*#>!spIkynXHZ#q-xM z;IYn~zi{!=Wuhy0t`d_yxJyFE%`XU6hrpb|BMQ*Hq~sL5Pd?^$_t5hQsDLzH*oXC9 zV|bNs=g7$SR8mS+%^@;R!spF8eq?Gq#R~vDNWOP=E81J*n>aLB9f zp=Xege7(MLh6UWf^L(D@0uewQu=DIEt^aEfWvps%OO}5$P;2D$7O%DdxQ>D5&I)Vk zaM|LD=D>jDiS*#Vf;Q!n`g99bx1AQ~^8%Y=#r&A4$@J(c^MS_X-;hvot-1Rnft$S()TanWLQ1pqiII<)jNr)L3)YvW57;4 zC(614MJnPf1HIrSss~6k-K?;T$D>f=1p?w!O4PJ=H{lsT2;ZpRyn|kJI|Do^_%E|^ zImHeuMRIAZw3AT8Ejw(K?L~~1S(3)yC>4XGlw%Nh(a5HIJCRUra*dZ^3v{|)lb_dC z*3j+t_Q9ippvYi$ZEe!AX<>E$Pwo2X@Dk(_RN$HTsfBg-A4(+e3_Vh6`7)YsX?QJ9S*cae z#;H_gG?wAvUZvneT|To$E*$3}6C&Ob$HoS{iX8DWLhR^4TWkM;2oftPZ!k>Fn^mvW ztzu_fv&X`!`5{g|U58GNrM-9Kv@_h=>77SVGAV}ED5vQHzP7pdkwk&rBV3;3R1pKLg z`?@%`)P_x+u>r7UxpBnC>~5POMdSQKINa1z3S5EK(Ry}Jq*rGlyQjc}Tf@!6lXLdW z;smqYdFw4p#ME*}ruvI0-C7V>wi*@eT(U7=Gx1;_B0dNnu~^pKc)p_3ASE0nN)l^v zkmt#0-3$K*9&%T@p1;-=t2e-(|J+lDc=}WC#*pQ8tQV&eUFiUg8fIz09+`-M_A41I za8LoSvGp88z!vLAh61g7CTFj0Zc2G6A5vs5jFVg;Uu!KpM#UalXUv^?>v{_;@YDV< zeJ^&v{@tDjyOdHGT3Biu?Xu?`d%Tu`I|B&JFP&Vjlh5m3KKQUgBJz(NBJO|2)qZO> zI}+#q2wq|S;krNF=>Ds)?p-g#zuj3O6-8#-5Q2)EF*vmkFLdbLgK4>wM3B0=mSCQ_rMtUdP;xqt;)+h|V}KFm{eK)i)Nd^3b8Zyq zCCNT}@G}aG2d6r7$~Hyjj~%=`$ME-_tSe|+?_8_AD$;TtUY#4N? zA%+bGWlT>k7e5Z(<~N{MV&+4s3gJ;R9}9MA79^V<;sc>c$}F%kdfH~lMig0HnQFFY z4@QNHa#8sGHveKS3S!NsH6Y;X+LyU6ZOhzYzl4?+%5`_-e`dWCtYwFQr?kwbq)(aY z_z@#B??f+Y^L^f z^B~-_OY_JVIndi5{S+vB5jF7oQU;JagG@?MRCaqh0pkQs{^RtRcWm#v_+NMbK8^X* z?pZw`@4C3^2;(hHmWq*^2!|a*F)9YKz0R2+br`d}Pe&YW4T&5_nnPap+o@Q(@)>~< zwD1hu!A9KLG)R`SPTK0j3oA~!>&WwXoFdb zm3(7>VFxLh9Pk!s51(ZD2#?TXwmej->L~8T(GY$lmg#4q;4sr1T;Pl{P5?Z* z`5!E_*)BV2M!8_Qeotk(Jv3yZJ8f3+^us5cMpcn01|tQ{HIJ`=u)li*{vW0=CAL1_ zDt<<2q+pb|N9&qJ$}5OuBuJ6oAg9ZJ$Ab0bDk39#;FM_Cx!Kx&6j_+zof>8gp5j0& zrDXU4aZvgI$!=jR3Z*NAfyAwxkk1CL;1k(r_{w#unFHC;f2)Hzil*y%TJpXgnd(XsTZtJGu8e!i&|brZd> z-*y62*?-ST1zoR-KD0>Lxb+w21r)!yfj-xr-S-wc?2vb=>rM`q?kn+ZsqLyg@zl$j z`HoLz%FY1l80X@knE*X*x5KUYMOT8BcfD>NCCU#=n3W>K)0XTOK30%)l^q?+P@&EM zWK|ezX!@R5O!$HAu>RZQ&R+06-&8T*M;~n}yRRIS6Lh9KvFO5tJj#`|s%J8OGDY}P zDy|)=H(qr2kY6+Yp(KF`qBRmW`lbe?1;QrQs!Gvo6$-$f;b?b*D`?Xt14 zQ+80%YxnvHMJsy61Nqfj7JK5aho!0LJ}gYwNnNoE3sco12T&Wm{N@G^a!knI2Qlw@ zsyupE@yUReFL7u`QbAQak?9#MrNV)I{oG6FABf+O|5nav@cvkKyz6M?S)-C#y!)os zOE`3-gq}{T(;Wx6_~CCo@GD%^_1qO$hlf_;>X*%#9jdn>P?W<|-x&b*K8m^Ogvk3@ z&S}PON~fFYv72_{BY>#U!b=KvVkTwJQd+jQs;V8Qn4bPXuQqF! z&J}&w5>Jo0hOLwKH95KTvK%d{j4eTdC2NN zq)Cr6j!Z!G4AM4;=pSz(jYf56+=QHCOFdZx`IaLhb^LY031a-y&_$opJS)>n)7dVG z0(lwI!jpBjU&|S)_u2H#52+f-V%r7OXmv%ayTXs|*bVk5ov^G7_EzFn+dVr}lvj1B z(Q@nyqVO@)@=)RFN|9bT)c5NZ7vX&Xz>TAN;7TWo>Q*h(YS_FIyO3Tey`MRW);2P_ ziE)c8m3J0Z5!a3Y<+_Ss_1DgY9+LK+-;djz~* z@2H~aN@v#0y~{7l%xf#})`nN4ovu^dOR^FlCVj|jr_vtSvh+(Gq0(;D(N`m{w*_Ya zOO4M4N&i$c5yUiBejgGb)4D2Ec@)^xxE+JZf_4Gf5X=&0zyZ=zu=|C0N6NxB_s3`4{q}EIu$h1>dW$+v1@P_ zN8EiI49o@du5#^?sG@&wT|49BTM=1aD?B1Fux~(e@;ov*L#I-{_01mC8uK`y!tEn| z^k2$9KZyeXpmKJ1U57-{jH9f_C8C~KP7;X%OVT5s5epjSORMj+q@shy969Y_Jai5g z*-pW|3%wE@?&B9$Z|`cy?e2deDXk~QDmvQbeQ)f4n~vW<7>o}S6R%6{FZAQ^iw5{>)1o~4MHEh-3#wEvueGkySlnZO|iFNom zVcv6_fQ*CbDN$vcJ)Vh{v^9_5G53hpwiv`>dE-J}OM@7{{BE8i(TWT!eSxkT=+L#5 zNKkO4-DW8uy&XlvXGICg7MJXW*0EuHPh3XDg-G}Y)E;c8O_EF?rgut}J!CW=v7G@% z)s8ndm@(uMBdxDlUuvBJNW_TruA{`YQ}=3r;Vj`hJ2LQaj=o#QL8nVJ77Cxb6XCHxzZ^e^j z5~R8+mzvr73Uf?j&ymx!EPgX1&$6;!{|QYVe{Wy=$I|%Cd~kP1ND@tPRjsS{lt$Hc zr@0Al>N5b2^R#K`%MG#jrh`%eSBsPm7M2}vck`R32S;o4NrkEih3b@+;C~^XIupac z1ZiNcBA`!jA5;5r!=gTco-~5>SqpTf`)Wnv7xw4Q0Nl>IG8+dbBcB>YokWA@`@qZf z<3ps}TbT!b;-Ox((&K|v-@|;I2ntK1v_$NzRgP^X>LRK zo&c5mO#P2uS3ytP%7gO`KT7#L(_P@9HNi*wt3MX8&wkD;clsjdn!{<#*1j!dpHohJ zcl=AnHSXvliv+2$3VGFbHcsNv>@v_M=gy)k{=^Vb4+t4Z&`A3Q zG%P513CR8Z8`71I6dc2;)X}Y^ztr%RD9P4&#d|0!v|nG<_lx}B`Nd85M|F?Q#q$?^BU6jSo_$)9al>g&TmTIGkl=5UnQPi6tXN?)LY;F| zKj#1T0|~!DR~;W|JjNf;$8zlr|Bodc)ka_NY%|53e)sW50EU;p;Qs=$r90Ir&ggiR zZ`S_`(xjyVF8Tk_M+|n4n|YIK(DPQjOq<+sz%C$&;8zPmMre-oca3LYQGLnmcXBb3 ztqOqib>}H}U--K8c$;E~e_B=&%~-N&)Tkvgz|#pJzg+yCk8^*M>|Yz~{-kkEm$#74 zhHiRiE|R70_Ij`Tz6PpYh^CUse%s`JVMn0p(-dv31zqiKk=WMjYFsp1x<ZnLRvfEpmYR}D*_A@;H{7wQF%GLKqS|t$f4IRA2DE^*`ev=2V8* z`qzf!9C}vX{_<~vRx(mk{F;VX7xhsyieQ{lejKthMQgU(vD?`p@(fTXzWpS~Rr^Y& zdaN$Z7uA|i>Yau;a3O}(WwFN(^whOEzado$P*gnV8$S+4eHlA_~SYRUdKCEJ#a9nF4 zDiquP(#Z{8Yy1gz7+l;TOBpAi<*EzLofLQ9)Vrc|oJ3`~rf_46MDN(+Cy2W*9MHY? zHiT?Sxbe-&TC)p{$mScXkP3F*Hn97~PjKtg%SA4kO47&rzDu;kd;b~f3z-$P`x+Zw z^jR*-W5-diuvBc52aaXNAScDlsofYhSdEifTFc-8`Nv@URdi1yeSCR47-%m<0!Pf3 z(tLKwvBiCcgU$fm-h&zFE1{l@j!xAtkwc3b4}1|UdO245)H;ht+vACLBZs_ivdN`C zZoYR9(A;}@4##ZDUBWMAUS~I)pymmm;^>c&gIc8af-UXPIx9p%7)K=|C73P|;k~Le zfUj2oe&m81UU7qLJnxH3URwO+2szAgSBrejUmTW%eVywVXb@)%XYKYj+t_z!jNW~$;Q zx}H0Atc2`;%)I8M@O5GQr?EqRf^l_M{=$^eSWm1t;5t8Kb9MP`nWOVnqputH-iG8k z2I(;_=+ajXEa=6 zQ8jrKmgZj=sY@a-6`F}d1#|=?XYgz#ePCTBXhBwQUBq~=e_Lb|Z(S<&$-^SL0xG0c zb*N+zs)?x?6czAC-($_;J>if~;Rj^PVrrq3WLLZfPNH3DjCUReYvvS8tzu_6+cVm1 zRCGSKvqB-nPPBVt7I4N2DaT-ha9yn5JRkg>9E}#d`~&OL%%K>>YWlCCsu>d<$*YWx zajP4uyuQeKybIIgN99bqjnY-h*i37xRh45T-5@eGyKEGp5RbcSYa*!P& zl_}BgV|rgRRQ;CIsfE?3gEWy1kzX4o)(C{R%UaokQd#ITrun8rgXPpY`fxZI)-6gs z-lF&n15!$Mw??;ABmUHQ4j3_Z!4z4@fZb?TP+_o+ymRiVu8Eg+^R53(8XyPA47!VRJ3$RWi&}xbmXKs!S9V8?jO% z56LnY)s)I)h*5e}dW33_XFW-?sNO8=sYW}!2`d>XOponIaP}MxKJI_(e2H2VO~N0` zkL|Bq#U70&M1~GdPg?E~=n8kLQ8wixcsRy5?kLhA6XKP85uOy)B3FYaT7ga@`Zt?7 zNwp=nmmBo9jjj4=`NR0Dl8Ie{16`}JODC~rB<$CFUUSeqa4 zi#C^~FQG9_vvYzc+CAE+R#H@Kk{7?gA;e(HOK`M)Gm9jn%W5Supz<`%re<}srEp!Y zY+#bBIjtF&f%1`*TQEWkeH_t$MkPHP?A$caHZv{Os7p4icbhs~ z!7wQ-X`LZ}jZQQEdW9x+FeJAO%MFQDBz~rwVf*nEqS#U(%zxc z^Z0_{#zEaky=HRX0Lt_!Sa)XmEI1%d)!}3IZOt)Oh#8c}xwn@lMEu}mq=Bvn;YZap zj_W7F>Z4X=UJ!GpmAz|qwmRYWieB)RrjP0dXrVkwaZUBeFc;@h;f6gSL&%nh9hvk} zGD+x{If_-a0%)D{NMR)AhddyGTL!lp=jlXiWomwuJ*79jpL2oj=jSA0QeQ z&j!jxFvgF2u6eec64>)t!B{XkEZq>P@>ZGSO3M)2Ge9POf?CE;BZ!1PTDB4KMH2BN zt~0bld9-74=O!29ZL)I6^w1;F5 zDmtM_0UOJ$p`IzfeCSyRubTP0A)k%R&fs_a-VV zA}8KYmv>6$w`R1VPV8n0wSOp5&2?nYvNexNOvJ5jWq^H?*rMmjlaf@kx^X;9jJA!HeXO-%~N)W05x zJ!uJ>R&Z!}kmcEIvA2leD9C|lSgAR)YAW+IRw*@8rGP`(w3E$z-`~_Gljj~tE~r@^ z7zI`f`Y+ajpz?XP2H={>7g zib`XI&Gq`+4K0wP4KP9rM7pnksl&Y4WqtNmu7idrkdLz@_@zgVdTFv3OXwO>BhW^* zPC7%iKZA!^qmCxMTB%#URf)7@x=+sV@qmz3=}f+U3Qv26P^eji5awfM!~A%(vn6(G zcMfo2Nl;m>m~*%CdBVeh71bWrF@lPmPt5*wN1%d`MsmZ$KlieBj|A3Vl-U2fr@2}| zob=o3ar7C$L{CQ3Q=TrMxYwjlvj!L8d=$X{a`ZD}a!lJI!Bgy^9EY|FvrLxf?S5fw z16#&)n6+qj2u#h1u|iN}w`#eyX^9IiX^-Xv=T}6SIAez^Xq$5Sy60dR<+3u$5_P>7 zo>D`LIAJ(TB6axJ15!Tq3Zil~?T&1W3)8B9IW9QT`FDD)RgiP6730__TWTuGNB9#h zPRM_Ltj__gH6tSc0^vYX%4ye_h5o1JVeiSJ{N*U|!4WzC;n`yF^qz~&9o66JJ$j!G zn!a72Qj71fP_9aLKya%NK_rC%l;pfuLDlLl>R9=MC+Xo`tAn;$X41XVAk$*z!6)*r}rY!_B&uF zuEREQ2GC!jQFveJ@wk)XkTrJKw<`O}pFNY7IaT<%{R|inEgxFSWZ93ygbkw5#XYOYS5?Bu*a zA;XeIL1A9AzXps#JeDG{+U))uNbWhv3LgcMQ=%0R)%(Wyj^g}Gd@A8oy zPU>GdJOh~PrPYq(y9A#6sg~Et@G7%_!>(P!)I#f-Zr697wLgHRw;uPFPE!8V$Bfds zm*cy+AG;^^9BqXhJvK{(J~gBxI|o40>4?mLWs1#=w6s)%Mg_&Y z9AJz#6;USg@E`=;S@{yF#Q=SHU*FgZy z;{iUak{8Y#Ny`Cjwd})4+md0U;LsdT z93$IDVz?f47XJV|ZF64Z4F}_-Jy_p*Z2FgL(fsA1+3o1(jaWY ziIa7FN5yvpcJzw0l^iU7xE{g6AI5pJ^N)whr(w)@W(sKIUHt(t|7p(De?y!Rn~Ag; zV1)wxgP{>MxeFwsjBKQu#`xTkA*eP2kMuHSov^yQ>3a@w0Asm(C>IbM=Q zJpGzrxdM}CROfCu?b}{OL$I^;7LX%gij4Y-F?l+Tv$~@v0&|hXtdTxus0bFC2|s8G z221Lv5vw@@HV``*=1A7wUZ&x((K%Qkh%UL{{=a)-5e%Sz`s?#X2QV_eLLAzss>W%t zSl_Y;$EEtC?)hwV=dE3mxW_=b;f_Mf?RDrYln>Q5jv_M-K|xW9t!2NBr4(S9`>tc7y&o3YblO74gzq3 zuYPR4`MvphYM}MUp+PpyQncyI8y9rG?@s};ij|!TSJaxy2H^6VX@A>%{DFf9{>$g5 zB>gQ%JlMI&4@Z}KG}2&sm2HJ3v#Da$1rcs4Y!d9hpELMl*v4_L-!;slbyegvRR=I? zs`M-`H1&dGOe6=`)Uq0o-5t&+kttF03=(!leIVhm>xZt)Q0Gx%MvDq6R1AV{DLoUO zvm_xoT*%_x_Qj1&OyEg(gzc;#rg>u{D@5K+p`AuiV#h5R_NbP=U;sSYO$1gUegFD3 z$L_%M`~j_9L+KHJM49ljcW%(YyFl2-C{i8aJ3?%RV{Q!ohYZk|5RC!@q?(-y3k%<> zY^gs~MA&*Qak7xb>h{PcrEI)c$#%kc>1-%-*3?Y6KgKr`GwQd9SRo=I0%BCi9!0S^ z#Q)wf(2InV+)28lzI10H2h!QM<&_`wCEmxR@W8G$NWDI0$?7#QfAoQW>APk*CyyJS z5owt*CMxY+HnNF~^kLH03iJl{t3rk$?kY;RsO)l*D{9IZ;Ds3d^}v98CAD&lF_HcX z5n!pu8^S{L@fHX=`+8x99eZKL1tM^$jVw}Gj?1VhCB%G$tbC8KQQO9I`hM!GB8507 zHyQd!$*|nR)mkKxGX$;+#?pDRzKNAqv?|liTxDzM+IAnOz6}xZjqZR(AYy}cVT)k3 zeX|UH<8tamvrYs`!=y1=b!xkWl+ih@=yxdz0@{Lh#Jf_BsnBJpUcXp`4r&yF_A4vT z?#gml#j{>A#r~zovSe#yA=kNA3p$@@7HP&7Hm9vRkIT%8(3Kw@=qVLY<@H>(Uu)^$ zK-9t+zdV#$5i#jZc(FI9PX(>&X{TecpwUq&BwYW1QRW53^zEx=G>>kwq$ML#+2;De(M4^6@%w(-#E} zAcU%d`Y1DiH`TAx-ojD;iU;Rf{%EjaanPzi!XNQAf^c3qrr5$L)nDGv$Uk2H0tIPk z!!9=kr8PHYAT%LJh9gBtz(LCRZp1>YJ(J>kMTh3Y(_4<{%zp1NVSylB$bn#mcwZZ3 zfY%LsG*dj;dceezK3?7QKE$hM|#195+Z8rJL}1TsOE2 z`RPhrN6NAl!EU%`7v=?@{J#)~{)}-K+7oC!SX^{%Er&%`Tq+GEF4K6Y1(!Bf7^O!A zNTVtE*ysllbNrGJP6QI4>u3a$TtroFwOZC7)GY8@nNBbDdhNHE0%Q^Vu_O?NSS6agrS4luA>?-33JY zqQX73iX7D$!vd$(#o@lYchwP;P~*Z#VGDUd&5O6|M*F3xh$#Ef#96++zJAAqSJlEY zXT}U8)dGCvOu3s%1Zwu^8fDhq)3Vj8PB*&CEfy1->laSbpZ8%ujk9hFu|maed(avP z-#e;$vaL|yti840u9nk(c=HQRh6-?A_77G3ySeS$uX}L;7jue#F8nnZ4H15kk$_9S z|5Rem`MgO{>@ZrHZcQ(Z#Uvu?+G_tO!j;Tzhed(!PjmeFn?>;>Pe;PkINCWVdFT4m z7gaQ}t2&{f9Htdp-+6{;vn{tm6SO3jspJeIewly33zFG4a(}zz``54+w%Bv4scUq@-83B|hY=7kL$ZD3&-L@{!CS{%hOGJ>|7Vwe`Ik z<(E6?*W)t&{DrnzgTtFEbyzW;!p4e7ezgpW-n0r1t=cZ6OopU2G((&u9f{g~JK-8Y zt6AM3MoBm+(sLs`O~FR1aJW?e7J1a{aZI1}Mp;>$Ue18KdyuXpu5aNC@RMGPMAFH9 z=V?vmujT87gzW)Zk5zh~dc%0)LI!NCA*0wCAvF^%OFEmYtN(O5$y$8>Xn7*uP817 zIdBP@#?Is&Cb>Ca`!m2ri4NZJQ(u$|f0^F+x6~zb?~K$$L)} zKJkN_LVZq+(!r54O?L$PD^O#Kbv`V~ZabV~V<22_;>yQ$Yb-u_#JDM&-_J%pcC@rz z`^I)hK#*k=xuK&S`_0gv6qf~3(k5Jr9&XDFnKWNnUfq(P-%z*fXRMgVaEa(mlHWP6)82HoO0wS5h4(SB1P^An+9FGO83gpW z)l-sEGG2XAC}HSG%v8?`lD00<%f?AHGS#fQg8K!Xgj`?q6p4+J)L6jPsSM|J4&tw? z_2rot(M9X|1{uh%Y&(GcX9i@0X{&o|Nb~Hpj888W&WS3lLivFQ{m<87a9t0YHPihn zPW0%Wjyj;g@|b*g)-ws#FzO@wCC?(pnPF%9i)=`G^oz`XAx3C7T_~U1LWC?IIxIS3}LEPm=x%zuFC{@y4y6ysQcxF`S*K zELq)}*|i7Vog%Oo(GHTt+&##-lKrLV9;$`0R-dF2i=6|pqYJv*`jXwFA*r09jNW%~ zBHl1$dQ1*aa@0=8&Gs|Er+4nCBfH@g>(Tf$djd#l)T}$-GTY}&e}Dg&LZbw zT^mTj;~qb&o57W%G76G=wG8=;AYOSS9gma;p`n4FO9^=}D4Hx*$*t*-y>J*<$`c=B zVJ;G@wBy;l(6yaSRgi9{o}}K}7M{A}F^`H6#cQJqyLH}k&^ZY*h~%t6Oua+yQje2G-r_2AA$ zI>FKlX4ZNfthhn7tP`|;(C1N?*i`i*V{<4shrmTY1MWGwpJ?SyslgzL9iu=^odKr% zs*q;@+kNgR^OkVBUsh`0GA?RZEiagu!IRTzOfcf74+AdxE+%oX0|;*a&m2&F&tiP5 zVw4YVTl6oJy4zEwIM=MyDCDR}3mYO)lInr!tB%^QS9&Zt*>T!zM!Lxo%X+FXO(l4{%rbX^87J4je(IBspH%Z2eX zq0}4T^aaXk&RXT;a9|hJ@EC# z&vo1Zqyo~*TGcW@AhuU^kO?-4xg)z+lr8aj`o0|bZbOg-0!VLNc4GLzX7b7N#@RxB zyP#Nb^@r}^+#^vbMXL=~^RyJSf+Cyq3t5U122`pa^~$VtvPGW^E4=gT8cdkW$D+N@ zF~3!@LxE~V$P*dU(6QF(Ri8wUk|7v=Ktl4kRoZB^-N|w&--%3=aG2lSBCTX{w<2=H zpk|Z69nQI}I-?X>sd>oA`XDnn>4ogHhE6{^XbMc-=S-dhu}H*vqAmMHq`WS#g!W0i z1NUkV)v4;yzgqw*GUT^lWBe=MgQ9yJp9MOo^GWC1QIr+?7ZeNKlgT1H>dP$CIK4$XSu{!vrARx+N*!!R^()pCR`jT44GYD4TNQ?#Pq zS2WEi;Zw|N27slonNbWFk+IrYlf4@`*=9|cCqP_+U6uEPjmoE`6iC=eANQ=<*eNho zsIQ)`2BdFx{Wi5&c&%>RB4nrpnVXhWI5xId_QG3x*e-Wt3pZG(>(nu$H~eUl!~Cmd zp}VeAr>;KOsF24eX8KaiLksP+21IUCqntAH-R3)RIxk#E4}*FIqLg`yYm!$kbY@%N zkebp>)+{;#dT{_0q0hL2rZ!k(;EIdf%GzyUzv6XlCeoa`? z1?$msqq_o9li<_-@T3lHXc%cK9={3#t8XO>$eZ1(2U)O1I7-fe`7FuBI$xW+QSp?D zu2fuOj4#|`2-ChJrY)78jdI!1U9;D=85$cF$+sAfTr`9cSy}-Vn%`X83 zr5AtQT`FGXCYBTMde;;zc}PSUS2)ElOaSA!v3(cQqgKW|31QMo;0RcTF4|y z-nkDX5`P7|u$((dpm!@gA}s6kSe!cMXjKr=m8Pq!&ZpYy5ERun+EbbErNQ`x5DC`w)6l0S4;>-H0;g?Cex9gV0KWe(^H zglAcb|0GPnlBZpw?ZFZ(A8`h_LOENu(K({w#)wt3^NvP{K-RpR{Qdg*H<77>(5Xc) zSC_DL&+t*1&E$8#up!1kP2-L!KD5XgBWvR5w*+p$#2=T-?tH`ad1&Kz<%-^pwO9;t z@7>etuS>7TL}3}_YR@~62@wkn&rro6P))E>UY4?3?ipa+p4I#O!X@UO$K0x%chDg7 zGeCkKLqoN3K!sY+(FXu|WB*?k_%C__HP@&0(BZe2&BKN{N@`g$SN2+iNcdQwsa`XW zFmhDHuH6V!kbwhY(LjvX-DBNnTvFvIC9Qt}N06inO3m=lR^}PnkG@l@?ot@zLFP9; zF>xz!Z2a;4qVBt1^ByL<2a}g7eN*;i$odJdEhk<&0~m-pn=b!>xz#MFWA(N#Y=jDp zbnB@(<&^7r_d3AvpfpM(pqngSC~7AO7{^?=#YV;8E@?QpEdy*X=w@Z*(o}KD>&zJB z6gCuZDVL~Kho$pOlq(1v%Q}@6=muLdO~V>D2t3aK#7$OvH%uRld4z(8$2HH_D?+Gx zT?43ea%9kLa}a4?+@h8a2|v8Rs%Y8&Jyb-Zo@2kqXscP<2(2b8$Kcan%0QSPv(O-W zLPIB%ZDB1M*Z5#ARv+ut`{f9AA%13EcbTjdmX?zoIUwKPPKn@*Z8H!;`1@w!5Ui|p z$;nBPMYjIKu;g(C3p8$BwY&Rii<=8wz6vl@vLQvQAz7;JkKKmrC(kDmn%DJrY0L6= z#R%%Qsj1Ix#17BBAw8rE8U00>o`1(%TerQ^U}KYTTYKJL-0`Pzl6GGExHDIK54x>( z4(@XiS5<$#M^RDf^28?j;YoM7rGQPDe#>rEpurHo9`;DLL#uf4{sN3oyQzg`);idb zs5xcYVvDQGlT<10d8@ID<^p_LF*Qd)!PzM)QK>!2sOZ&81zqUUw;n_ zKd=46!10f!y(lRgZGAb)?ShS<`GU;pkpPvlvWj}7qe&Uoh7O;ul}G7rVfh$U8N@-% zxHK_rtaS=>L8r}U&`Fe_Vw+BMQ8DwG?*aGO0D#uiR6muvvBkYH=h=&A{jkF)Z5|orZrcrak9*&E$07I9+T+jXY%o^5Jhwq@ zdZm!a8L%m?OSV}Vca_Tclz?*QbnI%P*_@djK%4TpnjI~teei~mkk2N}; zZzEqHJ(>tnY^GOrkp|wwzPBD5ug#_IHSTnJYq>xO){oIa@$LB^olqC9zIi9zNW#YK zs6eHX?T{)X9q;V0B@iuqxDsL+D;d@pnitLq&#{rq-s3|;Bp{*$MhHt74?4H5P6|p} zT94VVNQ_6Y(%2j36jC`!nI$ya$;B%E?i;M-I({(-1hQw-tCs=7Ba1-^GORb^B z^?6cQ{Hi4au3gXTETEuEL;BCDi0V>b-O0(wh!Nu; z>5*)Q#B1bnX9i1xl`7MQe4j^BvtA#}X3>0H#BxYim|lvIk6vULl}@f$1B1IWeesd_ zt|Y#6-wsfx&f}Xj%||T&sdl(+prlJ{oiVc`32zmQ*%xnXZ#n4>?Y}&S37pUywd*@sD&*!=boF=Y^9K_&{@G+G87Y?&y*BWEQV()F;J>A5)-2jM7)6D-Ld3_&` zcEXF`@tLaL;U$|$!l*{2R?)nN@fwS>(coSvT`rtbDw#7cL)bw8JeM$n$lV(@j($}B z>OpZ2quMGP^)&_QS?GXY>}I)vTwk(TzYx&f^>8s3KsRLre3(D{rcgU*JlwJ*{P$-~ zDW5&=Hmhk22oVRq-#qf~!+@Q~2I%OvV4)^5k^Rli1=xYBP0=(Rp=ee0Qem(6pY74D zbsgo_hqAGm{(;b8WGu!UkzRADP0vDQF6tVGGc?@ECNgCuEKd+lbBWh92bx&c@LPb` zBAOVXyT{#>C|zC`(FVO!+5U8yia}ZzKAoTy%yh|rWRAJLk5!>OL<*ch{F&d_nMz$HJ&l~Ekm)QAkfRMGG z)pGA4xI#X+ZHzUV2HL%1y`!GLC4hiT|50H2;AR*0#ls_+JHatxz?lo!@_+xkR#c3T?3 zxoHQbTTR}AwpsnAQ;#c*4l)=RGt+);n1}Q=#1e>ec?94FTBm%U1tgJBMPSEp0m24enKL2=gHk}~D;!oln4eaq+>A{BDNE!?*!X?D)v3OxsUIK}|C7fT` zr9I2_rYNHor+}gqwd+kkT}ti^E{Rgv3}~c4ACS6iI3Fm0^-FdGJYU}DrwGx{p->DV zMgOj6PoW9ypH!A_0I64GK`HZ^{K{7-8xM(-$HGi+q02-78oe@D|X zzAwTGYMKG*m!A!mv?$5kT}n=7P0uW4-D$cE6+XF-6H^-#bu+x~WnLrR0Y2)%b-aS? zhmCy&><2&kG3))e$D1FN{{nt)+Wu$nlHB6W&*>pFoE4oONPm?6-zObKS#XElQbY%8 zjbTsLf-TiDe;e3frZI;OGT>a&@k1?9CeC{ZaW$4Dd2QFrOaoIalas@%cobv|#!Oq< zRhrRGkp|TtXR2sd-yZdn+zYhV4{?5avfv-mprk2N^*)*csJAL6%}$}Du(3L?U%{=i z-^jSX=g2koDf8HnJ!QPM%?RUOd_exi_$LwSsOizJDmR0ajljGR?_1pA;MM7w|9}cl zi|Fy=21Q6&NNB)iwXkFNQnIyYATRD_FVRtgy>wP_^45oY>s$Xn8~+b$Bk#w0lIqG2 z=P?}{&d>51a!f6k0`|E1laa+ci#`pKBh}X4)PM(Svk5^NW#Ev%l z(E3E>71RGVbHTuiz^*D&W{>bUe&&fHs>3(lc2%!JH7iD39?Y}2v-$A-Y_R=_O|}1j zcNpSjk$XedTuvEPhQ&97NA1$aG+5#DgU$3~2D!s1NemDg7jR6X_?0v$xRW%E(oWI& ZerB)I4#`)*tPRiqmbNFh|E_Yz8wYDJ2GfC593eqCw>xQH-rwD6Kff=p-0ek*{P5%ME_yHp! zI*JsWHx&4i)dAS_0E}{TcBA0b|G+nMM*e^YD6p)9z55SdKhh70PgyuZbt%7klrKBr z3g`eTz%2^=-Wk(WQ8nZ^J>@iPE8*Z1=o?;8N1dkO$WZO-?R_kS1W zDCK(C(h>lcGXQ`V0RRl20f5@z4?%zC{aF@&q3Z=o9(IbJPLz)oU=LUT7XUTD5ikQp zD3BO%1-J@G?DqqTz>&j0(vRyAN;*n)^hY{DMRknoFr z^t7kx&YYn?Lw)Kj!`U+o6!^>!B8PtDJaY5|CF2>IlQfj4|7O~M573`D)Oh&fkwe_T zVfsTy=nw6G0yrqeclgL5O8UbB0M+rsCr%zccI3xv%`*Un@u4Hfj-R1EboB5M3eus& zM~)t&I(~xwEW>Z`!Y)RZbM79mFigzcSH&eHuiw;$-A6^`cb?}FyQOF5hK?>WJ?Zj@ z#LIW>>01gtb_$>0+5O24ICAXJ;iD9Kl()C&fy0Lm9X>&Q>=Xs*ca%ei=_%~a{&w}I z_S<$UMkeNKIxZ2piwwGu`;U&ZaEpn9kdaY&A4W`*d2V&M?)L$wC>bev=m7;_=Jii5 z{}a$5uH;v1t+5c8?c*Ggu zuh;muU6L*Zd*4}?xx-ilLFFf7EtI_4Aeqa&bCC&wRRSF{6TF`UI%g%Tl%WH1-Lv`R ziYFvZ;hpE1gWVqUB6LyV==nWSeAL!M{x|=f;wf7TI*HkW*9YZA8JS-TdBjXRsSaBi z+}#RZO+>@TRoOUX+U329ea2qD_^fSg))hBb>yvzW?pn{>m5yHR;jDkrLyo8N-pMQf zrhq4gbmJ65x<4D7t#&Jg4E%;ol+Z?={J<^}lmi#)s7)Mb9tgx$4mbN$ekaMXo9_b; z9Oujz%k*0Xv=LnQ8MD8AT{39YJal{^LASkDYXdV+mYIaCx|$Xb8@WUyskIwEf4n9F&2>uo!Cv=OoFZ-<@%ZNr%2b+in8&Z zqs(4AYVR-X{>0dG5Wy(Y2htn&$lpBaBD z^}Di5wL)u~Q4eo!|7nD<14;!O*!C5N{STVsH&_y)VoQuLGGAqsSon<-=i)Rbr#W9% z?BeVb?~{XC@-|5j=P;y~)=B3`M9QIGRe%=102A zwxAgz5j-kRu=!nrQ;cs4qMPaKq(tadv@4fCybyJ|T}Z@!QX)2|q*qqlZM6$Bs|_`P z3YM5=Jm#JB2{W;gii&|k>6z49X^RSiuCk}_miOkfade&`Bo__jdZS}ZE7HJLM4qr1 z_A#%P)~tcu#z0(I6f&p2aovDyr143>r3Kn&QQX%j7(_AJw~DG2bdkGpq3;n+a&|CygSL(%Ust!mA+o2Ok&yNl;ntMen=BmPnF8DIjTb1`XN!V9$)HxL(j2^3|Jri+^ zb^{0HgIXfavRq_cFclfU9f1o5U-tOefg4ozOKjKA>kCY&XJPbEVv1Dh)maPAm62u@97+iWNQpr)H5AH`4l5G@YcxON5I)p!-Fcx==PtTXCeAt}Zz0vm$Sl zkjUsbQ(y#c!5dM*5QD-ow8R&3e#iH51k4y~Xeff+>K$HW;ewxqo1gL`YHNpj$B$_` zp&P3Zgi`-~Kr=R;N4zfoq&xC)rH{MQi}Ar=P&7@72xR5n+v04>9O2+k+yn)#!kUBODz+lq631!W87 zgEfQ3rE(5EyEo<o=&R%zzp{beb50MzxtPh>@nX2@7+3CZI2z>BMd^b!}C&K zLyAZ5o{L8LJ?03nL3<1el~3IO)Rq60^Pl%T1)ylu4AabGd&f({&b`^Ly2kXCt%SEL z-Mn3mRRXtqzIgdV7UH)Hb>$OdZ3Cy%us+(vxd0JPDJBLlP`P^OP-TY`MAOe*5pq?o z!VS*XMeVPR^og7{LFcuH8@y9Sq=t>#6N_-!0_h3H*^feD5S=dga$aWh@l|!rGc(-IHxJkfTd~?U@+CyDO1XR*IP&^0CzppS zTPyZP6EBtdfer;>+!r?3mz4UKu%|T2s&1aH``TFMh%t7%0Pykr3t!6ZF~uxzooUBl zL$h3Su>nGKbZ%Z{zxAUi@F~aLXw^Kqh@9iM|y9RhTiP=sm` zC6tx3I~mP3)F6bki}zZ>BtY`%Z|AR{{18`l(y24QLJfNhWMl3m%xrWbwYo>gQ{Y>+ zP$beZ#??;p;%d+|*Js)rD+d1dT&Y^Bdk<}o$M$dEfAeK)xWxk?DYWcz$|P(mLc9}K z{1j9ZBX)r5nAne@0QJ7ZZDP9BX?!V!~L|* z9}DTM*d^`m#M$8N*{-`fu7>a(%e^E#Jph+#H$dow3?@}}K{fpylO3i4LoeU66OC-8 zQ%Ap8_K#k*aIQO1Tkx+Wk54mnD7;~PG*PtIV|`uXJK;TR#`mfe_JxnEDFYjEO9y15 z>$sTee*<)+#bNi|XJ>i4cT|~sPE)Q`Cv3xAhn(sT5Hi@3DqxPc3l-LQx7CLgoQe&{ z6&Z4?+I}@9jQLYbwRodeT&}j>hTeuML8R{Lvt5}ex^u+js_c`CjSib@=vG2n3Ea?* zCoRoh^KC-2eWWV(lTysf`JwXpk=v64I?mx^{YM8DjVk7+#?SZGGzsE7aoMu5+QW}G zwY@8hNA5c?sY#oIWviIoZ!kqaqiRw3Bp>5t;Iz{|ax-6Ri7wq3)4vahZ;HseCvG#% z2z`bbGqQ>A1824@rX8wQR1W3{=P>)9!VnIiM>r@`fw36Qvy5_c3A4F^Uc$U$JWaqxQ$crL@fZ^M(j zc0SWG1i}P=7S_b|sR-?5;kYw0VwP98B%Ed(V^DQ{l3(~P)R(tx%OI>xLPLc?(-^2#3=A&c@h?Bk)~ z{@;}6>O+lvKN;o~J!o)=hwB))G%ZB*3Fr5TbkSu;p0u>r!oH0?M?x?du4ziK&4Dye zUAA+$?^0A)#y^pAkyW5HEiy#Yh*dKrRcKE1%(EPl16)`PE@E_ih3B(<9?7iGyr*KQ zC0?Jf=2Tpx{h~omHwABRC;A(&m=b%lS8aC%Jz`rJ%2VVZ-LRlHJ}ej(YU6;3Lk@iR z!j72j)(<#Q!k;8hS zw8E8CpSyIF*mzqfPvk&k@rZsxPGp=o)NudNqY%=yS7NRwsyEt@ee+qyFY z<&mMD@(GYTuSer*Zt{YBXct_E!&AQ~mQdPkxyRKt;DvjaJfbiV-L?lyD#UoQEzod% z3QGp)>Yw*K{G+DQ8Nc4n5M5f4E)9%7VBfU{<5e4u87olr*wz6y=1BE_&fyIUpD5y}OU#7hw;`&9)K5tib zL6(l^KAo<}*OX(#FChipx0#ZLvW>8w+;gDzV^$k@xGnqS`@~+0t%xBhwi8}4D5hU% zsx)Wx;!S4qYxQsRZzW4+X1Wo^b50p7#e6a(1cXLI$KeM$+F0p5A;uIEQH} z!`YQ3;>H~#OJn88eTDw)^le9yD&ke+(j3PjCgwpOtF#W7CYO!>TO8)zd2_F%%thVL zhStAf1dRv+0h*g8f=uDD@LXtMd0afX5Vz2e#HEiZwmIXUU1y8Pk?=sh*3^BP{K`Ca zmbarmt|3}bXi?&L)vaAC8yQI^7Fb`p>B3r7L9vFu#hy%w|9oBcZd$2+r|8mP^*-Q% zc(YRzT%JF3t~sm1X->F<9OEB0&$XR9>u=+TDQMb3Iqw6580&NRrgP1K(^O_g*jVt> znPVLoYTM={j-nyk-!g_9l!U?JNMhDks4*iP$G-+02x`>`ZnD@1LNp`4)7+og)DTx9 zUkD@WkLl9or<-+V7UP z@)kIB`P{GB4%}ts?gKB19*l|bkKHr9uK;4@*G z_5tPuzGdcW(jvwNVPCam(_!+Py`0HO%h>9f6tUL#K+k*N-(O!G`c+A&frbxg87hs6;*)&>Ft3OBk*t*_mWbd)`x`Ry@Gt^wt)!^Yj}pxbx1)ilYB|AWGG>ae8Jv|G{6=q>E*vj6;g0iivP7 zxNux+`H`2qYiq9Q95+@8Bj2kJ2;%d3csH4&gMGQwi)cUO{)PSdLJmIR%FOXJ6kRLF zfjkod`@r0p`InREPEwQQN)9k-*&GL+k(bG2mQ@jHBoO(Y^OoGS^L9jQ;SysX3`JB6 zxvJv%=e3(vK!({PNF28ScLIYf*U9UWUSC?KjdFygaq0P>IL*j?fNDgL{j%9~mR(|~ z?DWG!lOe#N)|T}3xGtX%9nsfeJZK}AveS~ziR9Y8nIsLlJBxB=u?YT99q>Skaj2~n z+s7`b5)>*&N3|*GH3FI*B(w+!6s_>ZDMwbFyf4Up-fTJ>pBN%P%dVl(I7Ht+J*N#y19TTZ`y0LvO%9^EW} zFbs(bM{s8mdoEceCJ(Zs?QPZ9V%FNsld`@-A|c4K$lK~G2a0JWUwchjdfG8!CK1`! z7?|={KVWQaS|}pdFv~2VaRF9n?v*SsujF0qZL6XX(ZAE@V|iY#L-IMT<4dhQDf=N0 z;I9hyQ_?^636&amTSNAi&%XaFBRy}S-3R)98~m+JFawWinKV9B@AtEEj#@}a^eM`g z*dF7InuN~`JPzAn+)F2QtLH;?A&LwWFlo5=<#SV`QR^fqQ}#d^`fgS=7p3hS9mp2N zk+0o_+CZg+=HM{DYQi|B?W_+;P>TppWMA7kU;gmOL`EuQkM-afsmh!@rxrI#+*Rhw z*t#-+dpziC=$KdJ6Ci!kqC~8dkF1wDqL)+~nijr3G{KXKyei4Rk-BkUkOiCcg$s0U zi{LFVckrrHt~Puc?t`RtLDI({jHFnM&AFXWo9=)UFo8z&xIu+^2E=R>mP@$sD*j%q z8(*+a9GDIN+(M#!l0J8W3_?2)j}^tvD(B@t+IhMpp}HBjEK1Yq+`xVj*mxxs#; z+^bC&By5y?5{Fd7zqK0{fL7qe1smn&LiHw6ZCkd{3@+_YonH}jLKEVzrtw|Gs0&1> zmFMswaYB6tY7(x4j=076Gyy)PSfa6gh~uXrMZKH3TAzhM8HL(r(QN4|TJgrtGtC_s zy|fJ9#K?2K;_V%cxFPLUz3DN#G?f(nHODcO^jZ8wn~a2+yA+78bp^ZJ^c>nVEyDhy z>r!9Fz$je#r9jO$9l1sVeA~O2+jWTv7BBi?G4ipl!$hhb^u?Rl4JkDxxd*NmGCYq& z#h_U_8x`Wn3|sY_2buT!?fja&E-RvnOdl9)#BAZcOUEJNg%ClFfzOJTkw(kvbytnY zeOxZ)+U|AaNb`SHaOz#raNM{gCZj%ac4SQtEpj6iPwcn0OiR?Cw(%4Y%&@ab36(ld zlnZAoPUdzMh^-6IlYrW>#$|t zeRXmV0m01idMqYX2|6hqeWn2H;4X+@cgje?oXk+k^+Xf0?2JPpUo|}z7w1uNOzjS$ z)k5g?owvo_1Q&yJR5OlI&t|;fMomVh`H8>@p&*&F^4h#Zf!!2Qw)G~%=+M!rc{*qv zyQxCREZQ5*Vf-TC!Rh6UAPKaXEHUv;0)a@Y2XMYi=VR4gBxdaC>6Lywl5_mG)szue zt(|wd?oW>!(>?ad@vU6g zSN2`y+SAEyKUKeB&mEc#PQ?Hd^ZXr?YVI#b7OYxtPz~LqpKiUHDlHdjQK)ZcSJd6$ z9(}=LfytqE)FUJK>$-C_&*fAvsod?O(1^I=VvkiPko@_N15s91Aj^qKAqd*e5TPZe z-LaSzTA`Tk@@1t~H6TFC_F2zU;e5C^A1!8zvox zKI)tXVvLez_2{U85i)$Vy`|zl*5dZo$K|ek+Xvndnz^2BjW?Q?_PcBeqK){#jgN== zwi-*O&4Uvo(>=fQg65N6cvh0;aiZNY%{#AGZ`EKRT$)XAhr4^Sx+dC*r*SGT zLF4d{zD|RRx<#8IE_T^sZ<)1}w%|=Koz@geC3Xx|c5B$Fn9V3zy(s}VG;7b;s@e}S zWD?_<8OW0>>s2o+VF=>*))S&Vdpf~pBL1r=4-c;KDILXu<-Z8SZi5dcYQbh3VfCnTF?UCG<^r%2=o<(Cg2K^z!qOUJ z!q4#|pnT(N6*p@^rr*V5-+Fg89&Nl=d{f1??()n%qIN@ASC?+LIw2!st)t0E^;HO~ zOiv!Kw188$S#BCK3$)m@>IVc^EN_L}XgPfAx0?{i|ZX&w71teFW6 z?NeG|tDl?YXgNNj0=f|CNc}Xof#04g7VL@bd;v@0ey7_*$m_jiVq}*Q9u@rf?LE^5 z&DyN^uVoY+Cmkanh`qTkW zzL)pSK-qReGQ8caC@U->qHj7axrnUhkcO#zoOl~4FW{9?n}3_6BH+!ELG7qKKLC4J zSYb%$p28Yujf&@`@g^Gf`S!}3reUke9wZ{vYAQ6JZbccc351*gD`b>+6!r9-&$dT9 zbhT!M1z6$7(;Rg2G4`U!1sKnUPh$7g@zPn&RO88tu0b(*{X1dF!%$b0%ljc?eP+Ck z(Ko$#*%P?9I3maPz-=LVm16_^B?ayAs_(2bY(4qYB&**UG!> zJ{0!!U0jo1!L3Dmv8`#s>x>){=d?9MojWgH?vWcrZ zL8}(aQ}EdsJ5gNi6hLm2o(1z6vOm4nq#qab(<={s;|OLELrb%qf^H?t6m{=sZhUA^VitC!{`{rOHmT@UPsx4_aqlO=Gedu#vX0TqSOTSWIPr)m< zYki~ocn(@f)6Hw~)0a7fa-~&n5WKsi;DV@}!sfVg%%E$RxBJYjZ{)P1GiF;+!-1$f z-~cIv6yDWUVY}SEx~!ZlP}`F-f}&$yUw|6T4<9;C$Ma>!rs?yoysb7S=s3YJ201MUU`oyzNoc1QTDZC z!6N-=2E~sn$6A@3AVrnaMe+eyHdUok8nl zi(|4H)QWQKv+T0ka&vaRh29Ajo)K)hGC#X|+oH;G((An(3+U-)XT!sx#5)pOn@-nj zglz}z`$>WfS*T+scg?6omSo06&*05A$NN6On#9D!`Rc1?^2f|vrp&y% zkQVdDoZw4*zOuGcOmc;;EIk4_3b~W~=1a|iiT^P@e((%4W_l0Tmy&NwC939`{%B^C zS;>{}QB#>$ogh=5GM*^8NR*rhkK27w$`@53B}N)~t9c!+oej7W+Q=C^=NZp~yB2BG zkW8ad_$6N8b{c?#*0=8LSSr zcG^3Rs=Y9WI@XIc2^iw(nJ$`bXQ24*Y_uzJFAOA*q|1=+jrNWjh^_h}run)HBASz| z1`hk06ig=%T)VV%r<$$F362*>JR`kAyZa8?4sF~UTIs; zX`8QU&y2I4g@%?RrRE2Mh?2xc-1rs=3Locre)0;*$jPHBQ*NT8Wbjg^1y^IR!cQF{ zeleKlADV;yZOxxdR|eTwMx-egY|y0_w!nr?&KL<5GM&BVw|6YoN?wy=Dx|um%*$y& z6A)Nn39%!k6c)$5O7!S=*fG{kJ`)=6at~Ya9=K(HLO#_RgR%XpTXy%|mR)LB=$FT7 zc}-f{Y?2FK)ZV)Cjtt?-Weti6yPv)==ot$Wih{`>9mNo_4xl9j*y==|3bQSKNZaqH zRl|Rlv&LuU_|a+kyL>+#A z7r66vfp`5l*xEgPpwB=9$rcG#(}{v1*F=#J7eRj0&Ri^>$Q-jB!DLiruIigZj`sZ) zS5k)WR>>~o!WkNT=ln8{&v03!MB`r zvT6{uS;)fAJ@x^XkFE=Fg&CK^#PAtomGlSv$I@Tq)Zxccy)nJcw=v>IOO3;OPTv|> zbLS`<4WB0p;_sgrWw<4x<0ftOuu3rcSRHR0Pk?O9daQ~u;&5_p-}tlgQc08~-Q~J6 zl*H%)<9q`plA*6G8RnotngxZCTcJ;nA6GLC67E2e?bU-mP&>Smv+wNj7f%J8pfKRXwV)cpUOm?y0?ac)yzM);M zC|KQ~YlfifV^zLj->KcX5nmyi_rWiWX&XsONFn5lIGp9uE1kx>#k6k=ZKr*joEv+D z^wM;v@=km!C|t+C0I9!vf$my!Bb6I9IID4o^1A-!<`m*DUG_+Iyv|k*(itjHJCg(r zAA@ViCm1X@RkK-^!Aaz$YMxEY$fRIFq>u}DHuz4M8fTt>GWqR0OhSSirsX9#qC-!R zH&)HgDj+g_0U>vc9qr(4n*>(l#UGPNQ{z<;vbUZ0j*#R*vy6iCB%X8`yv=V3H5$Ij zkuJm7g^x0l66iaDQF=_BzM(vWscBM;K$iQ&L0Jdu$;s9uHd({0tbr2u3t&0@B7IN% z>b_kM9@%nt%k3no=%EE&ax$`0lCd#7uAC8{Hn+1q4YR#uVsPX|e8S>4#JaoUYxTh! zrIa~)r=fs-Q8(|}tIG6SO-zuPvhVI@qqps}dAx+I3FsLT>Turn^INMQg*?88$bZn* zz8RUuf}7TL#mDN`>F9pYI+7$fj<_Bvphs^Qri9EjoWCg5Skm-n3n90a!-K6Ik0q3@ zH-}lOx!~L-ao`k8cqyA^9un-DIS~c6fHOEEO>OM>L>pnl8O zDQy4?&uT67@?jPn^9D2TC1XNgI+=q&hEa}}vanwrz|vPkUG>TZf`cnd=Q2UA905^h z@_TF+x_zu@3Wgn5@>wbd$O}+7V|W-wvRw?43^l)8nf$g@MQ)ZD_j*mkE85Z*_+Zl; z0Wq+%x%5pUw()4<^eaQYwB!Pf!*w9;)HNEmOZ}`)s?l!tFwj)sL`q~?na)1Yxwod~ zn4Ci{7rtL?z>_DSf;$~bB2P#eHmcW2WrpsfQ9q^Uq$*FZ4Vx{K^#AJ1uSUn}Qf zu=}{zSD!kVucW;iRzMPhfsbGMgyLV%k(Mgkpw#PNpFY;6vNh_pn-Y?Y%q8|@VrI^X zVJrCE@3WD%7AEN5?49KlaHv-As~UTkqs&&}@tkWmWqRYLd0_;SF8gY@855#Z@)NE` z84oRQYR-myr{kdI7>s@9l@rGs>}^Q4GZZJgq4HC)=4(wL^^E!`3Dt8+9c2^Jpfj_) zH;(*_CiumztbWAa_nAR~X8!cVo8Dd~xr=Uj{V_y7)uC;B+dMItYjRdx#NxtjxL+RM zU^Q#>-Y*-P%)Aa4Qh3}YPfCP;3SL3RE;e?#@`l!9Cx|RD6mJ@neEze({5&dn$lQZ3gQ2?h6DIR6 zl^=Au1=}551uF8(lDs3&^$Vz034GvRcsc)pEBpPG*)Ru(F0TQ6cRIY;uj7YO7&C4casj+cw9Nx3*kyR5qpJQLK`inR^6SWE~WD}AIjBcc^)B)D9pe|6U5M3Z>L zKz6hQ37Q7!#FO4##We;)yiywjU$sJpiP~~WKjpknI0t+CZ8TucCdvT>eqwdnVJO1< zO%dO*3Yp+ZX+b*yZSVYzzTnKZxh`-8J$`zEp19|QMi}1<6r8d z)?BXeEoz=;`~}x+%1|hl3cnX2$Fp?^%W3B{_vAoaEqhb-UW5F|e`z2Ze-(+xouMvi znI2pQ&||&~+H0_;r)so@cc25|BPvokj(d*$QuV>uU@Y!A-}Vzd6RMsvZ_<$VZ!Ghk*_AVr2!o$`A9zjmfp-sxRC## z;4ML+C!@lTzSCgV0^})y83(6%WU1ch7~oLu!++H1L-lj!+4z!K{x?u^>-V&^Zq$>| z*@_3(@qED&`#^7QZEZ$Zm-JU87j%yWbfk%9K~K}ybu38aZn?rDC0bHe%)xMEvnoL8 z!&I>Wp0Gh}0M3h5k8SLY(b76)Q_-Qm!K2@$l>pUNSk~WY!K_KtU^k3J(B#IZnxYyB zMFwn=cssnaj+KZ2m&!}l6I7H#Vd)!%x_)zwRZit2f@zJmtxML)eaI9q9`(u^h|gZ* ztb-G~-Sr||bPYM={@uf1&et=LUdEEA(hs8KcaO@o3uhO_KEsEJI9X14UT?2#kRnOC zX0)mvny*V(?-7;AmTDAqSTl^h z3DvT~MxOT^e&5Pc7~Jh5(~~|vX>2|z5k^mJrEb@+4U4fYz!BEacFG*&K@Fx4-6GFZ zc;>mkpgX1|GP~hqeQZIeAU3;Lwa4yqaz3O|-wJ=dJ@4xIir}nu)!@J~;%-WdZu(Y` z3c{`!`USzrgsR2QIjh+vu;^1r^!|!BU7;(+wTchp# zdIPj(L%!{-^vT<-@XR%MY?eoyrdSZ6K$Zro$dUM#bjBqae|=QhMKXvUN;%;**zE0G zalR{S_L8NbW%c|V)}oaL>a*NGBgJOkQ6G^^B4$CKvEp#^lzlbQ#003|qol?q8MVF| zUfgn4(1bq+Yjf?KgVd$k)7hO8k&K4koG?=RobWRxu*|51D?z-F)^=WvdrdywnCW|G z*rh>AB-&f;flFz{@UH$zR}Ma*wr4XnP+KAaV${EBv#dYeXkvpI93>pS?-0UkWe!D2kd4(&LHE!>2L)in%C-8IS+2?ER z)DWJs_Y_n?k~?psJeIyJJ>0#}HM|@E?r#!5r8;x24e>wuekDf#xno9wt)`t#Y9vne zQeIq(tQHQ3Nw>O+UI8(yrMae}x1$mkT;s=w2v8_g=IAdSn)le_%O(rrCaXWYfcYpA7ylxG_YWNS-)ChI2!65d72;eK!J?ss-0`m)aoC? zns|CtP4nNhEgm97_pA={79kckE5trU3r6*8A*eOL@IiJlwXM=<&3J(|q{{-hq0A%k z$gCdxiR2wo+qt<6kN_{1bXHycb@uhrQRz|sHF3|fMCKx*Vta25NPk=(X#)nuSX%eT zRv3O1TOymu_grV$y+=M*=uiWto+tA*Enu#alBc?0*H|ELCu6m2g za~=gSvPAxiuK1`_F||5ourIZC9lt0E(V_VY(@Cq}SJ&QpvIYlQ%}bq$CVyU?^fHhb zX6o8yD^`1<`(+CaeLPx1Wh3|1+gDN099uu-d09JuFD?;nP-$q64V;wO7us%@<&Gs1#S=uJO4(`Oi4Z?ydM6oH}PE?MpFkT&<2 zg%eF`R8WhOiX(Ic0oD904fk*R7NeAJz!lV=`z8QK@Y zM`BmC?rq31`FktfJbq=-k6)l5!4G5dX1MbO_pF}y^f>{jw8W5?j;4#T3qFL^ykWI! zrr%_pfQlA@M0T6_?%}BW=NgO9JI-Cu79q!h%un5NP!{A$hFFwv;u4#scXkPZ%?n#{ zQ_*ux2lGI9EmEfo6jlgxf@!d(#8&MCOp?jT$v9yjgE;OT%Xf4$j&e{vLuU;2IqHpL zF$k^oYf(oU%K6MhmyP*yQWaLe;6AsYEH%O=qBY3JP;WDf$*G8AzF{klO1Ck5oepCEe7u4!{FXLGdyS)+; zhXZBXIzgcmle$w6e=JD;qh@gb=&XOg9!l|6wRga>urE(1*vJ*J4RYRuY|WH8xz}iE zgQ46@>JwS5_D*I)lodsvk`gkV5_0c!L1dBcglIW?`4T<~Y8wiIbXQ5##?<(i=-p=% zRdmd=+DM7^I}nooSftbF49wrF&?5!=aJ@?Ax)Z6_58?kUbs~&z9}w9GrpAYV;=DZ& zc|UW3>rZS~mE-$BwErq{;Xr))%H?(2?yaoYD!L~cb{wdpyB&tO%w1Sf#zioc@3yl- zsI4bFXcc{u$OM&=n+Xha+`~uwy~U^5q#f;6nP`*fZp@!zPAvSDnAcYF19pv~$D{X} z|0_A~9*F99KSP%gFFEtAN~mgGD&@&O&{VZ0g*u>gPiT|}xarENJUOkd&C63F;%Aze z2;EGI7kxz0!F4TyJ-AQC;8r_*5^9bJ)kXeR{4o3D@TE;Fn!$^%1$UoXVwZHm*@8le zDycKXMdT>52(}0=jLib*4x9X0@P9iHnmf7$(NS(W4GQP&YS!s=Ngo-<&gO`J)?#7M zZux396y~^2#Km$oIU_bqGk!Ja-bvxDuOm8 zFWxkVE#;F9QpT{m@6;%O#}}y}*l^Qdq6CU~cq18&C9XDx5E}zSh$v=)+^f;^?x&(< zwRj4Lup?MZqkC8&mOPm*4b_*PE!-n-SBv_B}?NVA3P8pd>~c=O(G{l5nY}F#Op3DdeM9 znWFer2lqPz^RXyyH6jNuAyUP0VrXsP`rt63?DHzw*J8*Rc)YRkc`wG>egxR zx${d8TlayiH#4QzKKi`%CDGNE^XlGj%dcDVKa~R?LrK!v1gNmY2w35D$LCuu%bE}SgTyo zOat?pmJ24>cON`Zb{Ydb-fsC#h6T-Wty(A;vOv9iW?H_yv?{nRv!G9>2cKHn)sd|a zx%xuiQZmXdE`DBKc!zelnWSYNKNb*u<&)hT94@)hf$7ZW^sP*8LeShJg$e9j3nh4D z)X=4ZgS2TUECrhQpux9fopS{yos45qCKNHkps3c4SFZI62JR5>cE3p;Nd&h?mvyGaF@VFSQZx1X5L6vL;2;t0C zkl6B>uA)3pu$rX6B4~RZ1H5c}|t43E#=B#RZ(A2sr2|P7HltMGfLlkruliwy6X@77m)=|{Z0JE6}oX~qg zIi4;_@v~6Q%TC-@+>m{h2@iRl?MAo(fUY>~RVN*P07oO&d{5>E5Wh(+qRfU#Xw5MK8;D?Q_ffK! z)FtmV78^tPiy{MdI<1+6l}K(T|0MBRF~L?NMVoR9Oex+WFCc`YP)&{FHq%wG-c0N( zcf&;`;suTTb1BiuAy8|=Kyan-9C~(@+}vn z*D!M@a9k@(dz_^-uHtLIMEn@!)p|W?wfJO4akgB$?#AVIv?dx?)fUFPRikwB%x`;@ zNPm4}qD;#KClN;H3Hf>Fsec_ z{4H_l)q0`H09J)00T=M+meQSNV&uIM*8X=mx6$RqCy}EGnkx^U&&l|?@pA8cCk{{*@F`moI3V$AqJX+C|yv#2FQiiuAy59BNS(PnN|%MG&I=w_jt zW}CAz8YG{qee3oK|G&X^17^WeYFClie>$G>4<{Sf+t=VHtcug*vf^lM;rV^Vz> zI1jl0+6S-tg`{_^f2N%7atgB$25xUq_Tt zG>MZ^$s83RGEtP`9%T1l`c54;WI#FMCgixw%KzpCc|3Z?pe3@K>h)ORt8TsaHPkr) z;Y=+Xid>k=>^!3GclzceF>G>^Cs>QZzJuon#eGIaJRIaIwh#en9QW3N}3h|7exutRgOUk!Cc4vR5W= zp){epN~LQpjdt5g4!g}2wvyWaD?*agp8 z-xD~vbGgiKZU$#v+n#jp)WTNdX?%+G8P{R!wii^WU5n$;_C$tpnt7}rXoNfNv~Qw9 z$fkuSATRRZ*F)bF7ykXWC*}A?qF3e9o@&E&_Dz|_a(py?3j9JranWu*q-sQ^=)~BZ=F}KKHIw&0dlwyqLO4kbavd*Lk<_>~=!Ct&wnc zG|^^UU&>x2Qx79;eQzIF=DXvgS{^L3u8U%x_w8@HT+M#o>tpwc9wVMmKJk^b$Vf6d zFQ0mFPE%yp+O$~i&QD|WQc zjDtaoEmh;@pRZ-9M0c+m?6UYfus2luW$dPuBcUsqg-#$Wo8XtL{?oz3Q)S!MKMA{D zq}@td4_j)0x2BWI$#3j)9#RI8bV2{*g}IdXrj$?urmA+-dV4cvjp^SfQ^#i_9S2*{ zf0S2wgk|q__FhO;QTU;dec%pkA5a?ZR}pg_&ZL}+T=?&o4Q+p5J^(AFO(C%ghYT!H zR_iij#WMNxj@YnAHmohHi??1VQ-Yf2RV5d`?k?EHB{s^}J)9>O%W{~ZiXg8{qY%qG zblS*#GMjtHwNxtU?x|n{JUGB&Nq3_&5x%}ZxPud&J}sv+tgZK`st*pXF@%f z^ooiq)^Az8yQt>*si(z!J@5aO=Du}Z#CO{I&6)=b7R|M;E}e6Ew_8!s>eDxOtlk-O zc(L_=hPlzz0Z58@e>&BMZm(P~+#mVoPUxL=i5G#rgmY{6t|;2s?pFSv!D`#LMHiW; zs9%jP?^BoCjME%;4gXc!-plyerf)6`N9bL6>Y1$M{Xeg6-|BYZ3z#38d(UD{)%mnX z>)=jso_fa0c>m9<+qa5!$Sky5b$d^t#n*XfkH*4vwrkHQNw5FBIzLNSz!K!zibsX7 zZD)7whU?@DH+TW;%{&jgcO^=psO8t{ypKm7U#m73Er)BBLHKNo!&A<$VRs*Q9$)h< zPwO2*uO&Q$0y7#<3BOvq`}k Date: Mon, 25 Oct 2021 22:52:19 +0800 Subject: [PATCH 186/429] Added Logical Component Diagram.drawio.png --- .../Logical Component Diagram.drawio.png | Bin 0 -> 25394 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.drawio.png diff --git a/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.drawio.png b/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..ea9a2dd0168b2cee61142ab714ec4c51ad64bc43 GIT binary patch literal 25394 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 RfIq>I+D9Pb%bWr({{s{sGW!4k literal 0 HcmV?d00001 From 3834bd7c7dcb79ea36c89fafcf047f1f1aff9e81 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 22:53:14 +0800 Subject: [PATCH 187/429] Added Logical Component Diagram.drawio.png --- .../Logical Component Diagram.drawio.png | Bin 25394 -> 43460 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.drawio.png b/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.drawio.png index ea9a2dd0168b2cee61142ab714ec4c51ad64bc43..744b343ed8c25783b255ced3051594687f044842 100644 GIT binary patch literal 43460 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 RfIq>I+D9Pb%bWr({{s{sGW!4k From 524def538f5c3da6d9810204893b91aa49ff9f5e Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 22:54:28 +0800 Subject: [PATCH 188/429] Added Logical Component Diagram.jpg --- .../Logical Component Diagram.jpg | Bin 19609 -> 29483 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg b/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg index 5a3dcc71fe972b35065e050f4d0a7c12667b92f5..1a0cb8c19dac9bc4164ee4146f71c783a675bdf3 100644 GIT binary patch literal 29483 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 ZerB)I4#`)*t Date: Mon, 25 Oct 2021 22:56:34 +0800 Subject: [PATCH 189/429] Edit link --- docs/DeveloperGuide.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 97bcf78eaa..22ae482c5a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -244,11 +244,11 @@ The instructions below give a brief overview on how to test the functions manual - :information_source: More test cases can be found in each of their respective test class under `src/test/java/seedu.duke` -[Starting up & Shutting down](#Starting-up-&-Shutting-down) -
[Add function](#Add-Function) -
[Edit function](#Edit-Function) -
[Find function](#Find-Function) -
[Delete function](#Delete-Function) +[Starting up & Shutting down](#starting-up-&-shutting-down) +
[Add function](#add-function) +
[Edit function](#edit-function) +
[Find function](#find-function) +
[Delete function](#delete-function) --- From c887c095055d4c82767f9b037e218598b02636c4 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 22:57:30 +0800 Subject: [PATCH 190/429] Added Logical Component Diagram.jpg --- .../Logical Component Diagram.jpg | Bin 29483 -> 21852 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg b/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg index 1a0cb8c19dac9bc4164ee4146f71c783a675bdf3..b9e247e108dd316264465af7fda5b43bb70eea6c 100644 GIT binary patch literal 21852 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 Date: Mon, 25 Oct 2021 22:57:47 +0800 Subject: [PATCH 191/429] Update MarkusDG.md --- docs/MarkusDG.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/MarkusDG.md b/docs/MarkusDG.md index 47bef07aed..8c8b561767 100644 --- a/docs/MarkusDG.md +++ b/docs/MarkusDG.md @@ -4,7 +4,18 @@ {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} -## Design & implementation +## Design + +### Logical Component +A partial class diagram of the `Logical` compoenet is as such: +
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/LogicalComponentDiagrams/Logical%20Component%20Diagram.jpg?raw=true) +
+ +:information_source: **Note:** `Abc` is a placeholder for + +
+ +## Implementation ### Parser The purpose of the parser is to the command that the user has typed in and return its respective command From 9fc207982af904a97ef4ed00e6f85ccadf44093c Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 22:59:10 +0800 Subject: [PATCH 192/429] Added Logical Component Diagram.jpg --- .../Logical Component Diagram.jpg | Bin 21852 -> 21577 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg b/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg index b9e247e108dd316264465af7fda5b43bb70eea6c..38ae660dc878ae9022f92ed62f4d643018e2a017 100644 GIT binary patch literal 21577 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 literal 21852 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 Date: Mon, 25 Oct 2021 23:00:23 +0800 Subject: [PATCH 193/429] Added Logical Component Diagram.jpg --- .../Logical Component Diagram.jpg | Bin 21577 -> 21822 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg b/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram.jpg index 38ae660dc878ae9022f92ed62f4d643018e2a017..e308f5108070b0c88d586d1924bcae9c73071161 100644 GIT binary patch literal 21822 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 From 237679d129e142679c8897a378f1f4777dfca3d5 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 25 Oct 2021 23:01:41 +0800 Subject: [PATCH 194/429] Added Logical Component Diagram.jpg --- .../Logical Component Diagram-Page-2.jpg | Bin 0 -> 21852 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram-Page-2.jpg diff --git a/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram-Page-2.jpg b/UMLdiagrams/LogicalComponentDiagrams/Logical Component Diagram-Page-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9e247e108dd316264465af7fda5b43bb70eea6c GIT binary patch literal 21852 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 Date: Mon, 25 Oct 2021 23:02:34 +0800 Subject: [PATCH 195/429] Fix anchor. --- docs/DeveloperGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 22ae482c5a..da07583da5 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -244,7 +244,7 @@ The instructions below give a brief overview on how to test the functions manual - :information_source: More test cases can be found in each of their respective test class under `src/test/java/seedu.duke` -[Starting up & Shutting down](#starting-up-&-shutting-down) +[Starting up and Shutting down](#starting-up-and-shutting-down)
[Add function](#add-function)
[Edit function](#edit-function)
[Find function](#find-function) @@ -252,7 +252,7 @@ The instructions below give a brief overview on how to test the functions manual --- -### Starting up & Shutting down +### Starting up and Shutting down 1) To begin, download the .jar file and place it in a folder. 2) Open the CLI at the file location and run by the jar file by giving the command, `java -jar .jar` From 106bac8add11507ec65444f1d522f77bbca6889a Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 00:36:49 +0800 Subject: [PATCH 196/429] Added DeleteCommand Sequence Diagram.jpg --- .../DeleteCommand Sequence Diagram.jpg | Bin 48525 -> 49165 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.jpg b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.jpg index 4b2ab7d6fa49b3d45d44da4a4e61763e142d814e..a828545d3e0d8b4d0d8b0024ce7ae4fba89c3e29 100644 GIT binary patch literal 49165 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 literal 48525 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
s<$c+m~49}HBs7vM1o`dnA_GwX#WXB@_ z9{lz1OfZ}4=6I)Lr+Ou;IM?s1E(RHygC+xV@9WK-YB_x}o(>puslnRlvA+bg2r1>V ze{>NHBuc;XgJ6m<*CF~q!0g^ZP9yK(A^;#6`snYh|9Y>tH>S()O=DDLSACDobCXn= zrvq7U$b-jWffcdE)0WGkEWHOhfgqkj;TL z3)Z$==|+0<=Btdu?J-LljHNjC@4^@Uq~5=re^#7t66@?MCl{9BYs&d_UTZ9QP$ijM zib;o9xE%ve*TWnTE%t!V}B$4IAXi&ZbO!Wms!Jjy-p|{-J#hlcf<+l+!=|S}cj9aps%95%B&O?flvc&%`_} zeXlk1d?pBm3AXQW;+~)QL-sBf+?R^wGal4+*nxA~>@pL1)WTo%b79ax>_Y6_B!*}e z6>@tp5(qV_&3$t~gnn_5@pMwFZ(?g;^19tm>q+t(ORju{TzA z_nbxE@`{mdES@+Uve78#+lsmOXgDBmNSkW8%;g=6P8pv8n7fdAri9-GxL#u7EIxME znuAI=O_zK8XzR#rPMdJoXJyy9O0mG0Y&Is?*7s}6IQ3P%FH+8rs6U^2(?o| zW7#H6&davGp2BJG6t_0c%hy6zsMisWhk$d+#A|81oW2m-xUQux|Ka%R%+mI$uE zc>Bs4UJapNS;d$YPYsKgmI_Vtra-$SEaqbx| zJP#N2)@K%OUX@Js{Cu~#n3fw)Tw5jc$31NZtW93K`P8A>!a307V7iJth<_mAP4Y|} z;+=#sWYSCvD%hfn8CZ#QSqk>S?ld79}N#R%Xbu0WGY`Z^ET|f}>js1y0lU zt@164GELNoyk-rb*#ahN8G(t5hK-V;P(>BhbD2ZjU2HGr3^%Ry_w2_`D=M+-g?hP4 z?wMnz=$}upDn-#4Q(oGE=(QO*vusvj&SJ98~f?{ZpeF%8z<;8bQu|nYdAq- z=^E5`4kj`O6%wpQDiZHAlI7Qw3D`St10$#PL&+ zHy_6Qg7B$%y6PB5S$m2eoZ*N^3n_9CGt}Lwe&bj))u6&ShGbT(9Y{e*9H_bn*6^i2 zPZ4G`6Cu+uG15`4;Yb*t+La`Izu?DE8KR&H0<)jsK(}aEaX`$(YgWwuh#gAA6Z|rL z&Lfc|f{h`yKsQL0SMTUrp{%jo&3*@`jTpxf#9evBik%*m?;peUaShr zsK(&%sQA@nCyPS@q?qZ26(8_8Lu4w2#IeW8Z&ri^X5=ow4`x{inf?x4zWM#Im=w20 zJm9vQz42_p9J}#I0ab6xh-3YdyMU9m9T?d`Nz9EiP!)mtY+b$F6*39gET1%mox<07 zKo+@V#&$us#rw_!(tEI2ax!XFB%Eg*UI$n@kscny9Qg< zMpUFtRyo~{=~sa?`)+x?GcM^BPqv0LB1Dh+ES9txs1>{XO7zLum0EUd*+>H(hEwIu zb+Yp|vQW(gPPR0&B54Mo%3BFungTt=)oQj~MfaStT$ad?uy=kN33SBZTvazOZJBmf zqz)t&1Y)c_E{x^uH6&)606~l;<4xP702p4`3|%hG9Gs}J&T3x)kygl73J=}?3sv({c*$?AVvVy zpmZFhO%x(HxdlnV6<=q#4KIA*!b~@jl3>rcF6DTzlUi)7XT2dB?_)`ztF~L>sEvML z?4+2lAVp>BhSk(lX_S+ONgVNysUNIo>oc%v8}@WeJq28s|BZkkYOeZ$!%ep^tUHzg z#i3-gS?p1ne(&;kAEE3H%I<1V;m^ygP5D(*xl4JdkXw0al^k*wCXlx}PQ9E&Cu(VQ zWnjtDTddG;GS~@#qSu*-!Lkc?`4?fj2?j9oG;Bg{10AD-q&`nSAbFlHjl_E~#Oq-B zP!jDRVgM(BExxJi`;`-9*4 zGPpec)LFT`Z||8j$xx+=Sczccnq<#|DHbZXkdebKEbab@IdlJw3uGC!+!Xf$0}p-r zJJ0_VvJfYLcUyJSs2l;j{fsyC92Ur_yC3q**kx0u?wO0lflA8+b-vIV+oHxjODPuR zga`vC2UEhf+~4H&IR$+Vbl&MQS`@u-VNiq%Fb+g>?K7Ai@qUJVm#|2g9pzuj%rf*NR4EvqTWGaW zg=%lQ%Ha>CNxz75)L@OwdUL!C5IxP8Um%dLsqeL$thjD7Y*P4vt3O^Vfq9L|agA~u zG4S~IoW+uLOd7umby@;tX=NWD@^e_MwGOBEExjM;+6Dh$*jH2sIvtBsD#qEvl%C<9Q4RgpnFO$Bsa=Ylp-f zQQ?48s49D6S{_n^Gxa%pA=R#g9)t86VJ9Bj@nFEN@cR*~LA z(+AujCG$joa7d)An~PZq8$0O8cdFrvR0W4UT_KR+*cHdsKU8|O5@r+>IeZeA}eUYHgc zMNYDEOjfC=^}0lsR^Ob_a0vxE1P(iC{ef)nvoQ9gylX)SpkR!}g3BGS<5+n~uJOuW`JQOv_=R@23HsQR2dcX7#H*Gt<* zEkQd}J1_*2mjUx#kK~UmJ9VK}{0g74GbBb=aqZbnO+743a|W->`@9UW$)EP(3^p$B z7s=Q3^H?=-s-b*hC*LNlAsEXJ6W4*Mq@^`zYOS2xT0LFfIE-C6rHRYZZeG0V&3+^=FTBGC_0- zl0jfPD1xnjO(jRmO_)ozb8G0X33=?=6t@O^H&Q&qp{qcqsHHebLBJlrDLsLICNauH zethuZ@>Cg~m))Rkn#&mx(Qb@~53(-@RHx8U&65@9gb+am)Kz8@uRIHL!JJ5sk3-qJYpm#YY-UOsR zSf9x2O3)4jzpOs!m0guk=N@+|NL#D9>m*tQ@{r^%GnG$EAyv1fVtKz%YE0}#XU3$> z_BdBVynr$jkFcPU5ygW0QAV+6Br|=Q5^1e6d%8?1d@fD3K4Djb=ksc7T+kmbU(E3e zH&C6K1U7qAn2c-$GbX;)NwIi22xEaS4HBenjb*yGQ=@ncE!59~6n{ACpxy_y64K$wTgLjF z#Jw1}88uPBp zMCNG$<3dYmG6&ZfeUqKjP$F}WW2dPM+_!r)xfcFh4_duuSP;!WP{mMM&IvB2+c>i& zV?VCZGaDLcpe*i>Xy3x|b!_4IKnfjIHYaPimpF_fFCii&t&PPHHpIH?rZMV@Hp)QGX@3(t6oYd7mUF)Ai4Fc z{EW#(yJ(O$JH{MOhT6V3p7%j1p3o6}hqfLu91nlm*Wk1X!XU?eJHFe{XsISfZ6@vg z0V#Wa1%x(m?RZ|-t?gd{nEfTRO<9OeKG^Ved)!?Wp>kQZ!-6-3zFv6i^r@W;G}Ryf zAs%k%U&FLr5h;gkt@=PJntBHLkU(i`nj@_@SgGNw{w&!yhz%_ThKN|8Y5-b19PR5-J z0ueOf`4gq9AHQ6nB)DSY9$cZ{v`uikJ%KvByYM)%xyZzzxn7t4!T2u-X$R_Zhv#|d zASb~mOuwuqrLd19;pSLIkA`BtSe?9mw49ky$t*ncq%UvGz6SDYW!@eMo(=F~_3590 z9=Lsks6`7fvJ4BX4ZO)Wb$jkv=WfD(k*6blliG!(wWY?-$&7*PQN*Jo1FL>iFmuSh z9Mkmq*Yy4vYGfmPG3AIP_uKtHT_uR!O7=ll*TjM6fphX_)iCo3Q23{3T?Atby{`SI zky=0QV610-pW^x{lSd2O^C|ePMM*?$H?H!-7~rqI>bjNIx4kiL;GqlxbI=E4Q;4WO zW^U)*VwT&Jsrrr2bg6jRsL^}@s8O2sEbx5Gu(bc#Pjugi81^lk@e~`x6xs zEvH2(s`OZ~()c^51ZKk=KKkp~HpxmkB4TMagK0Z2|E3Dke1W+VoPBo@Eec`;sop_t z3LdOM1Mmg{H5?lbq}=;+mj9W8_o`DZxrK_ zK~++gQnw`fx#FdqJ^1@G1ZIBwy;qA@`WCK9ZX~Whnz|>+pZ>KO$DtL)`v@sqJ5^n@ z(SS4}w_D@!EVD`TBHBWlEC4-Esu$y^?+=D<^S7+0z1){}xCC^N2h7l0W$y1l{grQ! zeSo&)_wByLnDSF~QnbSFkqwV6=3E@JQ@op&-K+#b{9wg&YiG1dPc$^x2X5$3c~A7& zTcmcc=etBZWpuBYj_IzBvs{D%@MPR5xf&SD$$EFkrnDzwG7TEgKGj7572xiQ>7#-b zz^R>ZfJhw1o(N33F{1HCm%qkxy&E143>Hgw6k1&YQTyV1HOwvF5ZHsTGbBmO z_S2EKNr*2G!f~unOK?uaH#BEPmhmm5KyA}j99JYNvUA;`LWSHo8~R^{s!CCIeWm6n z=O^*r8mzjuD(xHC#-b#g-04dY6k^FfvyjdZI+Ku%s0}4%7jKAXu&8qly3Ms?nwK|H zSeT_(Rc_?P%*(&4r<(YpT2z%C#q!WC-RF>b!jaq#qLatSKbF6AmPqQxzaOmA*hb>isUBgFDfJC>X-6Z@3GeG!q+cmL@daWyz;#zYh+qTwN;+h;Rdu$s`aY^ zMa1+VOjeW<=;UhSd$#>kdQ~!!vWu?ukDO#LVje6DX%;NygLOGr(!C6QzqzhvDa7*| z$D(wW@_py>yn2#!*-d8LC9+7na33Lw@L_QK3B}?hRO!u+ger1JHmYtvYCCDwU-x!6 zvzASBw|ntm;=qDw#95#B->Fd+f2=E8^q4uUn*GSKm;N4##0^LI*)&e`cBm6o4J{DW*eqFFTI;*num5U1*{ETEI8*su*MMc= zP>S~RD1GC*tV+&YDWm!UnO=oGz13)=DoG#`CROZ(>2WLTFU+n@Jxl3j3A)SPONNY5 z*a^r(aWOaysuBAlC5%h!-Ai{eesAqQgev#|p&G$>UN z$$e0Zoa7kL`C!96=mPuYO%fV}AEpPOuf!r{DC^WJ@+7Y}(e%=tMk4DTEBN{3gb!cH|Tri0a63M|R08xh9 zPV#fb^RLlGG^N$GaksNLKIk;ah_#ZV@fl*NSPF~Z5KdRAA?N1Ab)uRguTmhhdRC)w zXiD>7EP4Z#xCxx})N3$8kBz#XcpMR85c!(8lg4S-_>`@5=p=V5>SK*>a=@V;go>Q% z1PGiAVw6Zkadng!$UN0a&s2ggIwajbQUBs%yqEu~k-HMvg@)wy8Ny%WiKy4nnPmm6 zDH^7&4)^pmIj_E)H67Q75T@&Rs0?}bd?JZdxW{ci508kq-SuFU2>;x8dgi*Eky7TX zgu&x{9n@uww_*+(n9#Dn$tFlS0(1W|?wjAPovl?$uDJw2pecAdr-tlG z>1nhA6b5E}@JoO!4PvK#`^aWAa}!~Kb;l%$O1IO+Vq9>Rn^xb-EA+xV6cq4%Tb2$%W5{5d1ja7%lPj+spD@~QV0SJHs9onqBF zH~VC^{5?XTCG8yPqN)C5n?YQ@EMnp`aTuxi+~@^V6`YW+{$4HSG(*8=l8<@i1Lr zRKaO6(~Syh`vsPv?{9Ba*6mF48N3KpP8iH60rLuR^|CX8vuz77D3P#_SFN*Kij-~S z1GLY$56Y^1mGe_@%Pa#a@_e(E-4$~S#OQbg`ewegP0f&(GS~*oQ=mn&*s9+p$CL|r zJs!1I!u&gz^h0{gzXkkJ{^i6vwfo-sJ&q=W>AkM~py$UkjweF{$3|7>w0<7nLtcb7 zPe14AFYiK6rl^J;@o2lV-rv{Ji$#)TGkt>?mVC#_y*2KaLQ7BE;rV}p0cUNge==3B zUeduFL!1?9{?VvexcpA?19{iSiqa0j%%S4^lJOrY0M{PrJpE%N{#SyIeYCmz`GsNm zxw5~3&?Nx94QLF@^`?DltTCM-ytZK zkO#KdyJuZ9-p@mYy@cG?o9Se8NAfCNgqjMb-+w6>m=j70h#t~T(VI2 zfpBXriWi-XR%POoLWr^&WKz0L5{U;B6C*!AY3;{lzp8;KN?{s1y%Z6$wO2Mg+^a|7 z-yB%R3edH6_}V;(Jk?E6kA@cuCf(8hgTD97A0A6@=KWB8oBLn57ERW-er;E9GT~SI zhW_uhe|5%kfppa+;Nx-bMSPLZ&b8S;bzf@DUKPHh-}58~PC{<~CmyAlkAY(wUzfyd zV^zSl4o)|ri4cgdZ8D5$=S~p@fYi~?L(x`M`oM50v;>X$5yBgJlMjK<{H2C#kTfQE~DI zl-`2z?eOv+essFLQWQMX5kOVg&)A{VZ8xQt)svSM5`AZMWW8PkV`mYqtj@dzS^wm8 z7CoavXB03tSU^GE_CvRgMUpk5Io5*s5ZlirKYWHl#qrq|?77FdzLJVN7< z(t-D=kdn=SzLwB{^L(Hz1{FD2YATdp&5A~@3$xU`!2(gt{;Fne0DnpmxfVZkA&d#AuZhlOynFJ1B04I(NX2+t*Xz@eMPN;idJ3`&C2Ntf_!;^(iMGCF!Aq54^m3Ki#TIi?*vNR{6 zX<_h1;f-|KH#h7guV-A!YBts3gb*)2N$yfXmkaXm89qxEtYOp18Ohyw`hFG6(RMYY zq1^%)O4*kM#|lhkO=ne=L(p0*9!PyNAX6W!iFt{UZC?BO;Rxr2o+h6wHF+0mTn*wz z0=Ui^?wR{G#KglyIx}f;EMgPucPir43F&I4-GYVK{k%rb*)#`1TivyTC5d3Ya2jV< zD)`N4El-G0UA8ttu!}i^nG6fUkjF&#zE+!_@;iE0%roU?yH+U3D>;}}sOco+wj`mY zrU9qeuD*<%R|Ae?Ps2^m+$e?KDQd~rORmYIxLPPT83U`EeW}GJ?l`VJGeN0g*(3(0WIpl;fA1pQd>Tu_s=a()Obm)B zaw@>8VqdDC#}XA(bCg$1i<&H?S*>8~sbikTyO*r->Z;`qyn6Qd>bVSnx@?QJ5~L5IhKswMcLQbt?#S{7be$G*j%dek@~Zbtplyb-Fimxm8I zNuI=n$M>JD7M^2rfn+FSN9UtJ(b~|}F&?!%-4xq zPLNOV7B83H=XE`AZ%Pao^EtEa4<*5q2kcN`Ee8`5nX1I zq8#Q)ITqpCOXC*`1>&!2j&64FQkg*~8R5(rE)I>%@u)%sTwq^mqtWq6xB({7|J`Z8 z95H7ONu_4F!DERuPN7^hZOkFBct?;UHR4S1Xh|Hg>g>`cTOr&=5E8b?O(ziyH>=R# zi)GKFNOaN1fzJbzz&g$li;_$hI1=Tjpj;*(Oe1WW{Ema&VyIV?#LrN#l!-i_N|~M? zJ`IJTx?q)8>+<%9%GKD3OGZvIkL)XL+K4+d)o!?8(gPvN=-zIbo`Qw;>tIgasVfg~ zLbse}?c<%h(uL1Wwh&>Zqk|$U5QaP>6wlLJ(dR}73c}TR>`_ETXU)RxUt(;bg&lO+ znonA*Oss^@fiS}s97wB2g}mg0Q8k6?YUr^IH6)lt{Jy!FojQD|*l=Ii=P8vHoO1$+ zvVRILqSFTv$s5UmBImNA^QAc;YRXCp?cBQE{ORdel^dgi-MQfNOpYWBMtz2r_g-74 zw!Vy_Y*D_K9ByE}bAF(3WUE^@EwDlo_~>~lC_^=UIK9FelOABzj;dIh=;C0clGF9i zSLNDxWoyi)74`~nivM>=z<=gFe;YV|Zr<}>6E^=oRGa%$O&W6^L@xzvDAul(ZPn-D zAJP(ntbn#Pe%GVR`s2PYhM3UEt1jCaQTlBTCcdiIv!NHxT=s=t;bP% zv!d=kV(j(`uMti!IJimkf@O5Ji9tavy~fkU0mF3uvTFbLw$S|X{Zn|ynX)T}LO?^R z%_WYmGf^nLXq&J}yOCJFxjkHOxS|ER`hs%%5iX>PYN4?)l&V4^7KmzLgrL@-RryY) z0y;|~*_N72GUnYzyy zeo>lH1hBqHQ;fOiSDJmWcPFGYHAaw!i5Ymt5A;KqM^G~m0|s2=e+VqW4V;2io}i2!kS*WAT) zg+Q5NhZ8OT7aA15l>z{;ynR~8hebANM>3vly1a+oE!6KOKZSaVJw1D>F|d#INZURv zp!jG3>PeomzoRm6_{09p?RBb}r-H(B_r;IOz5p}{8HMrhiGts+@Wbb|%J8wu=Y!Cv zRf)1>N4I9YjIL6uA0aYZ999*I{djIzE8i_WdL_XBJtcDjB?o-8J$ymG(0HL9Q9fpES}z8pO3_QDc%+ z*D-q+=g5zbcJPX83)5gtPlC;;%a+CO^n}t<(dg>Mwg<1NtvMPTmDL8@b-*sK#&7kkdaLTIBF|_Vf``3h$w&dyr zXr8_a2d@I}PW4?=SpH$()h`z||FL(>|KrN*o=;*o0T<1_%C-O9?T1&Jk19XB^AJBx zCuzD+@jQikw&Tr%&hJnfCdnVtLa$zj`HY=ZCvvg$y4FNcB7BDXyBGT5i`Gx5iaOml zY&}%oVA1G+yH1%^{&i4}_5&(;-~`7Zy~}L29{J$%&ja1OX7kgA^Go7_b#eMK9BmY&8@bl7}s|xR1?& z*ZK;1wwCHtS;UHwlV=Y{E3XM?qlMWIgTgxKhHk`DC$(&l_f*>myO$QJBU_Z3A#0^6 zNT!NK6}BGxT2L+Nl)|aP@`&w%KIRFma=8Yhqx?H7HX^Wfr;9Yc&iUL{o$(Z>v^hxA zHB&Qp)8%nHuB0whOYDKkA_TO5KvWDLD?vl+IiFK#HqO{;SZmtT%M{FkJ`S`u`Jvj?D7rS zyhS#j+G7}zi^i&mo~?wZcshgQGVkZk8U^_H3NkE=l7n(bapAKXLQ74p6FMnT)cZ`) zH}Khp;Z5`8!)sP1l`RN$=4%3F{2}3kw{F&5z9QDo!JWLk793J1wWwv3L!(nzm7v_E z2F7LaG!qE!^3XDAW;i>fniIbP#fZ4J1#L>&-OSOuZD^;MNh^3e?@8vq0UvHJ16&qM zLykt3nZRvFEO@s1$D;%mttpo0{hJCDLS+O?mop|@a7x6v=u8JI1@VA6Ow8Ey<|`iWFBeaGn&02DNsqVQGG$rCT<%HtZdFhR}ZGU-o^Fi$irAHD~0^mH&IRk zU96eqT{A3xQMo}ywJxga_Uh3myf~x81!;XG$g77oEv)Uk4dtgGqx0l3SQ{`wl-A8V#6tuM&rYAW0ha*n7GpHeH%my2k1QT9zsBOlvh~wyB*XIhI?~YfhCxl)dU@ zj#R|FrN(L6I&CrmxPr>#c0@+j20$VOkA~PGYFCn#_+kRmCp7tOa;u*vMS5l89*VdPuEQy)%ExzCPpZGns^g() zi)VAJz)m)d8yJLiV#QdWlHBfqK8m(sW8R)!5uE9oN&Neo?p1 zJk8`dij8p}G>U}88O{yMqlXblni1rRw3dn-b6>MSTB|zUw!m!WaICgd%pKcZ^+)?r zU3mJpsjYnvv*Hw^O*-Jn-reqyHliLg@Y^$&)m&- zJ6a-LB&A%A<#ZrqI(JZYG+sc*nS9PtjmN72>D6)3zOL!Y)GhcS7%Ne?#P!GujPs_} z3f2k~CLaN{8NSAqiDWWLsPXc#)Wt5wM4{cD#Rw0XbK3l!Ie6$-ZP$}#YXl!1lkm+I zlUCQ0S{b;$$4iv0-I>L9+bb^8149NYGIUz+6R8W|XAt^x5VD+3jAuMK7a@-OPvG@` z9eCxFH@>zndX%z%p3?O9`9BWz3Y5gBzPr6eQxu6Yk8~#xygiSGdw@hK7rL0S%)Oz4 zf;}tz{Zs49Z6_t1zP?Q?@m^u>Pn?9zwRh&jKu8Q;aOE}oczsA*D$(4GEqSrpqc(x? ztD1>tdk_q>nRX&7co-h7UW!?UD=J%c(?*IK%{Q%i62tw}lkA&o-@}Z?mhiI(RqSxG z0WG(JZx{A3V31z98ak;i(ASn$z+2hIeYM#zV*Ux3YupOipTkKh56Mu?QZeN8AW;NT z*$6En)x_q=FwW%ow+XG4Hxy270?WAemB}XDK7lJZDm1YJ=53KN>}3$O_5mP)$KE63 zXw7KXqcud(dIpZZfv^|GA@q!NPdHj|X5)n_fx0suj}fnCs^to*-HimTjjPSc5u95n zgvatZlL<0IwM$@H!B14$VP60Qyv6(nfOIfRLNTi072q_1d->z`(-ES`(%cJPUH8(` zxp0Cq&6%yTi8m>j%}VPJ61yuq=NSH+9r`Uql#vYjPl)(Wgoye2GgCd;lkZ#@bbpTp z$zy{>ts?KD`l&+Ia&?Rh@cjs=YhV|#yj5kUoC-|i3qTYcwXrf{uqb}y0zCJc4I?}0 zI(iPQRW8R!WTC_xQpnk4C~T-Mx9z>R<*=)(vz30a^>$CZqka*)FtU<0s&$ZB~T0TRT^Z?pwxQ4AOY1@ z@jZD`2FRV>AMo9lE~#v)GLPn>XF}?Pq-cmO90m+C$Qa4iWF4Hm_eaT9cELa zP=atLzYvqX3EljXekd*dm07K~K2toYhZCtidiOJnHSga*lNyWS9EZ1ORa61T1a5x2 z{68(V{Fh36fBQXo^ZV;bVfF5lsb|$ChgmO?#DkIeF92`kV|ksXS(^{n2sy?-{-G_n zDnE948Q#FRBI{O%~>{pD=Rx%+BaV|mRMJ>vFJC`=SOMK0*}ehmNE(5v7%q3N%wRq9H@idV6J z%gq0N>`Gc;RXnh9@z5L}Y;qu~FRyuYDx`P=g&ivPkhxW9uHV>)ABb*xZtgoXgxQ`@ z(ee-piVX@WrR%{IAL zHO8PEfX0&1hA=0Fp^c-5V(FE}nPi^*_eqvZyI=Xwf8CVdk6fH=-Qz4j)y&%OYGB>OF(fCJ+*Rw z7de#&Nii+I9%GU9L!NN#w!hK^)XQdacTLvxC@qD9b~*KuO;7(RqA!3nxOUbI#V83k z=hVouzKkHNIuok)bV>%P<;GXo(7w_~i+&pV%X3)CFz;)DZoMXAwhL74QCH~%ixI^> zmXBWuqf+`2`O+CX`yD9>r^3l}^mLY9&61Arue$mj94?K^Rjr z?X28)UeI-TBqr*J@iYGl8*fYL`ei$=&-XC$(Jnf-#7goVbTCHmdokSMRf{xkL2}VW zaWT1}6PLFiiw_Vn=;@iw`OxUpbUc55*RE|Lpo!lOK{nVTv7dObtom_5Z(@2sv3!zG z*3M(T=XnD|E=;@N+tK)!K1UmINV0YQ&cHxjZbNuTc4 z{B&g^hC@_I*e{f*YEL}2KdcMgIb|=GWAlhwVhsTdYK*#nWvBgT4S@qPD6M2ni06pq zhx~7AHRsEKib38>@)^panD*{?VLHGm-Ds`u}D zhK>j6#vHnfJ`z3;q17cqDzxBB~#qT~>9A-$P=yK;pV|L>qT2>5SbyqsOU_Z2fir&5K zt;1O)RSeg0A4-FFC{NoJPD-+MI^Abs+ljr?_Trgve@xxlI#Bh~*IQphP`>pyIQ0t; zw3N+H8sc`F@Z|ry9m{nyH|n8m-8`WNi7JMkVju@ze_@EJYVnZSo?7Yy+E>)*>l3;o zHEk+eBsIU4bopXPr5l}1Om|Y?ExSb}H(Df!wvSVcfJoVf9w^1*WeBMArk`fKcaO%>q!{5vA^l9pZv$u%v1;F z7xH6kBI~2epmie`@4I9}0D#7CD3fDd3WX{x zM0DbNUhed?*4BvCn*fs5)o0(;U@ss0E;l1O;rU*;a2fXr3QL{80XWt5$9(az@AO{M z@0k!T)F*b4w>+CN2+>JD7kKIngJC<()y|Fg3ifR{iA5q9XMZB(V~uu%VxNOjNM%(p zNfc55n8NGC9l7kObm{o~fIV$Sy<0nobE5_U;t0amZ9Qk1dKjpO#?ynu$GNjZV%-eQ zSd~>$V_mhLZ2SS?xg_$Ul2epL=3SEg@N6+8azQ%}7?JX>#h!VnYG@f&!5-t0LlBdv zH;AIvY$3MH*|?91Y953PYP~1$h9f_6gib?VHmH=pAFLjJ-hhm45D`DRcldk?Mz>1UQ7 zAFDROHcebLSI4hRMv>h^M|3GbEHA&Prv7}Abj6%}eJ{Xza(_dpidHbQ3*K;4#!_4Y zp%z1EI2{fwynNOcblev!>(B2MVt5d=f1gI=gS%)rq&lEO*5Rp`B%+vaVD`}Gz|vYH zB}g@YaN?ouR59eGT|_C%`p%YWP*azRWjapa{E8vr{rNc6bt2C;;HLQaqq;^j%zk5C zA5TE<>N|sCnayC^O^N_b8XdYO7qNr4{C>>|jcq(ftzNR>wD+WF+i`|17HQQlldo2c z#jiSeKlLi(1yJmT#7;z)o}=`Xyust;x^B1?HOky*at}v#d4hd2MwnI3d&4p9l^ls1 z18?yy_`PELa&@zE38^^S{(45((J6-LfS3-x6cXu=7j8XZ=hS6_mg>4STlJRnC>Jq# z59JaY4H-Ss*r$R-95)i)lZHPFJqXa~8h;ehcr}5lv2KrNzjK4!q*!JoD0DN%4M-Dx zy~(wv|1E<#Ag2KOpF8=lzmp0()$29s%1vB*XY4i%x`hbpCeQAPGW*8N2~@}8M(;)h z>`d*EufH3{uPm1X@Ddt=>21NOp~Bf*LZIeo5I6@W4BZvl!D2G56y+5$DOTBTKLJN6 zPqLQM8v!%RNECQmU5OLPbGPDvY(oXTAN)ryF;)klanU97_#~w#wF)_^8FFqcgv`Mm z1D&%%DquI_a{_XNHTeuqw^{ji&^f&-x|#UTaN_@9hhfzlKBpcSSlzTe$9#vkhsUtTqXS>@X=|sc?rCP02GLAD6^6dvL-KgT zlH8$iRZ7xT6^u?QryVne%g2)_hMcFN%cAP0%F_D!zysTftd1p6B{5VmEuak=WTn@~Qx}RI=r$pBj&BgTbj>8(|d~-RNgf#Brks2`l7a=l9!k=q2DH^Upno%eJpwysn!^ac*p>o(88HaFrsMSynN&JM}w9g@^p2q(Sfl9MR%j7G^^x!^n@716gV6pJgYik=L)*CX8VGCz8cU9%)$WVSOHZ8I}q zAN_(R0d;mj8J-bsLbjmv+*P&pd>k=`Bx|e70T0V=E>OFdy`T_rbTO*aNRhh6Yfkfe zl>xn?pTPct*r1UG6>VQ7xUE1m2V#$`NOtSe&$mi zcDJ3SoCu0E`oMGCpL9{hkO*Bf^;#!l&43I;1~qh$s*M>AUe9Vb3t@ftWX_*EU;uEe zWc07S0AV`ll$kyTr(fOEz1-(h6oj;Wl*nO=e4sz*jlu#AsGxwD;vZyF(YU*p^)Mq`f zQP)7`=CBQUG{U1bwWr(T%@Ooztcc@%eZNGqwUH&xsB zpttwR-`|{Y{c&oPn>2^vn-U|HO9er|4}HnNN&UWeF2CsW{rMY{e7sH| z-s-+>7Zi^F;Wuh_gIxf?i2_b!7eaA%S+Q-*TmQG{4zvTTNc4 z&VfAAMpN19_!L2;A=NsCE&qj5UzDZNL~rjcEuTw3y93ZXICn%@U5sirE6N&knV^Cl zr-E@+moe|*_1@S1%~*T`+f&j^NHu6)=Me&InM*aR2v=709w7*K;oJmyy?YY8e`t^s z1T~xD0DeqC?RUE#{D@fZ1GJf5un_$Fjd(1i=}J4i?1$g{S7`hRN^kyux`~C{Xv|#4 zBuRJ-DvSrjGJlUqx?L;OeY+FnG9*HM#l!y+l>FGju79eYsmSpnIDa;7_hpVrG->N< z1M%PQ48&sjbC`d7RsZSUWb{K1{QvJx|5Ejx-Cn2kh|PtJJELIxnhZ1VAM)#Skw}tP zBr>ZGz}VkJbwd^u!k!vp*qC5JdppJ9uY$yQ$o`(Z=qHRscV4`Px(!qV{iUXWqc*_U z#<3_G0`a(fbJ4^5GzZF2g`+p%Y$9~<66{jb#~dBMg+Q8~3)=D{(8AmP)w}ZslMW*C z7fzS`h{mG(f$o25S>U}2M@V1diT^@lrwl$S;->MTH@s}SS)*H@8mw4YsmSPIMO~Me zq|WXMq0s?RCyuI4B1DPHnd6^z_*)Bx%vyK?M($>>6^K@C9ZkBDWF+Fvdoy+OIzT!O zZT6nHRlWCC!Rj`XE(7y!_O!}#RhfHj7)us==>c~`lrA!Ew|nOWe$B2EHZQ1!o|D?) zj{weBtQ(4?L~2A8OvuN~v88D$UU@sqZ(cM0O4#+HOB@B>!jMg%nlWBrHSoBR`_S4u zZSV`TwTO{GP-D`0M@t*KWC*B*agadP$%o!mH6F~>4byoTK$_*eZ3Z==m0T_%LPuNXbi#{7fCHK=09^X3|Gf6 zAalKV9bxJy_LnZvSMfMv@^E&|@~+cBFFU9vXuajaV5jyqn`XiJH-5a z6Jso_?~(?vg7nNepmTzP1HRJC^Av7&VokJ93s*QpeYLHh)3@CG=`Hm~dvGj^ z1RiX-s-6<=yxgL}q5+sKp~b&o>B(;y`2VEce-W8U(6??73f1rnq$=R#@#tQXkS0G5 z=8T}XP42!W$0+}}%vO!O|D${-mpg(J^KGbsosW@l31Pl$4w>eTKNWk!Pto=A?SW|K zYwwjJ9SAcr5w+_(L$$lZZ1oIRJlO$&fxqBZ|5mX1$FUQa_Ns=~^c&K+VWnKN%j>IZ zFK?Irk&37KYglHvCx zacDtDG8k9*`|6WKO--k=xogjt+D)oWhmWwttm$0U5$a}E@G!*lX2m%4xKA=lB?3t^ z)z%HA<=htnE)&+6u6tN%d`8n)6jf>oPOY(D-{e#h_hZgetX8W?d_0*hzJo)`Sf-2P zRHDeJcSsN=cSTHfy&1|8nsAZwfB(4 zQt?_~Os7o(pUeoIG>KW}(DhXE!KmNKwRLh)(p784b<8>e(c41t&=_pi4O{NY+}?8W z98nGx69%nX;PL~g0p4J5IHV3ZlgntAO^33?a1msqvT*ns#W?a6FfE8WY8P;Z<@kWO zYO#0`{o=VWUG`zP$p`{f)kju0SbNh|vrCtsI324r#sgBBWQYs4teO=N!r2J1cXpeY zEY}xqm=``GE0tinWe7{*R7`~BhUyyBpe;ELNoi7=)GA7_Vio8JiDY%85P8@;1BU?; zO|ou91TNv6(L<^fneN8hI@Ch7!&gaz$Ou5>J(s5kQjzfL)xG?eKyO-Zve2vS5w1kOtPA%!q;6(s>`9@KG-2Go0+?@w@2q<{l2 z5t7@4bUWauozZ_#;(u`jr27ukHR%cqMF$HPPq)vZ-o*9zY(`fP#*3t67c|*DdR91> z1+%0Rt26`KzR>3wT#bYUL+|VuEkl~mkyG4@hN;HgpQnbNehu*9KNmV?-4fLXc5RJ}qL8&HZvirZs zGI-=sy@$(`iRL5mBRftmB}UzzBh9)N3CmD=soZ2f^otaknh~*`+LhC#5>_N#^#!+V zGgN~mEQ2EH+>#-5i1A0WgJ9@nT+9}QWh`}^b*e!W(f(z7#pyNQ115bR>bWc=k6D~i zL@*+aXD`~8JIY_9G!3yOgrX@7~g z@LXqOSx|JU5@8)yj?`SQGnF4fpW~-zA4pf7wQ9LwK;HA5@|K?6#B>a}b*i;T@1?yU z{K2Tn4=2+9u+Qx{*O1e8msSYM?{*L$@ZQ$6@ySiNWuB37mYbPc6m7 z=aoc%0VS$*e^IWH!#fr_*FyG5$J{hq zBW%SsIoPy1r);M03_M2q!NQph67VW(w46o4w)I%YfRi}=6xdbvge=&e^2;Y3Ve^BG z8Es~{Jl(=9OB^vrOh`i@la8Vm15l9B;6CrBdK>NGl=5KBYGq7+Xpn7YZzytf(eN>T zKBZB>oV-z>Ydkyf+*yN93SMq18I3pBFZFqCYb z(Ia5EK|sN_v+_w9i`5HdnJvOf+0Lk()29R`TDq}}ES!e1XSrLOKh&QMl-JcK;VdH&h>gp1usyrG zf)!uF3+23Gc%MTm%FpkF#0`KY}J1WDXGUDxGc>>scT2tA%j(bjx(Lc_p-PDgVYz8XZ8tFv|#w zX4w$wBQkP}Qd1YDLCKTrIa<-=vHArD2OrCPQjZFOkCqtJt>O*9d=Ls{gfLegu!o0n zoAYowUnCuruUVcUDH6_d7_)ZqmLO={iQfIC$7qbBp#12&a6E@NO&mP4&uHPT(pc@O zI)9S_Jze5U`KysLFkpfB$<19E1DW_yM?pv4%K}}>mPOt>7b>!E48ut8Dz8lq`2{)I zyyd7shBwvu!$YY@UjgMR1x|5l;Axh`<{|H@qM$>Qh!pnzqa83pw%t$SO}i1Wdh?@2 zjU_l!+^oHx39<$3{h%O-1)}GvR2bs5kEZZhHWjWGG6xkS#}0>fQ4C#o5hP;x7FqUSjh1Ia8IB_XK&CsB-M; zj=)Z8%vA_SKW5J%<`2`gwRI1Rn1z`%+d9HjGbZ0?FUa(b*~6l3D-{Z%Zp9;cBaIT9}v$kgRtuUId zid5e&nNq3gRwj-ys`(Hl)=ar<$c@j$A|){y>16r$suBqpq!F|$a~F9RCpb}cXUMuQ zvY=TAcq&cy1nF+7JUyn4kFd_gxK13tni!f$*2y-V< zMHjUR)Z@0-NmmHh%+%+ebg|Jk%2tL;2?@lR6)Iv&e3_}@MzW$3&nNT-5u`A+Ltf8e zhj7r1Y(3hUi-YN+pkVD9jzLxp4drrHYMmEVNU%s4TG<-2L;z;PUA@k2iuha{%`3~R z2}MG&Px+Jd-gsW1=99251TQKCOC=Eqn47V}C^9$F$@3*5V#8FaLa!Ywn4mPFVO0zL zcq9Z_ZrPbzp(%CL)1Ss2%6vU?NWCOrz~~U}oQk{Ge=pglJo+%Q)@aq%P)YC#w$-h7uX!N9I2Ect4lB)a&cZhPkTnr%ULdLthWHs*}6I2K+?!v!K@{Vi@C( zD{N}Al&7{JV`#{+ESAwM>=o;K6PD(K^rh5?K{-=F<60-7l30G?|zFj{QPSN`_x4+z&k0xQm^e;sVG^Q1af@2BV{_1@q90(i|(oZ49UIVA611;hKt zlRpxWOI#Soo>PixWwH@eB_9Cj=L`P36+gGY&oL}-c;~oE(5>fO)TJ^PlA1F#RD#vB z@zB^|M3~THn}D-HDI@bKj*4rA;&mR(Wxe(#)S!ZP9b0~$M^P5?;f^i-S97<=3mB>r z5hovs_&y~4Z6Q);GSZKZ7mK;PGCA+tp0zS_*iZrGv@%{WQrPI8UF}YrY`zrQSM_-z zC$#VjpzRAF>oMS1!P2vDmH2-txc{$`y&+_o3|mwyI>j83%^73KMLL;-*DJ|$=ay@G zv5&}^*^gK&qPPhHMBKhV*AY)2fjrzdQj4Xz(m(=UWn_UF4*;BtM z+bLql>wf~`a{FyIpQF0ZHhuqs@=LAL+j)9#$5*xvR?eV=mp;(Gy;pl?wGhez*d1I53-XoJ4cw7tI#e;h+ z%}ud#pGbj?m?Oeeg3jyx6{vP8Am>l78MgKl03NV>>%XXq{z~T`5N-ZBhUa>qBx$^U zfuPJ-wE?zdB86UEcx5Jv=bmq5R}0W0{zV}D=hKuF+&4M?HR!LeZS}7K3^9NeWR4Eb zrN&|1kB%$ql#-x6#^rJ=Ruvu)CdCle`Y}t6i>g7(pDac@EHgL+E~SZJYr2;Db4r*Q zHCs>N^EUgdc$N`iRo1HLKG%b5-;ihXEPp|sQH&e%vd*4nFjb2qr6jr3*2MAV1v88e zKDGAhwNTeAE#0T4kFP#uH#}AFS~{AEO5t_8&RD1lKUL}=t>IB7(GZ_sT=nrA?v3ns z+*?k%1QjXeYINx_S7g25R;Wj!1rKJ3x!m|($I>?#TJT?BXzdrz&A+5LSRv;j5k&32 zy-Q>HhB(6KrOzFoVH4Bz#&@4ycWP@_KPXmD2|Ak(p?+v**snux7g5ZzzOnW68|Y2( zchDOdoB8o|yqonD)s9fRpfvbr|kb0fTmly&a?);ffGF6=?V7!y`OswqhgYU;xd&B^1Nbal10{u|=8$L@A&9 zu$+94CfsMC_*otvLGhmWW+1184!!3hu1%_n60>eqrbZ@kFS;Lm0&|h2Ypt+U&F^x8r zoTunF8rUzp!qTqKH$tKC$)E+IdkHvst%)m;cS2=how0A1;>`K}#>{m8+*zFni~7&G z8zn~L*fuMFa4s4olxQ0p%0go+r>!LMWDA^F30um=(}!Oj@6A?sjEozaPlEJT@m%li zom7GL=iWctQEV`Z9puEw%vU4!sG$a`DWE7u3B66xAxp~zb%7DT<<4CU+#qUM*^(7t zq8@uP*U`*?#Qa{iRW=Jn2S$fcO$VZe002a2{;J|X4GZRZ-Ab)z>?5pMP-i5Hb4rR5 zKZDMwK(WVcUu#D9nRbE*q@VZvc6A>UQ&?P8?S_`b8Hvsd18ow)I5eNXQsVuDL{jJy zJ+?LEE5*$6!8c3(r$UnJ+q^p!o04@n(}toe6i83@-S+(*dUeZcN=Ey*0hJe(xrgXS zQ8<-eML3sR_H`4{J~yclk*mE~6N~CPmBrC>68P`&^d zRU+KUvJtu?aK%8z+4Ma@@dES!aAH#Tx9WbY^WXSGz<#mlu$i^xi-gKK1!_hq`fdUZ z{n4+=vPo?sGB#<*E&aX#&X%3^5)GTyPTwB$+79%yxKnk|WA)TcZECeANpo1wR7C!^ zeTBr=Y<%L{Q_V(JhF(Hw^SAJOe`Ub;(B^M(f03=lUP<}sZ1;TIPSs-t7s?{?&$z}( zr{Ty5;s3{_n}1at;HLqCWYv5mj!yY);g2sku)UW>#r1n{_FLu44vyu>CaC=ci|i}G zaBzG2e~4h1SbXhsW5yZTtG9{%zzcQ=J?M%HtsBtv*| zH(Qrw@JUeZ_2>%N*+iQPoU%##;}8R7MFPPoXHv)R>=j+>_R4jw7+eKmjsbjJz12p* zv2!szaa4I&1*aysFXRpBesy9>QBOA(lVBPUOV4{J;Odk>O|;u5zM&$7^^#+>&|Tzblbqz(Y%0iv1`&|3 z#_($tW#7m)GOPqHkIYcg?VAKHk8m->8w<)1R0s(oH(`>Cj!|av zl*kvrL%4RPF(oSz_vDn&GFV2PS(OphbuuMmKyg?J3l#WPRe@izL?7^#R0cQmp@F*B zHeb1G*FEnO!MlYc8+$e>;whSH^YNu-TS1kl(?lj8(!jFyR}A?|wuyP4Ao@t?2#9)k zf~esAXrtP@SdpMU63**t?%}63#p$BTVV#pUdmOAjU+<}vM)OCZ+->JaH(pP~wtk{B zo`NtHKdi9Zb&wi7Y)T0=u-jcKS2h_bEB}pbL*7!lc3?O4`4mPz+y$DzUT$kQj8Qz~ zj=COP%}nkVDt8G)70cc;KDe#U-uWwr7y-Vr$}j|08F+r>tl3OCSMUe1`l>7y(-Srm ztFs=NJNG21$|lx&;9-q8tLR^_gX1fUPiOx2Ea~tTN7cy-oaGC!J+^M>B$JR>?n9P& zA!@NjC*?j{CPd~)7UqaXhQlgW@ci4M%(fS#E%k8yOS_JDQK}J5rw7Xi8+KHdKe+K& zl@G`DQF}qUdw*l`sgrc%%#=I4r?Mgv9)#S^=qoJOw7Rrdrs&H$9jP|Sa}p#3gJ$ws zsI+lsGX9DocfPU8-~>LTN@y|zfe%^4wmScMGU}=~ai(>q$MWO8-A!1Jbq-IWz&5D4a{epj1L;HT!`wT6)p(RehfidZ`!=a z#zA}eT7Zu)iz$$7VT`l}+h!^mCEn92_bc!8T}xUUuZ-*0G!(MhQs=tymBp8MM096` zm>r6wT(X4_lzAHJ-Ao2&M9>Jd) z?1=ZVpBr5J^;2W}voX>WXP?b-atZ#VCnz(&EH;3YF;0p2mV^ zCKFlo)f}{8L}UzMslC4T7>N@~WSnJbmk4CXGz6&Rx|wbo%@|Gwl08VB-llktkL*cT z2NPPv)_@j7k7e%v`h0NXe$qAS-M*lEC;xiJFPKC9D~51AI7OQOZ)%ofik#iv8U(WA zJ*>#HhXk^ttx47)Fi8;}NJ+}vpzOy+7oj>)Xo(W?jER>0`h1jS|D8w{p4I( z)~exhi`*Sf=QhwI--xsa;aNfl+up5DqBw6%JEQ!%ujV?p%d%t>*PJeF4lZ^PH(lUaQ2~*bEg~ z&I@$*3xY4}C+N*xh$5^;>*{CKA<-vt4pAL`BBOgv_1!@x>km?i$GRH~eRp&5xZW4+ z$(N7wi?g2Jt`rNj!l^O3o)hd$mcv9@Z3J0|k6sjoyW7Pu|SR#bX=8v z?fuzF1+Dv+dks$6<6||Vj2jXk$~mQeL{5P~kr|zNd{;%tyXAezS>uLf+x%#k^vSJw z_dL~Q-}jj6sy3{a{T+bm-%+U3`KnNNoSvZ0%0bWuCTz$4->nkEXrJUHJf`Fn%4wM! zWY{Yczd$2WSku$#dKxyAbp#*A&}fwPssm#9#b`q4R$G89%HTu(=o$KzH!g1!Ni-}E zRBDfABnMBuI{o>s#OI|~h~;;$XaCMACsJNKt#v1H;N4of7ELWZ_}b?{bNA+AyOxVr zTH|mdsR=-QdgCbm!LJq}cdOM%HdM2EUNzrn%*x7t%qEOc&~7+v%A-4(ux8m8z`QH9 ztE%^Bco=H?oV#PO@2z?J{g)p(G^QNFD&AcE@ZwXC?9goeJ=w-A`*K58+<@+yK9A@y zYvXCA@}4%2v%G&)^TZ!!%ef!R`Bok3U$ypMP~ra+@u&R;ANk5x22f)*6kS3@UIRGZ zIQ5*8+*Of<-1^g#8j<(ssG^$iwy8PoNkcnWqYnslT^X5gKSy(!1N+B>uGf#959;n_ zoM9F4%AEf6I%U=O?Fkjhl>1I^S^Ab{8ZzHmu+>TT&#uh|(fx7q`DbUook2HiJk>4x z$1fjtg{7_@$a>{?UT*+6*Nz?V9s5ra|D$c;OXD99kIsuHx4$4)#CV+3hLgHvMi%z! zjaYm6-5pbhrU-+}I-}&W!CPc{<@1nCBhj9bjo`_cVBLL_G-_*%&NWUWir+}^@m~O8 zgpmWbT*K6pIarMFs%(U*wpqvPMmIeB-XF#P@U@p8(0ucb4|)IP{_}seJFz{iQ4ERZ zcr5b;P&E>(qmM0I(I@xc-1!2ix||tWa#85RB+S`q z7``Ai3mbrV+|aT=xOimdDdu!Lb>{W8{pMXqw_}+}>a|BNgBDq)|Mm%hpKHs~ z@KlnnkQeSna2Jept9!ZXDI)mh*=ql=qr|wue7?{+gqDQ<)gj&G>K?16edPE?f0AaS z_{Zj3wt5KnH%z@1PfZfP06tDCsm6!B^S0uU`s3o_f0R@YnCQb!e|pmz&%iq$-R0|b zx90xT`N5VSo8yc~yz{|RvQG7ytaraRz@5eC()H7_TmGx_o5y}D!HN9!50`*8s*Bw_ zGAAr%7TGZ!-hRT!jaF(lS$Is(oQpfRoS Date: Tue, 26 Oct 2021 00:41:20 +0800 Subject: [PATCH 197/429] Update DeleteCommand Sequence Diagram.drawio --- .../DeleteCommand Sequence Diagram.drawio | 74 +++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio index cce43a7e39..bc78fdca5e 100644 --- a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio +++ b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Sequence Diagram.drawio @@ -1,22 +1,22 @@ - - - + + + - - - + + + - + - + - + - + @@ -25,13 +25,13 @@ - + - + - + @@ -39,12 +39,12 @@ - + - + @@ -55,22 +55,22 @@ - + - + - + - + - + @@ -80,16 +80,16 @@ - + - + - + - + @@ -99,10 +99,10 @@ - + - + @@ -112,10 +112,10 @@ - + - + @@ -125,16 +125,16 @@ - + - + - + @@ -144,25 +144,25 @@ - + - + - + - + - + - + From e137d1ff6bfe6e801ae6bd855d3f033bda0aca64 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 00:41:44 +0800 Subject: [PATCH 198/429] Added DeleteCommand Sequence Diagram.jpg From 713cdacad7c436c4113c9fa152f2eadbcae8ffff Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 00:42:36 +0800 Subject: [PATCH 199/429] Added DeleteCommand Sequence Diagram.jpg From cf4b02275b129e5b38357c37393825641ed86e24 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 01:19:29 +0800 Subject: [PATCH 200/429] Update Logical Component Diagram.drawio --- UMLdiagrams/Logical Component Diagram.drawio | 162 +++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 UMLdiagrams/Logical Component Diagram.drawio diff --git a/UMLdiagrams/Logical Component Diagram.drawio b/UMLdiagrams/Logical Component Diagram.drawio new file mode 100644 index 0000000000..9228fecfe3 --- /dev/null +++ b/UMLdiagrams/Logical Component Diagram.drawio @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 9297e66e68e774c63ac23ac867747ea8ca14102e Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 01:23:47 +0800 Subject: [PATCH 201/429] Added Overall Class Diagram.drawio --- .../LogicalComponentDiagrams/Overall Class Diagram.drawio | 1 + 1 file changed, 1 insertion(+) create mode 100644 UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.drawio diff --git a/UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.drawio b/UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.drawio new file mode 100644 index 0000000000..aeda8d5db9 --- /dev/null +++ b/UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file From 308ba78633bd8b86ae2a5615984cc1c5233c1960 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 01:44:05 +0800 Subject: [PATCH 202/429] Update Overall Class Diagram.drawio --- .../Overall Class Diagram.drawio | 118 +++++++++++++++++- 1 file changed, 117 insertions(+), 1 deletion(-) diff --git a/UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.drawio b/UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.drawio index aeda8d5db9..f39e5aabee 100644 --- a/UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.drawio +++ b/UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.drawio @@ -1 +1,117 @@ -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 \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 58fa2f603ded9cd49a212cb610217423104f5523 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 01:44:44 +0800 Subject: [PATCH 203/429] Added Overall Class Diagram.jpg --- .../Overall Class Diagram.jpg | Bin 0 -> 62979 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.jpg diff --git a/UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.jpg b/UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..664f7f1fef90f04e26877950940e784d63493eee GIT binary patch literal 62979 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¢^?De5X>d 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 E0LTROMF0Q* literal 0 HcmV?d00001 From 304124552f5305de94b4ed72095554af36d7a8dc Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 01:55:16 +0800 Subject: [PATCH 204/429] Update MarkusDG.md --- docs/MarkusDG.md | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/docs/MarkusDG.md b/docs/MarkusDG.md index 8c8b561767..fa4ec9b424 100644 --- a/docs/MarkusDG.md +++ b/docs/MarkusDG.md @@ -7,39 +7,40 @@ ## Design ### Logical Component -A partial class diagram of the `Logical` compoenet is as such: -
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/LogicalComponentDiagrams/Logical%20Component%20Diagram.jpg?raw=true) +The partial class diagram of the `Logical` compoenet is as such: +
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/LogicalComponentDiagrams/Logical%20Component%20Diagram-Page-2.jpg?raw=true)
-:information_source: **Note:** `Abc` is a placeholder for +:information_source: **Note:** Specific command names are represented using a placeholder `'Abc'`, i.e. AddCommand, FindCommand.
-## Implementation +Explanation on the way the `Logical` componenet works: +1. Upon receiving the user's input to excecute a specific command, it calls the `Parser` to interpret and parse the user's command. +2. A particular `Command` object is then initialised and returned back to `Duke`, the main program. +3. `Duke` executes the command, which communicates with the `Manager` to perform its specific function, i.e. add a food order. -### Parser -The purpose of the parser is to the command that the user has typed in and return its respective command -object. The class diagram below is a brief overview of how the Parser is related to other classes. -
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) +The class diagram below is a brief overview of how the `Parser` is used in parsing the user's command. +
![Parser Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg)
:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram.
+ +Explanation on how the parsing is done: +1. Upon receiving the user's input string from `Duke`, the `Parser` split the user's input into an array of strings. +2. It then interprets the string and try to match it with one of the known commands. +3. The respective command (i.e. `DeleteCommand`) object will be initialised and returned back to `Duke` as a `Command` object. (`UnknownCommand` object is return +if there is no match) + +The following sequence diagram depicts how the `Logical` components interact with one another upon receiving the user's input of `"delete 1/2"`. +
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Sequence%20Diagram.jpg?raw=true) -Below is a step by step example on how the parser is used when a user keys in an input. -Assuming the input is not going to be **null** or **blank**, -Step 1)
-Lets assume the input passed in is `delete 1/2`. The method `getCommand()` would then split the user's -input into an array of strings along the spaces and store them in the array `listOfInputs`. After which, -it will get the user's command from the 0th array element and store it in another variable called `commandInString`. -
+## Implementation -Step 2)
-The method will then parse `commandInString` through the switch cases and try to match it with -one of the known commands. If it is able to match it with a command, the method will instantiate -it's respective command object and return it. Else it would return an `unnknownCommandClass` instead. +### Parser Below is a sequence diagram modeling how the function works.
![Sqeuence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) From c2e3a83c2510706bc3af07428560ddaf8f335a66 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 01:58:09 +0800 Subject: [PATCH 205/429] Added Logical Components into the Design Section --- docs/DeveloperGuide.md | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 47bef07aed..5245b10178 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -4,7 +4,40 @@ {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} -## Design & implementation +## Design + +### Logical Component +The partial class diagram of the `Logical` compoenet is as such: +
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/LogicalComponentDiagrams/Logical%20Component%20Diagram-Page-2.jpg?raw=true) +
+ +:information_source: **Note:** Specific command names are represented using a placeholder `'Abc'`, i.e. AddCommand, FindCommand. + +
+ +Explanation on the way the `Logical` componenet works: +1. Upon receiving the user's input to excecute a specific command, it calls the `Parser` to interpret and parse the user's command. +2. A particular `Command` object is then initialised and returned back to `Duke`, the main program. +3. `Duke` executes the command, which communicates with the `Manager` to perform its specific function, i.e. add a food order. + +The class diagram below is a brief overview of how the `Parser` is used in parsing the user's command. +
![Parser Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) +
+ +:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. + +
+ +Explanation on how the parsing is done: +1. Upon receiving the user's input string from `Duke`, the `Parser` split the user's input into an array of strings. +2. It then interprets the string and try to match it with one of the known commands. +3. The respective command (i.e. `DeleteCommand`) object will be initialised and returned back to `Duke` as a `Command` object. (`UnknownCommand` object is return +if there is no match) + +The following sequence diagram depicts how the `Logical` components interact with one another upon receiving the user's input of `"delete 1/2"`. +
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Sequence%20Diagram.jpg?raw=true) + +## Implementation ### Parser The purpose of the parser is to the command that the user has typed in and return its respective command From ed2bc9bcece5b71dfc33ebbe34086f579123556e Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 02:00:37 +0800 Subject: [PATCH 206/429] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 5245b10178..305665404e 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -4,40 +4,7 @@ {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} -## Design - -### Logical Component -The partial class diagram of the `Logical` compoenet is as such: -
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/LogicalComponentDiagrams/Logical%20Component%20Diagram-Page-2.jpg?raw=true) -
- -:information_source: **Note:** Specific command names are represented using a placeholder `'Abc'`, i.e. AddCommand, FindCommand. - -
- -Explanation on the way the `Logical` componenet works: -1. Upon receiving the user's input to excecute a specific command, it calls the `Parser` to interpret and parse the user's command. -2. A particular `Command` object is then initialised and returned back to `Duke`, the main program. -3. `Duke` executes the command, which communicates with the `Manager` to perform its specific function, i.e. add a food order. - -The class diagram below is a brief overview of how the `Parser` is used in parsing the user's command. -
![Parser Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) -
- -:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. - -
- -Explanation on how the parsing is done: -1. Upon receiving the user's input string from `Duke`, the `Parser` split the user's input into an array of strings. -2. It then interprets the string and try to match it with one of the known commands. -3. The respective command (i.e. `DeleteCommand`) object will be initialised and returned back to `Duke` as a `Command` object. (`UnknownCommand` object is return -if there is no match) - -The following sequence diagram depicts how the `Logical` components interact with one another upon receiving the user's input of `"delete 1/2"`. -
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Sequence%20Diagram.jpg?raw=true) - -## Implementation +## Design implementation ### Parser The purpose of the parser is to the command that the user has typed in and return its respective command From 6a5549a64dc0d312f41aab5e6c03e935d60519ff Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 02:04:39 +0800 Subject: [PATCH 207/429] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 247 +++++++++++++++++++++++++++++++---------- 1 file changed, 191 insertions(+), 56 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 305665404e..086e8a91c8 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -3,53 +3,51 @@ ## Acknowledgements {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} +## Architecture -## Design implementation +## Design -### Parser -The purpose of the parser is to the command that the user has typed in and return its respective command -object. The class diagram below is a brief overview of how the Parser is related to other classes. -
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) +### Logical Component +The logical component of the program consists multiple classes. Namely: `Parser`,`Command` & +the various child class of `Command`. +The class diagram below is a brief overview of how the `Parser` & the various `Command` class +are related to one another. +
Insert Abstract Class diagram here
:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram.
-Below is a step by step example on how the parser is used when a user keys in an input. -Assuming the input is not going to be **null** or **blank**, +Below is a brief explanation on how the logical component works. -Step 1)
-Lets assume the input passed in is `delete 1/2`. The method `getCommand()` would then split the user's -input into an array of strings along the spaces and store them in the array `listOfInputs`. After which, -it will get the user's command from the 0th array element and store it in another variable called `commandInString`. -
+1) When the user key's in an input, `Duke.class` passes the entire String into the `Parser` class to be processed. +2) The `Parser` class will then decide based on the input, which specific command type to be returned. + (e.g. `AddCommand`,`EditCommand`, etc...) +3) The `PeopleManager` for each Command Class is then setup by calling the + `setData(People Manager)` function. +4) Next, the `execute()` function is called to perform whatever operation the + command is supposed to do. +5) Depending on the which specific Command type it is, the `Command` might be able to + communicate with other components such as the `Menu` & `Ui` class to perform it's respective + tasks. (e.g. Printing the Menu) +
-Step 2)
-The method will then parse `commandInString` through the switch cases and try to match it with -one of the known commands. If it is able to match it with a command, the method will instantiate -it's respective command object and return it. Else it would return an `unnknownCommandClass` instead. -Below is a sequence diagram modeling how the function works. -
![Sqeuence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) +All the specific types of command class are a child class of `Command` to allow the program +to treat all commands the same when they return from the `Parser` class. Below is a quick overview +of how the `Parser` class works. -#### Alternate implementation +![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) -Initially we thought of having each command's respective functions to be executed inside the switch statement. -A rough example of the `delete` and `add` function can be seen below. -``` -case "delete": - functionToDeleteTask(input); - break; -case "add": - functionToAddTask(input); - break; -``` +1) `Parser` checks to make sure input is neither blank nor empty. +2) The command word of the input (e.g.`"add"`, `"edit"`) is put through a switch statement. +3) The return item is then determined by which case of the switch statement the command word + falls into. -The upside of doing would be that there is less code overall. -However, doing so would cause our code to have a higher amount of coupling and would also cause the code to be -messier and therefore harder to read. By having a command class for each respective command, this allows us -to segregate all the necessary functions for each command in their own respective class, therefore making -testing easier. +
+Below is a sequence diagram modeling how the `Parser` class works. + +![Squence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) ### Delete Command @@ -73,11 +71,11 @@ The input is then split and initialised to its respectively attributes using the
Step 3:
-Duke calls the `execute()` method of deleteCommand, which executes `deleteOrder()`. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter. +Duke calls the `execute()` method of deleteCommand, which executes `deleteOrder()`. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter.
Step 4:
-Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class as only the Person class has access to the Order class which holds the quantity of the order. The quantity of that particular order is then changed to 0 using `setQuantity()` in the Order class. This is to encapsulate the quantity attribute so as to prevent any unauthorised parties from accessing them directly. +Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class as only the Person class has access to the Order class which holds the quantity of the order. The quantity of that particular order is then changed to 0 using `setQuantity()` in the Order class. This is to encapsulate the quantity attribute so as to prevent any unauthorised parties from accessing them directly.
Step 5:
@@ -124,26 +122,55 @@ Listed below is an example on the usage of Add Command. A new `Person` object will be instantiated and the data `personName`, `foodIndex` and `foodQuantity` is passed into this object. 3) This `Person` object will be added into the `listOfPeople` in the `PeopleManager` class. -### Edit Command -The purpose of the edit is allow the user to edit his order quantity. -The class diagram below is a brief overview of how the EditCommand class is related to other classes. -
![Class Diagram](https://raw.githubusercontent.com/thaddyyz/tp/master/UMLdiagrams/EditCommandDiagrams/editCommandClassDiagram.jpg) -
+## Implementation + +### Logical Components + +Below is a step by step example on how the Logical components interact when a user keys in an input. + +Step 1)
+Lets assume the user input is `delete 1/2`. `Duke` will then call the method +`Parser.getCommand("delete 1/2")`. The method would split the user's input into an array of +strings along the spaces and store them in the array `listOfInputs`. After which, +it will get the string `"delete"` from the 0th element of `listOfInputs` and store +it in `commandInString`.
-#### Alternate implementation +Step 2)
+The method will then parse `commandInString` through the switch cases and try to match it with +one of the known commands words stored in each respective command's class attribute called `COMMAND_WORD`. +In this case, the `"delete"` command will cause the parser to return a `DeleteCommand` object. +The image below shows the codes for the switch statement. -The EditCommand function can be integrated with the deleteCommand class. -``` +![Switch case Code](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/SwitchClassCode.jpg) -``` +Step 3)
+Next, `Duke` will then use the returned command to call `Command.execute()` which will interact +with the `Manager Components` of the program who will then remove the 2nd order from the first +person in the list. + +Below is a Sequence diagram for the entire process mentioned above. +![Squence Diagram of Logic](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/LogicSequenceDiag.jpg) + + +#### Alternate implementation +For the `Parser` class, we initially had thought of having each command's respective +functions to be executed inside the switch statement. +A rough example of the `delete` and `add` function can be seen below. +``` +case "delete": + functionToDeleteTask(input); + break; +case "add": + functionToAddTask(input); + break; +``` The upside of doing would be that there is less code overall. -However, doing so would result in multiple functions being in the same class which would: -1. Make the code messier. -2. Make the code more vulnerable to functionality bugs. -3. Make the code more complex to debug. -4. Make testing process more complicated. +However, doing so would cause our code to have a higher amount of coupling and would also +cause the code to be messier and therefore harder to read. By having a command class +for each respective command, this allows us to segregate all the necessary functions +for each command in their own respective class, therefore making testing easier too. ## Product scope ### Target user profile @@ -168,17 +195,125 @@ However, doing so would result in multiple functions being in the same class whi |Version| As a ... | I want to ... | So that I can ...| |--------|----------|---------------|------------------| -|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| -|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| +|v1.0|New student on campus|View the menu.|Avoid having to go down physically to the shops.| +|v1.0|User|View the current orders with their names attached.|Able to track who ordered what.| +|v1.0|User|Add my choices of food from the menu.| Track what orders I plan to get.| +|v1.0|User|Delete order's that I've added.|So i can remove orders if someone changes their mind.| +|v2.0|New User|Easily understand how to use the app.| Navigate the program with ease.| +|v2.0|Person ordering for a group.|View the cost breakdown for the current order.| Know how much each person owes me.| +|v2.0|Person ordering for a large group.|View the total number of orders keyed in.| Ensure that everyone has ordered.| +|v2.0|User|Amend existing orders.|Edit an order without having to re-type it.| +|v2.0|Person ordering for a large group.|Find a specific order by name.|Easy know what they ordered without having to scroll through.| +|v2.5|Tech illiterate| View a user guide.| Learn how to use the program.| +|-|Person ordering for a group| Track everyone's food allergies.| Avoid ordering the wrong order.| +|-|Person ordering food for friends| Track what add-ons my friends want.|Track how much it is and won't forget about it.| +|-|Lecturer| Know how many people does a food serve.|Easily order food for the class.| +|-|Host of a party| Sort the menu based on categories| Keep track of different varieties of food.| +|-|Indecisive user| View recommendations based on my frequent orders.| Simplify my ordering process.| +|-|Non-local| View the menu with descriptions in multiple languages.| Order food without a language barrier.| +|-|User with poor data| Download the menu and order list.| Track my orders even without the internet.| +|-|User| View if a food item is sold out.| Decide whether to order from another store.| +|-|Health conscious user| View the nutritional value of a food.| Easily track my diet.| +|-|Ordering for a large group| View the recommended serving size.| Decide on how much food to order.| +|-|Recurring user| Store my favourite food| Easily find what I like.| +|-|Recurring user| Saved my food orders| Easily place my regular order again.| +|-|User| Retrieve my previous order.| Place my previous orders again.| +|-|User| View menu from a file| Avoid having to scroll through the whole menu.| +|-|User| Track who has paid| Know who still owes me money.| ## Non-Functional Requirements -{Give non-functional requirements} +- Program should be able to work on most Operating Systems such as `Windows`, `Linux`, + `OS-X` & `Unix`. + +- User needs to have Java `11` or above installed in order for the program to work. + +- The program should be able to support up to all these values stated below. + - Up to `99` _Unique person_ at a time. + - Maximum of `99` _Unique Food_ items in the menu. + - Maximum of `999` quantity for each distinct food item in a person's order. ## Glossary -* *glossary item* - Definition +* `Unique Person` - Every entry with a different name counts as a unique person. +* `Unique Food` - Every element in the food array menu counts as a unique food. ## Instructions for manual testing - -{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} +The instructions below give a brief overview on how to test the functions manually. + +- :information_source: More test cases can be found in each of their respective test class under + `src/test/java/seedu.duke` + +[Starting up & Shutting down](#Starting-up-&-Shutting-down) +
[Add function](#Add-Function) +
[Edit function](#Edit-Function) +
[Find function](#Find-Function) +
[Delete function](#Delete-Function) + +--- + +### Starting up & Shutting down +1) To begin, download the .jar file and place it in a folder. +2) Open the CLI at the file location and run by the jar file by giving the command, + `java -jar .jar` + - E.g) With `CS2113T.jar` the command would be `java -jar CS2113T.jar` +3) To end the program, enter the command `bye` or simply close the CLI window. + +--- + +### Add Function +- The format of the command is `add /n /i /q ` +- Prerequisite: The `Menu` has to contain at least `2` food item. + +| **Test Case** | **Command** | **Expected Result** | +|:------------:|:-------------|:--------------------| +|Add 1 person.|`add /n abc /i 1 /q 2`| Adds person named `abc` with `2` quantities of item `1`| +|Add a different order to the same person.| `add /n abc /i 2 /q 1`| Person `abc` should have 2 distinct orders under him| +|Add on to an existing order.| `add /n abc /i 1 /q 1`| Person `abc` order `1` quantity should increase by 1| +|Missing parameters| `add /n /i /q`| Error message to user| +|Exceeding more than 999 quantity| `add /n abc /i 1 /q 1000`| Error message to user| +|Food item not on the menu| `add /n abc /i 0 /q 1` | Error message to user| + +--- + +### Edit Function +- The format of the command is `edit / /q ` +- Prerequisite: The current list has to contain at least `2` person each with `2` + distinct orders. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:------------|:-------------------| +|Edit order quantity to 3| `edit 1/1 /q 3`| Order 1 of person number 1 now has 3 quantity| +|Edit order to 0|`edit 1/2 /q 0`| 2nd order of person number 1 should deleted| +|Missing parameters| `edit 1/2 /q`| Error message to user| +|Edit order to more than 999| `edit 1/1 /q 1000`| Error message to user| +|Edit order out of food/person index| `edit 1/999 /q 2`| Error message to user| + +--- + +### Find Function +- The format of the command is `find /n ` +- Prerequisite: Contains 2 person with names of `abc` & `bcd`. + - The above names are just for testing purposes. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:----------|:---------------------| +|Find person `abc`| `find /n abc`| list person `abc`| +|Find person with substring| `find /n ab`| list person `abc`| +|Find multiple people| `find /n bc`| list both `abc` & `bcd`| +|Missing parameters| `find /n`| Error message to user| +|Person does not exists| `find /n zzz`| Inform that no names match| + +--- + +### Delete Function +- The format of the command is `delete /` +- Prerequisite: The current list has to contain at least `2` person each with `2` + distinct orders. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:-------------|:-------------------| +|Delete an order| `delete 1/1` | Order 1 of person 1 is deleted| +|Delete all orders from a person| `delete 1/1`| Person should not be listed anymore| +|Missing parameters| `delete 1/`| Error message to user| +|Out of index| `delete 100/1`| Error message to user| From 2e1e545eb571bf2ea97491c84f7b44f241cb62ed Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 02:07:01 +0800 Subject: [PATCH 208/429] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 318 ----------------------------------------- 1 file changed, 318 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 086e8a91c8..8b13789179 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1,319 +1 @@ -# Developer Guide -## Acknowledgements - -{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} -## Architecture - -## Design - -### Logical Component -The logical component of the program consists multiple classes. Namely: `Parser`,`Command` & -the various child class of `Command`. -The class diagram below is a brief overview of how the `Parser` & the various `Command` class -are related to one another. -
Insert Abstract Class diagram here -
- -:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. - -
- -Below is a brief explanation on how the logical component works. - -1) When the user key's in an input, `Duke.class` passes the entire String into the `Parser` class to be processed. -2) The `Parser` class will then decide based on the input, which specific command type to be returned. - (e.g. `AddCommand`,`EditCommand`, etc...) -3) The `PeopleManager` for each Command Class is then setup by calling the - `setData(People Manager)` function. -4) Next, the `execute()` function is called to perform whatever operation the - command is supposed to do. -5) Depending on the which specific Command type it is, the `Command` might be able to - communicate with other components such as the `Menu` & `Ui` class to perform it's respective - tasks. (e.g. Printing the Menu) -
- -All the specific types of command class are a child class of `Command` to allow the program -to treat all commands the same when they return from the `Parser` class. Below is a quick overview -of how the `Parser` class works. - -![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) - -1) `Parser` checks to make sure input is neither blank nor empty. -2) The command word of the input (e.g.`"add"`, `"edit"`) is put through a switch statement. -3) The return item is then determined by which case of the switch statement the command word - falls into. - -
-Below is a sequence diagram modeling how the `Parser` class works. - -![Squence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) - -### Delete Command - -The purpose of the delete command is to delete a specific order from a particular person. The class diagram below shows the structure of the deleteCommand class and its relationship with other classes. -
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Diagram.jpg?raw=true) -
- -:information_source: **Note:** This is not a full representation of all the classes. Only methods and attributes associated with the deleteCommand class is being shown. - -
- -Below is an example of how the deleteCommand class behaves at each step. -Assume that there are 3 persons with 3 orders each. - -Step 1:
-Assuming that the user execute `delete 1/2` command to delete the the order of index `‘2’` from the person of index `‘1’`, the parser would instantiate an object of deleteCommand class, which is a subclass of the Command class. In the constructor of the deleteCommand class, the input entered by the user would then be taken as a parameter. -
- -Step 2:
-The input is then split and initialised to its respectively attributes using the `getPersonIndex()` and `getFoodIndex()` methods. In this case, `'1'` would be initialised as personIndex and `'2'` as foodIndex. The deleteCommand class is then returned to Duke, the main program, via the Parser class. -
- -Step 3:
-Duke calls the `execute()` method of deleteCommand, which executes `deleteOrder()`. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter. -
- -Step 4:
-Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class as only the Person class has access to the Order class which holds the quantity of the order. The quantity of that particular order is then changed to 0 using `setQuantity()` in the Order class. This is to encapsulate the quantity attribute so as to prevent any unauthorised parties from accessing them directly. -
- -Step 5:
-`printDeleteMessage()` is called to notify the user of the deletion and if the person no longer has any orders tagged to him, that paricular person would be deleted from the list too. -
- -### Orders Command - -The purpose of the OrdersCommand is to display the list of current orders stored. The class diagram below shows the structure of -the OrdersCommand class and how it is related to the other classes. - -
![OrdersCommand Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/OrderCommandDiagram/OrderCommand%20Diagram.jpg) -
- -:information_source: **Note:** This diagram only shows methods and attributes related to the OrdersCommand class. - -
- -Below is an example of how the OrdersCommand is used, assuming that there are orders currently stored. -1) Taking in the input `list`, the parser will instantiate an OrdersCommand object, which in turn is returned to the - main duke program. -2) When the main duke program calls the `execute()` method of OrdersCommand, the `printOrdersList()` method of the UI - class is executed. -3) Within the `printOrdersList()` method, the method loops through each person stored in the PeopleManager to print the - names of all persons currently stored. On top of that, `printIndividualPersonOrder()` is called to print the `foodIndex` and - `quantity` data stored for each person. - -### Add Command -The purpose of the AddCommand is to take in the user input and split the input to three different categories. -The three categories are the input name, order index and quantity. These data will then be added into a new Person object, -which will be added into the list of People. -The class diagram below is a brief overview of how the AddCommand is related to other classes. - -
![AddCommandDiagram](https://raw.githubusercontent.com/WaiKit-nus/tp/AddCommandClassDG-WK/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.jpg) -
- -:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. - -
- -Listed below is an example on the usage of Add Command. -1) Example Command: `add /n Jacob /i 3 /q 2`. This command translates into adding a person named Jacob, ordering the 3rd food on the menu with 2 quantity. -2) The Add command will take in this input from the Parser class, which will then split this input string into `personName`, `foodIndex` and `foodQuantity` respectively. - A new `Person` object will be instantiated and the data `personName`, `foodIndex` and `foodQuantity` is passed into this object. -3) This `Person` object will be added into the `listOfPeople` in the `PeopleManager` class. - -## Implementation - -### Logical Components - -Below is a step by step example on how the Logical components interact when a user keys in an input. - -Step 1)
-Lets assume the user input is `delete 1/2`. `Duke` will then call the method -`Parser.getCommand("delete 1/2")`. The method would split the user's input into an array of -strings along the spaces and store them in the array `listOfInputs`. After which, -it will get the string `"delete"` from the 0th element of `listOfInputs` and store -it in `commandInString`. -
- -Step 2)
-The method will then parse `commandInString` through the switch cases and try to match it with -one of the known commands words stored in each respective command's class attribute called `COMMAND_WORD`. -In this case, the `"delete"` command will cause the parser to return a `DeleteCommand` object. -The image below shows the codes for the switch statement. - -![Switch case Code](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/SwitchClassCode.jpg) - -Step 3)
-Next, `Duke` will then use the returned command to call `Command.execute()` which will interact -with the `Manager Components` of the program who will then remove the 2nd order from the first -person in the list. - -Below is a Sequence diagram for the entire process mentioned above. - -![Squence Diagram of Logic](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/LogicSequenceDiag.jpg) - - -#### Alternate implementation -For the `Parser` class, we initially had thought of having each command's respective -functions to be executed inside the switch statement. -A rough example of the `delete` and `add` function can be seen below. -``` -case "delete": - functionToDeleteTask(input); - break; -case "add": - functionToAddTask(input); - break; -``` -The upside of doing would be that there is less code overall. -However, doing so would cause our code to have a higher amount of coupling and would also -cause the code to be messier and therefore harder to read. By having a command class -for each respective command, this allows us to segregate all the necessary functions -for each command in their own respective class, therefore making testing easier too. - -## Product scope -### Target user profile - -* User has good typing skills. -* Is comfortable without GUI. -* Tends to make large orders of food. -* Wishes to track multiple different orders of food. - -### Value proposition - -* Large orders can be confusing to keep track, especially if orders are to different stores. -* Allows users to keep track of bulk orders easily. -* Easily keep track of costs. -* Ensures that no orders are left out. -* Knows which order belongs to which store. -* Allow flexibility and control over what description you would like of your friends. -* Users are able to delete/edit entries quickly. -* Comments on the food can also be described by you (e.g. No meat for BanMian). - -## User Stories - -|Version| As a ... | I want to ... | So that I can ...| -|--------|----------|---------------|------------------| -|v1.0|New student on campus|View the menu.|Avoid having to go down physically to the shops.| -|v1.0|User|View the current orders with their names attached.|Able to track who ordered what.| -|v1.0|User|Add my choices of food from the menu.| Track what orders I plan to get.| -|v1.0|User|Delete order's that I've added.|So i can remove orders if someone changes their mind.| -|v2.0|New User|Easily understand how to use the app.| Navigate the program with ease.| -|v2.0|Person ordering for a group.|View the cost breakdown for the current order.| Know how much each person owes me.| -|v2.0|Person ordering for a large group.|View the total number of orders keyed in.| Ensure that everyone has ordered.| -|v2.0|User|Amend existing orders.|Edit an order without having to re-type it.| -|v2.0|Person ordering for a large group.|Find a specific order by name.|Easy know what they ordered without having to scroll through.| -|v2.5|Tech illiterate| View a user guide.| Learn how to use the program.| -|-|Person ordering for a group| Track everyone's food allergies.| Avoid ordering the wrong order.| -|-|Person ordering food for friends| Track what add-ons my friends want.|Track how much it is and won't forget about it.| -|-|Lecturer| Know how many people does a food serve.|Easily order food for the class.| -|-|Host of a party| Sort the menu based on categories| Keep track of different varieties of food.| -|-|Indecisive user| View recommendations based on my frequent orders.| Simplify my ordering process.| -|-|Non-local| View the menu with descriptions in multiple languages.| Order food without a language barrier.| -|-|User with poor data| Download the menu and order list.| Track my orders even without the internet.| -|-|User| View if a food item is sold out.| Decide whether to order from another store.| -|-|Health conscious user| View the nutritional value of a food.| Easily track my diet.| -|-|Ordering for a large group| View the recommended serving size.| Decide on how much food to order.| -|-|Recurring user| Store my favourite food| Easily find what I like.| -|-|Recurring user| Saved my food orders| Easily place my regular order again.| -|-|User| Retrieve my previous order.| Place my previous orders again.| -|-|User| View menu from a file| Avoid having to scroll through the whole menu.| -|-|User| Track who has paid| Know who still owes me money.| - -## Non-Functional Requirements - -- Program should be able to work on most Operating Systems such as `Windows`, `Linux`, - `OS-X` & `Unix`. - -- User needs to have Java `11` or above installed in order for the program to work. - -- The program should be able to support up to all these values stated below. - - Up to `99` _Unique person_ at a time. - - Maximum of `99` _Unique Food_ items in the menu. - - Maximum of `999` quantity for each distinct food item in a person's order. - -## Glossary - -* `Unique Person` - Every entry with a different name counts as a unique person. -* `Unique Food` - Every element in the food array menu counts as a unique food. - -## Instructions for manual testing -The instructions below give a brief overview on how to test the functions manually. - -- :information_source: More test cases can be found in each of their respective test class under - `src/test/java/seedu.duke` - -[Starting up & Shutting down](#Starting-up-&-Shutting-down) -
[Add function](#Add-Function) -
[Edit function](#Edit-Function) -
[Find function](#Find-Function) -
[Delete function](#Delete-Function) - ---- - -### Starting up & Shutting down -1) To begin, download the .jar file and place it in a folder. -2) Open the CLI at the file location and run by the jar file by giving the command, - `java -jar .jar` - - E.g) With `CS2113T.jar` the command would be `java -jar CS2113T.jar` -3) To end the program, enter the command `bye` or simply close the CLI window. - ---- - -### Add Function -- The format of the command is `add /n /i /q ` -- Prerequisite: The `Menu` has to contain at least `2` food item. - -| **Test Case** | **Command** | **Expected Result** | -|:------------:|:-------------|:--------------------| -|Add 1 person.|`add /n abc /i 1 /q 2`| Adds person named `abc` with `2` quantities of item `1`| -|Add a different order to the same person.| `add /n abc /i 2 /q 1`| Person `abc` should have 2 distinct orders under him| -|Add on to an existing order.| `add /n abc /i 1 /q 1`| Person `abc` order `1` quantity should increase by 1| -|Missing parameters| `add /n /i /q`| Error message to user| -|Exceeding more than 999 quantity| `add /n abc /i 1 /q 1000`| Error message to user| -|Food item not on the menu| `add /n abc /i 0 /q 1` | Error message to user| - ---- - -### Edit Function -- The format of the command is `edit / /q ` -- Prerequisite: The current list has to contain at least `2` person each with `2` - distinct orders. - -| **Test Case** | **Command** | **Expected Result** | -|:-------------:|:------------|:-------------------| -|Edit order quantity to 3| `edit 1/1 /q 3`| Order 1 of person number 1 now has 3 quantity| -|Edit order to 0|`edit 1/2 /q 0`| 2nd order of person number 1 should deleted| -|Missing parameters| `edit 1/2 /q`| Error message to user| -|Edit order to more than 999| `edit 1/1 /q 1000`| Error message to user| -|Edit order out of food/person index| `edit 1/999 /q 2`| Error message to user| - ---- - -### Find Function -- The format of the command is `find /n ` -- Prerequisite: Contains 2 person with names of `abc` & `bcd`. - - The above names are just for testing purposes. - -| **Test Case** | **Command** | **Expected Result** | -|:-------------:|:----------|:---------------------| -|Find person `abc`| `find /n abc`| list person `abc`| -|Find person with substring| `find /n ab`| list person `abc`| -|Find multiple people| `find /n bc`| list both `abc` & `bcd`| -|Missing parameters| `find /n`| Error message to user| -|Person does not exists| `find /n zzz`| Inform that no names match| - ---- - -### Delete Function -- The format of the command is `delete /` -- Prerequisite: The current list has to contain at least `2` person each with `2` - distinct orders. - -| **Test Case** | **Command** | **Expected Result** | -|:-------------:|:-------------|:-------------------| -|Delete an order| `delete 1/1` | Order 1 of person 1 is deleted| -|Delete all orders from a person| `delete 1/1`| Person should not be listed anymore| -|Missing parameters| `delete 1/`| Error message to user| -|Out of index| `delete 100/1`| Error message to user| From 664c85d41fd504d5f4deb9a99ad9903534121787 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Tue, 26 Oct 2021 02:13:02 +0800 Subject: [PATCH 209/429] Update MarkusDG.md --- docs/MarkusDG.md | 210 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 161 insertions(+), 49 deletions(-) diff --git a/docs/MarkusDG.md b/docs/MarkusDG.md index fa4ec9b424..73ad0ac2a5 100644 --- a/docs/MarkusDG.md +++ b/docs/MarkusDG.md @@ -1,10 +1,10 @@ -# Developer Guide ## Acknowledgements {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} +## Architecture -## Design +## Design ### Logical Component The partial class diagram of the `Logical` compoenet is as such: @@ -15,10 +15,10 @@ The partial class diagram of the `Logical` compoenet is as such:
-Explanation on the way the `Logical` componenet works: -1. Upon receiving the user's input to excecute a specific command, it calls the `Parser` to interpret and parse the user's command. +Explanation on the way the `Logical` componenet works: +1. Upon receiving the user's input to excecute a specific command, it calls the `Parser` to interpret and parse the user's command. 2. A particular `Command` object is then initialised and returned back to `Duke`, the main program. -3. `Duke` executes the command, which communicates with the `Manager` to perform its specific function, i.e. add a food order. +3. `Duke` executes the command, which communicates with the `Manager` to perform its specific function, i.e. add a food order. The class diagram below is a brief overview of how the `Parser` is used in parsing the user's command.
![Parser Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) @@ -27,26 +27,51 @@ The class diagram below is a brief overview of how the `Parser` is used in parsi :information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram.
- + Explanation on how the parsing is done: 1. Upon receiving the user's input string from `Duke`, the `Parser` split the user's input into an array of strings. 2. It then interprets the string and try to match it with one of the known commands. 3. The respective command (i.e. `DeleteCommand`) object will be initialised and returned back to `Duke` as a `Command` object. (`UnknownCommand` object is return -if there is no match) - + if there is no match) + The following sequence diagram depicts how the `Logical` components interact with one another upon receiving the user's input of `"delete 1/2"`. -
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Sequence%20Diagram.jpg?raw=true) +
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Sequence%20Diagram.jpg?raw=true) +## Implementation -## Implementation +### Logical Components -### Parser -Below is a sequence diagram modeling how the function works. -
![Sqeuence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) +Below is a step by step example on how the Logical components interact when a user keys in an input. -#### Alternate implementation +Step 1)
+Lets assume the user input is `delete 1/2`. `Duke` will then call the method +`Parser.getCommand("delete 1/2")`. The method would split the user's input into an array of +strings along the spaces and store them in the array `listOfInputs`. After which, +it will get the string `"delete"` from the 0th element of `listOfInputs` and store +it in `commandInString`. +
+ +Step 2)
+The method will then parse `commandInString` through the switch cases and try to match it with +one of the known commands words stored in each respective command's class attribute called `COMMAND_WORD`. +In this case, the `"delete"` command will cause the parser to return a `DeleteCommand` object. +The image below shows the codes for the switch statement. + +![Switch case Code](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/SwitchClassCode.jpg) + +Step 3)
+Next, `Duke` will then use the returned command to call `Command.execute()` which will interact +with the `Manager Components` of the program who will then remove the 2nd order from the first +person in the list. -Initially we thought of having each command's respective functions to be executed inside the switch statement. +Below is a Sequence diagram for the entire process mentioned above. + +![Squence Diagram of Logic](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/LogicSequenceDiag.jpg) + + +#### Alternate implementation +For the `Parser` class, we initially had thought of having each command's respective +functions to be executed inside the switch statement. A rough example of the `delete` and `add` function can be seen below. ``` case "delete": @@ -56,12 +81,12 @@ case "add": functionToAddTask(input); break; ``` - The upside of doing would be that there is less code overall. -However, doing so would cause our code to have a higher amount of coupling and would also cause the code to be -messier and therefore harder to read. By having a command class for each respective command, this allows us -to segregate all the necessary functions for each command in their own respective class, therefore making -testing easier. +However, doing so would cause our code to have a higher amount of coupling and would also +cause the code to be messier and therefore harder to read. By having a command class +for each respective command, this allows us to segregate all the necessary functions +for each command in their own respective class, therefore making testing easier too. + ### Delete Command @@ -85,11 +110,11 @@ The input is then split and initialised to its respectively attributes using the
Step 3:
-Duke calls the `execute()` method of deleteCommand, which executes `deleteOrder()`. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter. +Duke calls the `execute()` method of deleteCommand, which executes `deleteOrder()`. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter.
Step 4:
-Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class as only the Person class has access to the Order class which holds the quantity of the order. The quantity of that particular order is then changed to 0 using `setQuantity()` in the Order class. This is to encapsulate the quantity attribute so as to prevent any unauthorised parties from accessing them directly. +Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class as only the Person class has access to the Order class which holds the quantity of the order. The quantity of that particular order is then changed to 0 using `setQuantity()` in the Order class. This is to encapsulate the quantity attribute so as to prevent any unauthorised parties from accessing them directly.
Step 5:
@@ -136,27 +161,6 @@ Listed below is an example on the usage of Add Command. A new `Person` object will be instantiated and the data `personName`, `foodIndex` and `foodQuantity` is passed into this object. 3) This `Person` object will be added into the `listOfPeople` in the `PeopleManager` class. -### Edit Command -The purpose of the edit is allow the user to edit his order quantity. -The class diagram below is a brief overview of how the EditCommand class is related to other classes. -
![Class Diagram](https://raw.githubusercontent.com/thaddyyz/tp/master/UMLdiagrams/EditCommandDiagrams/editCommandClassDiagram.jpg) -
-
- -#### Alternate implementation - -The EditCommand function can be integrated with the deleteCommand class. -``` - -``` - -The upside of doing would be that there is less code overall. -However, doing so would result in multiple functions being in the same class which would: -1. Make the code messier. -2. Make the code more vulnerable to functionality bugs. -3. Make the code more complex to debug. -4. Make testing process more complicated. - ## Product scope ### Target user profile @@ -180,17 +184,125 @@ However, doing so would result in multiple functions being in the same class whi |Version| As a ... | I want to ... | So that I can ...| |--------|----------|---------------|------------------| -|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| -|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| +|v1.0|New student on campus|View the menu.|Avoid having to go down physically to the shops.| +|v1.0|User|View the current orders with their names attached.|Able to track who ordered what.| +|v1.0|User|Add my choices of food from the menu.| Track what orders I plan to get.| +|v1.0|User|Delete order's that I've added.|So i can remove orders if someone changes their mind.| +|v2.0|New User|Easily understand how to use the app.| Navigate the program with ease.| +|v2.0|Person ordering for a group.|View the cost breakdown for the current order.| Know how much each person owes me.| +|v2.0|Person ordering for a large group.|View the total number of orders keyed in.| Ensure that everyone has ordered.| +|v2.0|User|Amend existing orders.|Edit an order without having to re-type it.| +|v2.0|Person ordering for a large group.|Find a specific order by name.|Easy know what they ordered without having to scroll through.| +|v2.5|Tech illiterate| View a user guide.| Learn how to use the program.| +|-|Person ordering for a group| Track everyone's food allergies.| Avoid ordering the wrong order.| +|-|Person ordering food for friends| Track what add-ons my friends want.|Track how much it is and won't forget about it.| +|-|Lecturer| Know how many people does a food serve.|Easily order food for the class.| +|-|Host of a party| Sort the menu based on categories| Keep track of different varieties of food.| +|-|Indecisive user| View recommendations based on my frequent orders.| Simplify my ordering process.| +|-|Non-local| View the menu with descriptions in multiple languages.| Order food without a language barrier.| +|-|User with poor data| Download the menu and order list.| Track my orders even without the internet.| +|-|User| View if a food item is sold out.| Decide whether to order from another store.| +|-|Health conscious user| View the nutritional value of a food.| Easily track my diet.| +|-|Ordering for a large group| View the recommended serving size.| Decide on how much food to order.| +|-|Recurring user| Store my favourite food| Easily find what I like.| +|-|Recurring user| Saved my food orders| Easily place my regular order again.| +|-|User| Retrieve my previous order.| Place my previous orders again.| +|-|User| View menu from a file| Avoid having to scroll through the whole menu.| +|-|User| Track who has paid| Know who still owes me money.| ## Non-Functional Requirements -{Give non-functional requirements} +- Program should be able to work on most Operating Systems such as `Windows`, `Linux`, + `OS-X` & `Unix`. + +- User needs to have Java `11` or above installed in order for the program to work. + +- The program should be able to support up to all these values stated below. + - Up to `99` _Unique person_ at a time. + - Maximum of `99` _Unique Food_ items in the menu. + - Maximum of `999` quantity for each distinct food item in a person's order. ## Glossary -* *glossary item* - Definition +* `Unique Person` - Every entry with a different name counts as a unique person. +* `Unique Food` - Every element in the food array menu counts as a unique food. ## Instructions for manual testing - -{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} +The instructions below give a brief overview on how to test the functions manually. + +- :information_source: More test cases can be found in each of their respective test class under + `src/test/java/seedu.duke` + +[Starting up & Shutting down](#Starting-up-&-Shutting-down) +
[Add function](#Add-Function) +
[Edit function](#Edit-Function) +
[Find function](#Find-Function) +
[Delete function](#Delete-Function) + +--- + +### Starting up & Shutting down +1) To begin, download the .jar file and place it in a folder. +2) Open the CLI at the file location and run by the jar file by giving the command, + `java -jar .jar` + - E.g) With `CS2113T.jar` the command would be `java -jar CS2113T.jar` +3) To end the program, enter the command `bye` or simply close the CLI window. + +--- + +### Add Function +- The format of the command is `add /n /i /q ` +- Prerequisite: The `Menu` has to contain at least `2` food item. + +| **Test Case** | **Command** | **Expected Result** | +|:------------:|:-------------|:--------------------| +|Add 1 person.|`add /n abc /i 1 /q 2`| Adds person named `abc` with `2` quantities of item `1`| +|Add a different order to the same person.| `add /n abc /i 2 /q 1`| Person `abc` should have 2 distinct orders under him| +|Add on to an existing order.| `add /n abc /i 1 /q 1`| Person `abc` order `1` quantity should increase by 1| +|Missing parameters| `add /n /i /q`| Error message to user| +|Exceeding more than 999 quantity| `add /n abc /i 1 /q 1000`| Error message to user| +|Food item not on the menu| `add /n abc /i 0 /q 1` | Error message to user| + +--- + +### Edit Function +- The format of the command is `edit / /q ` +- Prerequisite: The current list has to contain at least `2` person each with `2` + distinct orders. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:------------|:-------------------| +|Edit order quantity to 3| `edit 1/1 /q 3`| Order 1 of person number 1 now has 3 quantity| +|Edit order to 0|`edit 1/2 /q 0`| 2nd order of person number 1 should deleted| +|Missing parameters| `edit 1/2 /q`| Error message to user| +|Edit order to more than 999| `edit 1/1 /q 1000`| Error message to user| +|Edit order out of food/person index| `edit 1/999 /q 2`| Error message to user| + +--- + +### Find Function +- The format of the command is `find /n ` +- Prerequisite: Contains 2 person with names of `abc` & `bcd`. + - The above names are just for testing purposes. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:----------|:---------------------| +|Find person `abc`| `find /n abc`| list person `abc`| +|Find person with substring| `find /n ab`| list person `abc`| +|Find multiple people| `find /n bc`| list both `abc` & `bcd`| +|Missing parameters| `find /n`| Error message to user| +|Person does not exists| `find /n zzz`| Inform that no names match| + +--- + +### Delete Function +- The format of the command is `delete /` +- Prerequisite: The current list has to contain at least `2` person each with `2` + distinct orders. + +| **Test Case** | **Command** | **Expected Result** | +|:-------------:|:-------------|:-------------------| +|Delete an order| `delete 1/1` | Order 1 of person 1 is deleted| +|Delete all orders from a person| `delete 1/1`| Person should not be listed anymore| +|Missing parameters| `delete 1/`| Error message to user| +|Out of index| `delete 100/1`| Error message to user| \ No newline at end of file From 13a4388212770a442c28b6fc213016972210c220 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 26 Oct 2021 02:52:43 +0800 Subject: [PATCH 210/429] Edit WKDG --- .../MenuAndOrdersSequenceDiagram.drawio | 1 + .../MenuAndOrdersSequenceDiagram.jpg | Bin 0 -> 15931 bytes .../MenuAndOrdersSequenceDiagram2.jpg.png | Bin 0 -> 16173 bytes .../MenuAndOrdersSequenceDiagram3.jpg.png | Bin 0 -> 14226 bytes .../OverallClassDiagram.drawio | 2 +- docs/WKDG.md | 12 +++++++++--- 6 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.drawio create mode 100644 UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.jpg create mode 100644 UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram2.jpg.png create mode 100644 UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram3.jpg.png diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.drawio b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.drawio new file mode 100644 index 0000000000..af0e391b8a --- /dev/null +++ b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.drawio @@ -0,0 +1 @@ +5Vpbc9o4FP41zLQPYXzHPAZC0tltSyaZdtN92dHaClZjW1SWweTXV8aSL7LAThYC2z5FOpaPT77vHJ1LMjCnUXZDwDL4hH0YDgzNzwbm1cAwdM112I9csikkY4cLFgT5/FAluEfPULzJpSnyYdI4SDEOKVo2hR6OY+jRhgwQgtfNY484bH51CRawJbj3QNiW/oV8GhRS19Yq+QeIFoH4sq7xJxEQh7kgCYCP1zWRORuYU4IxLVZRNoVhDp7ApXjvesfT0jACY9rnhQ//fp9ld+76899J8mdwsbmLP+sXRqFlBcKU/8ID8/IWkAQSbjXdCCgITmMf5tq0gTlZB4jC+yXw8qdrRj6TBTQK2U5ny7Z13OAVJBRmNRG39gbiCFKyYUeyEsviFe46usn364oIXaAb1EhwuAxw7hel6goetuAIvQAtU4XWJxinTNuc+JAkpwfNboJma6cGzW6DJoMEY/8yj1W2i3HMhBMfJMEWNb2JUBNO6LNY5WowoQFe4BiEs0o6YUCSzUN+fGiL7Teua7u5yoSu7W7DdzuZoIAsIO2OqNy0vXzV+LAVdAgZgSGgaNW8jVQc8S/cYsQsrtxh1HQHw5RoTnBKPMjfqt8ekqIL224q0iRFBTAtRVuXKX/t13vRqNuL3jzUnB3Y1qhVRVrJycFDTVyYPWPNC0GSIO8/RliG6IOIKLb+Jt5k6yq48k1nbBW+2O0E5xJbrsS/fIX2jS1z3BGkO2KL8Qg2tWPL/ECy2+BSr/SdXXZ1nGeLwoKDBrou4vCMIr287ERSdU4d6UY70mO4zstOVo1McRSB2H83MJwfaV5eTqJtjSJ271uAMhzyBwkl+AlOcYhJlYofURhKohq6jzimvGrXbbHnivPnOciIldOXIVrETBYh39/eG4ALPEYLKzYPw5PtqpNUjSdHwZMcb4ejqV1f76MpRAn9HWlSJM63paldo35BwyVht2Fe3b/7dZlwmlWdPT41E85OJooG6yMLkV+Yj1GTD0d/Oz7m1mTuPF3/k1B6dwXv8NXiGarmAydPxtJYQOWzqmRsHwsjtxsjLyWrsp09WgU+bNTgQ21s7a3D880tJIihkPtv1QWX5bzolqv++IXdcmdFryva6n2OeCalvyG11baI2xeX/mYz4EfWcUp/+TvC4L52iSA7VOmv5Fj/H8zXLKkVUJWYR5uvqVGzzu+OtqQppNG3YZKnSodD6QwHSJY8QHJPnMn0cQuT7vTTRK068xHjJcfqO6R0w4sskFLcRFI5QSrGtbtz16vyVGOq3B46M8k1yhHrn9T2+lpnUtP7DrR6p6u+9K+eyXzu+/dP9mj5x83Xh9HM1i56TF5+i0JGokPhBKeqOyx5nO/Yw7H7utLDGklduHuc0sN2TdnmvXa1zruHLT2Urt/uc2AGvZTCs+41W6mml6sK/uWpsyL7HKjXZNvq79wFZdV/C5iznw== \ No newline at end of file diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.jpg b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..47ef097f18d5b31bff2bf492fadf74a0f9dddb6b GIT binary patch literal 15931 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

3M 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 b?ak)tHz&MXhgB>73|wu`{_!l`yu$oHW~k{6 literal 0 HcmV?d00001 diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram2.jpg.png b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram2.jpg.png new file mode 100644 index 0000000000000000000000000000000000000000..7afa4fd0235a2f585794a87f5e4e6096afeddfa7 GIT binary patch literal 16173 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

O3rWh-l&rzJuM@o7~rXE(rhWb2&#C$kl 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 D`wJnS literal 0 HcmV?d00001 diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram3.jpg.png b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram3.jpg.png new file mode 100644 index 0000000000000000000000000000000000000000..65ffbe5bdc22f2688f466cf609e5cffdafeeed5d GIT binary patch literal 14226 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 literal 0 HcmV?d00001 diff --git a/UMLdiagrams/OverallClassDiagram/OverallClassDiagram.drawio b/UMLdiagrams/OverallClassDiagram/OverallClassDiagram.drawio index c0826a3361..cfabb47893 100644 --- a/UMLdiagrams/OverallClassDiagram/OverallClassDiagram.drawio +++ b/UMLdiagrams/OverallClassDiagram/OverallClassDiagram.drawio @@ -1 +1 @@ -3Vptc5s4EP41nklvJh5AvPmjX5JeZ+omqXvX5lNHNbKtK0YOyLHprz8BwiAkMG6Mc7l+SNEiCenZZ3e1K/fAeL1/H8LNako85PcMzdv3wKRnGLrtAPZfIokzycB2MsEyxB7vVAhm+BfiQo1Lt9hDkdCREuJTvBGFcxIEaE4FGQxDshO7LYgvfnUDl0gSzObQl6VfsUdXmdS1tEL+J8LLVf5lXeNv1jDvzAXRCnpkVxKBmx4Yh4TQ7Gm9HyM/AS/HJRt3W/P2sLAQBbTNAOf+znUX06fHv748jD7cPP2a7v6+1t1smmfob/mOx2S9hoHHF03jHIloh9c+DFhrBH28DJh0zj6NQiaQ18KX94xCivYlEV/be0TWiIYx68LfWjlOnCgOb+4K1A2by1ZlxAEXQq7p5WHqAgz2wPE4BZuBhE3PYFvVOEJX73qG7bNljH6E7GlJUyCSDhGiE0jhFevF+MFeaj0wZH/vEdn4aJpJa0ejPZpvKUqm5+OeCZb1EZJt4KFkA6zXaLfCFM02cJ683TFbZLIVXbMNT/SSxny0oEp9NbPjuBZP1JrdldKS8ZLSQLLZMvYKdbwNfA3QDl/T6QhfE0hAIY95TN4kIV2RJQmgf1NIRyKURZ+PhGw4gP8gSmPu/uGWEhFeBmMYf0vG9628+Vh+N9nzybNWfGh5wyQIsOYPn8x/ZqJbnOw57VDruCKyDeeoiWgcCArDJWpUMncjCUyNKg6RDyl+FgPP+Q0ESAYyHI2/v5LXN4AleP0DmUsEB67K7RudeRCzzu3fTafDT5PvX+8+TzIHMqMhDpav4TkOWnyJ51AC25nnMKwaXIt4Vwp2cmh8CyArwp8SZKsr8gLZupujXOf2LZ7qzLYIuZ0hpDLvy3MLdGbARlcGDFQG/BaQs1pyrrNMwtQk5O5C7/LWaFqiNdqto63ZGTS6BM11mqcT7wNj0j6LCZhtWQoJSb+nLQwopnGp2+UZeVDv2wnGpipNSoJxyssrFfxjFdxNKfAD73yVj/pCZuyknCe16ejGiJ/MsyzN8+51s+HT1dw22DmdWZcpAXXJbO1a62uakLBpfd02jiZtrHWPQswwSDxfKvRgtErXpItpHdmgQMrq0B7TLFs0bZO3D+kiey4+nDTiUqP62VqnW84P8Xj2GM+f7AewiK+/Wcvh7qNzbffapYf5sfh86WE6lOED41KHDWH2FpVmviepVeehQQeGEBoAcCvsy2ZUj2aRRRgtFeUyuPioCqkPe3wBz63X4PlJnGzFpEsyRFKiadSc1fMpMi5LSjyVatJ3tErh+rT+IjXPxij7VT1npc6lHXWZXZEvP/SX/ZjS3xmXIaluDvrAGBT/gMANVx/088PVEdqejSnyFcof8mnGxxG9W2S5uMQsdpygIhEiGpKfaEx8kkSigKQpwYIptCKSsoTkcILn0B/yF2vseSk3VUcika+1JGmfYOh2JcFQpF6qcnV3mZd8h6NQDg48/Iy9LfRv2cE3PQJH/18lAVsM9U5e8byAkppch1CzCiMSSCoopcc1m1ZAU49DhasDxd2VpcBh0FlpypGAyO+uEjg+wTU6ZE81peeWiU9DUaFRQy+6p1JheY66gnLFclnhTFgdoVw9fLVY2S2xOkdhT7k8uSJ6D8OouTx1Bvur5gy6wv4MVTHqHFc/SiDqbijY8SG/88fBZksrVsjrEnVXaJfjmXmyTarwtbrimf1fsslmrNyWXOzOf2kSNhfNP8SijXPIRn4zAckrMnkFJpvWaqzH9FQJxW9mMZzSR6sxZkepNdD6muW6BrCMganrjuD5rOqvYWqqJXIyZIsu1NHaZezHUx/WLH6ZlnUvft8Hbv4F \ No newline at end of file +ddHBDoMgDADQr+GOkhl3dm67ePKwM5FOSNAaZNHt66cB5ojbCXhtKSmEFd18MXyQFQrQJKViJuxE0jShebYsqzydHDMPrVHCJ21QqxeESq8PJWCMEi2itmqIscG+h8ZGxo3BKU67o467DryFHdQN13u9KWGl0/xAN7+CamXonFAf6XhI9jBKLnD6IlYSVhhE63bdXIBehxfm4urOf6Kfhxno7Y+CZbPdvRyiH2LlGw== \ No newline at end of file diff --git a/docs/WKDG.md b/docs/WKDG.md index 5aba93511f..cc7ffaa6da 100644 --- a/docs/WKDG.md +++ b/docs/WKDG.md @@ -24,10 +24,16 @@ Listed below is an example on the usage of Add Command. A new `Person` object will be instantiated and the data `personName`, `foodIndex` and `foodQuantity` is passed into this object. 3) This `Person` object will be added into the `listOfPeople` in the `PeopleManager` class. -## Product scope -### Target user profile +## Implementation +This section describes how the commands are implemented. Explanations and sequence diagrams are used to describe the implementation process. -{Describe the target user profile} +### Proposed Implementation for Menu Command Class and Order Command Class + +Command word to invoke the Menu and Order class: `menu` and `order`. + +The purpose of Menu Command class is to instantiate the menu of which the user can order from. By invoking `menu`, the menu will be printed on the console for the user to see. + +The purpose of Order Command class is to ### Value proposition From c949fbea909c915a8862dc56a072a96870a82451 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 26 Oct 2021 03:01:48 +0800 Subject: [PATCH 211/429] Edit WKDG --- docs/WKDG.md | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/docs/WKDG.md b/docs/WKDG.md index cc7ffaa6da..67245e3099 100644 --- a/docs/WKDG.md +++ b/docs/WKDG.md @@ -27,13 +27,29 @@ A new `Person` object will be instantiated and the data `personName`, `foodIndex ## Implementation This section describes how the commands are implemented. Explanations and sequence diagrams are used to describe the implementation process. -### Proposed Implementation for Menu Command Class and Order Command Class +###Implementation for Menu Command Class and Order Command Class -Command word to invoke the Menu and Order class: `menu` and `order`. +Command word to invoke the Menu and Order class: `menu` and `list`. The purpose of Menu Command class is to instantiate the menu of which the user can order from. By invoking `menu`, the menu will be printed on the console for the user to see. -The purpose of Order Command class is to +The purpose of Order Command class is to print the orders which the user has ordered onto the console. By invoking `list`, the order will be printed in a list format for the user to view. + +Hence, the sequence of which how Menu Command class and Order Command class are very similar. To prevent repeating of Sequence diagrams, a shared diagram will be listed below for the Menu Command Class and the Order Command class. + +
![MenuAndOrdersSequenceDiagram3](https://raw.githubusercontent.com/WaiKit-nus/tp/AddCommandClassDG-WK/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram3.jpg) +

+ +:information_source: **Note:** The diagram is shared between Menu Command Class and Orders Command Class. + +
+ +The steps to using the `menu` and `list` command can be seen from the sequence diagram. In short: +1) Invoke the Menu Command class by calling `menu`. The menu will display in the terminal. +2) After adding orders, invoke `list` command to see the orders added into the list. + +**Note:** The command `menu` and `list` are just these two strings. Any edits to these two commands will result in an exception being thrown. + ### Value proposition From 3c567c00b713e7e5d8a1d780a02620ee3a386f51 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 26 Oct 2021 03:10:21 +0800 Subject: [PATCH 212/429] Fix MenuCommand bug. --- src/main/java/seedu/duke/Parser.java | 2 +- src/main/java/seedu/duke/command/MenuCommand.java | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/duke/Parser.java b/src/main/java/seedu/duke/Parser.java index fc34178230..5a487f2323 100644 --- a/src/main/java/seedu/duke/Parser.java +++ b/src/main/java/seedu/duke/Parser.java @@ -38,7 +38,7 @@ public static Command getCommand(String input) throws LotsException { case (OrdersCommand.COMMAND_WORD): return new OrdersCommand(input); case (MenuCommand.COMMAND_WORD): - return new MenuCommand(); + return new MenuCommand(input); case (FindCommand.COMMAND_WORD): return new FindCommand(input); case (ByeCommand.COMMAND_WORD): diff --git a/src/main/java/seedu/duke/command/MenuCommand.java b/src/main/java/seedu/duke/command/MenuCommand.java index 3dbaba1aa2..9a4905aeaf 100644 --- a/src/main/java/seedu/duke/command/MenuCommand.java +++ b/src/main/java/seedu/duke/command/MenuCommand.java @@ -2,6 +2,7 @@ import seedu.duke.Menu; import seedu.duke.Ui; +import seedu.duke.exceptions.LotsException; import java.util.ArrayList; @@ -15,11 +16,17 @@ public class MenuCommand extends Command { /** * MenuCommand calls access to file to retrieve stored menu. */ - public MenuCommand() { - priceList = Menu.PRICELIST; - foodList = Menu.FOODLIST; + public MenuCommand(String input) throws LotsException { + String[] splitInput = input.split(" "); + if (splitInput.length > 1) { + throw new LotsException("Please make sure there is no inputs after the menu command!"); + } else { + priceList = Menu.PRICELIST; + foodList = Menu.FOODLIST; + } } + /** * Prints menu in the format of index, foodname and price with column headers. */ From a4e92c388c42aef25bb2fd228117df069baaea8f Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Tue, 26 Oct 2021 11:17:28 +0800 Subject: [PATCH 213/429] Sequence Diagrams --- .../AddCommandSeqDiagram.png | Bin 0 -> 36323 bytes .../deleteCommandSeqDiagram.png | Bin 0 -> 33629 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 UMLdiagrams/EditCommandDiagrams/AddCommandSeqDiagram.png create mode 100644 UMLdiagrams/EditCommandDiagrams/deleteCommandSeqDiagram.png diff --git a/UMLdiagrams/EditCommandDiagrams/AddCommandSeqDiagram.png b/UMLdiagrams/EditCommandDiagrams/AddCommandSeqDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..8995f3a69538d3104d8cd0b76d8605e17efd8317 GIT binary patch literal 36323 zcmd?Rc|4TsA3v>vK)mO#{tC2lx-L zv9TS}*1B%Q#u1&H^&82w4TWz<0N$%x=wf*(iUpJIW-x(tj zl!1&LY?nJsNnf(I*4sd5NDKZvV0N~S z!anpKrAoUJ=R_!bd+`L7z}m_7@H2}m$Q*1tuOfG_JzR~3 zvK=`BT(V__g4rKF1TNW5s{YTA(S$@^YKOP!x2$T*YZZkV-p659;cG1uDRN4bpdIny zVD$U4D^_VZTG|k_KhQhXhW8M0ZhW!uacs34+imy^Uo-*u$2HG@=c>VIf{OE#(w<&g zpbDxc9L%2i9L(-zrH|$&b95kPAkSLy5XM&Qh?|1m;`DeHFKo~CKVW-il*t^Ii%(%L zNU34S7HSHzj;XPaYkQ>wW1yFh0YAkBcZ#KCrHTH{Puqu3q~Suuu-X$GWEE~F(B3Oe zIyT?44Va>_ExOrTbKIei*aVepG8?os>C}PD+z2d=0JR@$<%dOcI}MeaxPFD=V|; ziW>^d5lG}-b05=cEF8JYW|!ad8v8&~@!9j7bf z;H_@(Kql{i5vIIkSha6Rr>=VFHRGX!<*H*7)6M7#9M5AnL{hacnv4LmzuQ5UYPKc2 ze*UVNCd)%OG)MJtid>wFT6J4Mm)B^RwWQxMF7OS`CrO-{WTyr%J$>ovpAXlFY1%)W zbgaV9UCxvtxu;|(6`~M7hw|p?wel@FuI%rV2_8FN5~AsC2k{+Kz2KbSkztMWt(!W4 zTN4c3VTJEpX~D+@x3Nn$rqR$&;o^__(`m+j zmN^`GxsJStkd7HLV`XL4sq}U?Rnn~v&};safT<{8)cA5`cJ_OZ_(7l4loZ4{B5suE z#X}_zs=U)?Og0ZLlr6s{Q$0w`Zi@QNPbMs4A5KNU?jDi{-twobd|pTJIiYgKLZ94f5c`bK_<_sGN1OLeSiyKB&F{Kx z&|`XWP96_%@l7=i!R85vPmXnRhBzx=!P1%e6GUmENX= zfF=+4kRnAC5nJTm&Z}d(9P@3n)tJo4?HC7Jsw?9Vg`0xHl9d@>Y2Kj|3&fAZp>i;+ zLdZpvXDN@iJyy9UQ&P)6hCpzjjfQw!F>TnAUE;bQA}~ChJX6UJ?rB=7|0u4aD1rgu zglvV~KYkWk_6V5C?j!I7EgzcJ_flV-3ULNjj1IUJ=&g%a;{gF*7=jkNDQ)xW1j=E& z_)cTh0=T+6oldk?#Q84=yq*MOKc~I)^gX{y6#g#qjW=@FU)tZo@sN-)BV>4fv8t|(JQ;K zx}e;_y2*%wt!Bh~=X0Wwrxu@FEQ_6m#HxzCcc1OX+s1Y`0ir2yheu-CD@!r#EOkP6 zktS2d+-a`e$cU`mf>qVnKX|0xxh3g|Y_&I6qL@hH;L2j1Tj-v0dndeLQ5-aT@>^1! zkS8)p788_#*_HWnTgey6t{*#8($GY-Gq%wT_Xnwa3}nC(+(YKbGX?Y(js`KDn*B<6 zl!bljgFfGJncfBC@g8c~>`_@;P!H&eFnnhE{af1siYu`L*@#0~+6fWehYgxdU`^I6F?VQ*Hdx@@|@KL@(|ldL~q0dhG~-E=%co#&bYq4Dy|^k06n3^JlFE&d6YbXbsR>6z1JrvVV$X z&fB9ikd350D^{xg2vWHT?b6)+-v_?+xRgE_(b;Z&MwQ_dUjne_h7t z`$T%ZtxREtx^6hcd$_=oTFe z#n1Li!tSf0#$#Kt>6WNv2!wo9lfjv6LM9<=%qU5-L5}^bk~j!DNpF@}J~&B6CNVWD zxJs~5J>Gu0$TyCsF%Rz~IU*UP;u2K7&$Ukl{_^+LKhWVeFM*7fJl5sdiplnIIx;p) zK+dOBe|}kWuf>&yQ?WD6lSfBz{)wbo9^$GGi2gK>mcy(NEm9qDh<#BX`$c ze9i(Vl&8ph$u8ZqiLsebrGn|cgz-$tph$dSZ4ZA<^Q-WQ_B+THNMtde(!3Df1xMNR zCA`y?6UPP>_>w#)n+o;+k4(5}Pik8z944jW=z)-M#DD`70N&^o12~vkf(?QO~?2qr{%K;|1S`-6ktBUp2hC zCvou<)!mh)RM{OBF5fC9<=n=sjL+w_Y_R1%0blF6j@xOyRH z&yM&gFuQZ{>>1K~1Mf&{1$a3Ep)pIx8N#hXj+9<$s+nA4dmRn^E(xphO;Tg*jmiM~ z=c-YGgf;9PPNw2a29gwZ+}r_#mYS_$E4}(JZPqfvY_2nWTR~>-di9HIFiglt1eJ1Rx@%qJfS)mnAS$ckkAmn?SJ&VvbMpUrwJmKj% zEE#c4L&89*vT{Xd=Vk5~pumWJjvwVz-}>s>rQ_DH(k4)o1{Dt3D)oL{IEa10EeVXp zr}?8eG3`E$Ib8+ZxN`DGF(c_11O3BthVS9YAC*c3cX>zob7`O$II=CmK3Lle$PA=~ z2e#+rz8__aU8@vX$`+_Aj_mqT=9Jp*N4S`;3Z;iWZ^~YATVRNPoQuw*iEholOoQGCFK2-Bv`5+_xgYE*Aknux&$pHl;Afj1%6C)W#~zhnBhIrmp&? z!I>ub*>JG2nT4yUFbd4B{PA zOzaAiQ?b@#puvA5teDB$^==e4$L$3J^s;gI&YKWxIedFPi>+R`A$@es3lsj!IDoZ7 z|NrVj*TEQNe`4$tnfmXUYs(n9XEkS%DBYI^$353Zmt`8O%jLTNn1SejUil<**-N&O z*|?ISZ?YX%qR-+XeXsIs7V>#+f}k%cDrdsE zQ9!K9lj$gzT6gVC1dXLbIc^mRj;&Vvs)TrOJo*eopc%kXA1*!yUYw)AcA_@hWAkpm z0OX0}24I`7Yk`RP`pX%Nc_%=Lunp~oCGNh%FA`XNabH>Zzn_5cL___IhIy}%v zT0)>-y2K_QHc)IsiwCiAR@qNsyV2eEq(;4w|o-${6?|9wi9VAe;t(8QPIrtUTtt^bU({Wl)T^sJDUd`-R897gIb><`;P)SpZ68pPUF*=%_QW68K{s44bXEB@=j=GF=M!kIze zW|K)n>=L0r73DNH+V#k9*c`1dRq(OU=}^%n(`P^;-e+Sfl;V9uyW`m7cAtC^<1KoP&ROIw?Y2&kB&Beu8)@ax-G! ze`48N8E4adN|Eutye>6$UYGp+*XA1U6Cv&PCC@TWyyG&MlZ)qh7k@$6tkgsG`|Bq+ z@M9`#>LmfS%en`L;=E9+)|X!&{b_YE*2p6B1)q39Gwd*y_ubnVsF`W&)7ATwMTK~WJr6+y8bh4s%zbiqxEJo;+Q4S zDYDEcT-JRV%q*(Erqk^7(5Dc`2$d5yjAu8dReEWt=W*@X3<~$%!a8EdHd{jPO;}Cn zHXZhRG=k|3Oxg5(FWgHMWjt`s*nH`L7E|JU!};OM6aO^1I`YeLMCA|yG37t6nm81& zd2(5H$qqz2a}A+MijK&zddz#p!%@ErE?=+OvNg}8nnWh+30e3tndOSJv#PxG`lDw( z@RI`<@t1Y}ojo&DfV%&pB&I&7U)a6EAYBRCyaci;g^B5Nr&^Xxsc|m=W+divRtXQk zt`sY&sV3)F#CSH+4Wi~i8vZa`wO0CQ8FY$-^lh&8z&W5>NU7+Mg7lps?%L`jBzjTX z_o9(A=Sb(b3_nk_=^i7Qj@E1pj<-i5b`%|2$`o0#iQhu%E?P@7Z zGj(1xA=G$p^1QZFAd0Da$xvyu;M=&>d~WpD_mZtg)=;3J<6?3NiaxZ|`mOvzl!)XX)NLvaF22vL#mQXUHu0`dT7u z9jI-0d7EK&^xJNUXJsWo*D|hccAGem^~8FG|J;F3rsULY(YmaC*E`xIz=iM{58T9D z*yx3iboy$19MqFOsCkrjJq^BrC%zFocob(mQ2E;CGU25&oKe`o+qIBbL6&k4-G8A? z<;yOondQ+jDPs2bp_mZPUSk8F_Ua@HcQ54aExEH;uv)P_eywdkGAX2->|f9+G)3B- zb+!)Xh)RCRwSiD+KTtFdE@x`-o6m1WJzFWr1eZ7ZvFdgCA3-c;_>Pq2^rQ+6eLZ_p zBZ`;jIBWkoCwwv^w3r5srPVbtaVM$5w@h#Hg=nFL$9glY^JkN3d*9SGkfPc|U}9YO zbe}0&7jyBs;HL7G<&S~hB<%Bo7o@DDL_`K_rOQnl$c-k*-Z2-UMO(rA55Z3z@Br{H=Ze;L9E88F; zzV@=z)FLLrGLfEI#DKdR5-Orx?N~Wq(8{!I1#c$#{nj&Lc=V&EL~AN(Ypo0wMv&X+ z87+ET-H=}_>FH-y{b?eBp8F7iJBqhvHya6g+0pNB#)+3oxUt3xQ2dNINzxjpf7x4N z9XX=zZqKe{KqoG8ia{YEFFMP*dV)@`;qup*94{K)szbP%B8WC=iErv2)rB6&sP?{% z^+MXg48eUXanQ^AQUr%x2Xge+SeR0C?m{@RLHrCXhowb?T(D*>xG-Yuif+psIvwIz z&AMh+1~v}a3`D)lW^$C{wCC0N(VZY%-M3vHvu@VD0W*ktTI0CEZpcc~p3+Go-E`b? z?Lc<0(-Hrv6Aw-H5y^t}@Vw1Sal6ChJ^f@-^V_M`mkAD~rdLYgnxv;?LRJlG`(KWu zQ_WXYd@}5G07__Cp)am~P;y!@x1l~4LIiwi;!7Li4#}ylY;F!?;WuAD*C}&os__m{ zXZ32Q!U8LF*L`>7=%Kr;Vi$&x3nQ4IUypNLMlp$>nW|u>zoUl$oL#)7JnA@#u*>Tsrx- zZuuJqgl`DeJJk~8)-bKeb(Qq7ZpdICYDdJZn_Y-o;wujiQ?CHn9C$a02smKjbwf?z z2$oD3Nd|-Vmld>N=1vE@f&ZXZhTNC3gTwKSNqzp{$;5p1l~?%Vv=%PGCMhzB$CC{Bxq7E9ihcA77d{D-`;(my*qgexzMvE zU~bbcg_7)6jUV7HMe~Y~BL(g@`kWKTjAv@yIfrdt;HLSkPB1hR&U+QU2~iRVz~|U2 z!NXyvH}hr=$}ZZPeiA3b`4H_~lnY{rDd73+D!tY1iBtld=q>>IQB8WtOAEOfYD@2% z)71Z5s>G<#BLozCYerF5JIgOtT-vB$(9~ZOW>p=#Z9K;RT%3Oirwe+`-^)!8#_pZg zjZA%*7TZ4xB4A%ox)~O-tn;^!kmeD1Cv#ciyPMsx#vXDv%bYmDFx13Ns7JsWd;8np zCeq9s*+1LRUn=>bM<%+;Zz}SQK~G|~qOwtX>n#ZSN{Bvk$ElMT^Zb&h&91%5_^iPu)$WHcD z)B*IENsYLc@g*>h(|{2)RAWrzSj>8?BUDfK$J7UUVlvH5UMshx+>VAay=Ae*OIms7 zF@s3zVX7d)oA5_^`Z{rbx#!D;9z#97KH3u(!&P)tF15s`*&fJDRJcdcFH>Tmx|KKOF60TMjloXzVmNF z8)=j9-Wx=~%3MYPg0E8KoQh50P;N$voPuTDv_C0$JxuQU;o5T2+g?n+^--rH3zXnW zABP=iWwUO&iuql=?fq$N`xSZu#SiR+>=bO!O*OZ4Z2G*_T2`2W0KYRaI-591(KCsY zi*T@do*nyiT6@jYm;kWIXE73LU|iG?<5b&Raxis^rt>rvYQQ;yMobe8mI$K2)>+xo ztI{McA?6|5CtU}*@s^dVHxnmQg#wrFElFpCDMESpb?)9rqQ%Fi!wL?KYpy!CTdlSA z4pg{TCi=e7z1s=;N789E0Yw)(M zT|u3BeRf2wXK^t9Z4-B>u%~_8T)P1L8g{7IyP9IWDjinABc6f%I)8(iakt2#a;E79 zYv!#X?{Si&-lA8`q8aP6MPskFU0At znCVsK`IH*pB-+a2OHU9ds0XtXy(`uP!^ihZ4@J$w83{&&r3}hq>xn1h8iywX`Rs(v zJkb&#DLNk-g67MDu{-i?ifU*(bDGg09?3p{n>+$keuHMdUFE&$Dq|k5-IXjRUH$t9 zb^*KLLfJ&s?^El16vdh6bM2@Hhlj0=Trye4vYf&6=7JL9!U>;DQ31o`x~>s{vSR!p zRK9Sw1%0WmWGk>)+CMU*G4EsFp>$#EOy4;O)a(_M*gi7T(Ab#uA{gh9^n@Bbv3YeU zo+*+=)d;$^ui(I-8nt0bs9dp%&=GjDplpdTqUz}3f&X)IGC$v_glAA_X?gkD5T`vg z3ORp9G4=*Tp;P-XVPw_&A~Hoy0gmyc$GoAZ1cchJMyXZpDtU&`oUS3{em&D}C;X8#1b4Mn4MMf7c-9j3&0&YAjIpMBQQV_YajW!^#3RlEZ4_ z0bNeH1#c51ROY{46XHAnfWR4&v=L2f(?%-o6+|&{EP9An(yBUt=!Xf$2fM|+?>;Tn zriPS1SRTHRfpSioNv2SAD~tdF3gqg}(USF;OT*f31hrV9wZ1knak+9$7!!Io)`(u_wrI^o@V& z*C8z*O&9p|L#naX0}kSzMzhY@6V{o+$sr)iC4y_Tsz{^Rh5yVH1c7ECs#;!A)OxKe zorh}iNO)Q*LXt*a;*jhR&)%kV`9UU*&`J34C=<<-Q zY2o2J-jVgv#cr}N(&kK@p)#tq_zt>U!EH=^b^Ty!Bg4aPTWW-`&;vKp7{2I>Q+Gic zRN3(uBiO2mgi<*F;*;|!yj5Lga;jXTGx^hHoG$5efz$-YO3kdw`&Y7qf?Te$b>x)m z9vOM6KD%38oz&z>rwUcuiS6M$q?h|QHJkQr9`vAJ_aEFl7i;&RYQ>u83GH3rQ9&e0 zGp7?_=W-r-B6T3t2}n-cJjtIA!FJh=?;rq$3cvvU3^l~s(rC!$Kt|fFaUejCty66x z!ma`m+Z2x9(~EyM2f1^!gB~C&P?)gVf0C!*NZKqX8=knCmB@S4X)YO2P`M--9$(jB zb+XJ>_R!Q^WJV<{>hv6xu^=2mF zFl<k0oSSIV?l=5_yI0x-(iFeiB~abJ(RN2YaW%eu!Gs)6X^?WE z*ViLOfnI{)nZE}ex`^>(k~0L=S@3p4)+RYO#2rV$xT!Pk#sIHoeXj~)p?Yu(UkZxV zu#n1{T<@__2xj2RN|+V*Xu`uJX7i?1h&hTvbMfDD?@3}+&Y^L|lT5-px2EDRo9M10 z^^y_t0J#UA=&|WJ+9sUnzI9J~l%}f?gbHAw!m%Oc_a}xA4hJ{f?J=X6k&sP+!}TUA zP3ASz6mFXrHE0wDQsuVRUsRstzTw(A*Wa3|%j=d>`Cz*HsRM||^_5%*V--fo?XjdS z@Vclof_esP3Ua$4@(#UShK?m^Tca^Uw>c`bx>^r;v5bimC z3v3s#vPx^$m*l5A0URYMGMP*a&8P=$#`)jS52inf!foE|w>%?$SU~RH{P+DHhlN>l zbWx9Eh>J4~Q^Pnx+Gd@d4bZ{#71hoWNNB#&e4|O(bx`t}dcbT?jBJw}Ia~1t$B7F; zUkRk9b&FfyzS69ZJefo=hy0Q7*=48=j4+xMs!HkqoV)ihVzE^*BXA{h$J1-bpl?+1 zjF9CpybXM-=HqV6VTpjbp>||&HfumueREJZ>Ttk9jQHL)_*83X#@V3t6<#5U05w)A zzU2uc1M#&FN(`A<2&6_;F>h0)!!9~iO&hvi0jzr)!e1%IL*AI#H${*ZSXE^OpTLCC z@+8?d`~HGlj!qD;;j?YY#`lo&F2Q%2?OwVCZ)uYoYx3_0UyXBY7Y2w`yVQ#w<5{C} z?Fw##)lP5iQaThg6`jXlf0H}((%t9wlN(fli-jSBebhz8JWEpE8N!fynLFdm%R>M4 zKYR%%g6-3rqw=iq-z_Q$Crot*6a8mGPXvyf0$#oYn8oM&$Gt*6-yZ=lA9m~|hJ4sT zUv6Rr)0a`CM*4C&rV&mm$4tUW4a3&(eA-H9lB<{iNt!kawSkmzjSex(+Sw0-zkYaf z7_5c;NPe(a*eefQapJ?h(4oXLG1p?*3#{<_l(duv0eRrpCjz}@$j4^F22~dC!)|EG z-wznb((P^+ctbSi)lpD5M+ZzU%X?6N?C+(zcQvLlN!~34&`=z7Q zOK10srw3gPH#Tq`UCc_%tpchBp4)_YJVFAmP5<(gZpmVh6HO+` zm*llEWK}Zn*~zUc+dxjyt+RrUnl#9eCJ8Ty!&aVDs@Yog8%xaOMBrq=ki4Q_(^^ge zd?JYIi(0KFVv)l*zn()VtARR9WrGLFcUo|G!UylG$eP=x{PpmYd?HT>SWzvL;~L;0)$;&L^;o_a+~EC`X2Z#{>|ApxwChb|0T5 zA4EG!e=)DUZ@e(olOa8N0ltu^q>JhW!WfafoKdn)4o^^N0b(4!WKuq)hq&9N(V}{d zph0MaR4`Lp2~AdI-|Dg*aIzEY&1L%PGQ6p@LLh=}2T~xOZiiJMx~9m6)cLiC6iuwu z0b3SL!NbB>5_9_5M2Hl9(NLg?Non(7mMx62CbyPtP(id|X&g(R2^w2##-SMNQOj`V z#;hT0e1+2Fx3xt|Z`x`Pc-#RoDq0g(!N#6*E~DA~!8U z-ZWOJh<{7Oes&g-d}M2oQo}87Q>`k7v*3J3>25kIZ}~~ucL_FxM=XbKxzxlcul8E5qkx=u&YZtqHG&z{H#B!f`;EwuN4ns|&Zc z8*Q72lC8BR0{e>evy+L~j|7w8Fi7(&2eV{i#ROwaHg!W1(>_Yk?P^&bnHh z*#+1A+7|W7cs(N{u z4xH?^>ZT3GvTKOcN1+sQVa0owJ|QZmJ$E&#LwtQNHpv&G;` z4xbpy8m)30OJi|HShDZom>(mZ zo0d5jbD>i*O~fXi+rNh(m(`tYC=rb!q3e4tpaZ2KYtzcOS{vwxvS2@#-OqaI7*|(ibIn>qtQ+4$ytk1haR~(3_*> z;M|sRkL(s;Z`w?%&8l#zQ}S&5n-{|P8?qj&YwxPpIASzqA58953VkC~koWoA7N+p2w1awrIAf$|f&ll83sR&U#W{``wLp)X_YGl>W`(>J2s=Y0c|zb!qH zlBFzd>LfzFzVCk0ZEVj2+w9N4epFE$)pX%b2`=mpB8X877hrZiogRZ*DHA!z;+G+|I`nAW>Pq2lLbU9^pLF+Df2Q+ za5;pY9ur?VQB8_f*@VwHq zA55tl&OJ~RR*v9sQO7Qtf?LjM(`s`4oQ~MYi}rvD(r1Y7f%&uPhYHSPwnXD@AU6(U zRQJFNt9754f1IVH(%{g?uGgqJ_US z|DCMf9XVmf&^{m$8QJ`kM|RZYkfE5H=YR(JlK?wly7-HO-F^j)eCgC*d@a|t6w{xL ziV%P00z4+PO{V{1CkH5n@RHQ<++K_z=URyAI$a-e>RRQam0jM4V0&7C?u2|=$U3c56qwIhf4x9B5$pZT1o{F^Fi>ezfyo zb-riZ$+n{aehbh~Rc!d4dGOx-;l_y#L5$+FBQp?%zba*5z4~D}V|t0#dF2vM1LM(% z)&56HX7i;Tf(@~J*KehE7PKwRm2efICZb!xe9V1#o3^5e04 zJkwErK6;xm*ij>940{F~vtcu8$-dIBfqeStFUZp&KLhF5e*QG(|L#qTm09v3T#4du zYtd02z1=4Gi#Vq+S8x2)iuY53XW)Z;+l#3<0h@l6FU)^URN#$p32*M4H)eV?3oC0N60JS%^zcnq-qy>xY#rM`C*Y1*(i?5u|21&uFysugl2*lh#hS8|%Er`jC5k9 zqmX3`D!khgaG3jOV+#VsVzDKKf>jXvih}(5{oS8{zlx)uGo^w^*5WQmB~4Z1v39@qfS6`j+fRfr09$9 z*6yc++so@?#`I82*@%(54s`Dy|0jf*BF{(MO<#f*)H8sl&(>PrH z_zWMjQy)J&apx$l__RKNi8n;EH((Qcq!m2A)E3oml!Wi`CjiG@j`Q1NdKZl<&Js=0 zQ<=R0R&ER%&mN!P7f3pGNd+V8+n69bSmHG@t9qI(>zBYH5d(d3J%zL@g_w8jiA2pq zN@2y#We^2sYC0}|rM&gHwU3ka5JhjNlvp&_^l+!nE2zVhT9ICbsQB0ct+G;qTfqi4 z3z{fJw4^vDBC_GOca(@2rqDyOP?PN}FYISzxt#{}x0)CVj+!X>aPX)$f8}kwIn`F$ zDU1AA=YUSpC+*&rFa6fm02){}9l>;iBtL9&&ufNFT)Xn77evz-n%3n z;_QiLa^}^Vq|G6Juos)VEyO>`LA~P3n_aI|$xZx1;#)_BipmP>R8115vf|YY9Wto= zOZEGn@Sssxotsi#n!dH2-RJ4M;w#7g@F>kLlTD z?py9NTFvH%=60uY8%W$uOAR8auZpt|bc0Yq^_pQy&&F@vMNHvwW6p0vZndzvWhLhQhMspw zsF$X!mk|auYOZ?cDa@1!17(-N=2Y{^B;d>=vNy>;nDmww@oTV7(Fv~Z1M6qmb=v5s zC{_>&3djNJ+Q+NBrn^mEK_>xyExtC|I7WGn<*iM($KNnLSN5nBH3Eg=CdS;l`IJ&A zm$Ad=W|L*(#tj8>5}_A7Pm8C6DVYZ9X^gXu$OU8X*#cMOhV$p7=cVJuL2S`#|HjqM zj_fPrVYefB&zBb3mL|b@bmgNe$0@f0QDL%&jtYZ`LS0Q4pHqvxy93S0PifE9h=1@L zLnkhlF5Qkx=*qsbRi~c<#XhB`+m?E@T2GF?2lnrI&pXXPmLTT{kL+7*_*)Ju;L4&t z>g8m?5`*j-SYBQRho$BMwvPn=3}42c$QoWOt=HegpZJtoema*4aVGhg8f|0B;2V-f zk%#V>3tt9$V1Gt@31N4iB(;?UzE)#=?(9bBZN#{*+A5~)$fk;sr(-(IhY@->%s?rj(3I1%HR6v2u^Z7l?!Alndz>`Uo-Uq z$`ZgT7R23lk`ofOau%=cnHlavo<%EdXRR3Mua6G0h>*{x)9iz{-;zF?+O$THZ#x2{ z-=8zcAs2cHiqc~D45*6T&f-he*#D#L|0hn1n1NX2*4XQs*vgA{ZUMOgI7aYqTvNql z^~|8AL=f4F=nVUqtwG!E!w%5gH;`7oLnc%N;Q@T8z|4l=1@V8|GnmY0m;X_~-#7cD{UsjRYD*i z%vAKpk&|CQJ^hj&b-r&pRx+?r-Ye4&f^rdFVilHhWdWxtw~q<@BXVR6w2lA#-OIRO z!-YtooJvw~8GaMDHCYgY}6}tO@1c980VS94`J*tcepn6>ssEQT_)7Nz5gm zjuBf$#X5gde+1y?|IDvb>jx&q0GQNid%@E~`d}V$(1m~DZOTcq6mpZ`OfHZsdGue; zP{v5CtZ1;-$aN^?&Kz<1UH|bbp#ItXYKt~4iiBB+3`KzBwDs3HME>(o1zGPY1Snf( zh9h$0ztl+C2>~08506;|QyrSyn>>Egeby@|^L%;J{Y9Mi<(WrceCI_t1+&Y6GsA#; z&9?pOUQc1zhT$H+7#QIp`(amrP)^s2H9UIjlklwzw`29};TzZx*$s<6t_G-lybS}M z_ws)cVSbuw+-akGIc8A=52|MTJ282P_28Kj+8Eib#5+AQ-PZ`CVn@--PHG~|n9BF1 zHVlxq>g^2u#T;7OmFQ)OdVjLc_si#>EOF^WS~U^*{%U*IOQfO!a#6}rphbis5s$wt6c=nyjo~AWSHub zKAxP2HGAL9(l9Ysed}jran@wMD$Ya=Ht`~fUZs~&$)$oB*M@iwi@;1R@)UZv8{3b8 z!t7f05-8na8PzrKQ}h8|Q&M11)U(PdHpw7ilpbcNKl;I9v#;U0kG~K=3Zb}npJHqI zr6S($o7aq~lc{M}1L)sKi>GljmXeu;**nF6?z!~!s~rtVs0PqNU&-ZJ$Q>ORv^Gew zvmwoqBKR)FT#uj|dUvQQX7{&h=huVr$KnuJm-m#{Pk2-W+VMS^A14YQ zko&dDF{Tj8pL}yjblK5ciHK{4&aaisL$d|WjrpJk+Ekmx5g(yDPc+q3Mv^bOdt6;onBsM)P7icwCLsOO2k(C zVQSmvK^tU(bn1-j(qv!YrOMD(=>%1CE|QkL0K%2X>yBvE+Pb{ixcJCcNKOVbZdzKV zqY>U@e`0bJkkSWL-<-q*Q8`$S zPWSY)=sK=k=s4Mv-;npE8G_i>8~o>F0_j6gotH(2Md?ud*Ox@#_&VWhQP{Yy>TZU{ zPC3pQIF{%hnQJ$bY^mQ!ESu_j&XW#hGGpEh-3=qokI#%f8Na39-whIvt5?(W2{^12 z`zIbJ1<;I*euptC0Z$ShwDBpt&iVFx{jP&gPLSK2i8VYAd*E!02DrNyaya!Ugoe^5?xctLw~-xFA`{f z$}Q-GU-F;AfcSV;zfT#v8>w6rft_^ms2vY76#t8kys0gX2}-T`7-xi368|_u0K(lf zM^&-S2f(?7nl0Fz${y0!Lz6q$<+1QqQgEYV@o#D|PS$;L>{u1a?*{`!kT1& zUVmSBJ)S$n=?FkJ>k3BnnF022c*uG-?KDO3JX_ZDe~lkl`lKY~Kjuu*nt@JVZWC5W zqVg40v5M;Z(XyES=BLyhw|D-V!2xD*0zPpE;1S+4pWgSkqQ8^x8*Dm~et=qHklPEZ zug-QiiE;+ul-{<) zezrI$ls(~{`E9hEO)%w<;&FrNT8Axl~P3zg#z z!o;Z5*Nhs?A-g`^3+mf|;s7#aDNa`GchJYzS?=Sa<5r^6onhbR81o;11&}-293!{- z2n%B8{@k!^-Pw??=sIMC@7-^gfRSw1Gc^cRCNi+tW`7cmd2d7^0%%td#^Q#BfcY)Ls zoK=gPOoFe?Q6jmwiMRX9!@zcCb>DB?XMP}ZBL@1{`_FZsWQG50ju%p)c}M<-qle;b(nT8;rHffhwxbxE-D z-$z6v-eE5DQ-H07?eDqz=}d99$c2N!^RqbZ9Iez1ir&y`rUL)AKtQ+CJ#W(JY0Jtrl8EsPYXG1uLoyE(Dc|7VUa$>A@FmZ+>pzXuI1C*3e^vJ0aZP1g*s#u6 z$AXHAiim}x(gqO`DNz9tkRk{O2&j}OC?M6)G9!v2AWcA8P^4D@0qG-1FOl98kzOMS zp(G@ES3=P{_kO?cedn+70O#zp&)RFR@;uL;HzHoqaQ{k_tw(J3-_5LID(XWGGue=1 zXv;E@m|2^D1KZB?FnwqKb!SedNo(DR-Dv-t5b>9()vOnTV(p{x?OU$$60aq_;ufsm z$TWwBn`hiAUJb1Uk$k}bVo&x}KEtp8jMd#9KeR4&%!XcJK^z;gY>mbCu_e{Kz4N|p zFjxYi5hOM3BCi@>uNTKRV)#`-6|j5~;=3oD7?*a4j627LUwe~zQ+3*HR7o6l=WC$_ z5nyT-wkFXoZL#(T1IDD^fR5G8sG$TB``hB98bb9zL9PNU5 zfQc5nq`vrWqF}2ACN#WSOq(4wZE-xqGrW4@JscL;<&>*K5Q{D zBz!xk=p|LFPh>0cuwwg^a6nFN7T?XEdtPBjsMXRX)%3|n9^pRW8p(Wq+Yco2`5~mP zs(Ny$>jnX$DTWVViD`WNc^2>azJF}NYL<)WOlt&Ly5Q6K2(Re!s+;zfyyIKkh)t>K ztcgykiR(+h9u#bV)?v?_=wKxFca7NJ2m&-v>)^1|v~JKb!oHLm?~Hv(N@?9WB85w~ zQ-LZXg|lY}2G@-+?`*5HzuAxXj+F^>996spxmP9Ima&y=Qe#Yd0Nv7{dI}@cf-Y4^ zlVeK}w*j6HseNjx0yV$b^}T_Z)(ODOR@2Yj8Lg&m?Z&P0xZGr~B1xSfUt@-zs;ohl zf~q5Z$y$83F@07<{I%1#MOJ?bBB>^Zj8Ck2*#Q4HK2@6RrS`r7PtOal*Z+83^^3jB zaUPylQ$Q_QWVwfGd8pKuXa$*B{hr!4V{8$F|D@8HSmU#ivsJ#j!y++TF;|zp%Okv6 zwoU$sg6iO-Hu+cbs)L=a@~?DM!C#BN9*N@vfT!laK6OoGoI#tskv3R^MasJ(y2WwC zZus5-;nnJ@s)Hkme8eDa_C>uEucg^GdAf@R`^*pqo!lR3*3)WQK8;AO`A)_sd%YTL z>p`dR5o23TNls|(AiZrgLT_=keQSCCLHNTsv#k68GIM|dG@x+GZqHtPl|_$ z;;AzYw>08CDOD2IZEE6rq&Vt8&+Pkf!7hzyKkGv30K3I;WsZlML8_FhJoCKp)b3&W zLhgA)$;jqnYWwD(k2((DXPkfGIpV-~?X6MhgHSs+nLwR{b_WZ4- z;|ZSL8L5sLivLKT4ns6A7zkfHFI*7Y^R<7#_t+T-=3WhUb>~<{A=GZ_fnUFJt1YGH zh1ZGYIKW>AGv-9{JtWcQa#2l50K1oF!khp1F8k8C;rYt*+^-aNf&KU+^RuhPOgF;A z_LAz+;R@Y8^D~kudr-Z&zASL^c>CtaK6(!S0Uy+wSt z5?|7!vbucX&ZyT5Ubt)1F?_^l;nk}9)SiZKk!dPS?rnS){$jxkJramylcrp=6+ear zN;)rybp=aC4VUh_=x_zI@ws$e6o3deEXQD;%5I-By{0$6Rjz$mc!8m}PtCSOJM$y* zszhFf&%>o4Ah4&^WVxeIH0892$RP8$XXB3IA2l0{tO9Eq`wWwcd1bJhOm#ZyGLD?H zjS-dK6tFsJ2QRTg2Du^NDyk6HCkob_9;pwW*ONab(59<)ro!4JIN}eXF=49rCuvfY z49TswsV{i;O^d_JdbgZS8+-&LHu*|#+ldO1f;Rt_9$qv*@0 z^ByNuwAvo3`6GFO-K;S%pW{KgDJot)D#>gpvcvu5EGAR#=*2<3udClX+vjG!okABI z=dz(_cu8wjXODjeENe5v)7C1pS>W@10jb1ZBjpdO-9Wkw4+FU%owQyGiErN6Me$#D zqdamj*}JzvOe*Dul%8IktW9Ef4Rz_x(m7G!Kg+48r;7N%t9jcAH1_1n`fLc^@;3Z9 z_K6&3sPQ<~e;+FZsE&|D(?Sunx&y<15VE};k19pv$Hh`>dn@lg3qjwNc$0dB_D5tk z(n6CScgZ!Ou0H7gx?~BW;Q2wlX%LDz;f%*o%YXKh2b}wL(ulTPPs&Tx!vw~C#wsO}+bD71m ziI$Nxpb`ckFP&H&{F%FD$N>&(Bh%FYl4!foeDtFIRScKSKYtqv7dlri?Wk1s+$y$T z1otEDSF>1MOGTv!;KS^c9Q-QBCNud#KgY5yU8}IM-(e?$_~XR*k?VQ50P=W83jQtq zx*~Vm+dCfb{Ui&n4|rA`?n!(U1gL2M43qd8URic8JvFb2>Reg~dL{L)Vul~H1{Drc z2XN*@kU@^*(8m^o94i-#2r+djT53D;qh(7jZ44RJGB>$%6%_2IR^>Qi^p#$;4J*lr z*~uj$o2SKu0e8>Ds9Z2~?b;Y6Qu?88ABV$~<4l~cLrJO&SbfRhOH8N{s=-Xx&;>Pb zq%Si=0VO==vDcdnuQrw~HbjyikonAVW&S_Ol1=*qE zB&?eRzG*&0icm_HV8c1;x z+KI|o@Qv}qxt5v&M8EvXHP;CbC2K#*LSIvK(R}~w7*Q=ex5PsL`ZFQ_dS^%;GjZ?v zT+cZ-Pl|G5xuh0JkD^_#OPk>oqlHg~<=QOGDi9m3zt_icWA)E1W)DTz8%dfqCezr? zzkNJj1Ut2Abg6sglO5Untpp7}j%8OwAVvDlAiHvb;D9dqUI&pyWS(=!6Y)Zhbecs| zf%X0jhGUH-nUfO;>!o24 zVEYh+fT}Su&&Zy7UTO`3A|hx?$E#>YF)5UBfDyO8Y3>Ut1Ca6SiJZf95K;k=52Uc5 z*g4P{$^IsP3hRCluSMr>&vOo08tuIyv>)XO!E%|uGN#7G9%U(P{dMSJL6Kgl^^k92 zkz1(53{l4j_qDFa8D%G8Ju~E6Qq&hJK_j*s|90`r#k&^+FP2>-erv&YT#G8ye{w17 z()UYyE?>TEdpYKE^X1><&dA-B3zRDxC|Annz09M)bCpMhM~&w?&kY`39(^7|p4*)=g1f_C)(63i3wG-NPDJ~TFT!yD61$kGCMg8mGW4!Rn2Bj|SF1igv}$E3e*&6k~* z=DE&)->EK&?dou!J=HDHwb;7YfT(`_1K75a%fM9NvpvrPU+j6=mrCYAHe2ATZ={mtpcO=L{aXaXNoD*jOmunYnst-k(v^Zu0;&)-5}hIzQ_itTCWF98m`rIsC%mo;xa zS^8RT!Q>rp=5~EyN&#vFPjMa|K6)X+ojRFKSY<;Xy1oM`f>7-DfG47sYtU+Qb#YoN z0_qWF&!2O}YcaM6ko{8m*$ngCJ)G6XB`y@)xi-!ubnrF!`6%yWI176;-NJEpMDM8LCTG%5%F1+RL&>`S_GYQ{tmBv|U>_TeO8OM*u z(tQIdPRXqVw;mY@<#BwvCSyH6nSi>f$!IL`qgN`^s-{stW?V?T%Wv~00@d; zbduQgl8hIsgG6L6e2b&2D~*>PPhu?Cc?@xtF7Z=tyi=yV(-|)%&XF=oNM+xgwiydJ zH!0Klnf#hy30|_|4rj}cv2;sP}cRW zF`3aj!4=47D%14d^SyqBIZrKDva7s?kck8G*);1UdnD5k8CO zMgRr6TYaaiZSB&jW$Z*TSz3%T~Dq*IBOM5ReDLzc)UYu>BWh-e=OT%dsS$1JGGNUDunxm z7ln6=2t^B$=et#MN=*HND9x13+^L$zjxINaq9}?Nl8gx_mE0r`NXEYBJks(ZK$#W~ z>s1POA(Ig6t|CA-NNh!XLLLA0&$Hjks{b41!EqojhzQuUgOkg(`dIg+cE;6Xiqoo;IhWc6^vN5LXGCrv>GI>1A#Dmd zkIZ!C&q&SJ|6TWS5JtvDGHBnk@%Eyk%Oj3SX?rGgEO*=*Q{A+Gr+s{5h`^=-HdEkk z{@FMU<*H`Rn=|b#7fxG#m(jt_Oz+&oP5S5W>30Q+!A!2mN>C5-wing97VFSVz6xw= zBXiu0OxWWLk{Er)5^hvHXX&E1GL2kF|6nyjXrK0PWlRB8Mn8!V*~z$bziWQ{3%$(2 zSmdTaQmG3r*-&R(ihnMzF;^2!N>zw37Z%J`n}mfr<()(MLLcl3q}1{2@y~^x=bu9u zE;O|+RscPaHs~!Hq&=R(PR)*Fr>c#s2R{h0zdqr55Gw-rzGfHG@l1MG9H(_2cVD=MCn2XuC@o7C>A)#r#NKK)E$(EzpN6=P3N~jl5 ze0SQvziwABNl1=hl{cBsv=`4G$w}SyQgXeS+Z4XJPONy6-K-?Y+;Q)ih$)J{VK(cu zfVm{wp`eG9OjpIBIx(lQ0sE3%?vy7c>Ep+-XTAsL8DsKaAhQ?ew#sV zo+>1iFxhuNRVzYRg){hw^?xQ^Ear3!p-X%htEkTg>G?mDQ;iFE=%>2V94wVCfpGe4 zMm$$`kb+0yQ0M_pdBa_RYLTmoM$+T76s^aCgELBs)Y;Nc&JydnLV}Q9fu|njR?G!E zoV(T+uRdCV*v$|PLcU-ot%G`lpf11V4-A)m?S15S5sX#+MwIyn;x&fd53>qG(j@u> zF7ML5is3NM>*jjeGT7c9B!EgH%r6+$2||TCKiFb1+GnsnK_*#y=Cxz?w5WeU z@L+eXp11 zob1+0`cxFj8pPC?B#>;yP+5zippy+wVyQfM+KK*E{wy}%|MlpkzSVx6a-w|~2> zC$4f_J}i%&tQHshPrmMs-CyuBTF8G~GY6yo$W}M)dN!cKWh|@omt>PR4lk1;k3qSa zO}6)S%19yI^qTN8C$P4CFSeGK-ki^0=~_Xpb}!2Os_R_+%ard!?HZdSf=y2sr|!{m zYKo}g(8-mI(CaZ^x701?Ks+uSypcp!i;4Yb@py>S+_iK5o3cIQ7Lz}N>cIPy2O6Q$ zIeK0W22TL@uRAPwD`(#qU^ZBC7Vw^^Ydq(YuR5g8Rah7q0e$_U9khfdz}!uIv?W~w z?JW!5NdbY%R@-?3!hBwMP|x9?RgCiQe_aefdOk(Z*GoZzbDxQoQ%!N|%WR$cB(c01 z)93AKy|+0_7V_7JCWi-ZS9$EHG7?69)??UwyS-8elY|v62QSmp|^VM1WNfZ=V$qRdFU;B8oW!Gx#s9T3N zR0|X9{r|+yDzdjd=bX~AFv2MLBn3T~yMLA{=4<6s0l>BD>{|CvqC?UH<-Vy8K=D*> z8So6acGe%C$1X)%+gp*NWwOIn)81euy6aBm$)j{|T|z0fu485*Bhm)2Qtd{J0I0#N z0my;;2NQlmXg!Ba$I~{m#;sSq$M_~<%kJV2^fKRVK3-Q?x%HXvq#Qe4g3)Tz4UUTd z(0Bb3GRcE7aVJ2=VXn-dBfWI0K%|}TQ}_9m62mIi2M(loDZMQ$40*N1+q&fOk7Jt& zIUPnaF7t1SiDC@ZmBf3^zgSPb!cQ#?As}0Zya15k+Oy3cLV?Vo&M2O0o9Y%o3O+JY zU&+A@GbZ(K5HYJ=)9L}pnjHg}7@<7?S`QIISmTP2EtTALwI%ou{e|R-62n43hym%b z*rKC0SV}i_!FCavEzoEqw$`a9No!eV6wh^oAcJu6cwo}D_@7lRKp;WM{Agja3Whm6 zDR+9uoD8FPZUCR>&Ok83A_!5kW*`{?y+P(y;0RlR>!NW=9-{!FDS_OjkFG6#DiZV$ zrsYoF9q2+3q}bLziGjq6L%_)u(lE)o+yOOCGsmo_^BEcJzpvLbL^cHd_|J3OPmVaJ0Jx8G=$9Q!Oo5{85hUufO zGiDsd_G1bhj>T`aLe;oLrXSN4MxtE$^SLfKoKG;JI*#N>QG2to7e?xHr+P4t<_;!A zx5bmg($u8}K5D63J19?RsmV?a0%Q+kU#rBQD?RgcKmTE;=10Jk#!W7m14vXdw=2^( z;;fbZgZGg2NEb9UDT+%cyL(W`uab44qN3O;^Zmz(of&qIr=a4(r8DtCj!o)D?f6>{ zwhJKKGLN{;pw0DIq)#-C!iX zpJ=nTG3}!$9@fif+zt9GcJk0o+9{LTe(d=XM<&<(@z>9r58HgBQ@KAtCI{qpSt6*K zZIlQhrkcWub*v=yF4Zp=lH175KWpf6x&lo{CNFN`nlMbSK4m3<*}8v zy`dVxEuwg`>Xf2Dm7t<Lt zOWQ=o?BT=Pmn_Ak>l(Q#rPgsqC zyjREUwB7VRq%khVGQ+^x5Iy0rM;934ZY@y~xTS~)>wIbmFvD}O#d&?W`8lW^4M6P( zrAs#qM9$9@j+7`8f^NHf%cOF;=u+f%p^MfO@f*1=)%>l# z^YQ(ES~8@`^(k0ssf8}kLzsScOk{7#_478P-Xc3V7l;NTrIbbi5LIxnY5LZIM?b87 z(Sbj(So!t3HI#{F)7bFN$jKhUE0>XCKb%Wx?7fAj^NQCF&wQ>rp{Po~4ej}=Yc!k5 z1d~ct?)fI4?}2*Uz9L+RM{`e=?D*W57OSFNMNzdy>hZ#F&OGc-XyH(g$TX#-nu)1| zVkr;I#v-+|N76B*#qNAkyPGJwylA5tiQ}REr^loiUIPx1o?QFIIWqxALE{{|q4Bi6rv@p-{Xfq13VZ-ShK|-JN%I@{9~oCARFy zpLKo+nI3|C4N$I+dPBFhklVHB-ef|#cY+`ID5k3l*SO&PeXX#iHSBiQ!5v)NK!Qm4 zdApiey*j>7VTS2k?I}AQH_Br8edE+9sPWcsG|S%qP|&alHOI_pA4U|qQo)bb8{}Ai z4)0@1dfcN)Fm*mYLP{Iqek*e^0lH&GIa3|t#&k#6W72xa)E$M4n{(u72{%$GbevUzVvke5kClwlAI$Vf`3{aXU)jL&%vB6EW#8k7=e8%8OnmsWhnJ0 z4A8i{5KR7Bp0CcXh6?Pd2`Ad;1HWxy!CF&ao}+7+Lr}O}gZ4frbZfprf3+tZP!)IS zugT*~w$w&N;sbs0TSSK0K4E0b_)2SLbrV|-(sn*Emj(- zh99x)jnij(Tp#XTyWmmGuvhg>$zv)8eMoNII~FkZvrVNQQt;-7e-_dCpTr+@eweVD zHtXFe{$*;OdbNJNv-c(y zGYJ}9UPgv5_lI#B_}xQ%6qWc?RrD#*&ghaCD&+-Qb1TMtPkYlizk%kr!!|}0Rl_Cr z!_ooGuBeTJr$&wYBJLjPJE8truTif0?;7)Q-JHBPQxDgw^vu|li3|2TN)jCEJgNI2 z^Cq=kWX8%j*c=l^;yE3G)QK3A(*OJQ(hoQgDbUp=?-7d6<%7;G49X=prqz9i39+7X z?z0>KWS2>0Mt~UTTOddK9{UR5X2l=>69yw*Q z89khoQi_WXAW=R^psEHwSg6WaP8=hWh9vdze2=pzN%TMf_|H}5*dSUC*vf5uJz{`G!8{$|vfmkq}(_Y{(BUv(8L zk$rk&Evj%wKO4HTjTh=Bx&4@tnmy+z>7paCs9b+wyrD>O1`{ANTg(^#2eDq}s+|>H zbnafjGBbjiOD#uhx37+s`|3z`s^Gd@_QlGT2^^#vmbj&$#TvHxZEzUGNi^YF``l2& z*zGm^mefvZEvo%F6`Ok8k-=@${$APZoIC~IWQAK8NzTy@Mf~8y$sWNbcOQOBt~Y2s zD)8o=BE1&#eBQGiT`#!@ui~q`4C=vYiIijxQA-c58MVfB3=k=mCdcA8^aY+wT#C3~ z0>U8Gc**e+uetbXtErY#>|DArFHz=wr`f|&tlKtuP2Y99GaN=%nB3VHvE=eW57|E} z2ZtQxgjKm*nd=Cy$(Ao92c7Ve)SoHy9|4~>9DP)hxullEVjwZfokk5iyolgVJ~^8} zPtBtn{nJSx4t)ReeTRwD9!{aHbHjaoLhKnfy+>ypr+Hr@!uA}_2AXo1eN*sBm)vt# zZ8$&@OQa~2mrlN3NSsb|Oo{e(`r(C1&5M)Wgto8w+Nb`T7wOs&1yCKX;c6I%79MTQ*Y3}DEfuRD%ORF zL7@(CTW!dKZZq?>mC^Hp(?->&N6ILVNaumwT$mJct8Ci@LSmuo{x*d8Do$r5KVp&s zz!5pTp4||ReAM)I1Apyz-U|+%0H$LCw16yZ3XN`9;83lp-n;Cy97^Z-fZ}r0d-*+M zBakNX?r%a$Xw>-8)SbvUm1$nKeuT8?*UtMU99Fk(ue9Hm^BW&&k9TF#L3tOphF({$ zSrkjXJmWAT9ZP#_VI{q7!{4i*vrX&%W;xu?{vLoH)#l@kcTTlX+Hc3DP*ETpL(@%5 z-G-;?oJL2aD1!pVqazZZ9nRbCTBUjnx&fjF@`$sZ>n^jn2_DBdh}YUePm7|EaY6N+ zshX#2#oUy(6AG5r2b^fq{iwd!?9DtYE$>ytx%U6Hq)ks_o70jOc(k}J&z@89BH+o* z$bTZmOiIvi>**bprVfoFSK%}sf0AS3liHG`i_=!*2&YC>d`DL{Bl=V}cZI$cF?g7Y zZB#mbsOiO)f6uNb&}F=JgfveHbn)3m>(2@b3q5L-hfaF7rjAILnc4FYuFDj>Wv;%! zB@7CQP5q>)I)p)zrtezEhd1=q7rxI4>$}}SXxiJ<`fbUE-aF1oK0u zg^|zOn;*qReC^3ryM+FhpU|`y^*WN_IuIztOt$`eKhh@Fqg54TZjgu6vue>6qT-Hb zU1LKbnuk#F0xG0Nzx#A)t<-hdN3^FTV^EdS0Yi z9RF5r(&&L~^=Dmiu|YMmv|t{rE4S*$@3r0UM6gAvw&hso7aO>(d>X_iGF!hKQ+)I7 zo!z!IQ+UXj;jY|p@y*Jj6b9ze&J?#dFGcknCfasL*4(`*YM!=qobV+y*eI*{)7ck( zTn=-ZE~KHb)51BkZhgPo@NXs7kBVlu+iF%da^VkBbN@$TeEU!0B)!w&^G1%3(s32O zPQ9ZE*uXK~B)-q)lLs?nXJ(On*{D0TFqK8FqbHYp>L;)(LB;3WgI$JBePsP+-ky|f z(>?bA6QcRhTtffIGoAJG8}uF3ql$@hb%uowQ5VoJMHSnY`Nwb$5S%u^TJ)}%9h~Rt z7x}Cjq7lZq^Z352Ig_rRc8?vHolb$OUNwF5B>GOrHok_id%Z7{myHhxwbbcfD*}Js z5XFMUOuNu%9X#07mM9cz^Wn$;Kna=JmD#^oOs^>Jyf z38qq4VYwc++Ckd5RK`M7C-IBHbVhaEebIdgbLzE(`RBO+4)`1l>pgXQS4=vDyP(Ni>T(# z_k8F-ZJS^0X7?;L)||yD5=z9Tqw=bX#2?Ill|VcuL40b2X5@TU@Gy3pZ_~xOFUH;Z z-Pn~>QFcs3n$c~C-RV9TrW@@(KC~WMF2tF#s%;o_DkGc5jT#PcSC?7(8nnnJOaJz} zUmt$Hi3-A3gg!RB8*refUB5MgP!?_k*8>gqkO;ILN!1D0NuA?_iVwwznYYJVI?qj` zK$^>`bUN9p!?7@CWM8PETNm^un8|vS2!WZb8$Pai7FA$B{&;3_#PG4vb2YB+XnaW@ z3K`wjpSql(k3DRBVAp*xA*wsR?NpljeUwFAkeZ~@_YuG%Si4^)nOBKFY%Wq7i1+2> z>PZCkHqNsTG)gbgoXHbhdW7n7Kk1^zekSt4Vf4=PBd*n-H*?v4UBCIr2WUMq>&B3S z=e-nw0*_^e+gukCPn+vQGiYoeFY2*V_UajcO+0T))=FvI?eOY6@kK#a-TU!2$)d*3 zo4E&js|>Rk=2a3YS_x`?7@3cCBBe{o)4GfN0L#3$)Z4Gfs!|t09uDVCD6SOKs>Kd8 zH)L;8l(_nyedoyx_HkwY!w$386`74pKwg}c9PW$ z1-F{hCgS=;ii@g-pmep~P5|9rD_D24~fj$0~tJl~F{`36{T=OPaq zaPM?+VP&@oqwnW&+zk2)uX4n~>3%!juHDHNes5Mw`AiyekMwxSz5lE%1uscT6gV!tph>)u#9Z(W{ZiWd*w0O&=+Nd03#O{j z2iD@yiZ|NNn3lIV}rmS;es z5K0H;5acMTfiu0DJpE!1-pl=f|N6Ljw;QHGWwqyj-HX+>S&5ui@4t4jfz0)NI;joJDVCzZ+PrOIYT&FEfGUon;)OTe ztH0j2#&}<|ci@rC4E6;Se3L@9C5x}Jt*TunerM)r%dO)-Hv}Lrm(?$_szwNo;(pd`S3~eC;N7hxBWslt8cV1ktXG zJ7~u24~~t({vHr?Wlc`!SDRo;;V8t~s-*2t(_e53^xyj$5!0HtPtAw&GCI*(JZvI@ z8QcG72JQI~FvgOx#MJ8pSLAoYcEkL!QJTI(`}9JT=!RX(M5yiehr(>h|cAqta=-OuQj422RG<{{BM&u9g6$|wg2HNDQn%XlPvQ8cI_H5dCs-O zh^z0z3;+%#e%XTLP&x#ooSElmewIFiIsaZReSQW`T-fD*+XL*yrFKukch4AmT@WxG$=>@_WyJ$^Mh&F-pNT zgyJk8NzF?bc=$W%)%OYL7|KeiE1?9zq=hp{I81?|^A0+a(BnBEMwa6ZRw}y_&j+&G zmxvGKB)z3mY9RCZWLkH3bpXp1U1d?M{hKkMH0kVBkIFE$2(-D`FK={E<_4ZGa*KF? zbRqd~97JmSC_>LD?T7%UDIiFE?OLyef*sq7K+ zywzVK2JJf-2ZBSkGe?Rp@S&bk^qpP|J`W$=84%GL3!+w)OsgFM(u%2zcvGP=c+wJ` z@BH+E8|;kq(=hhk&M{8=O6_CL}eQ)#S%WhaQr1S6@kc{F>~?Io#j% z?gaSMU{FfW?`Ov`7D#@+$Kagk6|!jc#Jqg}FoA9X*2LE*t>sgyzN{ZL3%OyV{<)U_ ztkJLxUT5o1p$Jxt2<8qHS&#FtFKf%F1nyyn?P=S zRW)t30(DFh;)7Kx=xS&tXN%qG9G@6leIN#oPF~SvD*{pRyj85ivSwRB9$scZMP-fn z`OB`o%7Oe@VykH|ltIo6EBqX22gSz`z`#vw@kI?(neW-@VD*Y!g8%IjAgcblLaMvL zi+!2UXboZ)q8rvNusZkty-{qvqR=d>+y#eZvm{Z#mv3cBtEhs?VEd=7`R3#~V<$S1 zdoAb!MV8rQ72Jri-qp>(K(U87gSpmBg;lTt*>EW0N*vB26MD9i>bGQrVD>v_k#6(-CweJ*v+9vO1GU5@68w1sypPR6LI>oa!3c z^wCb-3!ksSz8e97g|qIdY3Z7D%`Vo3t#?P5jFj2*vgLpO*Dw6M@SPt{#6Z1U0+iZe zupD?r4NwC*powtdvlhRhkf;s%Ei_@CyMw4xHP5vpc@CRfeCK|(`1qBm7oKm~?QDG> z7S3~+6%r+ZAKJ(N^TN#vuO+_t(RZ%b`{fh8uA1#BO%W(Co{uQ;;AfN3n~HxANrRA$33dWcoZ?0R#blctuUu9G%qoJ z7hCuCGKXRF!_glzmAekg!}@9~)J>y00>1%HlxFf{<%S^mxoSB=tvgVy3Y-L6S~>!f zny$;3jlN99nTiOGrt$kw%-0B(mdp7Ec7Vt%(Di2-BJ-)M+)*aiQ5;Tq9wbIT{z0BM z7V}&Ou9_Jz6ajD+jvP=o*|P3B=mSeaG&Pm$V$CV>F!iU^w$S{fX}dYJ|Jbwq;wxMH z4a`GfG%#=dFTsU-g9ig6E}(0B#qE67+yf65q?3)La+R{7LP6z!BAwD+0MO&g490`) z>rJox@C+X&NsA>JqX&C2 z8*0Fe2Y0T|v%Ta)j?N9BVt4onnJP3aaqy&3tXTpo_(uR>i&HpRLWh(!^ zw=Ao!{`)%l20$N2<$tLE`FU7ED<)(1Jb?x+QLm9JoI;F1TdNv{r{V|nTQ4}hMaHJo||4mahiznSHR zMZhy399tgx^=K+(uR1r9S^Hl*L)Bkv`coeMdC>3yCgo=n(*tJxCGC9#K9}!hn3`vt z9D)qnFaYTRDsY>*NMAR^l)lH3bJ*1`pq7pF#cASpmJ|G?N6Q>MlfP(CLQP@K$M(IQU>A5cJne;Xm$Jwr<-f(rp z*l%;+e-v~ZE~27 zFq|+JK248_-I|w~g-{~L5va-l9N>VpXRtignrB_hsK%+(Ws%lxV2iUh&}vQaIfWKGF>UmJuLH`Djw&@y%b%9i5L!CqCikUisj@l^&+vn%3Nh(? zOnSWSH+HRIG%GavWgTqVyEAO53)27XAjQDs+5c)d^D`sdSfj<&b+A9R%Z(=F#PmOK zgu`_}R`?!UC%+HI2HVret-m_#Avi?%>kY|Is zgKe#^+ccNnnL3u2V{Qi_8wd4fL9fDMFFZnsVY?Wfp#!xAmhITj3`6~v6NbOTPtvik z5j@PgwPpN^1Q*jn9?+*VdghlPyj$Jf{_Q>|tcs_TLN~9DpZQ1rOwQl(EUp>%vKzX1 zF~%Pm6uP8QTqNr}-Q*j=90irz=G*h^b1;f7ViSiHzwkmOJPsF0t@TmmUH8|~8w6?U zz3EpL$ZKOEc~u~-pV;o{_VL5xIY;JpCjMZq=Wc!Ae1i4i-@i>{LzjTGA~PWANOyO4gMx%G1A=ra0|GL1w{(MagLH#P z_qoxh{C=O`I_JD=z3*D*{Gr00``)wnm7nX{pY7Whvf_mJl=v7J7=+Iy#9m@xT&2Rm zz&yvh0*t&23&RHf!L)xVE{c)UeR~D?<*M;hnWq>S`JvZObuT}>W+S0$kAZQc;qnh= zi*<$p28Pd%=VDJ4T(mZ-abrM=HMJtNMrqLH|Xko;lJJx^?6tZ_sHLpdmrTmY>-%6IN@UZ&@s7dlJ5ov2B*PA za&5lH7g;~VY}YJ{ezeDR;2HU;n7!G7zAy}ocXYJOu5=!#!yiN!KRe(`0@MYfB`lP69eNLCNR*7j{xNU1q&E>M+OGI{S_`SaEFQg zQa?n%z!N1M5bz@nFz^a}IS+>5<$&tz-zLVZU!_aLM}uS}Tpxv^R}C#;PfzGh*&@)+f{EP@-K~I6D zkrKc#aWY}>uZNk?B#tION3?i?4(J6#9R$ON7~P)qWND^3QOG<+0+}?P(?JENjGbxi-CVrDkt~Dpct z9UM4i#pC04kD-XTMugY>tTs9cZH$>%BRa@5xElqIl47^WoU8_02U05t)hCAvz2DaC zFFYHI4W@LjFjRyOlkYWl@grF`_-(?yB*6*~*zsT8F__fdn%o|<+!tX;x;=c{=2uTH z=*ug+8qT>tk#s%X*b3y%E7U)g7Zw40TCOONpzD3u@}_=h=&stT6LnrMg+Khs0-y%0 zQ26fJMXIBIIhPK6s~MIl+anhd76k94wexJJBZyrTl8Okfnj~}dT#b~HC(pD$Bi@@V zD=*6{-wTYY7(SR@Cg2)**;g28N$s?%A!2iGBZ3+!$T&zl)(PX!PP$zp8{5wvbYoaM z7g6hQ=b}Tw?C0u7b+>2-no4U+?W{hIEm*sK@>4umEVEZn(4S;(f%N5WmI=UAabZr< zuA5-h%9IO-oezy6#VCQ13(?ziIoN=n0NcmWLd6J5YWYqcRcj8tI*AZ8lyT(L3VN7XDLn%|QntF)S zg_~>P^>Z|_KZxAxFB0!u+<4fhyK7b%_{%G>a^cL{>i4iy)-sA0F;49Do1U#oRHi4N z2DxH1oV1)A(LUZNvkNP2fy6mebM`-ekZ0|6!P-3oheQD+{YQd_zv_^3&!9lm}( zf9j#m?*}1I|rtil3h)DiaU%@%++x*RlsZk$N3TNAFwq z-9L|~b>AP$fkVQ-#maxM$TkG+&qVw9C_&95!#3%{eE550!lB*_K9WQ*OyW1p{Of(a z8`)vl)snm7@{0^}lIFf=SP9lfGR7cNqwl)?W2$Vf%%X%a%t#R83cVTP$ik6KB?q!CLP zNe1jN;?qQ#NNsw<*cjUkPq80&_BLuo zuTXW#IWaO6_>(!jtaSsTAh6sgrpwvg>g734nrj~MH9;Z_Y2#+PRpBTbq6aQ&-n1yl zNxQ|u&ZqS=#Y8j&Hb^YcVPx!=JvqF<Hdm)mg>QN52B0RdC^5J8>}h;bb89tJ4DJ9}Dz?ee_Dn>Z=)_mZ8&2+)H&hVsRti z8a+BXFK$ZOYPjJ*?ROSdOh447uv!WO!z)fXYiGKVmD=40+ehg~^1*0Rjz8oT1>3IG z-n>j)HOU9I8f!}v=3r(X+0~R#vIbafL~rEigP(azn^CsPa#`c#1QJECvU&it)4pOt*R_Am@4Z=kM0Y zSn^+{KNYH6J`z*z8JtmCo!ot18-N~f_d3&Es<@Waa7z*hqzmU;ui&rPent@<{Bni1 zW#bA*e&sPy-=U4l>Wj89?Ey?ycP9eID&-Kt{HE$2X_As}TA?33dc`PUy5Bp(^S7pZ zKNj!hD*FyK50A@?=H4dYP!US=jt-`b$M5|%abr@O@?`MA!q{dBR<=|d2Y!Zv4oK(2 zquuscsg9{NJ+ck99-g2~7@bNfTD$Z{SC@9ZBc;|r`O>@Dg_8}oV)lsobIwW&glL|J z1+9_yfJLJJM&+LNgObte)n}vFd?SZt<4Qj)Qz1~bwJ;)1L5b^1k>%8^OzX*S5dF-p%VBPNWib~0aPg#JeWLTep?z` zW47tEb2IkdiC64-iM@ZHZS`X19OfMdc64Xy3 zSQD5!Fc|?KBxV_qGy5TTeapE1%99Zt&^wHX9=9KIiB`UYa*@~>moRYvz$2o2SkYCP z<9o%$?fKU+S~0=c_k51dDpR$ZEYq8O8=Ot&FnxT1HIcXyIA8m?_N#*UVF?na)=W3zhx;+`~!FF#>P= zEHG|kpbpPZwz7Ng6;|zZ3&44T-rjtuMkUGF5yx!~pgsto$;+CB#8(G&?a~Bo|0qWE zh!OO<0J^8Y@vD4+68OOHF#{&j2n=2pJb_QygWdq~Ht_Kul?(?SEG!QQ^CY;xY9D%> zItVE_kZ@*!!ONni@eUYT?*mxQ?O$b35cn!eLIqev;Qz5jz@H=ZWTvmk9p@C&eD5J@ zO1yrYlfQZUPzS^*61rhg?WM$j>q18el>65{f+P(G;$;#vJ?T}i6a={BVJ*BO_@@rrPY^J?{9^q zNTVQ5<1a`Yaps7oT$cqBfnB%1#-lj#lb>z(O`!;akHBg6YAAlp1pTGwlmbe>{ufcE zAne2z@^SATat@;xb4h~lPk?tfpI#H%d@cjKje3DYg-hS5VvRLN_@NneZLjNH$3IqY z2C}mL{3t9Fx?nx7=U0mA^Af~>!b zlawK>!xKTD7~JyNSZFjcZ9L}KQ|pD+%W`CWWJLi&)YbDO$5xB22ab0@_^oF56GdEp zsIcx|bKK{Hk!;!g|IzsWZ#}T-HAj$0m<6dPDvu|^fE-aDE#rQU_fEd3RD<$oSa^&9 zgD-qFy15#&BR=1`cYlA2uvZkUhxd zHT>NK5MVG`8Nhx`pR=bg&X0zR=o{m3X_+SWH>Qi|#mEsp^Q@QQM-~W5cSv#(PG03yb?ldc0I z*N9CNEaMc=`o|=?ui^KI5cIzd<=bo|QSncHBBL8BDxYs>(Y|=jBx+Cxk=VR6!Fix4 zz@W$c$GjNC*VysHD=$MJA2urQ@bttxd*nwVu#iHBx#3Fh<5HzJtv-M4l#eq=u^OMB z5Hjd39=}fe_2UQSw@O7ZFI2vIwR&Z%;2aBP1vqd^y&S?hytx=TnuZ#`1(M0z zq#QR*Ygiuaj=}OjaAjg3m5cLOML*0#hiNr_^Ql)D#h zez=Y=9=y~gF~fNBw&0*!i1{vWn}`4P?35i)npJsBi(64@YZ;yQ@uq%zhptt4Ie-Jl zspeuOdl_-do%CPr5#Y@;t%cZ5vrMthZxrh*%u?^`M3@(%fUvL<+vAN z`|>O_jy!EDem$E4?i&gNx|B)j5@@)4Hqw%v7nY7d20Zrt%bMsYn|hiw@pIg~OWlUv z_sW0fa1+lGVp*drt#+Cl7pPz=xMA*pv8rMWr^*CRc3G57Om`Ob(vz!t5$6qI*f6B)M@TE=RMUsv1rAE2@mg4;FTw z#fw{np84m~^R`v`E$#{8_CdTLn;Ku8k&fa9GTP?m*YPVr7Zzl9N#}Sim-5G83{)1M zw$#=zFVGwDMzx4qLNW$9e{BSZQ@iRgX5hAkiMrpVH%3fQ`AzkydYY*c#UiCD7Mo!R z+he{;Hjd}R;z|T*XT_D4)0_RvkF$l_#=ne8F*v%LPfpsFPSY4EptrlZ^yLhvYyv2* z^UI+Ge0!qYlOF|e!dBS=idipr+?qvo zd{TMi$*iXU1DjR5RDx0NnU*2d0(B%!2YYocN(J@9j54<@pYWJm7P7wkBP9^**Bi>u zQrXKdF2&gX2){Id$LXOZN}B`4?pVL$0F`FE48R`mPYRPFZj4w+t_v3<0urc{*h~m^ zoS@_>xANopMvG${d*Oxy$Ehz0Jk)n~Sic7GcQ?l*zMrg6?TYF(Z||}x9rYaG`l6yS z?(FQ0(Cw~?pPR%+>Tdchy7Um*KQ)$h#;Ikw)iAH1bt(?*vpP(;a!bMo4o|`@ccu)2 z2XffuEn&0xa`I^DS)}$34`slMzipQnn4nt`=bbU*Mle~EX-DU}YNllTo{)&mS8dX_Oqph(BPU=^v@=q`x7Y7V63fH8t=M8K-%34Jp+S2z1w^Esy9tpDkX0H@<{ zrwpg@P!f}S>QRPJWc6Lf#W5u2J~_T5!k4HWycBz2_3?wlu3>1GG&g>sE4SX>S4pOI zo*GzwA&0DB>J&LqY;`e3B^J-Z$6Sxi?3#X)CksLx%`t#;Qc+h;CQ+7Ve=N}JR&s-1jkO>?4p_gv56#{0Ub$0&BLRtB>G`E=EIW?v|@aUZf&xG-vw1E9}=<53q zg25l%yKX4%n`OdgN*6YF7MqM|<+W}&-<5aLwhGmFu_hzW zf%90vT!>6k#Ikt`2Rr}eUfb?B0ICrQm3{cIbQ|taI^=pKv1Vvge5st2cfO{qCrPMt zMD>C<)mXf?nICCSenl*W;J+Tgmb5$WaN4an;3rRTXDN zy-kc8W#fL8)w#XA9oStVN+pF;DeE!FoB=Z@`PmTXp_Hyg@@z}?;Kj~GiSjyF@1$Lp z`~mrbQ9Mh5>Z7KH#D|90DMufhclE-RJ2t$-jR)|OF)4_lyyuULT_LUazEHi8A4&@0pfo8>+n?QCxRSW`tboZ7t zMQ#n&26odk;Vw6dy9?_|5t=)$Ik!>lgA#A|1l_-%=F%XN?fibB57xXI5$h%q=Vrxn%sr_M#oMo+5QfiNo%=N5*~ za(+GiDMjZ>2|_)l1$C%b$y887wjU!@ckT+ANJBy&V)^-EHC8zU*s zg-nXdFLKsa6CFn93AN1~uaDz4Zot_zRKE|{*)}X~%_>=M>>f`A+(vyJ*B-nrjdm5~ z#@EM6(6y_J*e2t}_Z&t$9#KDgfvoSLS11}}FlRVfesgaSB6yZVmS(*7sK)H>nyJ}f zOm=#IM?0onp8BqOCYju@6?aR!MGawo-&rNpFg2f_m!VQWbk{-=2Gd=yEZ41(1FU>& z4BAQfT`)gsq=R4X18=iW_xmkDuAvG52U-susw4q9g2c&nx~flFKmL3#3Jg1iRy7NrA8nFEfo-eU*d`UnCGP&c7@-N5$d1BxuC=8jCk2#%N2+~#*Z zlbCwI3$A(l-NAYwJ;ZHh;;g7~Z60A`p`)Visr^UA*lar`H`DwaaZNn4of+~|B49&S z+a2bCk(xHa-4c$Po3rgk0?@t8@2+ZsXGJ8=M$-@L7>^yM=xfwd#I&Qg@1^EQO+@t| zUOJRcxK6dZUfEb04J<5PHFAfIL6gtwA+4|RVNXS+*O7Y5UqAjRdlU6pG0SQsua45- zK@hCBsJysXTp`QOWiUyuTH$yvxtN3a?xy?v^CKS`hp%<@O#IVs2R_`|F3sSLf z!bx4Kt|E%87RL&wLMa~oy*eW~^yff|Gr)X=vqDi9(FEv%a@tXMH$6XbC(y~bv z&lmkB4MU>G8CF*#M{_nHhY0COZsWW1NlaOK!e(-5CXu&>A&uQ?H^*`Vsokjr134I! zjVdkk`;=XC5YNXkXV*O)sd^ps*{)Rr%OT2M*w%mGM;=z3TGL^6s{erNe;ZhiDv z$W9+PtRv`gu8*_kkj|1T)7CYIhsM1 z9e?h}djys|kG~D%ct&`T3@T(Povque(>U(-t}?0QYE}35JeJQ!#FmJyQIU#M1TfIc zzO}6(pN^FQDn6gv892n#mU9F2#3qk!Nq`)FIG2JsL*|FNs1ZLrG#m>`NpH*Ay3zd z?T0G4$=co4u21i?2Z4Wq@jJMTf9yF;Dq1O9ZE*ElghJ-a1v&5I_uQ@0Ad$6|^_}@4 z8oT9>!{_^p;fCV|)TlrPqWwJCom{1C7y#zL!c)gL1Q7I_zY5g9JWDiHE?Iam%Uzb1 zfBA!NGlD{2$l@UoX4cnt-biWKH^>x5MSXTe(0>vf*jX_f{G9CAebmq#nE?#_J{2iK z)Zp}Rdnv)b`(pr&TCv$6Q*M>rLVM&8mL$Cih`Mru&wkq|8}bFBCwZXNLrBdf#e~lu zRQB5ruWV&l>#c4Fz_5Qa$z{2+%_$K+v=9E>E_UA49SKhfh6L z7t99D6FjXt+-}EZK-8kJhq9b`3^rY<@it?-#kY1Ek4d-s5?>IA-BNsIJ6n9IjvX(qhQ zzbWLqz2&L*y{7KXfe82ExBj;{4FouZ@doS~>_^Yq@aiJ!!oz$rpWREAx#@8ad_RWu zP=(#izu_wfm!*;C%XRjX{`_##x;)!(KA)Mn`}P5HF#`2ENp+2`cL^7%q~k6|Q?be4 z-$KMyebsBHuQO>IX!7B}k!qIaf{;sVGg1h6j*d`}&lxe(^7iYUc9P8*KUb0^?uk7@zP7eHVln!YA31Dk< zIH*8+pauO6onH3!v)nD0wTVapXkuZK#OBMlh}nSI?jIMd0*Ni>7D5VP z=neI+X=RAFUO*!koqmYBR@2&}kIcq19^@c`(a}#6NeXU}hr9l5+k$)bRJgRv3bS9$ z`6nK^k1C~y0QGoUIECL>PWB3w?0bU~{p4=2apre24U zK!LV8(5dsQzcpR8S`m^tZ4e5)e}5a6|Ebk#+7ZP*c2;BF6~8$XTw~tpL()6m_Lw?p zbc5_x+h?JdrkG6?1{S*P${ZzSgKcK2u8_yXPTeHE7YZ-0E+Q@!`J4w3?#im(I6b3E2Hyj2}6 zrD|J?5vRv%xwFbco5|h50hb~|7*0m85W(O`OU~|AJZu#4c2$1_*io*?IfUdH`@H^-CdK(WkB1{L-JVeR zZ3sL5g$^hm3-!vt7e4>qfD&pZl}?@rli3&38JpIch`2620Em zseeUw&T3EBAF6T}DMBOwE!3A+d!{d1xU=JMv0A_Y(`611gG0u@v2IrCPHDaig)xHt z0)Nnahq+c#=4SH2T&*)oo8rZT-t08n-vY#k0h^&k&^rOAl@{zl9;5;&8>(DRWW8BU z7X+)5XELz=J4ILQSw3Gwt}G+RiPpa-r?fsd_e7MdKV+xF}57tY@P*FM3ts0^2g zMP{|&g@NDnL7Q|Wd$|MK*8tQ@@TVOCW>r5luZ(In*gN{Jz2c3OmLHTUXH`J2c`$QhrR?wf4VsKy?6kvE{|yf z0ypUmxdqCx3-FV&LWnNER=}HtFsr^Cf-veCp;)2y6WaQkG${6~cMY-rdp9z%FkMd( z1@XBSd8W>~6y>O}jbcybR^Oq8%E_vdK#zf26IL>;RI7WoaEfR3)Mg<&B(71U{ zNc)a)_VCp(WZp%JYG6oP+KSaA!;dt5&pF~5>t^m%(olF{kQh{KF5($~e_a#y(*kQu*C6BvB_jr7gZeT^7lVte?6E zX9MUuhO#YB8Wp;g(!S-u5v9C?BP93tD->QvVxjKn{v$_!f!rC5Fa;USa|C7Kc;~W2 z3cfLlu>V45ez>a=-tZrW`p8&_kFQi_T#2t)O};ry3Yk=)@?iu1qL1cNE6uchN;`KD zV}LRyvf=Y>r{#|UW>Df(-XJcjVmX!W=~3@f;mcLk}pk;MH@@`CP+tt=x=>FV2k@|V3ZpZRbmHrKsG`fNPX4Hgi| z-+}l2TX@7#;waw}d|xvXpl*AcD{7L;i~rs5t1+#{$i8Sc9x;L`r~GsybgD0i*zoTc zZ(^ftm_^Z2_cn3qfkU*bIlXfbgognmc{QkwPO5Q;Q@V=R+)2iz|dv{8AR zhfqpCe%~qs(J}0oVKl%B1-!;;_5xmBYSU80f@}+tjR(g;{Vi5rd@|NF2|&siIi3E* zGwthuME;yH-UfN4&li3b1NDly4x)$qTe|c4pT~99h|<<-)zZl@ee!44_R^-Uf42xA z=imGf8~C4w=rQi5hg^!bi2e!trpLGL&=${BGP-sh(D~05VYcC*S|5U;7-gJPqHmZA z_5YtQvZjs3 zxwMgwb0SHlRyj&<0P@YBWi*>~L;RMvj0tt!R4sabMF74Z653qH!mh}i74jsf5( z|6)AATSfl_lWFu0qIZZiTJfFWZ^Vfv*u&_ZoJQ+rX z>5M<`F8sNrcpVs>!3W#IMKZp{J4VD@!3vDIUm#cV&a)gn9uvK3Iwjm0+EhjTW@r!8 zQSVrFE1tZTN8^RS@kC4qKV`e!zU%t$nr)kaC`1#tL8sXqMHBgSonHT&yKr&@!QbD) zkIqodD#;{O8Yqmkb65SLE(M*YD=p<`LX)a0<0@f_s>YS{zC?h5So*- zVE<{eyeIOPeYUN(TlCgx z>(F|bOrXo*%+!-LA54548{TW(Pa-oEdk%jZ(3`bD$Y-ghM6{ytqD+$Mli|gy8+v1k z)rhtQxf43$LGmAPj;S$fbEqC~6Z=trT$gI9$4?^1m%rn;5{!;SOSfcXkwQjx%^C~^ zNU@uFcjf_f?9y-VfMQ=Hfg?pNp3E>BdU2F}03etaiv55;o)A#w_nBoPw(?oMOQX)p zvF6oT#`xWLRuFoY+Nd5@h|6qdh?&0SC;5|r<03Qr97knAwJ12)N+&cwsQX?C7r29R zMKMMXds!LiUJ4& zL6wUNB{-?G-1vqJ*NxSv^FK@+N&~`p1%DFwv)=kE?i*72*}h8IvfDwYEBY<~?ClXB z#Hg-2f1j8=~McXk?0+B0zM$)v8$g_l9~RSRXDtscu%sWZ%>ALhbi z#A!Ub-3t6OLn*V!?bQNq^_84|hL;6{3)@UP8nb8@{1V=+;f}R`g!IFkOFmfJK?qN z-<{P+?tl*t%B)9H<$m8(Di{7qzy7pS#g550kLyWd?vDsXsn&go=;$2M*5_z4|2;}P z_a1s5c|DohV1KilSJ7A$h<#iwYH$E28m8TRu#nsoK{!hNff#rhfCXYd;mThjOgaRv z@onQAJ5DgQjxYS(wXu@66b)1n9^XeEW*G2>N`+&aaX-uqPy-^C&#iY6sz#DR@DGpY zz~2xkv=1W2`A8TdikGTv(x7)qPWq>xzx9Ee;L?*CkpL~?pI5^E46YBDQOmuRp-Rtv zK{$i-vtGZjRZPBxTe271uQsv@vu7(9d7s4I3#6dCh?5PiI1Otr2yt1_Ge6f6E*6FglC6cW-@s;)>0r zGk1B@#ONyW>f(D&h~@9JPyvWKMadpXnPuX~#TjawXD z5I|*ibwFN8b=VGMXeb6U8BFHFV&;?I@2Yr-Ofl{MB+${FnVu+Y{ybCV#o;pmE>rTF zvwEcuW_bs#fUs9P-vQmDe@nDKabFV$KAG;VE4sI`PldOy-DVHM&;bzx9mRi26avGf z0AQO=C%V^J#G~{wsrZJ9uzUPq|2;JR3x@cghOXqT#3Q9jS$hHKqf+8I+FVWbyUKrJ zrhn7#&j!Q4tn!a>0vfI|%gT~Ve^YiYJ5H3F`d`M7zgHVSktRI`ZRlCXz%wy>08@%K_5Kx2sSqc2{$$wP{e~eSrXw~Xq$x*&(sF%4u_!C=H)39JS3kz&mI#G($>2?rW10^=OK##n!5juK6??O9l5pVj9!Kt=PT1= zFY6%#<9M*k;z^~*b*5!bxDU|wp~GzY&TvovZ&JJ22~kLe7n$`B^%AV7F#l&hZ$i?O z>4NkaX22PKK!N{TsQE862gNYTjoUju$u$MS$u8}L^>Lr+?{34W2a2WjA->C<`N9+R z11LpbF%{B@0Yu4vz{&@J4^sdj#T6RD7f7L2Y|8W?S3&Dv(O3aD{t9UdWERBaqYtW= zn_rkDBZ&m~-&b{3!!vuTjuDp*6MUwX!0zqy8$gclM2c330l-Nnp1meqH1Q#*kx>El z4!9>G@n0e3CJM~$`f-(%(+tICC6yov3B2Y94|H6p*SY~*a`-*Q-bA^qAFxs0_&6VE zHmF`~x+YDZ8%X>-`*9rI`pRVl`R{_TfD`}iyP)fg)3~+%SAfdA=M%Cjdp!HneVv6IhQDsp0_@s< zVE1b}AkrDK)xjI@uKnk(^WaZ_>fkRI2?+v%7%P>ZB+#su1HxK_SFIt?>A0MEtwy8L zaN6ka;N?T%SLGIIFM8+rU&Bs_#igFAj~@mn-~RAw`QIG*E^t{)Q}hiMi1<3t(*3Wk z8UP8*x>~&o9U|3=NUAuT>*cDL+WYWrgGjt>)QD}Ik*PX~Aw06L+B=M_?v}`TDYNj8 z#=?RElSvxYm6QFJf*-)CQURx4y`ZY=*`%C-VO<=X!9wpt?RSwq-iOg>yb{k7UR95( z?}nPkWBEMbw+CxqdVhVeCFk+?MOl1f)Kx4b0Cc{h%rN^Z5^ zE6|-PMbDL{&Ro!F0vZme(t{{;ROFJjr?`@m^)wsPB#noL(p6`Xukz%>>xXcqBqqu` zOz#)bVUa}Q(ovDGX+t9;SFZE6wac^B&@oXtU%-{Dw)XSTcr-3WrOd43r$}_w>Eaz# zhNKz=C1Hl7`%J(A1_P6Qly!7u%XRIrNXzL{MWw5iUWaU|>r-p4s;Xs9rRb{t?iZ>Q ze6}@cM8YF&B`vD&`DkX1N^zwMk?jQZ`q)Jlu<6aSU}oWMhcI*m^YjBIYr;z^MRV)`!2{^f-)&qIDU?i6nrPFzpeoN^1 zWs-F|Ez+z){hf$f8zExG8oB2TSLE-b0}USnhjcP|Usmo$TO6t>-EJ82jo7Nr)@kCgYg4Zl5CQHru0 zV`6G(>4_vumrpJ?2u2eeS;V0OOSF`yNIt?jrC58B(CCokxjWO12YR*(mVaL8-4$M+R6)!0hAbTlG9Uqh);%>epnyWq#B zcvHbkfQVw)L;|kMvL*~`Di-h#kEBbMiHua0k~D-0QWen8%P2)zO)vp6EV!-TQsdnk z^evdyJFk&%u9-cgY$rT)OYN6OP=kpSJ?$-OjS)9XXP zd}(4Ojkl=KQqENr-t~XKCc)%1(QeRm^{tmnn1R^!3UVTaZsEF5R=a5vNu>SvV!yxF%^FY+$OmYz+?C2b z8XV7nCZ_)WXVom{>_3{G5r&{2Sp@7scs{^|YrXSTO@IR>&LpbxXY=jhAS6|)^)dAF zPLl#7kb3~W{;#&2I5+;_eX+++NMwNjs{pvZ2T<(szBC@)bQ3&_xy&T**@XFwhD?4% zuh2(9o7GA0for(2xTkKyKwinJTUD;$AW|p`(SP+>qw5Ni$Z7o~K~P(cb-hZe1>asS#|K9R;w}@|6wP6VC+V}hAgGY zvJ(*iL~*K=9F0Fr_Eh|-zW-qP<5%K0F)K#dwGHA8`8K zt9Yxm62~p=Vm$>21EYj7D9gUfY(g#>-9OOPt4Ekwg{9I@CdfJOh>4!>(&~eKZd)k6MAlc) z8QT~;eIn%*#HV{uM2?#Wba(;h`m6VY36j&UFu%xE0ms{(PmQgRa_xlqNNnnuGaH>1( zd! zA>eB+3j^*4c$NEcm17$VVa`(klKm(4zV@xN+1T>@he)wr6rT6HFqRtI;cBybM*>I0 zYuy`05p|1`q9c^(;1O+avaC%SLUKHvl4aXpKPK!i%5J@o zX@{Lo(_N%PXgRVMX3Cu`fNyJfNVMi+E`HfbQs1g^{2o*HC!)G?1LEPv9MP~Oa%$cc zLR+l2e-${X{#fAdCjSs5#466n$%D@kStwL~j`8U4fM}zWPb43>h`<7Ud)AcG$rJAt zR!b&5?(6T(y;7qD4g1|;{$2o5dmg8aehQ>UBJ#X`*;7*A+U1Lm9fG{Ht5EwT^te7TCp_ivS zyC*EO)Mmv9(sKK7{?`RtYsG{fMS`W7bhlbJLY|!*R(d>*PYc z7JzB9lzr?0#Q5t&>sn=2Jt=$ItW)0yfmFygS>$}QXsv8uf38{i0wazSinu-&&yNMGnHd=0Pl{+rUbLwGJVUc*l2WHgQ^Z8t` z-_o~Nd+z{hgk^OK=7Y`Ec5eJ!E|*XBkQAUb`)5w;gRoW|{tjWh zKt@<9tte~4zLhv!&{e*q?IIgI)YVh@4WJ|@0erizxKiSaQ(nHciRP|2UNg7-Sb$@Q zf*1DpSh$S=eOIAsctd};h0Q7jKz}@&$4O6gXwTe}vvQezo<5M}{o~rhBnOY`$kq$G9Z-G&Cx=mnZ5}Zr?sDlJDSnDDgc$|5L&Sk)}=ORK7dxLZYCN0teEZA zI0Ia{dkI|JyO9MD3CFK`;x^cvh#E~=dYD0@Yfi_KX%8zbixvdY@iM{zfJHBZLlb1U;Z_Nc9^ zKlWQv^E;ny$dpdI>`()Q#?h6i%1e&1OsV6|N@hlY#5|o{>;A2zl4jlQ;904&`(cPX zP5I8$W^LtGe&yzt?E#ihrO@G_5Rni-*scbs$_ED`V<)d$lHBsdXPyZqdmU~Y)40x- z131Hbx9!&Du>sHrSUDPy3cXcx+Sm`RPIBFATRJ`mt}+7U#4%6?z(>-j``Pxq7Z*yC zJQp^Wf^Y;cRt4C0sSjt(xAt7m&H!xwZGjiJy6>U^0EJb@`{JIs9;agh&$PV{-UFEP zc+tJ#q*^590{8ATfCJcFb_Jd_SDo~Z0B1a_DYp2ak85M~5?$s^7M`SEoX@ss zLmxgo=Ib5YINYR7X}IZ`w7f6Y^N_z5@cyMwLf)Y2Z~koO)5n_LDy2J1#R6Vxg`O9y zz{1Cl&j8TFRN_(Uu>=R?fn!f8h)dw(^ihV2!&J%zxn|jN6I7h_*seD*m`2lKHAVZDX65oE6!*fe_GwDIcZFQ-Eo~~u z@d;35D(@br%-!;=T|W2265N}Oug85uhR3_Sx1LphlZMR$`q-BpcZR5*{*4qKidc(o zUG%X(JK+q~f#bzlHIWDdftX8R9?8tTdg;xo1Gp|jz2cjEJZqADJAfYNTs}7yZ(S>{ zg0!L1eN0_>DqDuMq0tqt_kM$|={(0$ANb~$rsuPz{b6U)Pxm}l+OxcwCZ2;MzC(27 z>oZx)Pt9hO>kHnPm)p6|q}4Z8*^M(ot$H}-OWH>3H~ZQxv6QXkGQ20YMXlr{!p2dK z<=IM_WhP)d_4`mO^B~1QG6p+$MDoNC?|jL5o8FvdxeyD~D&B2=pP8<7DXn$GPuR}< zoSII)yt*!IT)nS#qf2vZ#qOkp*Zqsw%6$aGag@Y}kj^sGp5= zx!vNmtABVFy^)|eL4#z1_BgV$SJ@+b^ShrTt*lyKK4T!%+}@yJ&~!Y>`@I zRv#Am-FD;aPMRw=3lr=29f zoVdk{DCAg53|U**=3KtjaTWCS%tkq}*bVm2uJ)SQ%@J4D`uf4&5;6z9I6DNYDHt3# zJH&^bB$VnxVjYu}FdGhOF9M=Dro>b|kPpgY6c(p5%1{e+e8g*)5dI{034ix=&OO!D zi&h?B!%&Q`Eth09h5t60vxqehIi2<|Q?js+eOco3;! z=$(Hy3$o_F<_zaR>vN>mi)bkqbuLU#nCOYQ1bmJ%=HIRl9_U=Sb?xqft|t!*m^OIc z%=2Qj5JIz`hBD!8=PFRtK|R{|i(wy~w=N$%6rg#-FQN&}kC$f=W)TMwGJ0JS2~ko{ zF>xMBB^&>2m~&1G{h+f^FeC?vSYY$2A^2LcSWmt>E>Y&t8l#$N!N>n2sc5TX!A;uP1KQtUB6nCg$Q=sBOAh3&NG?>@@$tIk>85*TfZ2KHRj?Pd1TFezNoNGaVeEm{P=Mb^Y#kN z4YBLm_qU~u$c224MIK_P16oJFK{0sCuETy%?}P)t@(pM>G+Qg2cJR3ige3Zw!p`Z? zqcay&Dz(Vv5S472I2v(PIg65XiMr}C*0I&sJtqnVqsI*^V5ivk z=SrA2*H^!4$zN}27;bNqbK8lOmkbY)0l6D$-Sd0~`qU&C`(SW4 z*Cu=b0L>J1XHG{uXEb*DiER}=;GXo21!|5uXG&o(ud_HX0Ku2F*#O(QQ3?-_AtUlm zhB88QXkJ{q%A=^UZ(k9qaTReF@7JDCadkAdC3tvY^WxXSq0cR6px(6e^;L9{(YXFW zSC{}aG6K(C&?l$mDe|unTxZgvcbBFKJbQWfMTzxG_HCItJmS9)N>FS4oHv9}dYy$- zBraZ?D+O31Ri5BOkICm~^pgm?Ii@v(uaeMEHKoW{EnrX&>gnH^>PA}A%_ANp<_Ta8 z>~%CFOqBPEG07*{0gcG-w5@lz#6G{;;KFvi0O=KD3iAYTUPTCVX`p zszQiJ23MOj3f$K07LJ*Bk?gHh1?*wQ$E`K0A^}=6ST)bc+wD{eBXZ@(XOj61*#OQ# zlg=aG=(fyOs|!MV?-V`3*PX!*nD}Ez-rXtkdh}&ysceJFv5Bp*9B{z>a-_mYXf)6R zb5;BjOPp|}@f-y!3xoiDkhy7L?_)onwD$?2s(mY_0T%@3j!@gBX&sw&q!g57=98@M zIcK9fikwbbavd#so(0#E4T#*Af%c_w7lRys!Z4RNHN-cYq0^$l(o>} znhxPPk5T^&RwcEJ-8$B&_95`)!XJhWPRI$5wzttm+UmZ(Ldz?ZQ>Wq=&Sz%XSp-U{ zYg-X-q2j7<>0vY|w>HwaOdWn!3Jc#&xG;+&`O0dR8y%oL7=y}#mfaT|85^_ryKIf! zToM2)!@A$BxTs(1zLM6G+#1nM`DfHiV>P~_=a^l zgPGo~nRCq?htmGRv+@Ib`twK6I8DVw$%`(o=kz-X?|q%um}x0#9`)p2bBv#;)7x5g z-CapgcV3zl*@<%4NZZfqOBfi7$Gk%rT^5?CG^Pf}zZYn5(f+7UnJ?W0b8`*1y%mt= zx0soi6}(t>+Zrtx+|d5?Nq*49Z2c37WU1&x4haB1noBPX1=P4+wcf6YmfP0;8u#RE z{P8maCf^b#qy3@;itSfJvskohni=???0U!?J1?hl)d94T+Ct>Qvz#|mgRkgigz@U# zsq3?`8q0_-cs#m|2&dv2$kqo_tcHAUwJfcT`exR%|F+lxzT$k zHfM0tWio%~q1|?&%XqU;u3Nu&obGH`XZZW~Ltchbgn9NOMKx8)c~3SfX0d*zy~aMl zqK!hr7@N=I%mwUrhd?+$RGJS=;9!q6CX zWbZu~@pOR}Kpz-46u2yPwPx&n+(_B$%N-8^E!`TZR47?WfVv7jtDixQ(7^9jV%;{t zLRYGqJJ;Z8WY?^LF&e0kv{EvT#u$fx^`-IQ_t`s>fYlJy87P*q>XePZ7;dLhfT;;b zRK7K6BLkQ)y@1887m?LVzwjl4g_#&FUDvCIn}N;ouGci{-#>XhuxDN21nMxru6oL> zHLz>0xJM$n>g2XgcSzI)M2gLm>+2n$vTL3H95S%|zIl2c^TlpxDWi00hQmyBNnx)- z#7qRRipt#P^32I~Mma%6=L~ZF6I#B%YiDguq%WoSdBEV# zjex=awXczD)@7L9&jtM}LuqycgV{SpUH#5BH4lXb>>JF4`uc`nV7oNBCX0>CK8{VD zR4ynRPPXmJD_QK};40f(Y)ChBGAOytT{<%2!&Nd-kx!Lh8n<$oO6^Pbod(LZhY@z= z4&%Ak6C8ZT^dg;tZgNCX^|mKxUi)?hm$P z5(pQrs~F3FZlgn)2w@f`0ZA?gnIowg4xGt_d<|Lsw9o#bD(0ZU02~HOh`K}4x7d8D zyyC=QD`oRK3MwOEDZ)av(q0aZqo;fmn=sAd*yGhFcqP#@{K0vKgg zAI~r7#xR@bR~qc3y=>1byf;b56rWwi!H05UL9RH8`L;M!LNU4W_cAYvtVX`BH96`SmJrVWOeb{9A-6@>EvBLvYG8pztNg#lQ$ z>dHnvh0t5>!BS&jySMW%ssrSJyWcTj*8Fz;eF8?ez;IvK=zAkggPyF0pb78-_bBf~ z<(iLxWV#wS2vh9Wk#4Q(MtWhxYQ5+?bnLkj`5!KWvQX>#dgXJHHOF;t)~HZbTMq_< zUV3~TYQ!zK8CuWXz#6t?(E_@jz|8`OoKgPq1*3`n-kZJ^7tw)4ii}rFL>> z(3#OJ;m7^pI-|Umjw|o1@RW6Hps^4&0v{l)WWe~?W13Adxhv5$*~5ap>dF0+)4N+z z9=Tqdqs<~*z7>w2KYR-}E3NZJvPI^$m7G`Y(+5~%3X@NRUEe{xAb7b?&_rvruBJt{_owTmEp){vV!?b1u8UVIl zB)aJE0U(&bd_?919~kn2+>#uJB)+hin*vA!4$DbW9RWeYHzc3%cEg{gH@+q5Ho*u7 zv%oAf?^ofX@AWnGP3PdJzQ;6n zz1Qg;%PR~7chBXHw2#NP3VnQ^trB77iRRoSa5Wyy2`LrrS z+C{Qs;gaXvXm*lR-gBufXUia>yHmP3dqk%8##tT+X#>(9-26S!c-Qu|QqW^^o|^ef z2**X6r?GHAB2zxjV(wQllh#z+Qm>b}MRRf~FbhfjTIkhd`g@lA%`X9@a8v(r2l1PP zDm?@iU9~D;Kb5^`TIA&Mvx<5KLD1o+FA>+irD=#KVP}k`I234kK70m?h*&DserUEg z**}qqksRimSfwU)AQzMEh|!ZrUUXKGGnCaQZ<30%`kX3GDfyhM#H57V&aa|d?&0mm zm#Jo?E%{PeRCb3_yM3t#Su{bn-Booe_tu(5Ya3J|eZELO?5AIHmemH zl)q}NYOuQqqC!Wpun`mpzn3)iu9`JX+8KR%rUPsWzPp=_R1}U) zo?r-%>W@RVU6D7kR)zd5NTM8BJA|ObN?LoKAYxZies$F6VZi`trP+4!@l zHPOE57%3+^DEU=yUYpucm{0JDa-GW?SD#rM0ocL5wSMKn^`VvB=Ud+XwnLeAqSPC^ zLoH`qug{_7SzRw{PI)1(NK!QCA2#sjl%A%)shV%tRiEe2wDXk7;go#X_N9@t$qW{| zp5p;w3-9|cwqC-Dk4fjH*qZv#N$N%S_?Kt~YLXwp zc7{=mGWQzx9X6S%>p$_OIy|5l%up(&O+qmXBKG-B35jzhR9R=)k2&IilTbtB6#)(> zBU@XgBHz1a)|+j%RBgtWx@9>##jTX~HOm?JV;?^5h%(oK2ws*PC2T~gb2zAIsND zyL}}?WU2i&CfYfsYqWXQc_vBfjKkva(KBvCrBd^lt>Kb+z}iS(v&MW+e`s1f8t-3V zJ7aG3a#~Q`&gSLnYtxof*tr%MH%6rA`Xe&QxslXX)MZ@~4dZ&u4m8od+R`wOn zn}(XlS~tdX_4`NMeYgsLv>t;}g?!~a%wiZv&!Bln9=|%!An2lVZ|@+B6Pha-O@BF8 zoUkRlws!aMr1yY}>z*|-hFRK-)_r-ZB%^fKmB#(5PT|C)CzD^akn5`qCX*2NTwN#! zbt_03aX%;9xN%97bRpuAbvI&k+`sJw5l}nt7w%6^qRp;?4Ndw=5%>rG-px_B=k;dRaX1JU04Ly7mmUc%bCT@ToMXelbf5BWN}>s(+{r>1&7ezblgZ{)v#CiNDx3FvReB(fZBceE2f{ZbjyyU&tVIr zW)|#j9nLNt>A|GdKUZuUqTy1s&@mRG*1q{liIe;K-gRbaPT8A=ofFH|@l3qr?$#q< z+>+t+s2@E|ueMd&!)w^%ZY_;sVlX9ENDGr<)FEzNsEN9}=dqd4F8aM4)KW|BK*Xoz zTWa-Nraa5TG7nUsiIDe<*G5L+7%EDB&3^QG7lXR}s6$qnA%ZFTKH8!nOgACi&Xl^z zqEj*^Qt2Dta=nRBsF1hCk8<@Ol?AoDqSPcx>{wCnP-;t|(Tsaco#aD)K3 zb%iQU;02QlpUJl$bqawmj??l^V20;coa0}vQp`vx3XS|oetC>L+0Ak%+_aSa1c}J* z`y3WYezWS{NFRM=U7we}yFwpkm3WSNk+0@ZB557j4^?}_vI#lqee7ALlTpjF_$*DM zp*4avt1jV|TQkE&V(f^flY(8FL$&rdm`+?tQt44PU*5MXfhYcbVy1@xQ`{&pEtBY3 z*gx&5UZGGa&dPtyp~jz~vxJp}`{NIHL-N44i=rWQ@r7(*E)fUae$xo*$bEvC zPeB0ur`^Ch`qGf%rKMjiB84*6!mK-9XN;OvS%=2t$O)rB8kHd1nAzLlE(KhmJQ5JG zxIuzz#o{_Ki1QH488ld|ZZL7=+UR&b=xZUm2tNUR5i!h*{MUn>^2XYbD^M%?{D^4R zcE-NiAi7=cXDM>G^rx%ErBmQRSwZ#-SAjyNgt;3yt9dj zIKg(z#bPB#r^>`>lmUIowleI?dZ3DyN&r%OeHgj_O3dfa%A0Pjn*Fs8V&}-wf#VVe zRoSO1n2rb?g&+5^&&gpY$MWCydV;k$1TiM}7m5=V?*xOc|WL0b*JD;R?6#`^aaw@MQ<1OwZnorZ{)hlnM z`Ej5AE9E9Y*Mie076%DYsi03!MKcNVr$rf(M)|-MBi{DUR?VIzQ)(ROry1iV?oN7m zteE88Xw&Y1{&MhFzY?RfT&r-#4;I%Yy5*?Kc;l%NsA79$1nXg*GEM;<92rj<2Kpfd zJH2IqniA@MkO2|~eUfBezOgz1ui(%|h(;!*g0Ficr^bVNL)l037K2>h-Wa4dIOA!a zNmZACeB)p(=8goU1=v$SqWYOd5(eR#zLs#3d)iM(8R>a0shTHH74*0y1lXCz@emhy z^OM}Uwu8~ZpF;W4R8l{rlYNA~M8$1%==z(i>NkE1skQN`#Xb*``g{TN6(GZ5H{yO- zh=-RhxrWmc5MCPSoXvNb9!u62WPbetVb2q06LeKsmqUu8mBv$8w!Puw)OoUcT?=I@8Tb@ z*Aiy2neG%G3)KPxbo-aKUHL}9EHRra5(P?Vr4u<+d~kW^Wa?WP(N`v!(N!rE!>FY z&tSkLQ6VT9Boud>&>@hRIgrBS!H2{9euy%4Lvu}j?~iy45p-e=$i=9OkFIBbyhXI% z2>QpIzSXj2&+dM>B<&DLSw1NXu+(6vgX?7f%$p&b`&PjwIN*rBi=P%sOi4=o(?PVi z)PS}wghB!UEPzbb#s|O;vSQ>_!%pd|mO9?g60HR972@6zj7i~_FBdx}fj*_lq*AP zihSU?-^)-)M_%9CUP9=MgBI(n8n|k{fl7v}a7#r;;{DII$%@2EX(SXqSZ z=Ex;uu<_l1@_ZCG`XG7?+GHBrwRXDVe;jS;LdlqN8*&F2w1t1KPJoxV_RxQ0MmgKa z$^8d@1aKT5H1OdxlN*_ zeefKnWU2ov=oR6*9Dj#xXy=?T4)d5bE<>l5?Ug0^0oqoL35frLF8kBL0AYbiveu*RjbNsPw?kB9^+4c}(NyE+A5T@|{;$|9OBJQSk+1s8N;fULk@Svh7>DLq`^=5)W#Na zn&}_9fV05AlN%!2&e!@QANXq9Q#9lw?=7#rO1+Te$YdIqQCpH6aqTPz$^M(lbnM;j z7u|XI_c2!dRzKrkFfc)lU@`uF_Gb(GAJ4T;TlMBLoYAl)*|XSwZJ_^yGURyD#0UOU zctZQE;5VYmGSbyg
GnO;3vhE!b*iqVLH>-j3(V0EF|;M%&M*FL8yK6F83wz(`Bv zgx~#MUZhBizQ**^=|@HHNu|Il0j&7ITmaINBI$GmM?1=j&hmdadNACkJ^Oi!(gfrb z;OqW=?H;D&C#PiY#^$|#c{zf3|D?h3fCNM?5M%!}=KB?a2*s7Cy!$!Z|unHr#KfA1ZXS=!7v6cS+3!E^DGD2{E^tX<$IwK1`Z** z`}}J>*>?qVKc@vhlUjmH#4WLP8O&(qLw;bK|Ivz;*GPMHTd7^9LM#Z{mnM zdk2j&Z81QWroB8#249)#vYLXu0zIS`;ig|6iN)!Jzm)@IBk2eM7oQ}pdc;Sk!Xv;fi{^jFg>|y*dzV1{M+#n7nUQ0t%?Ml6)47Q zZG!W%2_qNTOcU?b;Vq^MI_ThpC4yk-K(-8MhyL*%-x!hS1*CF@apv$?oh7+jt0X^N z{Y`BU)i&i#N2cd{Z-G;g!s{AM)XKSme0jbXqNicWf&7q%z4%N~fy(hzhA_*d1SjCYS zh2f>}K)Vjq$MDiuM-0eCLr9z0&S}zBa*Z!tIt;Q%T=Y<%TpRXx+4};GizN1mwRk`Q z;dFNK<%djyx5poQs=hoWGx#MzDeeMz{gw7A7L?@t^b{5^>QFaQyh3_a?ha5uA8CJp z#uP@K=7~xe)fL)~j$6q{>Gl)P4-x*%gb-|!%#Xyjbw9J!gQMnQ>?Z~fE0b*MOEJJ> zqB%$&6u<0q8X%>_(|}V23LR zKS1CAA}Q|A^zo??T_tB;QN~Ehvc$#S56>SN2VmXEjVd*n^AvhFEzo@^Kty<_c=_EU zKu(aoU=Xjsanc{@+c+eHg7a#imxeEkMC^cux9LtwW~_SCoR5upxfF03_Pi}p`d zNr|_qY2>ltAtwAK5<~R9VRp@QXDkD%;0Q#fWv6|WA{ZaFfQH* zIGP)qPk7_S^?S?9g|D)H0m)%-#NmuaB}@go7`SlhK-UG-mjELZD4j8M2~qU>V`*5d zLr>mb82}y05>>IC8*w|4hEEG9P+;=~bXv4Q81gl^9iRR+>(SqU8`48 z)|l~p=BnohjCg2nuZX@TBeS!)l5#&q34m|u4ck*$fbPf-SL7ie7;-@UgrZm&Qh#Hm zOQR|y6^cx15``X{S#l$M?m^54ln_uA+?X6Fo7vcK!!7wSIc+Oju9>$j<6#Pb7Kgf= z+q37PRRi?GK)zeb@ACl#``Dk#B5%x(w~HP6Um&no5?sDwaO(;lVh8%q0$xZ1z$)3# z@Aiq1`<|SF2h~V&(<>-UF|ics@RzKDe32xQXwTb^0py79rrDTyKy+FNPySP2Bw51| z>`?yfV7(3bDasK{r49K4$d%-2(WmxOlSBCMVc(tsb1e3l#6K*T1qV1P*R8t2XGFWa zUI%my4K(47hCb}+aUd@8%`6%4-5WHNiYB(IaBR~^snei#+UL|>Mc>`?EPZ;2oF_&m z$7&sGEPebPbyZ^BvHKx`q-CWMGLWbq0qH`hiD#Ax|@~v5JLINdUhn z7-#Rb{~Bv}h!?m&%$I%XDXW*ODwt4YiiSL~x2*3-)?gW%o0Pzx(j#ms_KHdogNm&u zB?bvW5>3) zl9eJBAUh^afHMYDjGs~4;Lh^85`51h-ts(E5XCba(Jl3x$4|#80c{iW3sZ{Ul@wU1 zYEeviv2rZPgw_jFmj+Q+QSFD@6v02Jje}FZ(N@EqMUozI;R|LF|-wHLzW=FC;%6hl($i$_}lN%YOn;A|IC1W9S+y(Wa_=}KPwxjsYzpgtBo~f}01R!22GJfrx85@IWFML3=zH|*Y0`K=|EC0 z()a4LFC^f69EzITK2s{@5-Lwe>iRG?xLb4K*o<-vID1&dKxW7*xRhFg=@GQC_d;X= zj;LsVV_8?~jTg9cx5rf^c4`=5SGA8`l;M1Fe*wg{T0XU%Xnqjf8c;cpaZVBP&$kp6 znxqCy>{ZdP>8={L&KTFx0Koj+d5Q6KiLK=aJSLdU1TPI0EG@J60oe1kAvqcNj!E(b z5m`K#h2GTmNq}3PQ`R)?EPC*X@oGGa?|-nIso{YgSJ-w`WiGXJRrRSAN-C}W5=Mc z@jH$dd7xwkKBq}<#Ipb4Tc7F|m98%UL}(!3IYP|K$ADj*qud0s`~g%^yNN30z_TOp zp}O%BOG80H$*N=;A-IL;AJRS4zk!wiN0Sc#x6_ z>5=OdmG-y}9qcLFQdK~i>F$(h9vr0Qf5eH);1VQoTN2=fC(cMNICn$0DrMtXm0)S8 zTPEcF(e~J30FcU1+hWUu1MuDnkfMXTrNNC$zhyI!4t`=5Leh8Ugzz z!-0S9kS`pNN%5$8cXE2?F#uXhFd8LQ>~i@@BJL+Y06$?7w;fPpLK-me0G;+vJ}9sR zhyR=+pC*l+@mlYtJaAc602mx>zjQM|z@Fk%N}RW{d2%En-5y|Kwlb4IJPByU0kG#8 zpDs6>Jv8R`o&cqSZE#oW0hRDcR<^Z9bAmb`%^DR05=y?=9;p0Z;q9{pWgiO8ZgfSr zf%9a)krr~ED>M;@VgGrr6&+b)7=vgjk9p|-a|s>2Yoc3=y{e>|OF`I(V>CqJNn11JGWp0aW--um%8x zYRAq)DbK+gE)HZ*ye5i9d7|5gnp!A0q`&pbxLr2EAe=B6thY#oE z_C-x#PuI);AjxWum%4GOu6+Q<^NLx=c!}G#*&kLtI&cCEe%rw=Jou>7vYFAjPm}$% zge!mzhcL+id-%6I`roF&eZ~nCe zm*+z7dv$wT6eyhn4#NR`6$TqQs;oN>T~3C(e*Wn?=(-&I&8NE|pU=S7A1ug9F;a_f zZVWUW4`{z}_O;)YHPRtIfJu$f;Le+Awh;o!C*^v=EF>b+L}ZQWJ7tTjSO(x*0X=|_ zRAibR2!nvNEdts(6E*nwSBR$+THCQ&c##2J;da=lbVw)%j|oy6f^bdt4RB~BEFXOM zoiXY-4-THWCW1mJy)-80H;EmxlV3jS6Wc|~w5{wm&N6`LH3E8%cP6{sI#IAX*nVh0 z=>-(6wKzecfpKo-3r-veQc7~?$axK3hq!z9_IEc*`G>L4i$cLb!sS7@4^hHLOEUuJ zO#mgbzo>tjqfw$K83h2hHq}9|HZ*c@?=}ZM3{rP_TJ@09MR4IBv;@+7QWwA0?mf2v zHyDG5z0E&63u!q0qT&C$0wuGp;mMFq=w7^lRY%u-J3Cl`Zd!!OvRn{kY2f}E5t}-4 zoVUmXUf~-!lYx(wOm<3}>E@084avYuy*m1DkjQ*cWHUG_Uk29O*|%k$VKTUT=U@es zw-YeXI1yL`ciGNj+~L!>a0FRI>fp*tk{5S?bk6~Q90pqeC5_dAkX02xRoYKK2TCcL zO$}xzd$Q)wfS*J2lZ_8#{szu0ltOC&fDWw6J@EB_YVzAJ0V-CXZP)XEgarr(*#@X{ z1pJqsT^>b_%0W&KfK`4_iK-?;CZN~pbB4=Br*;uu8zH4$h5>gPLx}gQWrZy++%}Mm zkr*GUe`}Wj20LZ+)~)o(_jJF(Z3`;kl%zu?ZxS+loDw4h#n1kq=j<;LgTI2$q`zzr b?(OW&q3;((1{Vauz%LnuoJ6|VWB309rOCp( literal 0 HcmV?d00001 From fb708e0af07a7fa8b25e554171cd786ab804fc27 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Tue, 26 Oct 2021 11:38:35 +0800 Subject: [PATCH 214/429] update --- docs/YZDeveloperGuide.md | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/docs/YZDeveloperGuide.md b/docs/YZDeveloperGuide.md index 7a9bd3f938..61fe42d815 100644 --- a/docs/YZDeveloperGuide.md +++ b/docs/YZDeveloperGuide.md @@ -2,7 +2,43 @@ ## Acknowledgements -## Design & implementation +## Design + +### Architecture +The Sequence Diagram below represents the interactions between components when user inputs command `add /n tom /i 1 /q 2` +
![Sequence Diagram](https://raw.githubusercontent.com/thaddyyz/tp/master/UMLdiagrams/EditCommandDiagrams/AddCommandSeqDiagram.png) + +The Sequence Diagram below represents the interactions between components when user inputs command `delete 1/2` +
![Sequence Diagram 2](https://raw.githubusercontent.com/thaddyyz/tp/master/UMLdiagrams/EditCommandDiagrams/deleteCommandSeqDiagram.png) +
+This show the interaction between the Logical and Manager components during the add and delete situation. +
+ +`Find`command goes through similar sequence as compared to the `delete` command sequence diagram. +The main differences are: +1. deleteOrder() is replaced with checkIfMatchAndPrint(). +2. deleteParticularOrder() is replaced with getPersonName(). + +`Edit`command goes through similar sequence as compared to the `delete` command sequence diagram. +The main differences are: +1. deleteOrder() is replaced with editOrder(). +2. editParticularOrder() is called directly from the EditCommand class instead of through a method in Person class. + + + +#### Alternate implementation + +The EditCommand function can be integrated with the deleteCommand class. +``` + +``` + +The upside of doing would be that there is less code overall. +However, doing so would result in multiple functions being in the same class which would: +1. Make the code messier. +2. Make the code more vulnerable to functionality bugs. +3. Make the code more complex to debug. +4. Make testing process more complicated. ### Edit Command The purpose of the edit is allow the user to edit his order quantity. From c6bcddb60b8bcaa78c87864fec629edda4303174 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 26 Oct 2021 12:22:59 +0800 Subject: [PATCH 215/429] Update MenuAndOrdersSequenceDiagram --- .../MenuAndOrdersSequenceDiagram.drawio | 2 +- .../MenuAndOrdersSequenceDiagram.jpg | Bin 15931 -> 24423 bytes .../MenuAndOrdersSequenceDiagram2.jpg.png | Bin 16173 -> 0 bytes .../MenuAndOrdersSequenceDiagram3.jpg.png | Bin 14226 -> 0 bytes 4 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram2.jpg.png delete mode 100644 UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram3.jpg.png diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.drawio b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.drawio index af0e391b8a..c323e3ea80 100644 --- a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.drawio +++ b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.drawio @@ -1 +1 @@ -5Vpbc9o4FP41zLQPYXzHPAZC0tltSyaZdtN92dHaClZjW1SWweTXV8aSL7LAThYC2z5FOpaPT77vHJ1LMjCnUXZDwDL4hH0YDgzNzwbm1cAwdM112I9csikkY4cLFgT5/FAluEfPULzJpSnyYdI4SDEOKVo2hR6OY+jRhgwQgtfNY484bH51CRawJbj3QNiW/oV8GhRS19Yq+QeIFoH4sq7xJxEQh7kgCYCP1zWRORuYU4IxLVZRNoVhDp7ApXjvesfT0jACY9rnhQ//fp9ld+76899J8mdwsbmLP+sXRqFlBcKU/8ID8/IWkAQSbjXdCCgITmMf5tq0gTlZB4jC+yXw8qdrRj6TBTQK2U5ny7Z13OAVJBRmNRG39gbiCFKyYUeyEsviFe46usn364oIXaAb1EhwuAxw7hel6goetuAIvQAtU4XWJxinTNuc+JAkpwfNboJma6cGzW6DJoMEY/8yj1W2i3HMhBMfJMEWNb2JUBNO6LNY5WowoQFe4BiEs0o6YUCSzUN+fGiL7Teua7u5yoSu7W7DdzuZoIAsIO2OqNy0vXzV+LAVdAgZgSGgaNW8jVQc8S/cYsQsrtxh1HQHw5RoTnBKPMjfqt8ekqIL224q0iRFBTAtRVuXKX/t13vRqNuL3jzUnB3Y1qhVRVrJycFDTVyYPWPNC0GSIO8/RliG6IOIKLb+Jt5k6yq48k1nbBW+2O0E5xJbrsS/fIX2jS1z3BGkO2KL8Qg2tWPL/ECy2+BSr/SdXXZ1nGeLwoKDBrou4vCMIr287ERSdU4d6UY70mO4zstOVo1McRSB2H83MJwfaV5eTqJtjSJ271uAMhzyBwkl+AlOcYhJlYofURhKohq6jzimvGrXbbHnivPnOciIldOXIVrETBYh39/eG4ALPEYLKzYPw5PtqpNUjSdHwZMcb4ejqV1f76MpRAn9HWlSJM63paldo35BwyVht2Fe3b/7dZlwmlWdPT41E85OJooG6yMLkV+Yj1GTD0d/Oz7m1mTuPF3/k1B6dwXv8NXiGarmAydPxtJYQOWzqmRsHwsjtxsjLyWrsp09WgU+bNTgQ21s7a3D880tJIihkPtv1QWX5bzolqv++IXdcmdFryva6n2OeCalvyG11baI2xeX/mYz4EfWcUp/+TvC4L52iSA7VOmv5Fj/H8zXLKkVUJWYR5uvqVGzzu+OtqQppNG3YZKnSodD6QwHSJY8QHJPnMn0cQuT7vTTRK068xHjJcfqO6R0w4sskFLcRFI5QSrGtbtz16vyVGOq3B46M8k1yhHrn9T2+lpnUtP7DrR6p6u+9K+eyXzu+/dP9mj5x83Xh9HM1i56TF5+i0JGokPhBKeqOyx5nO/Yw7H7utLDGklduHuc0sN2TdnmvXa1zruHLT2Urt/uc2AGvZTCs+41W6mml6sK/uWpsyL7HKjXZNvq79wFZdV/C5iznw== \ No newline at end of file +3Vldk6I4FP01Vu0+aAEhiI+2HzM72zvOtjW7vfsyFSEC00jcEFvtX78BAhiCit20To0P3eQkuUnOvTm5gQ4YrXYfKFr7fxAXhx1Dc3cdMO4YhmGZ/G8C7DNA7+sZ4NHAFVAJzIMXLEBNoJvAxbHUkBESsmAtgw6JIuwwCUOUkq3cbElCedQ18rACzB0Uqujfgcv8DLWhVuIfceD5+ci6JmpWKG8sgNhHLtkeQGDSASNKCMueVrsRDhPucl6yftMjtcXEKI5Ykw7O8M/F/NN9+DyddsFks1h9m8GuDjMzzyjciBWL2bJ9TgElm8jFiRWtA+62fsDwfI2cpHbLfc4xn61CXtL545JETHiR2+blIAxHJCQ0tQVchO2lw/GYUfKED2osx8aLJa8RE8KU4d3RpeoFgTzwMFlhRve8iegAxKpEzBUu2JYeBAOB+Qfes/KoQyJqvMJ0SSx/ENxewrN+XZ6XS2w5tTy7/cFC09rh2cyJvQnRHxffJ7sHe/v53zj+3e/uH6LPejc3fIpoHLnDRBp4yQlRHAeOzK3sCOxyQRCdCWU+8UiEwkmJ3h2hzdCSrid5POAJ1tCUYxSHiAXPsiTVUSdG+EICPpPCTXrFTaYNZRMx2VAHi16HElIxZNhVQ2avYooh6mGmmOJ8o/1Bs3XSIL5kyvlIx+Z2tgd/yGZRBlfhiUbxNjPvZtbT9FvM2MMYP5Cx94K7OqiJNytkYotKgWf9tyF5RTdON++QN9Ct9a6s5E+e+J9aWRQAGM6oi2mc1/D5LqqtOZYNm8Nv0hhZUzQNanhZpymapo/vRmJlkgolv1M7RJGfo1qjxB6EitYUMSBpzXtpel8VlrNSIfNftrknZC1Y/44Z2wtpRxtGZJ9wAun+Menfg3nxn1ypksJ4J5X2ouSi2E/HzYwUAhiRCGfINEiWPy6Phop61fovU45T+0Pkf5kunGDTqvd+Y+lr6sqTs2zteG4h4AGQAx7qasDXxTtsId6fX+hs5rrzJ9hff/rw12N/ArWuoXAU4S0HSKpKI7Jaocj95VeFOL5epqiGiLtDiRHQqSQnKQvDSX1CZsBz9WEYeBHHVoHrptsMCcDh9GPajj90q39WgKwaf4D30h/zNvpzWjoqOvM6sXqd/tSSBBrKD3yj/NQnJdCQbyLQbJYuvSI7ObX6muREyRyaZivcDVK2wm/e+XlfgvnJr2Y1YPg1OJqs1OU1LSYwS2TZ6dVHSWBGfQDTmkoCo6W/li5LlhwLt09g2r77t0BSccjlG2ZwvUOvliP7xiJbXlBLnU2b7AL2ePBcyCp/LlU1KeSiWohxV+tpZl/S4x7QB2c0OS19wTTgvCZH6oVCfSMBBlBOopQXD02vvlA/Y6ili6+p1Y/T1iX2eO79YwmBkv3eWggGCkdfg96acudlt/L7IGY/dPL7NndUbt/QVt/0Fa++D/1hvtsb1QZXtste9FUJb/ri77z83e7Fn3xlKTbRpep3dDdeKY/VVYXCO+xsGP55t5xROQlgX91yV71v6rbihHviJXy8jwsM89YuqH5HAjcXvZpT6LeflX3TuB79vFh+ic1Uq/ycDSb/Aw== \ No newline at end of file diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.jpg b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.jpg index 47ef097f18d5b31bff2bf492fadf74a0f9dddb6b..f61bcb9fe7b7ada0d82f5d62f2e1e14ac3b20f25 100644 GIT binary patch literal 24423 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 Xc}0TV6}qEiqiy7_Emo2Amt+4AWBkJE literal 15931 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

3M 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 b?ak)tHz&MXhgB>73|wu`{_!l`yu$oHW~k{6 diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram2.jpg.png b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram2.jpg.png deleted file mode 100644 index 7afa4fd0235a2f585794a87f5e4e6096afeddfa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16173 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

O3rWh-l&rzJuM@o7~rXE(rhWb2&#C$kl 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 D`wJnS diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram3.jpg.png b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram3.jpg.png deleted file mode 100644 index 65ffbe5bdc22f2688f466cf609e5cffdafeeed5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14226 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 From bcb51424b20187658cd6698ef364c021819125e4 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 26 Oct 2021 13:04:56 +0800 Subject: [PATCH 216/429] Update Ui.printMenu() function. --- src/main/java/seedu/duke/Ui.java | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 2b93ef8717..62fd097976 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -1,7 +1,10 @@ package seedu.duke; +import seedu.duke.command.MenuCommand; + import javax.sound.sampled.Line; +import java.util.ArrayList; import java.util.Scanner; public class Ui { @@ -152,16 +155,17 @@ public static void printMenuHeader() { } /** - * Prints out the menu item that has been passed in - * using the proper format followed by a small border. - * - * @param index The Index of the food item. - * @param foodName The name of the food at the index in String. - * @param foodPrice The price of the food in Double. + * Prints the menu of which user can order. + * @param priceList contains prices of the food. + * @param foodList contains the food in the menu. */ - public static void printMenu(int index, String foodName, Double foodPrice) { - System.out.format("%-8d%-33s%7.2f%n", index, foodName, foodPrice); - printWithoutBorder(LINE); + public static void printMenu(ArrayList priceList, ArrayList foodList) { + Ui.printMenuHeader(); + for (int i = 0; i < foodList.size(); i++) { + System.out.format("%-8d%-33s%7.2f%n", i+1, foodList.get(i), priceList.get(i)); + printWithoutBorder(LINE); + } + Ui.printWithBorder(""); } public static void printSummaryForList(PeopleManager peopleManager) { From d6faeeec0ca058f832f29747518c3f473a861089 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 26 Oct 2021 13:05:26 +0800 Subject: [PATCH 217/429] Update MenuCommand execute() function --- src/main/java/seedu/duke/command/MenuCommand.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/seedu/duke/command/MenuCommand.java b/src/main/java/seedu/duke/command/MenuCommand.java index 9a4905aeaf..873618c110 100644 --- a/src/main/java/seedu/duke/command/MenuCommand.java +++ b/src/main/java/seedu/duke/command/MenuCommand.java @@ -32,10 +32,6 @@ public MenuCommand(String input) throws LotsException { */ @Override public void execute() { - Ui.printMenuHeader(); - for (int i = 0; i < foodList.size(); i++) { - Ui.printMenu(i + 1, foodList.get(i), priceList.get(i)); - } - Ui.printWithBorder(""); + Ui.printMenu(priceList,foodList); } } From 478c0f103ec51c2bc6a2a34a4ad4e6e39909ce36 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 26 Oct 2021 13:08:15 +0800 Subject: [PATCH 218/429] Update checkstyle --- src/main/java/seedu/duke/Ui.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 62fd097976..529cf6f250 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -162,7 +162,7 @@ public static void printMenuHeader() { public static void printMenu(ArrayList priceList, ArrayList foodList) { Ui.printMenuHeader(); for (int i = 0; i < foodList.size(); i++) { - System.out.format("%-8d%-33s%7.2f%n", i+1, foodList.get(i), priceList.get(i)); + System.out.format("%-8d%-33s%7.2f%n", i + 1, foodList.get(i), priceList.get(i)); printWithoutBorder(LINE); } Ui.printWithBorder(""); From cf493e47b95c4a5fc0599295d023f4b17b2e8f40 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 26 Oct 2021 13:20:12 +0800 Subject: [PATCH 219/429] Update WKDG --- .../ListCommandTerminalOutput.png | Bin 0 -> 62149 bytes .../MenuCommandTerminalOutput.png | Bin 0 -> 35642 bytes docs/WKDG.md | 8 ++++++-- 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.png create mode 100644 UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.png diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.png b/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.png new file mode 100644 index 0000000000000000000000000000000000000000..388bd2b42250391423e399266039be7387ec233c GIT binary patch literal 62149 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•$#zF*)_D5S82Zc$lAC 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�yneTyq7MY zDIwGeD4~X$@DAd2M#p>K+_zpn-+1rv! zu6-vj_v-jE1TT^4gjxIQ? zGA3c#3*>ruQLz1+A8*pnWa9fmW|=WK+)=oMF`asmy>o;ab2lpqET1Q)HF{UhnI?Z2rZn%UfSROX2e=2n%O>Q>AF5 zc)3NAma+2HfGU@jcd-}Pt~4?-%inuOQWka@*bOc{jF~o;>3(>Bk4U*hS2wfL zNuWVdvLy_Wn6OC6)p6Q29fpgw{&nmDM9K}A=uq_QE3beo=J~9coP2JUibDH6w*tCC zs|#yHUzclP`=ac<_=A<+qVML5xDicxML6I__hArc1Q7vhrzX`(-pOh9ZHqIybd0fb z%8#dX!KeiP6&4X$obf#@;#v5P#}SFt1DIVjL{0G>|AjB`EoVIEFN)9{dG7ON#VqRE zK);kcM`d@KAoRm;yAorq(;y;}JaWRgxFDleqy2;;O#5pVnZ|&*#JYDBu2C6ZP)>W! z`6?4gVF8~8cA6Aoi8S>R_U2$xsYSNG?6BALELNV?m@2_59dIS zLJp^@$lUKX=S&&F4CVwq7N^|HmtQA4)~q!2!C7ce3tOMINE49JZuF&)7)l-*mc|I9 z)`M4ShvjQetOV*BsKIw_$dg7|z|Ia~!rbbwJxQmJW8g+-wop35EoZCro5HSWw+i$R z;YExQ`(}DGh zyUBU%tJO@#$$ZxbD+3PGG_QY(l7_lh`&JXx%6F`hMc(ijyDG8r8&bBKtYJ%Q)ia0w zZyrsQ!Wx4(?Tc3kN=T<8r?4DpiUiH9e~t8lc6Yo+z|aG=C#ivyEH2N|56BTL&AA?_ zDa#K!&d4m$-XkI{Pz#KKF{ywOs~t`2XZxn3uV=t$Q61cI&>Vg@9YP*RB@3@ zH-VyL+oQpTtPe&-Jd7q<9c-_ep4Ntf8wSoS-o4xR zmo20f_-qr_?|z!V&eTPy>n@WmC?A(7Kp6H*a+Oh~^Rd`W2x5)y5jnYoFN+Nv>o;NI z@mN`Iob2!r={2^?es*gfhqA|B0SVv!1U|aowmY|^Df$pk_Q0~m{m6-#99Bj88;4R5 z{rvB(A}X4Oyde#F{y@!?$YX`A=PpQ6qMq%oPfP$-C!iyQ)oBY6+lG7N*~FMoN>oTO3xzW*nV9E;Eln2KB#f zZX4xKbX?fMXGPQJa^y{)8t@g%a*8p zZOdCTdwK9thUS$NTa~YB`D$0}dk2@N7UQI!AMMDczSKj{cL3fuJCX1K#I)ZqU+Nk* z;q6SJCPCPdffzlavHI*1L!F!KeKJNtDDHY7+3TR1!t>+$zHi*UW&u+pIHYfhKez{R z(WDpRK)DAF7SASR7e|~Ly#;?G^@-ifh_srs`$Q`3^`c`-9~CIzm+Q#&8LQoqD*Cjl z-9Zq0v~v#cDY&B!J8n(b{&MUB)uyF+Y9iT9vJ0KF-8%=3>sRfx_{z8&>5GLK2FfVp z6x2w4c|RM{%e>!)H*Opx^ECS&O1kUrSsLJ^uP(C=-p6$d=7 zI9(utlWbDGrntVqUxBq{!t=*w_Ej3!Q7P~nMhRqJ8Uun^#f~Tm8)tIwh>YIc4W#9G zLt*~Z>N^9-$=nsBLO*=nE^%N0l@>M!B3v zGKl9EZq249)Lc#b0IhTtvBOkTasf>?=Gn?3wgW$ z{Ww<1Ey&?>6V6`U5I}B>zJV;|l}ObCyuoVsR`$*F@)_Up19D?OQOdhq^eStk>)wNL zcE>Q`ZVh*Hj{w7MasT3GMbVeIjfG2rvmll^xK7idPz>j}mWS@dQC!_0|Kcg$ut;5L z(7i){$IbG{?LXqJ6;gXUch;DveJrY-aRLNR`Pyt$7{4M68$6<=*ye@cANy#fLM^^* zX=i%ec7wRHhOt~>dGvl1bw?k4@QVzYHy^ebR(E3pjP`L!%f6n~|n*@E!&(upI2vf&hyyOPaPc4t1Xnr;KWvNCjJ>)j_rfsxIxNAzY z+*6!KZ^|DzYC5rC-8-WfTo498;K)QnI%zQN1S*v4>|f-r0Hve}|L=Mio zi6cT&0OeGn)~81Y=sbq=4!U6pQ{ZWGX#?K9HtPD>zLw0px1GcA}IHr;qa~ zgl_yp_SN(svagev`egSS>~;1EIkpySLm>wbu~^qw~FU&SMr zN2~{MCJEyQAx@{O9aA<)7tc<}l?6Oj_%~XRDg7DHYhoVDF_I_Ce`jHv0T#A7P1_zZ z!9Af5cz9El=Qdzi)+mlq^UwgHPQ7^8-GA}0faDWhgn1)yzlI@$ta{G!77f*nV`Bwq@291AXKp^2RZ3giDECm|8kiXcoZ@+Yy}ar>hZbq$d2jZ_EunFlfLs6=0{>UI*UH0g2}^~EEno^@nNrP zHV&^?*z=)u_L`A7HD^}w*eM9^`mI&xAiP+CKZ*d^7)yrP4?feo)#x%k;zIm@>nK9o z&^^)vev3?%cf?RtNXI6!TGo1C%X|0n`L^NgKb@mUu*Gi?hP(sT<7TtkJ%W{H{MD;X z#CvIX)$~cXEu0qS_oU}C>x(t@$doxX+%)4$pAdLrb!`#Z`1L+nTSDiZ?U3S==lXr+ zppL?)l_O=Jp99%}fvaYr01oVR0Jp#u)#r9gHP$j*I+BE8q;DG^BEP;^Hh3b1tW9HJP+u3?S>O_X9u4IjJ@Wi z&0yvaic91qHO$zO?#@sFU6N_}NmQTfL1Yl9q~ z0n0I+*$}<6ts~LER06d_2O&!>V)UN9SSW_4Mr|Aev=n~>XwN7EQ#V!EwTmsa1BQM< z{gPww1EG6)ddA~U3zpx;Zo*3y(6(UdGRWX6ul`s6<<2+%RtnZ>A)zS~NT z$@#{{QxXGS*85c-0F19wPTDuY(UNE5OR6^3BmgZN`MNP@D9NAGbq*RQ$E-)|d zhiH;|XL|Eyu=%81b-@!vWLk(2tNC7LC<6BqxMom>UpgJ<{d4O#IjuNhK9SI(n7Fb4 zD&cIwkqMdv8MZasu(l|N=!k&J8&jqP_@qMK)Mq=15DdLh$Y@wK#ce7dKat1HxFz|ei*;8 znEB)Bn{S323c5yvq>7_DKST5-m3j<^MPDs-s3O}^QUx9%_>VoCuhx%I+={$qs;X|P z-RnEKnorGxlKjb9IYH2iPiG@Qz%!je;?B1=I?B~rCOCB{KTg0151%Ijg3Dk09h6 zb7tl=3VMjmWs}(Gw@8gAf9bvbuS0YLfs#UN6)%Z7nzr~j5@A6*)h1r1zN}p+Bz$c) z2C=@=*SzzsW-8!&&6LRh8+!ZSCQQ~J8qVie~EliZrsC~i*o@Mbcjh>y;yhrH?4$bi}@lEmfLtZ7`y1CkW@Dv%-d;ts)1xP71BQegj8ih@GYuIs8`c zMfMRR<@Z%GpnL)SKhtM`SLh#KfPb2PCNgt`KTINPhve2ce+u|0%d6ikl{NMMACrex AApigX literal 0 HcmV?d00001 diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.png b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.png new file mode 100644 index 0000000000000000000000000000000000000000..1f4cbf64025c18ca618df67fd86efc8b1120b410 GIT binary patch literal 35642 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 literal 0 HcmV?d00001 diff --git a/docs/WKDG.md b/docs/WKDG.md index 67245e3099..f400f79183 100644 --- a/docs/WKDG.md +++ b/docs/WKDG.md @@ -29,7 +29,7 @@ This section describes how the commands are implemented. Explanations and sequen ###Implementation for Menu Command Class and Order Command Class -Command word to invoke the Menu and Order class: `menu` and `list`. +Command word to invoke the Menu Command and Order Command: `menu` and `list`. The purpose of Menu Command class is to instantiate the menu of which the user can order from. By invoking `menu`, the menu will be printed on the console for the user to see. @@ -37,7 +37,7 @@ The purpose of Order Command class is to print the orders which the user has ord Hence, the sequence of which how Menu Command class and Order Command class are very similar. To prevent repeating of Sequence diagrams, a shared diagram will be listed below for the Menu Command Class and the Order Command class. -
![MenuAndOrdersSequenceDiagram3](https://raw.githubusercontent.com/WaiKit-nus/tp/AddCommandClassDG-WK/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram3.jpg) +
![MenuAndOrdersSequenceDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.jpg)

:information_source: **Note:** The diagram is shared between Menu Command Class and Orders Command Class. @@ -46,7 +46,11 @@ Hence, the sequence of which how Menu Command class and Order Command class are The steps to using the `menu` and `list` command can be seen from the sequence diagram. In short: 1) Invoke the Menu Command class by calling `menu`. The menu will display in the terminal. +
![MenuCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpg) + + 2) After adding orders, invoke `list` command to see the orders added into the list. +
![ListCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpg) **Note:** The command `menu` and `list` are just these two strings. Any edits to these two commands will result in an exception being thrown. From 6a2fa4a750a7af92c4b9028c33e4308e98aeb8d8 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 26 Oct 2021 14:13:01 +0800 Subject: [PATCH 220/429] Edit main DG class. Done Logical design & parser Implementation. --- docs/DeveloperGuide.md | 130 ++++++++--------------------------------- 1 file changed, 25 insertions(+), 105 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 9ca6445f99..53d3cd74f3 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -7,125 +7,48 @@ ## Design ### Logical Component + + The logical component of the program consists multiple classes. Namely: `Parser`,`Command` & the various child class of `Command`. -The class diagram below is a brief overview of how the `Parser` & the various `Command` class +The class diagram below is a brief overview of how the `Parser`, `Manger` & the various `Command` class are related to one another. -
Insert Abstract Class diagram here -
- -:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. - -
- -Below is a brief explanation on how the logical component works. - -1) When the user key's in an input, `Duke.class` passes the entire String into the `Parser` class to be processed. -2) The `Parser` class will then decide based on the input, which specific command type to be returned. - (e.g. `AddCommand`,`EditCommand`, etc...) -3) The `PeopleManager` for each Command Class is then setup by calling the - `setData(People Manager)` function. -4) Next, the `execute()` function is called to perform whatever operation the - command is supposed to do. -5) Depending on the which specific Command type it is, the `Command` might be able to - communicate with other components such as the `Menu` & `Ui` class to perform it's respective - tasks. (e.g. Printing the Menu) -
- -All the specific types of command class are a child class of `Command` to allow the program -to treat all commands the same when they return from the `Parser` class. Below is a quick overview -of how the `Parser` class works. - -![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) -1) `Parser` checks to make sure input is neither blank nor empty. -2) The command word of the input (e.g.`"add"`, `"edit"`) is put through a switch statement. -3) The return item is then determined by which case of the switch statement the command word - falls into. - -
-Below is a sequence diagram modeling how the `Parser` class works. - -![Squence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) - -### Delete Command - -The purpose of the delete command is to delete a specific order from a particular person. The class diagram below shows the structure of the deleteCommand class and its relationship with other classes. -
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Diagram.jpg?raw=true) +
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/LogicalComponentDiagrams/Logical%20Component%20Diagram-Page-2.jpg?raw=true)
-:information_source: **Note:** This is not a full representation of all the classes. Only methods and attributes associated with the deleteCommand class is being shown. - -
- -Below is an example of how the deleteCommand class behaves at each step. -Assume that there are 3 persons with 3 orders each. - -Step 1:
-Assuming that the user execute `delete 1/2` command to delete the the order of index `‘2’` from the person of index `‘1’`, the parser would instantiate an object of deleteCommand class, which is a subclass of the Command class. In the constructor of the deleteCommand class, the input entered by the user would then be taken as a parameter. -
- -Step 2:
-The input is then split and initialised to its respectively attributes using the `getPersonIndex()` and `getFoodIndex()` methods. In this case, `'1'` would be initialised as personIndex and `'2'` as foodIndex. The deleteCommand class is then returned to Duke, the main program, via the Parser class. -
- -Step 3:
-Duke calls the `execute()` method of deleteCommand, which executes `deleteOrder()`. An instance of peopleManager, initialised in the Command class, is then parsed as a paramenter. -
- -Step 4:
-Within the `deleteOrder()` method, the person whose order is to be deleted is initialised and the deletion of the order is done via `deleteParticularOrder()` of the Person class as only the Person class has access to the Order class which holds the quantity of the order. The quantity of that particular order is then changed to 0 using `setQuantity()` in the Order class. This is to encapsulate the quantity attribute so as to prevent any unauthorised parties from accessing them directly. -
+:information_source: **Note:** Specific command names are represented using a placeholder `'Abc'`, i.e. AddCommand, FindCommand. -Step 5:
-`printDeleteMessage()` is called to notify the user of the deletion and if the person no longer has any orders tagged to him, that paricular person would be deleted from the list too. -
- -### Orders Command - -The purpose of the OrdersCommand is to display the list of current orders stored. The class diagram below shows the structure of -the OrdersCommand class and how it is related to the other classes. - -
![OrdersCommand Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/OrderCommandDiagram/OrderCommand%20Diagram.jpg) -
+Below is a brief explanation on how the `Logical` component works. +1. Upon receiving the user's input to excecute a specific command, it calls the `Parser` to interpret and parse the user's command. +2. A particular `Command` object is then initialised and returned back to `Duke`, the main program. +3. `Duke` executes the command, which communicates with the `Manager` to perform its specific function, i.e. add a food order. -:information_source: **Note:** This diagram only shows methods and attributes related to the OrdersCommand class. +The class diagram below is a brief overview of how the `Parser` is used in parsing the user's command. -
+![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) -Below is an example of how the OrdersCommand is used, assuming that there are orders currently stored. -1) Taking in the input `list`, the parser will instantiate an OrdersCommand object, which in turn is returned to the - main duke program. -2) When the main duke program calls the `execute()` method of OrdersCommand, the `printOrdersList()` method of the UI - class is executed. -3) Within the `printOrdersList()` method, the method loops through each person stored in the PeopleManager to print the - names of all persons currently stored. On top of that, `printIndividualPersonOrder()` is called to print the `foodIndex` and - `quantity` data stored for each person. +:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. -### Add Command -The purpose of the AddCommand is to take in the user input and split the input to three different categories. -The three categories are the input name, order index and quantity. These data will then be added into a new Person object, -which will be added into the list of People. -The class diagram below is a brief overview of how the AddCommand is related to other classes. +Explanation on how the parsing is done: +1. Upon receiving the user's input string from `Duke`, the `Parser` split the user's input into an array of strings. +2. It then interprets the string and try to match it with one of the known commands. +3. The respective command (i.e. `DeleteCommand`) object will be initialised and returned back to `Duke` as a `Command` object. (`UnknownCommand` object is return + if there is no match) -
![AddCommandDiagram](https://raw.githubusercontent.com/WaiKit-nus/tp/AddCommandClassDG-WK/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.jpg) -
+The following sequence diagram depicts how the `Logical` components interact with one another upon receiving the user's input of `"delete 1/2"`. +
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Sequence%20Diagram.jpg?raw=true) -:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. +## Implementation -
+### Parser -Listed below is an example on the usage of Add Command. -1) Example Command: `add /n Jacob /i 3 /q 2`. This command translates into adding a person named Jacob, ordering the 3rd food on the menu with 2 quantity. -2) The Add command will take in this input from the Parser class, which will then split this input string into `personName`, `foodIndex` and `foodQuantity` respectively. - A new `Person` object will be instantiated and the data `personName`, `foodIndex` and `foodQuantity` is passed into this object. -3) This `Person` object will be added into the `listOfPeople` in the `PeopleManager` class. +This is a sequence diagram of the `Parser` class. -## Implementation +![Squence Diagram of Parser](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/Parser%20Sequence%20Diag.jpg) -### Logical Components -Below is a step by step example on how the Logical components interact when a user keys in an input. +Below is a step by step example on how the `Parser` interacts when a user keys in an input. Step 1)
Lets assume the user input is `delete 1/2`. `Duke` will then call the method @@ -148,12 +71,9 @@ Next, `Duke` will then use the returned command to call `Command.execute()` whic with the `Manager Components` of the program who will then remove the 2nd order from the first person in the list. -Below is a Sequence diagram for the entire process mentioned above. - -![Squence Diagram of Logic](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/LogicSequenceDiag.jpg) - #### Alternate implementation + For the `Parser` class, we initially had thought of having each command's respective functions to be executed inside the switch statement. A rough example of the `delete` and `add` function can be seen below. From 68bda35f5d6834c0681903077aca67b4102a5ceb Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Tue, 26 Oct 2021 14:15:01 +0800 Subject: [PATCH 221/429] DGupdate --- .../AddCommandSeqDiagram.png | Bin 36323 -> 52331 bytes .../deleteCommandSeqDiagram.png | Bin 33629 -> 49500 bytes docs/YZDeveloperGuide.md | 7 ++++--- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/UMLdiagrams/EditCommandDiagrams/AddCommandSeqDiagram.png b/UMLdiagrams/EditCommandDiagrams/AddCommandSeqDiagram.png index 8995f3a69538d3104d8cd0b76d8605e17efd8317..a719bd32fc36973f16d8733095e9eb52143c2d03 100644 GIT binary patch literal 52331 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 literal 36323 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 b?(OW&q3;((1{Vauz%LnuoJ6|VWB309rOCp( diff --git a/docs/YZDeveloperGuide.md b/docs/YZDeveloperGuide.md index 61fe42d815..4c7ebea118 100644 --- a/docs/YZDeveloperGuide.md +++ b/docs/YZDeveloperGuide.md @@ -4,7 +4,7 @@ ## Design -### Architecture +### Implementation The Sequence Diagram below represents the interactions between components when user inputs command `add /n tom /i 1 /q 2`
![Sequence Diagram](https://raw.githubusercontent.com/thaddyyz/tp/master/UMLdiagrams/EditCommandDiagrams/AddCommandSeqDiagram.png) @@ -21,8 +21,9 @@ The main differences are: `Edit`command goes through similar sequence as compared to the `delete` command sequence diagram. The main differences are: -1. deleteOrder() is replaced with editOrder(). -2. editParticularOrder() is called directly from the EditCommand class instead of through a method in Person class. +1. additional getQuantity() method under EditCommand class. +2. deleteOrder() is replaced with editOrder(). +3. editParticularOrder() is called directly from the EditCommand class instead of through a method in Person class. From e6f492f8bedac12e489e0de5d3104be87bec4b5b Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Tue, 26 Oct 2021 14:24:12 +0800 Subject: [PATCH 222/429] v2.0 Issues --- src/test/java/seedu/duke/EditCommandTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/duke/EditCommandTest.java b/src/test/java/seedu/duke/EditCommandTest.java index 11f6ad1ec9..75ca545c9f 100644 --- a/src/test/java/seedu/duke/EditCommandTest.java +++ b/src/test/java/seedu/duke/EditCommandTest.java @@ -44,7 +44,7 @@ void execute_orderIndexOutOfBounds_expectException() throws LotsException { @Test void execute_quantityOutOfBounds_expectException() throws LotsException { - String input = "edit 2/1 /q -2123"; + String input = "edit 2/1 /q -2123 "; assertThrows(LotsException.class, () -> new EditCommand(input)); } From 0c76044d9a24be3953cf17986c7e4d416e10f637 Mon Sep 17 00:00:00 2001 From: thaddyyz <76462596+thaddyyz@users.noreply.github.com> Date: Tue, 26 Oct 2021 14:25:12 +0800 Subject: [PATCH 223/429] UG Draft --- docs/YZDeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/YZDeveloperGuide.md b/docs/YZDeveloperGuide.md index 4c7ebea118..efeb24b930 100644 --- a/docs/YZDeveloperGuide.md +++ b/docs/YZDeveloperGuide.md @@ -11,7 +11,7 @@ The Sequence Diagram below represents the interactions between components when u The Sequence Diagram below represents the interactions between components when user inputs command `delete 1/2`
![Sequence Diagram 2](https://raw.githubusercontent.com/thaddyyz/tp/master/UMLdiagrams/EditCommandDiagrams/deleteCommandSeqDiagram.png)
-This show the interaction between the Logical and Manager components during the add and delete situation. +This show the interaction between the Logical, Manager, and UI components during the add and delete situation.
`Find`command goes through similar sequence as compared to the `delete` command sequence diagram. From b61aa20022dc88156b3ac1d34b43bc69c3f73064 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 26 Oct 2021 18:51:35 +0800 Subject: [PATCH 224/429] Update WKDG --- ...ss Diagram.jpg => OverallClassDiagram.jpg} | Bin .../OrderCommand Diagram.drawio | 2 +- .../PeopleManagerDiagram.drawio | 1 + .../PeopleManagerDiagram.jpg | Bin 0 -> 58595 bytes docs/WKDG.md | 54 +++++++++++++++++- 5 files changed, 54 insertions(+), 3 deletions(-) rename UMLdiagrams/LogicalComponentDiagrams/{Overall Class Diagram.jpg => OverallClassDiagram.jpg} (100%) create mode 100644 UMLdiagrams/PeopleManagerDiagram/PeopleManagerDiagram.drawio create mode 100644 UMLdiagrams/PeopleManagerDiagram/PeopleManagerDiagram.jpg diff --git a/UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.jpg b/UMLdiagrams/LogicalComponentDiagrams/OverallClassDiagram.jpg similarity index 100% rename from UMLdiagrams/LogicalComponentDiagrams/Overall Class Diagram.jpg rename to UMLdiagrams/LogicalComponentDiagrams/OverallClassDiagram.jpg diff --git a/UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.drawio b/UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.drawio index 8364abbaeb..2495102955 100644 --- a/UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.drawio +++ b/UMLdiagrams/OrderCommandDiagram/OrderCommand Diagram.drawio @@ -1 +1 @@ -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 \ No newline at end of file +lZHJDoIwEIafpkcToQnCVcRdE+PCuaEVGguDpQbw6YUUxMaLnjr95p8dYT+tFpLkyQ4oE8ge0wrhGbJta+w6zdOSWhPP6UAsOe1EAzjyJ+sjO/rglBWGUAEIxXMTRpBlLFIGI1JCacquIMyqOYnZFzhGRHzTkFOVaOrak4EvGY+TvrLleNqTkl7cTVIkhEL5gXCAsC8BlLbSymeiXV6/l3BVh2J7cxbrQ3En5+nmtL+MdLL5PyHvESTL1K+pG2NorfkYB8bBCw== \ No newline at end of file diff --git a/UMLdiagrams/PeopleManagerDiagram/PeopleManagerDiagram.drawio b/UMLdiagrams/PeopleManagerDiagram/PeopleManagerDiagram.drawio new file mode 100644 index 0000000000..13c17f636f --- /dev/null +++ b/UMLdiagrams/PeopleManagerDiagram/PeopleManagerDiagram.drawio @@ -0,0 +1 @@ +7Vtbd9o4EP41vPSc9FiSbzwGSNruppc92W6SfVOwMN4Yi9giQH/9yraMsaTmBr6EwAvWSJbl75sZzUhyDw1nq08xnk+/Uo+EPWh4qx4a9SAEtoP4XypZ55K+7eQCPw480agUXAa/iBAaQroIPJJUGjJKQxbMq8IxjSIyZhUZjmO6rDab0LD61Dn2iSK4HONQlV4FHpvmUhc6pfwzCfxp8WRg9/OaGS4aizdJptijyy0ROuuhYUwpy69mqyEJU/AKXK6+rK/Cizv70x9/Jff45+DPv7/9c5J3dv6SWzavEJOIvbpr9O9P370dfB6de8tr59a6cOjdCbLyvh9wuBCAiZdl6wLBmC4ij6S9GD00WE4DRi7neJzWLrnOcNmUzUJeAvzSw8k0a5sWJkEYDmlI46wj5FnE9UwuT1hM78hWjQtvkW3zGjEaEjOykvh74uXBhhGuyoTOCIvX/D7Riyk4FEoMLFFelirh2EI23VIHuy+EWKihv+m6hJpfCLRfgjzYM/LbYEc0IjIZdUHrVKG1XEuF1tBAu+Fk/9DCA4EWwCq2yFDV1rJ02Dp1Yatq7VcccR8aKwhzLJhi6wI9DaDbcNOIiYkEmkVZdJzWp0AH3MOfhoEfcdks8Ly0coCFYMxB5yOqjxhbcieOygvQ6XxtKu8q8BOPT4OiSGM2pT6NcHhWSgdVEyjbXFA6F0j/RxhbCyrwgtEqTxzBeH2d3v/RKoo3orusMFpVSmtRyseaDvAVnPCXpIt4TB4BQ1g7w7FP2GN+Qs9xTELMgofq4PbOmOqjfhA6D8nvzOnVDotPr7aB+8DRTbxwxKc9Q9jYlnyS/Wq0IGRVTQhqXNvG/VVm5No8G1Aw77ANkVXArreub8oueKm8KS00ZXfomXZn7mh34tYfNODDLkM8IDllQ9KUfFziLklZNsPYQX/QW9KfruiC06YPRhofHCc0em/OF6G2na+pMDHPmPiGZ+TQ2QBSNGnabbMB7KMrk1zUM1wZsNr0ZY5iQUHkBQ+Bt8DhOaXe99jjFnXotoTMZ9iS2aQt9RVeetAOmcCmQoZ9v6BFxUmSmckpbwDs+Yr/ZagZWd1SDDytjWg8w2F5M7/y0/8wSNj3SZ5TFE/kL5A/NG+iKMMhp+wmMCuaATVLgM3m7NB8S152k3BskoybosfWEg5gPdc1txpmQustEd0d0twdSdPniUgKtxzUbJ4Ij8HVq7Sh36oJO2+JtDftq2Gry7JA3RDNIueDD5ylJQEbtp6EqhnNhOcx72JFwPjNFNUeGa6WjC8c9dWhsyHvcHeADTWpvF/giAVsfehkmLbZMTKKh+2S4UOe4Wepu5TEg0YzdwA7mbkjyf5MHeXNZu66sztHyvc4AUoHXxzd7nCzlMMj5fVS7nbOytXtwTFNF1XfRUJgo65FPVCNQY8muNdAt985r7uH3ZMj5Y+F067ZMcrRMZyu+eyq1TUrR+pE+2LKrXSPVOb7w3HjU02fdAf0G+ZbPe2jMEIi7zT9+idFKMRJEoyruFejrafX4lva/3h6tVvP3fYBfw01hWzfRyaBRHm+qq9shal7alLwbkn91LylhtSl4gvqp2an6NUuUbphWAaZaIxeidoNA4wGwxaidnkZX3fIodGgHdUYtDfr3js6ncvuXfeN0L7cOy+Wnzvmxlt+NIrO/gc= \ No newline at end of file diff --git a/UMLdiagrams/PeopleManagerDiagram/PeopleManagerDiagram.jpg b/UMLdiagrams/PeopleManagerDiagram/PeopleManagerDiagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6764041ba6c9ab6714cd7e05eaaf4ffa4010ae01 GIT binary patch literal 58595 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 W>DckUQ?Q3ux~sL)^HBFb5C1RP9E-RB literal 0 HcmV?d00001 diff --git a/docs/WKDG.md b/docs/WKDG.md index f400f79183..b493c628c5 100644 --- a/docs/WKDG.md +++ b/docs/WKDG.md @@ -6,12 +6,39 @@ ## Design & implementation +###PeopleManager Component +**API** : PeopleManager.java +
![PeopleManagerDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/PeopleManagerDiagram/PeopleManagerDiagram.jpg) +
+ +:information_source: **Note:** This diagram shows the components of how the inputs are handled. + +
+ +The `PeopleManager` component, +* Stores a list of people, named: `listOfPeople`. This list stores all `Person` objects. + +The `Person` component, +* Store details of the person. + * It stores the name of the person, using a String Variable named `personName`. + * It also stores the orders of the person, using a list of Order, named `individualFoodOrders`. + +The `Order` component, +* Stores details of the order. + * It stores the name of the order, using a String Variable named `foodName`. + * It stores the index of the order, using an int Variable named `foodIndex`. + * It stores the quantity of the order, using a String Variable named `quantity`. + * It stores the cost of the order, using a double Variable named `costOfOrder`. + +When the input is passed in through the `logical` component, the `PeopleManager` component will be responsible for managing the input, +by creating variables needed to store the data, and storing this newly created variables into the `listOfPeople`. + ###Add Command The purpose of the AddCommand is to take in the user input and split the input to three different categories. The three categories are the input name, order index and quantity. These data will then be added into a new Person object, which will be added into the list of People. The class diagram below is a brief overview of how the Parser is related to other classes. -
![AddCommandDiagram](https://raw.githubusercontent.com/WaiKit-nus/tp/AddCommandClassDG-WK/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.jpg) +
![AddCommandDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.jpg)
:information_source: **Note:** Details of each specific command class & Duke have been omitted from this diagram. @@ -25,7 +52,22 @@ A new `Person` object will be instantiated and the data `personName`, `foodIndex 3) This `Person` object will be added into the `listOfPeople` in the `PeopleManager` class. ## Implementation -This section describes how the commands are implemented. Explanations and sequence diagrams are used to describe the implementation process. +This section describes how the commands are implemented. +Explanations and sequence diagrams are used to describe the implementation process. + +###Add, Delete, Edit, Orders, Find Implementation +The commands `add`, `delete`, `edit`, `orders` and `find` have similar implementation, with a few differences in terms of the methods called. +Here is an overview of their class diagram. +
![OverallClassDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/LogicalComponentDiagrams/OverallClassDiagram.jpg) +
+ +:information_source: **Note:** The diagram is shared between the AddCommand, DeleteCommand, EditCommand, OrdersCommand and FindCommand. + +
+ +From the above class diagram, we can replace the **AbcCommand** with whichever command we are looking at. For example, if we are +looking at the `AddCommand` class, we replace the **AbcCommand** with **AddCommand**. Same goes for all the other command classes. +The overview class diagram is listed here to show how the command classes interact on the logical component to the manager component. ###Implementation for Menu Command Class and Order Command Class @@ -47,11 +89,19 @@ Hence, the sequence of which how Menu Command class and Order Command class are The steps to using the `menu` and `list` command can be seen from the sequence diagram. In short: 1) Invoke the Menu Command class by calling `menu`. The menu will display in the terminal.
![MenuCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpg) +
+:information_source: **Note:** The output is an example of what you will see when the `menu` command is entered. + +
2) After adding orders, invoke `list` command to see the orders added into the list.
![ListCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpg) +
+:information_source: **Note:** The output is an example of what you will see when the `list` command is entered. + +
**Note:** The command `menu` and `list` are just these two strings. Any edits to these two commands will result in an exception being thrown. From 0cadfadc666db1db4256159f2a41f7066d7c8c3d Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 19:29:57 +0800 Subject: [PATCH 225/429] incorporated WKDG into the main DG Added Manager component and implementations of Add, Delete, Edit, Orders, Find, Menu and Order Command Classes --- docs/DeveloperGuide.md | 86 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 53d3cd74f3..40e890b51f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -12,8 +12,7 @@ The logical component of the program consists multiple classes. Namely: `Parser`,`Command` & the various child class of `Command`. The class diagram below is a brief overview of how the `Parser`, `Manger` & the various `Command` class -are related to one another. - +are related to one another.
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/LogicalComponentDiagrams/Logical%20Component%20Diagram-Page-2.jpg?raw=true)
@@ -38,6 +37,34 @@ Explanation on how the parsing is done: The following sequence diagram depicts how the `Logical` components interact with one another upon receiving the user's input of `"delete 1/2"`.
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Sequence%20Diagram.jpg?raw=true) + +### Manager Component +**API** : PeopleManager.java +
![PeopleManagerDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/PeopleManagerDiagram/PeopleManagerDiagram.jpg) +
+ +:information_source: **Note:** This diagram shows the components of how the inputs are handled. + +
+ +The `PeopleManager` component, +* Stores a list of people, named: `listOfPeople`. This list stores all `Person` objects. + +The `Person` component, +* Store details of the person. + * It stores the name of the person, using a String Variable named `personName`. + * It also stores the orders of the person, using a list of Order, named `individualFoodOrders`. + +The `Order` component, +* Stores details of the order. + * It stores the name of the order, using a String Variable named `foodName`. + * It stores the index of the order, using an int Variable named `foodIndex`. + * It stores the quantity of the order, using a String Variable named `quantity`. + * It stores the cost of the order, using a double Variable named `costOfOrder`. + +When the input is passed in through the `logical` component, the `PeopleManager` component will be responsible for managing the input, +by creating variables needed to store the data, and storing this newly created variables into the `listOfPeople`. + ## Implementation @@ -91,6 +118,59 @@ cause the code to be messier and therefore harder to read. By having a command c for each respective command, this allows us to segregate all the necessary functions for each command in their own respective class, therefore making testing easier too. +This section describes how the commands are implemented. +Explanations and sequence diagrams are used to describe the implementation process. + +### Add, Delete, Edit, Orders and Find Command Classes +The commands `add`, `delete`, `edit`, `orders` and `find` have similar implementation, with a few differences in terms of the methods called. +Here is an overview of their class diagram. +
![OverallClassDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/LogicalComponentDiagrams/OverallClassDiagram.jpg) +
+ +:information_source: **Note:** The diagram is shared between the AddCommand, DeleteCommand, EditCommand, OrdersCommand and FindCommand. + +
+ +From the above class diagram, we can replace the **AbcCommand** with whichever command we are looking at. For example, if we are +looking at the `AddCommand` class, we replace the **AbcCommand** with **AddCommand**. Same goes for all the other command classes. +The overview class diagram is listed here to show how the command classes interact on the logical component to the manager component. + +### Menu and Order Command Classes + +Command word to invoke the Menu Command and Order Command: `menu` and `list`. + +The purpose of Menu Command class is to instantiate the menu of which the user can order from. By invoking `menu`, the menu will be printed on the console for the user to see. + +The purpose of Order Command class is to print the orders which the user has ordered onto the console. By invoking `list`, the order will be printed in a list format for the user to view. + +Hence, the sequence of which how Menu Command class and Order Command class are very similar. To prevent repeating of Sequence diagrams, a shared diagram will be listed below for the Menu Command Class and the Order Command class. + +
![MenuAndOrdersSequenceDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.jpg) +
+ +:information_source: **Note:** The diagram is shared between Menu Command Class and Orders Command Class. + +
+ +The steps to using the `menu` and `list` command can be seen from the sequence diagram. In short: +1) Invoke the Menu Command class by calling `menu`. The menu will display in the terminal. +
![MenuCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpg) +
+ +:information_source: **Note:** The output is an example of what you will see when the `menu` command is entered. + +
+ +2) After adding orders, invoke `list` command to see the orders added into the list. +
![ListCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpg) +
+ +:information_source: **Note:** The output is an example of what you will see when the `list` command is entered. + +
+**Note:** The command `menu` and `list` are just these two strings. Any edits to these two commands will result in an exception being thrown. + + ## Product scope ### Target user profile @@ -235,4 +315,4 @@ The instructions below give a brief overview on how to test the functions manual |Delete an order| `delete 1/1` | Order 1 of person 1 is deleted| |Delete all orders from a person| `delete 1/1`| Person should not be listed anymore| |Missing parameters| `delete 1/`| Error message to user| -|Out of index| `delete 100/1`| Error message to user| \ No newline at end of file +|Out of index| `delete 100/1`| Error message to user| From 137a193aa783ac5aa94ec3ce01b6ca57aa2a3789 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 26 Oct 2021 19:45:58 +0800 Subject: [PATCH 226/429] Change file format for images to jpeg. --- ...nalOutput.png => ListCommandTerminalOutput.jpeg} | Bin ...nalOutput.png => MenuCommandTerminalOutput.jpeg} | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename UMLdiagrams/MenuAndOrdersSequenceDiagram/{ListCommandTerminalOutput.png => ListCommandTerminalOutput.jpeg} (100%) rename UMLdiagrams/MenuAndOrdersSequenceDiagram/{MenuCommandTerminalOutput.png => MenuCommandTerminalOutput.jpeg} (100%) diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.png b/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpeg similarity index 100% rename from UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.png rename to UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpeg diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.png b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpeg similarity index 100% rename from UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.png rename to UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpeg From 3d1e8a3d30d72fb7e7b88f921642f259f22fa374 Mon Sep 17 00:00:00 2001 From: Wai Kit Lau Date: Tue, 26 Oct 2021 20:02:06 +0800 Subject: [PATCH 227/429] Final update to file format --- ...nalOutput.jpeg => ListCommandTerminalOutput.jpg} | Bin ...nalOutput.jpeg => MenuCommandTerminalOutput.jpg} | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename UMLdiagrams/MenuAndOrdersSequenceDiagram/{ListCommandTerminalOutput.jpeg => ListCommandTerminalOutput.jpg} (100%) rename UMLdiagrams/MenuAndOrdersSequenceDiagram/{MenuCommandTerminalOutput.jpeg => MenuCommandTerminalOutput.jpg} (100%) diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpeg b/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpg similarity index 100% rename from UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpeg rename to UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpg diff --git a/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpeg b/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpg similarity index 100% rename from UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpeg rename to UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpg From 7ce1cb6c0ad0e105df4ef49d2b5e93541c7572c0 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 26 Oct 2021 20:53:19 +0800 Subject: [PATCH 228/429] Fixed indentation and added Index. --- docs/DeveloperGuide.md | 52 ++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 40e890b51f..1ed4d70b45 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1,4 +1,22 @@ - +# Developer Guide + +- [Acknowledgements](#acknowledgements) +- [Architecture](#architecture) +- [Design](#design) + - [Logical Component](#logical-component) + - [Manager Component](#manager-component) +- [Implementation](#implementation) + - [Parser](#parser) + - [Alternate implementation](#alternate-implementation) + - [Add, Delete, Edit, Orders & Find Command Classes](#add-delete-edit-orders-and-find-command-classes) + - [Menu & Order Command Classes](#menu-and-order-command-classes) +- [Product Scope](#product-scope) + - [Target user profile](#target-user-profile) + - [Value proposition](#value-proposition) +- [User Stories](#user-stories) +- [Non-Functional Requirements](#non-functional-requirements) +- [Instructions for manual testing](#instructions-for-manual-testing) +- [Glossary](#glossary) ## Acknowledgements {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} @@ -8,13 +26,11 @@ ### Logical Component - The logical component of the program consists multiple classes. Namely: `Parser`,`Command` & the various child class of `Command`. The class diagram below is a brief overview of how the `Parser`, `Manger` & the various `Command` class are related to one another.
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/LogicalComponentDiagrams/Logical%20Component%20Diagram-Page-2.jpg?raw=true) -
:information_source: **Note:** Specific command names are represented using a placeholder `'Abc'`, i.e. AddCommand, FindCommand. @@ -41,12 +57,9 @@ The following sequence diagram depicts how the `Logical` components interact wit ### Manager Component **API** : PeopleManager.java
![PeopleManagerDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/PeopleManagerDiagram/PeopleManagerDiagram.jpg) -
:information_source: **Note:** This diagram shows the components of how the inputs are handled. -
- The `PeopleManager` component, * Stores a list of people, named: `listOfPeople`. This list stores all `Person` objects. @@ -125,11 +138,9 @@ Explanations and sequence diagrams are used to describe the implementation proce The commands `add`, `delete`, `edit`, `orders` and `find` have similar implementation, with a few differences in terms of the methods called. Here is an overview of their class diagram.
![OverallClassDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/LogicalComponentDiagrams/OverallClassDiagram.jpg) -
:information_source: **Note:** The diagram is shared between the AddCommand, DeleteCommand, EditCommand, OrdersCommand and FindCommand. -
From the above class diagram, we can replace the **AbcCommand** with whichever command we are looking at. For example, if we are looking at the `AddCommand` class, we replace the **AbcCommand** with **AddCommand**. Same goes for all the other command classes. @@ -146,31 +157,22 @@ The purpose of Order Command class is to print the orders which the user has ord Hence, the sequence of which how Menu Command class and Order Command class are very similar. To prevent repeating of Sequence diagrams, a shared diagram will be listed below for the Menu Command Class and the Order Command class.
![MenuAndOrdersSequenceDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.jpg) -
- :information_source: **Note:** The diagram is shared between Menu Command Class and Orders Command Class. -
The steps to using the `menu` and `list` command can be seen from the sequence diagram. In short: 1) Invoke the Menu Command class by calling `menu`. The menu will display in the terminal. -
![MenuCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpg) -
+
![MenuCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpg) :information_source: **Note:** The output is an example of what you will see when the `menu` command is entered. -
- 2) After adding orders, invoke `list` command to see the orders added into the list. -
![ListCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpg) -
+
![ListCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpg) :information_source: **Note:** The output is an example of what you will see when the `list` command is entered. -
**Note:** The command `menu` and `list` are just these two strings. Any edits to these two commands will result in an exception being thrown. - ## Product scope ### Target user profile @@ -231,12 +233,7 @@ The steps to using the `menu` and `list` command can be seen from the sequence d - Up to `99` _Unique person_ at a time. - Maximum of `99` _Unique Food_ items in the menu. - Maximum of `999` quantity for each distinct food item in a person's order. - -## Glossary - -* `Unique Person` - Every entry with a different name counts as a unique person. -* `Unique Food` - Every element in the food array menu counts as a unique food. - + ## Instructions for manual testing The instructions below give a brief overview on how to test the functions manually. @@ -316,3 +313,8 @@ The instructions below give a brief overview on how to test the functions manual |Delete all orders from a person| `delete 1/1`| Person should not be listed anymore| |Missing parameters| `delete 1/`| Error message to user| |Out of index| `delete 100/1`| Error message to user| + +## Glossary + +* `Unique Person` - Every entry with a different name counts as a unique person. +* `Unique Food` - Every element in the food array menu counts as a unique food. From 5af31c6d4d05b28918d3a71aaf25eb42718bbb28 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 26 Oct 2021 20:54:50 +0800 Subject: [PATCH 229/429] add space --- docs/DeveloperGuide.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 1ed4d70b45..978a98e8a9 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -17,9 +17,11 @@ - [Non-Functional Requirements](#non-functional-requirements) - [Instructions for manual testing](#instructions-for-manual-testing) - [Glossary](#glossary) + ## Acknowledgements {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} + ## Architecture ## Design @@ -55,6 +57,7 @@ The following sequence diagram depicts how the `Logical` components interact wit
![Logical Component Partial Class Diagram](https://github.com/markuslyq/tp/blob/master/UMLdiagrams/DeleteCommandDiagram/DeleteCommand%20Sequence%20Diagram.jpg?raw=true) ### Manager Component + **API** : PeopleManager.java
![PeopleManagerDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/PeopleManagerDiagram/PeopleManagerDiagram.jpg) @@ -78,7 +81,6 @@ The `Order` component, When the input is passed in through the `logical` component, the `PeopleManager` component will be responsible for managing the input, by creating variables needed to store the data, and storing this newly created variables into the `listOfPeople`. - ## Implementation ### Parser @@ -111,7 +113,6 @@ Next, `Duke` will then use the returned command to call `Command.execute()` whic with the `Manager Components` of the program who will then remove the 2nd order from the first person in the list. - #### Alternate implementation For the `Parser` class, we initially had thought of having each command's respective @@ -135,6 +136,7 @@ This section describes how the commands are implemented. Explanations and sequence diagrams are used to describe the implementation process. ### Add, Delete, Edit, Orders and Find Command Classes + The commands `add`, `delete`, `edit`, `orders` and `find` have similar implementation, with a few differences in terms of the methods called. Here is an overview of their class diagram.
![OverallClassDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/LogicalComponentDiagrams/OverallClassDiagram.jpg) @@ -174,6 +176,7 @@ The steps to using the `menu` and `list` command can be seen from the sequence d **Note:** The command `menu` and `list` are just these two strings. Any edits to these two commands will result in an exception being thrown. ## Product scope + ### Target user profile * User has good typing skills. @@ -235,6 +238,7 @@ The steps to using the `menu` and `list` command can be seen from the sequence d - Maximum of `999` quantity for each distinct food item in a person's order. ## Instructions for manual testing + The instructions below give a brief overview on how to test the functions manually. - :information_source: More test cases can be found in each of their respective test class under @@ -249,6 +253,7 @@ The instructions below give a brief overview on how to test the functions manual --- ### Starting up and Shutting down + 1) To begin, download the .jar file and place it in a folder. 2) Open the CLI at the file location and run by the jar file by giving the command, `java -jar .jar` @@ -258,6 +263,7 @@ The instructions below give a brief overview on how to test the functions manual --- ### Add Function + - The format of the command is `add /n /i /q ` - Prerequisite: The `Menu` has to contain at least `2` food item. @@ -273,6 +279,7 @@ The instructions below give a brief overview on how to test the functions manual --- ### Edit Function + - The format of the command is `edit / /q ` - Prerequisite: The current list has to contain at least `2` person each with `2` distinct orders. @@ -288,6 +295,7 @@ The instructions below give a brief overview on how to test the functions manual --- ### Find Function + - The format of the command is `find /n ` - Prerequisite: Contains 2 person with names of `abc` & `bcd`. - The above names are just for testing purposes. @@ -303,6 +311,7 @@ The instructions below give a brief overview on how to test the functions manual --- ### Delete Function + - The format of the command is `delete /` - Prerequisite: The current list has to contain at least `2` person each with `2` distinct orders. From 3222d55302a49f8f1ed7394c836075f08fbac978 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 26 Oct 2021 21:10:57 +0800 Subject: [PATCH 230/429] Made some line wrapping changes --- docs/DeveloperGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 978a98e8a9..d70860597f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -158,19 +158,19 @@ The purpose of Order Command class is to print the orders which the user has ord Hence, the sequence of which how Menu Command class and Order Command class are very similar. To prevent repeating of Sequence diagrams, a shared diagram will be listed below for the Menu Command Class and the Order Command class. -
![MenuAndOrdersSequenceDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.jpg) +
![MenuAndOrdersSequenceDiagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuAndOrdersSequenceDiagram.jpg) :information_source: **Note:** The diagram is shared between Menu Command Class and Orders Command Class. The steps to using the `menu` and `list` command can be seen from the sequence diagram. In short: 1) Invoke the Menu Command class by calling `menu`. The menu will display in the terminal. -
![MenuCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpg) +
![MenuCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/MenuCommandTerminalOutput.jpg) :information_source: **Note:** The output is an example of what you will see when the `menu` command is entered. 2) After adding orders, invoke `list` command to see the orders added into the list. -
![ListCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpg) +
![ListCommandTerminalOutput](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/MenuAndOrdersSequenceDiagram/ListCommandTerminalOutput.jpg) :information_source: **Note:** The output is an example of what you will see when the `list` command is entered. **Note:** The command `menu` and `list` are just these two strings. Any edits to these two commands will result in an exception being thrown. From 9ea92c4c8b755c60f80783d8f972244156a5568c Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Wed, 27 Oct 2021 17:15:30 +0800 Subject: [PATCH 231/429] Added Delete Command into UG --- docs/UserGuide.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index abd9fbe891..e46b6ffa12 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -29,6 +29,30 @@ Example of usage: `todo n/Refactor the User Guide to remove passive voice d/13/04/2020` +### Display food menu: `menu` + +### Adding orders: `add` + +### Deleting orders: `delete` + +Deletes a specific order from a particular person. + +**Format:** `delete [PERSON_INDEX]/[FOOD_INDEX]` +* Deletes the specific order of `FOOD_INDEX` from the person of `PERSON_INDEX`. +* The `PERSON_INDEX` refers to the index number of a particular person shown in the displayed order list. +* The `FOOD_INDEX` refers to the index number of a specific order shown in the displayed order list. +* `PERSON_INDEX` & `FOOD_INDEX` **must be a positive integer** 1, 2, 3, … + +**Example of usage:** +* `list` followed by `delete 2/1` deletes the order of index '`1`' from the person of index '`2`'. + +### Edit current orders: `edit` + +### Finding person: `find` + +### List current orders: `list` + + ## FAQ **Q**: How do I transfer my data to another computer? From 14a657e28d41334699927b83a94a47e561c28065 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Wed, 27 Oct 2021 23:51:17 +0800 Subject: [PATCH 232/429] Edited Delete Command in UG --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e46b6ffa12..c1ddd9f4f3 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -44,7 +44,7 @@ Deletes a specific order from a particular person. * `PERSON_INDEX` & `FOOD_INDEX` **must be a positive integer** 1, 2, 3, … **Example of usage:** -* `list` followed by `delete 2/1` deletes the order of index '`1`' from the person of index '`2`'. +* `list` followed by `delete 1/2` deletes the order of index '`2`' from the person of index '`1`'. ### Edit current orders: `edit` From d94b371e80f7a6789edeb73b25982767ea206561 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Wed, 27 Oct 2021 23:52:45 +0800 Subject: [PATCH 233/429] Fixed printing format of total quantity of orders --- src/main/java/seedu/duke/Ui.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 529cf6f250..464527e570 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -168,9 +168,14 @@ public static void printMenu(ArrayList priceList, ArrayList food Ui.printWithBorder(""); } + /** + * Prints a summary of all the orders. + * + * @param peopleManager List of people who are ordering. + */ public static void printSummaryForList(PeopleManager peopleManager) { String summary = "SUMMARY: [Total number of People: " + peopleManager.getSize() - + "] [Total number of Orders: " + peopleManager.getTotalNumberOfOrdersEveryone() + "]"; + + "] [Total quantity of food: " + peopleManager.getTotalNumberOfOrdersEveryone() + "]"; printWithoutBorder(summary); printWithoutBorder(LINE); } From a65c349e6a61f97106aed3fe344918525a5976e8 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Wed, 27 Oct 2021 23:55:55 +0800 Subject: [PATCH 234/429] Added Architecture to DG and merged with main DG page --- .../ArchitectureDiagram.drawio.png | Bin 0 -> 9640 bytes .../ArchitectureDiagrams/DeleteSeqDiagram.png | Bin 0 -> 58492 bytes .../OrderCommand Diagram.drawio | 1 + .../OverAllArchitectureDiagram.drawio | 1 + .../OrderCommandDiagram/Architecture.drawio | 1 + docs/AdamDG.md | 21 +++++++ docs/DeveloperGuide.md | 57 ++++++++++++++++++ 7 files changed, 81 insertions(+) create mode 100644 UMLdiagrams/ArchitectureDiagrams/ArchitectureDiagram.drawio.png create mode 100644 UMLdiagrams/ArchitectureDiagrams/DeleteSeqDiagram.png create mode 100644 UMLdiagrams/ArchitectureDiagrams/OrderCommand Diagram.drawio create mode 100644 UMLdiagrams/ArchitectureDiagrams/OverAllArchitectureDiagram.drawio create mode 100644 UMLdiagrams/OrderCommandDiagram/Architecture.drawio diff --git a/UMLdiagrams/ArchitectureDiagrams/ArchitectureDiagram.drawio.png b/UMLdiagrams/ArchitectureDiagrams/ArchitectureDiagram.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..9f4527a0da1989447ef68abed1b361e873a4c224 GIT binary patch literal 9640 zcmc(Ed0bQ1)@X2SRZv7hL8TQHCx%QU5s@h*Kp+@G2m}R5NJ3@^B!nQK^@l0iU5fg&;+Ws)iHAnpC`eZTwt`tJ98@7+Jn+54=s_S$=|z2+Tp z7LQflqPYbG0x8>Aqa8sYB^d~`PUDMB07UE7vs9o_@^i#mfU+C*jQ}4TnCAB8AW&}X z)+Nu4!1tFv)~|^D7KaWrSUQa(SRG>NEfnwo2nGeyH`Iq285-#$ z!2q1-$?z1i{(;KsX6XK&%(acsm^cp~D@UoTB^6GhgC*V`c*5ES#B`w_OTb@41H<*< z`lz)Z{((O9HK-R|%%TBvLJmW%0ABvVG=M(q4>q|t`-@prdqb4D$d8Axv32kwV%CW8 zJ%Po3X7^cuQ+mKkSBZd~`Ba*ZUx3wFL(j7aSGJ9dwZs($_4mi)IX+zcS)aoY3kchs zZAWnRBiJ}lsR$IE#6tM6T`m0R4jd-kkj&&tP`(m~KLy65A@IPyVU~`De7N^&*Og<5 zIBRGnCDL)`LM+S4)^-(Wfed7M!tIzedlWg)*O}?#0%aQtyg7KBKLzC=@L@4skuZ`A zSU@6M2H5(tD8BYIdpN|4N&+K+_4td?u3R)3hI4jg1VT_aFTSOe?t~Ti&;!{hCn?lg ziZ{gj^8{c&A`a#!4s;A;(ZCRlBgWIo7Hx}lJWDZzP{brQ(!vf&cV9 z!sA77zOSW_gJIhmSsFp;M2S>F^E^wJ0@7wd#iDQsu>*$2v4&zO)-<>|o{J3>!fc#9 z9R&ft1f~@qOTa)OUV$zEwxyMbLPlEAeVuJ>eC#1!t|CJsSL|(J!?(v0Ij(jXtkBxd z7ULxmxY$`+xDps(42}YIaV7eIttA{ATd+6MS7L=B@_7LmUqiet3XXtrNm79CzV<>o z0x7g%SfX5<*nZX!D#jL$ql%sI1Xh3-m*L6AF_11!PM&sLD;ixSCHWB{P@D~l=s*w= z?Yz;BuE6r>JQ0U$f7Zp5k8xmFIsgzZf)~h!1fYEVr39wXmL^EXIh# zgW6k*i8xO>SL`CC^O$57Ma1KHxmYnh>3kcwqtx6MYHKbE^mFjCmH1HsfIoCuK|SF% zfn;EQzL(e=KqH9(b7%px24m4^DxOJ$N$CO#*w&8a!={^Ku@I_*7{hSDvA`&*4;m{a zn&Swr_AuuF7K`jBa^@Q{2~c3X5bk@{$j{sf2WY+po9pdt%NIhp?9~rjXDnXefB{fYbfo1tSi-cllPXv@?31#}=;4UPA4V-ReM8$|%1fsP) z63fB)IeM8hd|?D6l0>tVP_RtzK#~(n=;z3TK)fW*c&f;gg|w%-Aedqi7RB%d2r~nn zyhH&3{(cA{HE@+pffx%0(C`hh=6rK{Ai+Y+@*`sKD5wRL!6P9>ViZv<^+YpxWQGum zXAxmSU^4@Pl8kx;#rE-P0ei=U+Lo zcy!RJ|2hRWJOx2~1$1D@QxL-~@q5Zapac7D(B@7O_lce_e>f*fd?)u16&r8;^2^E% z>tB>_*tknmHBr_4hv9D;5i$2A{;i1Qk1<#3%$XbRH4?6=Hf`349rQitqmA&{704#O`meN-H<=lsl`nC_H9@a;z(G&GW`n#eTS32u{aXm^nJ{7E zmp)ThO~Zpi=9h(0yxge>K~yka!YSIA4F@CC^terH)=KJ#VFa z6uI=pUoD`z<*`S>$;rh9#K1y8nQ^vssL7Yrj*C2;<)N6I+qKvn40>eU+VQSD$9+e| zvLGjl)VIi}3whHP-7jZ<_vRHH z>$%q@0@vx4Tx0c+S-+v9&nneq>V@2&zj0ZJ!ck){>%RDo$&c+F%AJm@IGVKn{uXpr zRZs9_QLdYtLo0jeS>Cq?^4uOrl$eIPqt+SbqO-1=EZprwPyALxb7rD`Qf7$SQh2Y_ zs{EAfU<8h5ltJ-P#`ed@3JZD~%1#V6-CHj0UKfu{Zc82w4wiQ)BdYN!@u|wMAEq3r z%`PjD;4eiSV(X3m<|c?5$z!0qj1q8NPSTi>yny3LY8MVhP@+Zy-(PPO^YBsHu*8HBi@EQ5G@^|vRls>Y-AM@V{e7TiY zetcm++-Dl{XGIbJ15IekYc0h7*TlR#cRN#1ec*x+y+PJNE0|p{; zOV6ZscZyG(3b-C9I9Zy@3dDwdz?5JL8xm>ddG>nyf-g$cwM}Aa@)YH;{CP3 z{*_~dzA!(|2spNKx?}1}`VTrFHC!vDJ0T?|vM9&&%z=!?qu8XP&1rSfsGOi+`92Wo zD|Y1)6dxOttus*G`PfCVty~4t!)(ewpYqY_JXoP^dM;+2-DyCcetpfX8CSzcx@pJG z6BYRqNN`k}SyA5CS?RggPKos=^FGQ2kyjd*;)Dif@Ni1h*wjcwO?LUI$&xpm+_%{! z)asDM>d0P7cS*4x-(A)BIZd@E`Yv)!$u%0s8r-t=w_ z-La-qxxtM%z4Ga1$+WI%bWL{28Ae_A*J;@v`-xpTX|R>sE#PCxWo`2s4z#@s{niy? zz2IMqb8@F=v5z@*-EFh*TgRZ(S8ADqCIC@o& zQR_bIahEY0mt6{(TwV%nDqzsZySrRYX_;Op&G=7)Fsp!0sTRRvUS)v)* zFrg4KiZm`Ps>;-xfbjgkpIkK%Wrck^OB_Z{U<>Z` z7`J1m_80CZ+pObmPrj9#wE4jGAjL9HURn@Q@_R_(ita$K!Ag*v0;;~7LFYELm#cqF zE3EoGck%rFM#@6o@Wg5Oq~dMi3)M?<9ro?f;DHFq`~Z%MubDL+fBFzL1DC&a2&I%B zxgB6V9x*36#UvdIV+@zBj7 z^=I=tWZRUdXR8MbyETnt28WxHvi2K~<_;`qMYeA;bVuu1I`m$|*>!o^%6pk`umz)6mX=f%`-2;Z=Fkd({^V&noi!2>vt^|| zt-ZB`O_FOWRbR=VGoDB8ZUPrsw0{sJ(>n79;Onk$Ce+rw=;CYL@K{2*v!gZQ+;yHw zcF5}NlAyY$j*tr3i8qWR+rKb8fYyTsn{ZOH+zkpJrDuVOxE$3Br^6|Xg|=DPisNE! z)+j6URn#At>pAV!56UAHBBmiaisI6ZR4cWq9oml$W=l-V% z3S*SFTXAB4#w1yyR1dI=$jN+@Q+goVqxF)Um`PrF@l9z@Q2+L1fm|nd_(aTcEM~aZ zAh^io5%=C)MUG4LFaJW{X!~W(I_zgYDyHlH!eMXsaQJDuf9xOp@5g@5{jb>9$7_ek z{4xQzylu;c)2Pq>Hu^h}NLe3b|EwPidg7V38Up~Jfb9UttaZ=r3?+N?=NJGCA)BtV zuY45?@_KIfIZDv+`|*pHXaGAx6KMVb&FH*DpIZhTdEFnQG$KI&h5s<2yER@t2-157yk2?%yDU1p!TVrx^{;4Upjl&6 z(SoY?!R(L?-b%ph(h(i@^}4GE&D2!km?P}fW;KSoUiT{2OwD&j$84+5j1CC4mq7E< z-=%aXJR`R#6<2#R%s$2FqPAI8xTZsUi<*38Zo7VAkF$!=gP9-Y{@Rze2!H(IuCZb% zeCncZavqdg*t4nTKnRlhJS;q*RA=A^;-;EQX-&XBlB?e~+l_b7bfiJGmmRU#%Aq){ z-CbuDQ2j5jV)L_iWffKg8&WNsrJ8E6`@ht+c093Xau}?at#z&5yyvT3vm1s)+E_Dp zf|R3qu3}&d;mQ$4+NNVvf#ms{gWhIphD0q|`vJm<_KYVwIer^1wKX4y!U*_JB z-mJ_`n`lPEZ&ALJ-}|MMwH>(kdICD+e*bm2rXGt{w}RZ0H?w|>W*Ka0$GNMX-e4jt z)p*IhI4`~a>Ah$sb-Rb6Z)#bzwDj9OtRQp>aJx8DcKMF9k^Lrv@16=3Cu;S=<}u%G z*#WP%jO^T+bAInV_ob2f!c;|@x2uWKwBYD${bc<9*s^!I)Wo+=WBgKq|B&MCGWQck z_1BK;1$%wl_{^#&8hTMJZ>v9!v5)Pp8L!ZcGc#bw3Ff zF{VQY1<4`9yNAj^k20MFN83-NJ7-#5_2^YUAB5H`E`FhW{9%dlz^`L>#)c!A*=;?N zzIPwyN**#Un)awO{^in?!(3&@2NL{VDBm9m*MvQYPxQr9j=xsbUUWfy0ozYVNmZ`m zHY9}mHAZ_2V(06aFA~jKRN<87G_YI6nN>AlwH(9)(xCRzA2@^Qq`7TL##)iDza6S= zK^UAa8H%U9*t}j1-|B7Sp^#QyJF^QMC`2=vsE%(N9;OO*N{wnsdtu=q-n6XyOJG%3!hU?3>c?g#xvH$Q$F{B>seiVz zH~#+ilHuJt38qmHE!~1ZdzWn=?)kXqo)tk+cC1G0SEQ zMABt*33qPy2y6A4`uaRhvU<46t2j|%48{m@>1D1Y4}O0X9bLbzzImZJ=d%9oETww0 z){eTDMfou?G4W@DrQ<(6SE*Wf_UzJY&9kiJ>Xrw$JCd!UsB!1T5reU&XH<}HF2$RM zhUA_R^p;ZZ0Z61X>D7$3$F9V>hVLgQCkF~LGc%v=FOM}plkTi{CcS`uCLL3&d5rSS zCMUqR{DmL;4kwTBNbjuh;W zfo~1Bv=;p~V!yRbBS-`*bz zS|pvO-+x*hSG~9RZnII)X|vtol&zGWJfqp(;6fqiY$tv&wBeT^?eNg0X^nxq8q1IN zDP_b^%6>eTlR(K*-yIU@=HHR&5T2c#EzFcQ+da<7F%Tz|TQ1GFS44C8rEqs~hq?T1 zdpX28+g)v9VnW_H93qSVZh68jHr5r&+!Y%%@EghZ=k5B(+FItb0(!`gE9N&YY818v z#A^mGFU!X=v!m~wUnrqIepFmiGPug!!vB`LhD45eS@3ez#7dB9=pe7LcqW%IQA{;P zjo9ZLtH!VV${gTC$J^hApxmYJw!SEHumLYVp9rWzd91iUcJEQUw%^~ZX!C_dDB#NK z4T(X*SEJP6x7SCi9-oZvnS1jb9F%@rt0qkAjx6={>nTC;G7Bnuz8z&)zSx3`+S|v{ zt>8t)=G=i17h6qBGrRA&yP9Lv59(e%FaUrh8NP@ilF3rG3pc*6)-BX-l4h zKT18%1&RVnSK{MpNbS9Q7RPhDs*je9JSA6hV$VQ2b?uL9@0H(cSNP^-?9W&9R(byB zpPh9(+4<)4*tl~-n|+~6a$pKu!q{kMYBx1m6kwn#W`^vD!a7S3d z4H$H>_WAaR5{>1D$fbA{y)-}esu|EbUjJAcv>5sN^#Hv#Y9h;KxH(LJk5UE%C@74a zrW8}b`y==1Z`9xKe%hzcB&snxwRTzC^@EFVgYx|s2>`Q5rs-jRY`4J#iVT@vz*`IM z{x7R9r80P~Mfq3orHohXT<@l2+scWi zn{&HVabVor#^6BT687?k0i(cA2Xren`Yt+vgK)JKsm;zLG0`PQb8jV#2H)45`sbHbXy=sk&Q?Wfz2*m@U1HA zJ6b^en||3?t^9_YsoUR9TIpTow!C}b+V%KhNu|LgGIVgTg%)Po_xNFBv`&(uZ?LO} zxyuvRfAQ6sshFwd{(FO$iVT7}%O_Gxf^51k&UTb3)(kBi)7sN>zFRC3?Jnfr((HT-rV>8gAxL*)`WCO{MLXFJ@v*ct?InzQM5Gsvca3 zJQSb&Bs+jq6fhQJ`o48wHjiAED(RlUg^;-huCk*G3!AT$ACApAUn&Q)P@j^AHRLHp zt3rNttA@J5F~_1V?7_E(g2w%Qy7QL8sKJ~SYNHw=X?;+dQokCPT3cK|}Ud7qCNooaMwe*;c~`=EB7=n{rgwbh7t@cf&R$jSyA zB9)|LJL2=kdSz@yTmAAvdWu10fH-mY);Ra`-1O&3Bc+t$jzcDWDv5bU4NJ}UZmQtY z!c&768&OX>4xI6OfI_BMhbIshKi(Nh=(JY(WX&r{AZAATAK)L<2L+}j5W9>RY%`oS zRMvlwgUf^DClxoaqAIX!s(`=&<%$D=;#+f z*z&$>@-DCF!;255pm?8T%;5(}(DhpxguNqY4?Oc;D{mkFxgUGsWVq(dexOW1SQaY#baab7l-LX<*A9O%qoC~$IvQBbcTIclq|VH$@YCJ$WNnAo zW-VQvkL$QuGvS&qTbsG#rYk9OMwS7Hy>lLu6H}7@2Mr%wDZ0qP# z1Ou7i_L$VJd=pmln-I!1AfunyKNbFTVKn>({`h8FmT`3Ya=yyv8vxAV)va&*`)$DL zB34=Q_bgdmx~&&6I*G*fd-Mo{ENM{C;P*KFW4BUq zako+kk3BBRtEwc$+s$@IXgahsHGQ^~C*4b*e$nyE)vbdK##1NT;!e6cj^pO`ZU>4S zDTmqIw=XTXM;8l4pHv`3-+^^W&BlVRkXXf9;{}A$=`Vi2< zJz6=gn$KKzzzdGn|Jq#lxHsM+mF~@5t#tqrkZT1bx~#oZuE05bMq+yx7$prigQ~yJ z$R)8D1$`llyK85WajUf>ifrNKmp8U(o=R`AW0!ciXA|f%n`8Cbf35GohVAyTEczL< z7M=61?*{zx@xqJ;lYByLdz{{>xhUqU-^pR-+;?ur%mVn11HATeh=+@r6RypLg*mm^3# zmDRB_`Hiwx`;GqCoYKk3cXxugMdtiwMTp0O<3I2pPHWX){CzsU!VQS3Qg6H630!`6 zr&qE_*e`#s7~KzM2Q~15ItNeWsLB?uBx5+Nn;EDj>+TBw`{%Us#~OIxBAo#_e8%PV z$63E)aGMwH>dFLb;jZmeOm~T>YN&jy%T1N&w6{fBxceMCO8V@QGWwUsA8wJvK(Pd}UeJ)v_?<_DCl$#%GNr9b+{ z;75%d1B(O>2OBxE4i))wW!8cpooXr3L&mvtw;So$vOTh zeHdc6aw#9{S{ufXkAN&9S literal 0 HcmV?d00001 diff --git a/UMLdiagrams/ArchitectureDiagrams/DeleteSeqDiagram.png b/UMLdiagrams/ArchitectureDiagrams/DeleteSeqDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..0bf9c6174ad2831ef310d8fd1341ff7b534a91da GIT binary patch literal 58492 zcmeFYc{r5q|36$(mNpWVtVyD5V;LjsFpI%pW*8K*3}(g{#*CREX`w>dm&nr1NTL); z_BPoml*m%qvS-i!T<-4A{i*NsJje6T@2}_h9!Jewb6)5A-rukHDa;a$*vl`84B5adYGy3%; z3sUi<`q5?8jAcO}XCEIWH=?r#&6(n-=f{hCV)C1U$jTlnAU2*H8m1sc8buCryz!b2C|x5%BCqBolxy1i_U|-5O%# zNuyGL7C1y*NkvIrQ$0* zsk=J=I)Fcc=0~J@|LUfyp`@V%`SpU%_96UgbtCu_U4b=0vT87Zmj4h9n4kC$naCbK zrgm0z9MWEeZD`6eHMP|A|22uXGqBme$!!TxN)g!U)+AsXmW!(f9RasgSEZ22?o0-o zZDwX<>E{Vj^Ts;U?E~2MXr!8t3EUHfLqV-zE~Z|<(JZM9bzf762@-~aLnthu1p#Gw z!0@iXlP%5yq5%qUHbF6LfS+`C6A&Q)cz|Lw(I^s?iKbhspjBb2ns6TzcRPPS3=3<- zgoB*DJYoJmu5NC|CR(x}C>`Qs?}4>?x5$@2B2ds|^_jj6y;KbWsS-VCf|Yo?0uA-S3X{DWis)!^ndEjAQQA$ZxF zyL&?^Agq?FnRfsg5Dh2^3Z<*U>{tv6Sk+w<52bnsxYB@jvIYd?4zi(Z`I!(I>Hz?A zKyWi}cTEP4WU211p`r!w7Vgf1su8s;kpZ@T5G27CWn}AOZ;W?!N0Y#0q%V}_qCr(B zQ$TcPfOUYHH_5_{Ou<=WkuG?1XPODp&&AV)q3Q-K;@}s;d@*W@2tm zQL_W#4DHR$HGnSO?j{&I!-Vci@c{$}1n2^2gP>j1 z>Hc==rZ5IZ3q}VatZYqCZU}Q#x)+$r@Y^CW$<&gCVBk~&5G;RnPm~(j*&F8$H&(MZ za<)@9!{S^t%#7ez8q~|f-<%1fI5RYHI4>=`EwS_QMf#`_)Lm?_E))X68wo)oNepvu zkU5hUtMAC#XEDb>zh@lG81`uYb3(7?U z;qOj%wjsN!n%g)-EKqJF6@s;bB+#GMEVUgQ#hOeQmYO zt+e1Q2-w|lYi^<&!L8Fi$p`L-bZ0Q27?LK~ z1w&QE!SUt<7TcJBwFR;K=spM%3TAJHK|3??WSj@u#}H+PW3$v%0{Evao`B`r28*ebr$$ zC>oaG2`CQ~im|gpsH(u|mP9RQGSrHw9)JU6#FmOu^HFoddYAxx5O|0o#>EpxK)AS3 zOdu@05k}n;V(CnE_x8o2fDRT$SemP^AKcK^25v~enu75V4;5c56K2DJu;>gpRReHJ zTV}$IfCXVeY7mTxB@vJ?6RM9Zg~-&RLSY(!@Bkgac7CR62xA-;VxgizMbnX{C^L0m zcRN!r7MX01cdz_LM^HV7*}b&4k3l0l)Hfk?Jw6O1vL1dyGGF+~He z4H|$mL8>ur*c1}X46NzrXG2iMIiuJ%cuO01a}oh>N<-4gMsBJBo-`L5k{=u3m4z`& z#hpo4#ko21Qf1nfwlK#*wH*FK5jNJH8|Os3Ac1ZgP?XK z6di7Et!3qc@}%0+Y}_m;WQsZ(Vx(frva}}nz(6cRFDk>_8jpo~sNwNUfZ|37yqiB@ zuS`tr+?Z$&s38aqMF$v}Az>I(yrq#ZV5b=@XA7#Em4_I{Mnn@)80rXvWp2m~Ig$)uT? zVoAPgmez20O9+aH)l~Oa1%oW;Hbg5`HpvcPgpHB6nXN6DK(lwHP?-!{HXCFO^C8&U zxYEdIG{udr;RmsR7@5H+o)|5HkBg-n*2F)+%g$8O%LPF}B8=!(cncp(IE88Ni`BGe z7_xy$H9dTx_NoN5Cfd;5%ESudXY7i?0EQTE=8wQyyZPf0FdB?%q{`GFXu?#;BwwV9 zr!O6AOUD^&sS|B!c2H}u%9fGGVKh-{z_$+>Ne=KaQ*kl$^Ch^MxG;$@4I>XLe;Upl zjW#kPV@-|iA)bIx!(D7#!8CPsng?71Loo6IdO^{aK>HRKsAfLKS~v@LhK2^?@6hRQ zD-{5xBCULU5Cja~hJazYP(fN&Xei*Xfat}@2l#Rad=Ql31tO3PHNY-xLqina9j-}n zr(h`{XQU+-0(gEnTLTb9IErKfH+07Nc+#yY45X_a)5?#mss{L8C{kU^o(TexOhBq+ ztd^IDrkM#4R;b|pkyt9pTHP0;ZshOdVQG!Gz^cGhfmq2z%Us>p0&qH-1S=FafNG4g z0&78SG=Xp$>OzF8__%5ZE4=EZld)>Z zeX&*tcft&ug>gRCINZ&{eD`+N+~6~Du{~rNo1b~*vAe-`!z)r*&yhGoyB$h5@@Dl* z+#M~<+uPee6x=I+u$t$mWn^CYvlp*B-MLh`ikkRbLe20o+{PtvX&blHw(YzITaN~> zxKUD^1MV>BuiyW^+P6LA;EwHocD{t*;+2njf!z1c;Qw@%t~vbsoIvxJm~GGo8I@S0 zKbJE=s_y!C>0hH+$1g?C^4=W$V^`a_1u!@N$0A%3d{P`8E*Z#wH~;qxAqQRmT;$UK zZu5Vs`L8_wuWbINS^uj-|7(!`W77ZEZvO26|4(@#oS^IZxgJPi&ch{dA+<8ll|Ovn<<60r@+FD?8?(3C9w+Z%yx zTgwXCb|1PVXd?7G(*(G--o)@~3SJR375blJa!<+#Z0Kyuiaqf=sieLD(TvruZw7sr zqHI%mehX_ZZxb*;)~H;WN@!rO$mg~{yc7S>y4+GNsAR)$d7`+JGey|J8z^z%~loKcYOTtvCyI*!llMZg;&1QU8O`0!WSRA@Mxl=2|A@9o*O2jrPSt|A@ho zkpQP(KH!z#{}{>t`+@hI0HVF~=YYYs$3uS;4uf4n21vGw60~8*=|AR@y2|I47QM1` zlQ>&5pDPb0HusH~-11xHR5&X9DP3!F(F|zAE@=t*qXC0|%smWHnf+My|7mU@qC9*^ zdT6_d$?v?3ehJV;;$}qj?6wHbADVU^VE_KNFeLjD4D&lF-Bh*+GH{He^WvEN?;;Gk z4FtkheFZTR=VK23u6akywn+5+{|t%#|9=cV(WRWdn~4eg^-r36S6QR*1u^H9V*ku$ zwxllMuC;!}q&wuP3v8J^ZbO`V@tSY=*pc5^A{8A5u$Rwvp`CBQE#pQ<^*05(GtQ~; z0x<&x&lN7G9>4sXU~c0E0jbOb-aPLhzbdcg&NVK_lM85T?T1A;onpTek$fxMzsdJ@ z-h+mKLFI{_iom?*m@fCMX7aDUyhv1}L zUsNhTcSis)@E*{;xWo8za$~NoCD-#ml^Af+W zn!L3y0%AeMS_jzrtUwI4@y;B9jB~4QIxI2I^?O%=8!$jLGh^$j?!USwxSGv+`MU*- z)&-VfKU*vWHu&}B#oP(D@Auy%-oPJFFFQhA~A zk^qg1wykF8*Pht*X?06Dzx^#mae0nistCC z-)H7Bl{yuQQ)sPdOt-?t}FCjtnc*Aw;iKaJ-Fz;({< zmEHL}jka-hK>>wQOuU!z$9k8j+=ceYpv5i^S}&usUdTd6nlaW9W+1NW5`rsmbXZxO z96##Gf8~z@fv#_P+M%1nrye~&<_Bk7(M?uyhF+03+4Wxu-gfy4AX_kA`33uh(RPH* zLwng#u#`I6U|H>nXWY>Bj&% zwBx>27FR#IT9nmp4(5Y4D5u2l_;-cED1fSw(PJO-l4Qb_Dt#0bHoIz?=wg<7{48u!$h|F}snz1r1oIfK ze=UH);(5rHIq8{VE&?hg95v>Q-yJdL; z@qb%T0JEXCmk_4F@h+d#9Dhdr^w{uG`INR@iMInMKVV_(Z)Nz9hmSg2H5{}yQ#(Wr zUcDpc`$q61B@F*!$9^4vxi+s3{ue(3-2o)BX!4HFG!EHIYgGIg$ieL)3hdik@z*Pp zrE^%ZqS_@c{`^`Kp!LIOzivo0ibanW_^*yjr2qj3&Fuct zAh5H-)3WPb*2rGgz%7%oBvse9$f1UW?6W1_nJ#s_@+F?4VDD6!2TGOmm=Uo@MXh>g zQ#2_G`Wrv9g#6dL$pwsb{pG>9NZvEEbuzHV-Y2ft_ekj2RxJ-7E&Y1!=y5r@+OSM5 zQpd?tPZsKAqNF%&`V*ep|20Cqihu#i9t9NTEAOSpP70h|dqoE$5Dj9sUOJct&*j;n z*|EF=ZI|y)Y9->Pddp1#l^a@}u4eAz`dC!1o+gM9Q(@_0NI=_5n$LrgKLr)ncUyv(+0b<1LQz z!ej-Pj&=?drHc_Yq<(pE87(}<9($j4T_%xUnlY7NUrNh9M}H67dD=P$E&e_TZT$e} ztAh!9*7_8o>%=SH_|n4vU+*7X1K378uM5mh1~EfW&9Nr#OeMb*AgtTpu{iU~Z^DGq z#&80;+c44}I3_{}mE`%AbGjA^uk?O?+0j+T$lG&R<;4s#R{$H6ZMy8$ox||F*jp4D z?egPaUD?ii97xa-PM7X!%z>hk+K$A;PFM)T72scB{?bi4L8LEuMJ4Hs8!;6?nk$+Sf3}BtN(cO?k}UX`7QHZ>NleO3Y8>~sN|rX ztBXBL&-%9iv6!~?&OUXRXV)VfIQ-lrJXE@SMR4y*0LpJH0i;0X*S4Q9zBm~E5f|>q3gOm~P z{b=p-8tX@W-;MippET#MCMDg9ySqEL%$(#=_g$gvDCCs>p%C2rR7~PAK$3`3H{6!s zp^E);t@=^XsIIe6*e{QJ`5c!5rwm+uPDVe>v!i#<=JMEV*vmthTclx8xgvG1rj5b; z6)x$T>oJ?$>i3PRFRsV(_XubTW>2Q+utCsX5*Vp2c^eyBp|K*WQ8O#fS%581@({A6m= zSyjkS=!1*J=UVTU-poJ#awGLPxy>R4IVt@k-CHhlVOVVdk360aje9o`b!-CsxpTpkrexv_E57fX5o{*N%<}w z?S-IcL*V41pNC2dYcqzv67?Hj6m6a+pd>BxDfP?WPHhol(Ut|!XB_YjAM@?fHOL~+ zh5=i-f2tWT5-%xDk~_cb>Adiod-`+Ip&z8pRi~v5h2Y?MSl9ZT#AqW7F*VN-r#xPRdF4MR-CkQ2dUsyPBaLA*Xm~=rDlaX3s`XSs#g*u9uz&D# z&h1P5xi+;KDNf|n4{m3{7i3NQ&q{lw2d6Y$Sh0rujK0c2$E9HAev)=h?brXNQo2-z zAiOR!$5c8BA6a}OwLG)xKy#fwlNw;3`pMQia9(?PRKI-D6u$x-<+7ngU2xU9VM+=0 zG(|f@D&c|T$eMT8YTjVeZgkwKYYxYq^4Bqr?2C`qn4Q6Cg(yj1TW`s5+r1@&?O=cp z4-!v3vwG|?t;c4)^*-`x;5>UE%gGPmis>+$b1?~Gy3~-+yDyR>?;q9iR-8B2rO038 zP(D=Q^CLc?D}imSXI)n|{>Ci~`~@tfKV&-A_E-uDwi>02$`5XII&H`)>#nEZ^6;?5 zwF(4DBVSswvIH7=((kz#_OEh|HA#n4(_Ya-Ke z*&s64)<)rDz7$V_f;^7|4%Npd{3V9XP4((8d~M=XbWxZ+)>lt!=$a&~ewcz6>ROo(6f;7tn^1dFo%Q zEor&rH90@}Ayf01aLS{d$(t(`)Zy09Rz+70btMcj-u7aJgk0%;%c%g=<=gaBlOnI zHN7{DR?<_;5e+>{Bs@kUeK}&!gnx9r{AA?7ZMt=+dsEknWJvs`ZJe?y_KNv&ix*0A zYZE_Xj{XX21Wo`pQ1k;)xGQTg)d_b@Kfoz}OEoMumYZ}&yO-RO&kTv%EzKMPegE3% zR&%8o^9Xvxu6o6k=#MeVwXLi$lbm~??uBjbx?1G=84bw|JjI^=AR9w(wjiApevp(z zbahOCQ^x8eANHe4!x5&v_cYwze(K~nkC&nK6iXcE>`Mc$qvE3(jh%>wQx7VqM)LH} z9=ITF{k1NBB4)*FTynN)t#YJl`qiQ&?InfqYYsmi zpK`Dx2Dt2CPu%lx8+v7t?a(RGw(u%08(Qo-^yH3Ta8BpK{sm=A$BRBMe@=F;e0=02 zctM)sHR^H{8VHCe>!afl*6`&>q^K&Rpa()I!1n*B${viILz&Q1T*x!3*Bhe}0nE2S6Cen>29 z&RhNXD0Lx&+XLvF$5uBtemETo8b4@Pse;g6@RkV{zwj(x=RSuzx%#ai0=Ngl{`!=!$#cElA-IpW zcOw6VDlhLj222*Pkg`0YmHgVbxfFfGzuNirp{*hN(Df3z7i#1EqLUh}63SLnH`lHJ zK5m51w0$Cf`~N&)!-ofhnq9>;C$ZCDYR^G{e#YJhE4`l6F8&mj7CvqyboynB=#QcS zg!eCJXmA^d5FXeTL#q%CtW40gq(i3vxeG8q^6}Q^E6NF0P zRJHW~s{}6WNkSXi zS}JbO=wcFCGF>ysWmqgNd`prnIun=c=@t(HmA$X^THGl*C~e(w_Y2_R1p>I5I-%58 z2L3=|LKHbyGZPx`Bq1LXKV%>q_zJMf3u8U6N(i}{fjia%g1;rGkvBjgxK~+MLx2k! zwtOm1yOW0CHxEl!1}wy`ER6G%edWzPc-!NBCalnR0Nw@UW%S8z>#>g9fsU0fkBs_M z;I`2Yd1I$D%&GV%uC)ySUT~U6@`6v($aOIqvdQCpSl0OaLXYMYS-EspCJ<)*jkUbK zzCY>A)brP1(J}-Hz)?z%F3vrwyS9FON)S_(eCQcTYoI|K`+P-+{Lv0BIls)7^EJ;$Y582!kLHNam{? zyCQeYJ+mXHq^;xYXiO8>xz)wV-Mq5x>3ffA8i%A!dC($s&YnK;Da5J&z6{4p5xQZ_ z2Sn8a9QW9xPg{-C4z@0h+bAYdtGbWp&?g7DS0k!Q6#EO-{QA#cjz-aaqWAsnJ}}U` z0Dd&v5}(B`F`lKPfu}M62l0p3;3u@9B^x*;@K1HD+_*atfu=a2LcjsNTQv0YbOvW9b=4tyv2I^^i+*Br$c6_ zlL25(g2k=Mx8sG90K3<&t=_yhNGUcjJ)SQ#{l)qz<(mm2lV=(&`lsW?ov4XI7W$p_ z)!sucBUSLq6SF_wZOjg>XkZ@N>?maq78Q=yZq||8(_=TMR;*eiRczn(g6r59UkV## zFJ+h1tmLruw#FwZ}^{$3;w93Px3pwMAxy-=iwD8oD{)?Xljo{x8Q?Z*H>qCGn zB}nK7Xc2K=yoRJ>RA$j8XX36l>TX`OUW5BMclX zET*4^T2pHm9!V0RZA&{&XOz{Y&l(qe^6DU;E{F00XjfSzK{RS;qve zF5a4mA$1jI7p=9Nb10+7yw5^3cI0Bkt$>f5+pUkPR!B#*>7Lsyng{FSV2%Dx-qM6c zgu}(XBRn>u&7NlOQ=3WDGTfo8z~LQ)28cn&Y*Q6Yy5V_gA~X@e#B5m`Z}RUcL$;U z5IJ?;nxq+hxg;uquzLhGlDH`?U}%kFdQ&-dG32t z&8=d#$&byRq;h_w$YlXUZ(1ZAbbEb|LH=H3=c04)q{Xs>r?$ni} zHA09is;*~rfa8BPakd^YjqIFz6cfvnNK4;bX_QD-quiuxuO5I*`~a0UuIM~#B(xcippqvG|Pp8GiWWCyti;{XgRZRiT%!EOlLNC4aEbn{S3N-LDW;phUf z9*X%hhrz1`R$H+y^<4i9684swj!=kMT~@0#9k9u1u+ZN?_5cz!(;r)qM^{ zC=Bju`Zk;wO|q?aoPuBqEl|iR4+WuVeY>K4(g`&KX^*x58Qx=;BgM~z2MAhdk8-3m zmD^4LP#W7uxOUg!$(X`76RhDM$S%zB;A6lsfs7KYe9q~>oh&afK3i+Ei~-@zHQu$0 zD7EdfCE&C~l;(&XdcxS8R2u5;(a7jR_5F7a4eXY$UPMX*o)2)BC$?g$hux(TxpffC zuug8%>T=BrkTw1*Y%eY-<|pp11*Tre`486)1rNsWAr8KXe=T`m`p9F~|Q`4s&nTFy% zj1}ungtsNKx)KiN&mRTnBap(K=QGdo8c3;d7gDN34*xjPCjb!aa#6GO+WJy|<9mdp zqO55m{lr&he^ALeTD|P5l{%mh)cLF5V=!OuZr9kgPwb?27hc3dZhl2N32oX_soDkEajHPS&W~!4q zkXw-3NNE@l5R&mZ%?h@6G|0o;xG+6SZ9B~;v$@d^EKA|(hz7oEBeQ0NzV&C#PEwpT zF@yM>+j+TT4W2c3auK=r-)ei|1r#Tu)mrNGquv`W#>>Kx*?SnnIQqaXaKmj?*TGJw z-~^c{9ZaP5*hz%({CKBwo5`>G1T_s^j6lIIFCtd|dM{{Qm-|B{sG}aJm?PEA^K2e+ z0L#7e*a=bUhg!*CF^HVmT<&4Z?SLw3);2EAHYzth_Z=9#L#^@+2@MA=v@~VtJK2|b zPjWi7ukDwdGWJuqk}STsp7yL+{PO!$S@)H@*OkHEJ)gRsj_SSWqKFAA2CdBdUd%oQ zYah$5K3hz(=6K5_HUMt)OLDl0ZgtbVba&pM2nm3p84c;GuJA#X(eHE3^Xz%UwtJPK z>wN_;??K0I^J~y_F{KI${R8ormp+$l9F-pG{PLIB-vRWGP=lqZ-n3GS67Nzg@2dfT z94lruW{q_gDD#N<7+ek>gQ5qSDJR}PebUCRpGMd#8tL-4>df7oQ>-kF)cVE?`F{86 zV9g;Xx+agPbV3tIZ!)LUYy-zHU&4ccz2lg~@rPt}KFbvt>#wdB%5;RiIZCZ~(tiMA zoX}0 zy$k@SNv6t`9rDzPPfuc=<JJyL(io#CbI zEo9^URc-gPNu$3~e(u{Z>^#zjnqc!fAEW?4*>wCncuCZ5FiL;p##(!Q^{V5ht60C9;6KMa>AOZtz^Z>){zHv-7~I7`gD}^&?4*ket6aQ z%m}gRn~q~&*&E9vgvE)jP=0xbz7Y}O6pNax@VlzZ9jk7}*CA4Nq2c@@3qPLkjI@J$ zCJqzX3bqU9RAr*)nF^pD9>^WN!(R_68uXYRv_7A#`5>uDT;598As|87$+2VL;CS*g z2jzv1|vASW{e7E$}kQMCk#+n*ZneO>`|yk?GOSJgsnPQR5QOWcVb0wQ@E!7pl>c};1B zEyp;gtvo(Ql)5*IjvVC@781R0urog3ZlmP?nA$x_0OIv9m$+}&I-awi2Sh8#O)(WnM(sLW}M(#6<6de(b- z(r+5@qVqXQYPc8*aGYuS>601X2`o4ez&6-q8I;)xCzd>4LN05#S0=_$GGrZ>qqi;% zT-v)`&z15$rbGp}?b7%phVtm!R$!QXm>i}Kf{k^1%;}lk&Aw>&y#oV07Kd*HF-6ycKdq*1=V$7c_d6J3#2KxO`=+zSt{ACy7wuewV;G8*KM z^eXjzvp|Yp$bj}dGXshfd>umVj~vPc&Ssr&9|#5S50F#)a8#H+^>qI)C@31mRc5gU z!1eLFm7Yr_dQ0>Wd=RL zpW{xO3OQ;1_HLU`EoxRA_dpvC$Upk_cMkdE#SZrMl&PW(_Gd~-Ha#kS=&@8_qQIwO za*|&n0L5gd`Amw&AMZLPq-Xj~yum9IGgfl*$s@(H&$I$JTpWf4JcQ)iQWFwSllA9H zSG{!Z*l#%d_0x&fOOgHm*rEO{zOE@I9ajLIJWam&Pb^=JA%Vs}sn)8&McmN3(9Ohx(i+kl>lTW$I%c{f|2vzc@akKd>M-APi?H6H zkCj9W%GOi|Z?prg_K4 zaJ@@*H61_!QT$oJkD_6X_tF{x_jVmm)(@_F>fPHd$g^S=8angBlVjdI2Y9y#rRI*J znWmV1-8{O==qSd!eqw)fspk{hWWCzms|8TYYKITJDc!-8qUE&QTCsbS?)#(7MTEx0 zFwlFwd0?4Kc$570QH7c>l7oTb*+HpXUdn^cyxema4g)owj}e08Zz- z67k2~2D0bUlM)>coPDJdVEI*0O(@qaG+yaUyUFvJ`?udMDn#GBj?_J@kb*PIcdWE8 zV@@k=RZIQ4E9^Fg7VGY7y_eF6LpTNKNFolhVKVAL4qbNe#?CgGBaN{)p+%|Y%6%LtuL#>gkcQHyrd8Q&f z^wvYNWDq#U8IhvJ?bT2GB4U1N+5Y{_EAdeMvyBO-MlJ}74DOZ|b{h|QPH~Tlmvne% zav6O|seA&2ILQ*^8BOWQA#oKfd|$}XU$39Jayw&c6QM8DynUyw>}$CcDv+BK0PrAE zkbU8ChQ_fZs@(|uVwo^4JKp%H-^!PcW zcQ$!8%`;rhX=gei=gZ8JL1;_~PuBfHoacS52dEh= zs5>f|=cOy@R-E0L#ovTZ(}son=(qcI-&|@rexul_Ns-gEaZ)$OT$xhPE!7=IXgEbm zCgiu$g)#UA;&kng#c>TjYskPo#iti@)_y`WKf+1x~~XF zE7Z{)8lyD2rD-zYMce6`H|_>(W!t9lGfVKcY2`~;y7 z?i;?H%a^$uY|0pVt(t^vORnK2$kHVZVtGfqvyQrgea|M- z;!Q-i455Lh+^-hMX;K>q+q(EOU=9L)q#s{$JQ-KZoqnSjpnNBT(NSMVY2+C30L7Vnqks;CuT20FL5l`3JBcp z0jA#`*%f}W+2S!@<7L#Mi_G1)bG@}$aZ|QQXb{g>Va}TJz2-w5ChKC2pt~+b*_4+j zNEvpEo@X5&%psI_m_5BHKCoU^k{Gm=aq?XZ7*tvQPy^(NJa=H)!(@>kb@nHLGW^h& zFEzkIcE|h+2V!Qg9wTtBUJ}IUQDP2+;I#8^+osLDx+7-;4Zz9{+-egUKRoRRZ#;*O zEp56qqL*YKCec288c0*le^+xd-9C6ap9_FH>3_qWl7XE0*ZZXj5X<^>O)l;Fib7`j znl5JeXkgLxHv{WGM<;TScT{t=PHYz+2p*+fp^ofYSzyYX9;#5EmI=Y}_bL8|G@H1r z{=R_mhyRdfGa2L3m$JD!Ro+^%chTtD9_OfoGNQ;u6bF@2^aWWQh$fE zaKq*3m$yEu_GMw`ZtM1xGox+>``oC|o9n8ZLu6zqFWh+=nS2p|HVcD3yF-SW`cyN5 zSDS4BAnMAhfcdNMWxJv-l)a;2D3K*j8A`Rd`(j1?Mg8`X(Wqj>`^rDK>3z(t*wTr^ zvkXPawG(`W#ewP^F02^Ut{3w`f38p#ropfqfnV1*g0 zPJU`C9#IC{r|p_v?Jo#)8`e*c_O4V;dX18lEx))Db+dBQeUw=vkZYO!@#6IBGV6$; zI|Z8c@(!yL`1J66aVJV*q(|z}xu5{&Z&xu@Q0tN9&5P@>6SvAO%2I>=!rjNTmnlt%XwY<4s_LA-6-MK{9ZL&&80y)1@g)a(`do6$W>lkw>JhHe* z-#~#Hw-c)HL4;G4$@~4V{=*=lxrdj8nAFerS_#WM)P~VYrI=u}grY-hDQ@4H%$q{| z7kVGa77hTQSpH-#Xl${OQ1h*XV_IN3Sa@_gF1X-q@@l@h+!4meHoF<;siNwA71#|` z|L0A27E*ikXZFf9%P{x(q}*E)&ifb(QOk%)Uw@Ra!&H2tf?B;%hF_doE{NCu-a0#< zWt3Wh*1b9v7d(<5FFV~DlMvCL*uB>xT9hGL|7mqs{Z9Oz1YmGnF#00Y|Ke(KoX2+~ z<+`4v^cYEh@1(Qv2ObYYbkye$EYsFSb8Yf2_kd<0%cIxRKtE^O(-ze!y(ZqGGx4uq z&lju{D>-K~wqpvc^46Y*umwFgihX3a?A7pVzhSbTftj7x7E3 zzEwT74s*9SqL`E6mkfYT$PwR`G1=Kk@L4e{27S3<3nN{gh|4Y<$TM$QFL9#!_a$XT zJp}$VV06JTLxb3BGTaQ?Rz}iD^`(;MvtL+>EyyH_@0aW=Q<0Hw7^Xs(b=Kb~I z`}^s$q;($gH4l0AdHEb2O3~s{TvT72-%9_tHFP6*{k>k(g(+v^yNavrl9fGv*O~g~ zYR;rx!AC6H^GkU+3j^jYYt98A%!<0*%%F%5u74B5o z4m{04HSeO0K8&hM$)2uD9&u94Mu|`Sq*nLOBw+hvneL_onmHz+4H|^c!wZFDuff?X zGtGnL1z^+imXW$1;y~I6LK17`807mj^@6(-dt~7d$FFr`wms@h+PuenDN1kicxT+l zG0xQNn$YXPhxm=Dj?EHZztj~o_PyYvdh52LB@k-`+#}iD!>!S@p;M-l*A(ZVZ|=+$ zF4kveX8?b%D{-q{&aEm@=L}5*4b+q%+5j|o2y<~V=9SEUP3+So37eEdRL!fqUt3ekwjs@3yJ-JzyKvzUHK7)FpYW(vmuxlUF#Y-9^=6 z0iR-8)=gXcl*L;oA4W^cncHWaAT(G6%v@8ATM1xPClg?h) z{JCC&UYSiG)irJ&maPSkf4R8_+n2dq>Zni&UJsO2PAk{H))_m*n~STkZ|cMtc2#Rn zRW3Php&MIQBWDZVxt!#aw%%hYk1<|Cjv8iPbO6xtV_b!pX5l^%5u*1P;LyqAtkEMH+}D6ZJP!$tlbs}y%+ucX@Aj!;yZQE1(Qsx z$0dB)bTnvp;|gB#$u(a3Yap%CYO3sM#mBT3K?g_Ai~UbN!)Sdk1Ph7lq?|oLdcngi zV#gQ`^57gS860%;sr~?$oz~J$$a4P1>>MC%7wLKxRMk|8 z^1deC+;4YL$&t}*=Y^hpY&xp*-g}X?#4Eqc+LrJ8@wwP^3N2}FqTSPd*sEo5DkJbn z6wbC5di%4(GcUWYQoo$`P~Zma<4bo%SLSKNjxRsgJn69|6|G06WmAV3%L5s!o)UST z7s8|Y=Nb(^M})q(x?k`6g<%~aH?P4|IfVkCiODy>DG31C`HN$LZv}ipI=U!Lsu*W9>)T{5$1%0bRN{rKJ0vLJL z-rEJ)+X|zszxOpcl>68BGW#c8b2ko!Mi;s@4A=bpr(CjykGBKmk`9!;sy~p1ewkNuL2+kv(PMr9gMQCe-F*mC zW~CCNe=O{VqHgr9`$36U6DEjTn8mV7-=Z8;LD9Ww48@3w-?jGs((e3cga5e;AQUi3gB2xeq{i1zH$} z-H23wJ+AvJ7BFs!(Y^;|c=*K&AzuoA%UI21Pkef|UAl(6>+(r1*V@R0VshseaLv`c zD++hFS*Y*r5$S}w!b;=BO=-@nGa`kRLkgS~e`*4gHwTihzMO$|ba=%%^_j=|#Y%x| zYGdS!?}p-&{8C_U(9KKUBeqXmLT^gy>%G%8LfWP9;C;O=DR8DrMu7{r-W7KRYHrZ~klZpIeQ0O<1&DK|OF(t-Y)$9|6TvY-!Rnc& z&R2weMqT@O;x;eXp4nU_eaGqslp z4Y>PpfO`B4Kvg6L{ebVg+w=utOibg{`Lsh$wK55$qZlU@zVGD>>kNN(qkG(vG35Hr zh`Q%Q7Uv3)7;Im2p;r+P*( zuF^{qH{UOPclzVd$kPZ`=IoM~HcwIM;_(yy`hwCmbyp0|^O~h;TRXCcgxNDShjz5z zv)ya>UycL!A_UoK7bk%_@f4GPj2P zzvz1Jc&hvGf4qz$B@zm8IH~Mpm%Ss&$;d8+?6UVPvNs_kj&TTOMjVxpUD_im;H!J96S_`kbfK@GgtK3${_yIoAX&ic}Z zAKXTcLs{whUOR@)=nMK3*QIj}x4J7BuT2CNZHw$^yf}{}BamWFd)uxM&d3E?b5f;fqcTFs zr5W|=J{+eDk6|5F#II*0`i(jj1OyD1d*0@h5GYo@pwsSA!DaNd&Uc@$B`f6mf}Emn z9i{%}&gCo^*pu$EKHV6=QJj{U`WoTh;035i2)U-mhds9RU4YV+oAHvuLPxsn?yG?; zD9mM=3(4Tx{{eRUq8^o(F(($+$CB22C{P$dW*l*hx5&cHU!u)^{lXbsY5rN-+P5Em z@g=@t*?V2#4)Oo0b>A|w+R1(DsvboCEqMEGtxuXn<`~rr7^jE0RC^sHhxZ|4ryd6_ z&78X)pubnTHkRqav}(=!5kWyg5KO}rHDLWog@#-2LIh2n^$C3I=3~%f!f%k)zW<)W z3p>(-n>3lefEo1EcDECs(SM;{f13QJksN?}O7;#d<$5Xu*F)p*G*c5SjXfE)<;Zwl zu$)ZVUPUEF7%v;c6uIzXBi81Vr12~|#9<&(s`>7kCprn2QdPB=X4mc=3~o`N%=oTQ zpA7OA(fM3xhZfdB+?&Q#^S1Q3D=7KwR{s{?>gR}XzVbO(`(s2Ua1ZNO!uQ^JnQOa# z6`&>hDld7}EjzWdC6GUI!B%{0P2z=mul%t^E^Y$ZZ=Bpk3EJH2r7a~Em2Pl*OO6#7 z!IQ|mTDW)@{+j+>enz%E9_s1p8eb2Fi{d7~4UCBH$ljr9U@ao}`YvTCehbU$tSZ~` z?PGudH6XaQHQe7DZkv`f+euKkV-UJmzgcyNq2}b)=D#BGLY&(I$B}53Xt5p|%oCP$ zBpPKUHAlvNoa%d>dB@w1ib0`BNp7i9{>3JFf;_FlxSB&;VG+1HB%PR;sh_UDD1Q#D zVyOby_2MH`3V?{-+j}&h_XR>~OX-wb~KK zTwXdV_0IJ8XD1|=4rM&bTORckJbT?{F}-+rCa(2F6V_A6e zr2zC^4^+_~QG3n9v6k^@+S4VnSFG8@gID<>*&{5?gN_%Kj{tbrSB>ho6t%}gpY+&7 zL2^W^(sY{@)^|Ub>W}J)^cF;zyH=@tta1g}LR%lpo-7}gM)0tG6~8iGn)-iT=n#Nz z=_l>a@MxH6HL-8(vBQ0BB5`eFeeta32L<-phSNjJAwa*y zHb0{mw2S~j8)Yevo=HZjC*^fF^gcV}Cx7p-Q_(558QaA^#kIrav)kRGU4m%r!*j3P zZ!@!gV`xg6iB_6Byo5!QWW6=h&^*^$Vis+`(5r^sUu%}!V)`#To9Y3PqPlZ~bXmFH zRkuq6{9y}$H$>Cp6E3@g)C#}vcYYq}5lj!+V$-jweeH|3Sod6IB?id;!u;O2nZ~TA zAlY)bN<=s`=;yh=0+t-8k3%fhV;WCHG ze$}rvnAV{${wHIjJ7fq~uT;2(%TDs<>$B+kPMyiKm9)Np&0~0J#IOi7T(g4gxRbsR z#V+a0#-De2v|}rya@nKiAt~eoU*Fetl1y9F5eYU2*8%(-bH*p~zgxu%qZo`t{K&Ns!zHFm2Qj)3HJ;W@rc z7aXbjRPzB^MC9s4*`e^e`{$pu z>3F0#_d@bCfyDlbA70FGxSo1Mlz3K}{l_$^%|uAVS0uFo{V!WDl1WdC;U9ez%a-o# z!Q62R2Pc_$`_>z7#GG@)f3o@T^`e;{3$bf+fj4I3IcJ7W?Y&MrNRS!LPW6mZie+yE z8N!9%cR{=H7ZIEWp9ioG?Jqe0F*&ncfeJ}=Z;Y5Z)`$?L{}3N^r8`dSEEbDqEoM+# ztl-m=%`=a&ChgZ_S@*YUj$%RNdau(OAKT)(AFUg?|B-eWn{!7q{biop)-q`3B7fyG zxIp#8Z*y)dIG(Rh8P7c5gHUY#R+_z0Ozme%o-qkVvae^k9+o=k+7ug}8W$d|!-t_4 z-&4kjTExTltrLgTA`8jZo@f|t1#5f8j3ND(Sd}0S0Uw}{zM0_Ocr)vtVmf_A=5^SP z4oN7D?-l4@guciV<_(WoG+_H*Atxus^g)(7|TD|8|b@Y^YBr(8C{Rg20 z$?s2HIbT+H6i&%*GEBSVhz=JT_(iPMa>pD$UPHq0?DO%k2;1f4tvt(`Cdl8TzG*Pf zBLJIyH+amVw2t?hIrvq5|KFFUk7Pe6lB z)6i^u;WuQg;A7PDGYtGm~jTY0K(@_l&2H4 zd~i6HF-`I7vez&O`~E90skB=P`vWz{O^*@s)+Z{wioY7y!uZ@=g z^q-&?3e|^P?rVcahypZ*BgJY-g(K_eE`i_c6o+PUII=bX5I+Jo31S(p6&dRnp%mdR z91VGY>JUh;xP?aCiy3UcGy7PHO0&PuB6X?-rNaL--v1EvUG2Kv@#S(&FU$pXvqT{g z`#0Qsl$-YyM1vsYjLI4U(=KszI$Zr;sLH3JC`phv7!QODVWI`m}w)myhfU=8w=N_BQ-iWBVm;T+B?zfezKsKukk_PZ>#J?@%)TQ)WvkV`zxzq!Wfs zzodon=U~VZdEGjdU^`s?ZKB3j*f(#!o;@=Jx}KKTyfV96%S^7;_Qwe1 z@Id39Nq0NBfu>n%9|uDn)LLry-|XnT&ZiwLgOg=di_i5z>&3}S#>l4YJE=+wHFp;# z0|Z(@MSDAarh7b#_mAU^@ZUi(hE`1#zwvzho4rH4D|5sR{13YS*3~mcJR|H*r+7FB z8m*ujzA>MPWtq0Xn5LW&0D3b&Bu^L{Q6%z0OIdK|?+tb|7Q;9%aO8hk?VrmWDT4}i zsO<=sZT)L%>)H3o)gML8b-#+5<*=UoA&i|rd)BUW%aCf1ZtaV}aFc?QHhN@f`tEabl za@#OyQONq+-Vi1D9ZUiYC$PLhUi69W&lwB;!X*1t9V#VSskD?`A@?QFM&1 zV#0VjF}2#>4flIL#Z-w_WSzgpeh372#yhi)eqIP-p5kf$$g@9`wA-ddiCKZjTO;3~ zxm*kdVrL$HS-u$n#};*lhXi-h2rb{77Yv0~+M_-7Soy_y7#C7v-qn{%Dkj<- z{ATQV5jWyR`1u?6TA^o?6tN5P_0tGYp1aF;=6EFEbcljUGraFZA#YCfXC=g2sPM$% zzcsvcE~+bWE}A;DXGV6}jz#sdQ;qQi?aQS|CEcr-3m_kq{EYWeee{v;7lle>>`yX} z9~@vqzrX~d*Z-=JQ-~M*~UnXWgxY*98opqaHBg zA^qMcArMeg6fAE3RQH%Q-rBYfu4l9`SMAxiKeXK%5Ih1(#y|XG4ZFH!fCA|bWn2cW-C^y+I z!#2Ep?~$vNv03``r!=U|mhJ~0()!_hB~d>3UP+Dz=VI|cyc9L6LH%9Ia%59*zp41G zJLhX;m&V;^Q_++Fky#6 zZ4d9`>yW|U-XGu3-R%`W<54hit8Z^{;6Z;pqcY0k0e(mFruMCb)&=k=#*N<*#Zkh_ zr_9D2>HJ=z;hi8QeNrEC@mGzPm$F6FC4xiPC5MgY+~Mkh=L&v%RHQcr&uk79!V1~2 zDz!X;%f#1L8MpS&btCO<`BO&7KoS>hdWhVr@;ut;%M4 zNVqIrzzYE)DBfN3I%Wo(876O$O;guimk_$%iRSFY5&D+-XDxNH^wq3@rh{gYU2 zC?0@{vgk?UIa9WgBID-CrBBO_>^-TwMYEYqG5d_DF?E&p&zOxTw8y6{`iz&=aWu@vw-f(%L)=Ofa-EikZ9#Zggl^~g922cc z(2=bguU%}?2>z^&escBz$t&>VBLg*Y!&j#*h7%$)p2A40^ow;WUryS)GgJ3bMa6UW zxlyCQAoNV>`EsQ6J#F%bMNsCS!ayP*Cz|K;^n9qdq(8+&f@Eg@l7$oN0?OWI-wV|C z!fq`IS1c4Y|GMX9q``tdHzCU&P6Udr*0^`hH#E#W_1mDGvExya#$ukTfQ-ajeI#k{ z!?%1QXN}~~{it{XT2^Dwo%t*>{fn8f!4}~$14wEWe>?P7G0mr9AV~HZzwCWAU3eBH zNE8(Q`LhpUrdo!)?NqE5jUj6sD&nI`YtPLGP^+EFMv$Nrycw?@z+{x7 z5}sDaG*@uE*x_L<)k@%*I^$HtH^5JO;cBPISj{rv3 z9J@i4dps}H?{QJBInII#ZhQLd>&12jMwcfwIUdXkvg`lMP9cWK$>x2Bn&R3Cf@ z6qL$?h;X2%>bk*f6HhAW0~RWO^bY>{rSBe7mHmE3alJV1^XM19DagHIfIjAWe;S{6 zjuGAzlmxaMd<$UhgfK%TOTf8Emag%X3Y=)SAyU6=PoyhdPV*y=g5;Fw?>R>RJ>2|n zW92NrPrQNaZ3FjJIW?&|Fz5gp9)hQ88UpKO^Hkggkjv>Q;_qx9(wG~W8wG{3_F0Wn zBrp$B-8)pKLs}Ic@wduv<&#iR`bJ8plZ*m?f6g8MV8H$bc;`gu6q}q;+q*!9|HXIG zf{&Y%1V6#jh-ZXe;Fb0~I&i80ewlE<`Cp8OrNb%iIN;|V$u6#wU73O>qWI1NSAg?| zpnmH$0vO&EzA*GjOZ^`4-&F&&nLP2&lHGW5EalZ{-pfPZZxX=hu+)YAQf2VjUF^jR zD^+Sw+FN?#OJ2FncP!T}x;bI|lPUnNhGup#oOO0MYs#!vUURM>IG>C+^d#LFk%#z^ zuYH38js$gSc%}zF9{XHbY4 z;9r+|vF~TR@wi=V>rGDD_&+oDj$m8XQ`uP0mA1Q{UirgM6Si?2`-csF1@}p+Y^ME9%4-z!UsQ);t%3QcwAakJ<=G(>K6W|UOvkY*#n1G!Rd{)my(3&=M=AG zyh-_MW$-XFBD}pfa>Pw9WDN>}?K=v=R-~`NYjU?}ypapbZ$##Xw#=9IB{m0Cw z3zOWaiV+@%E463w)4h@-O2L0yninxhvEl=L>yxj}ANS#>*lv(GWVWfs#fcv6ubbtF zePCZzWUUWWXT%3mprA!jjAtZmNzN1cu-(rB&4orL2sU_?4NIOzuDf}NKOdK!g-HE2 zJ?}!ILL|kj+s9Oi2nh+sE~k0fO}8a;z{Egu%ai{h0yPSJR>}WEGakQu9l9slpeDfm z!nTX=-Pzrkosd1oAnyKg(0#r2#?v2&ij}Wqnbt#*(VxcZ1$up}@@E)?e^9Ej z=i1*sVSqVCE}TdNW1#;exn9uRo`L~T<%a_g-T?if{mc0O7s5OF+C`C-T20faFCAbq zRJd?)Ir3Bv%(oM%%S~g~Eqm9Jz}Gw#j-P?b$Zt|`Kdebd|}6aH9M!?sQ`0| zohNNx$l<|WGt7OPe^m}*n+NKh39gpAvIcmR^P~WjJ1N)n3MTdzF;L-eES|3P3trHc z8ST>Tj zbQH~|f8S7l;j!}NNV|Zx*$#pcp?Pw;cJ4f43m_Sck*|fQ;aUq+h0$ zBT78_j5*N}%hfw6|}Q z{ilXM%{@{UA9!Y!I37dm>JpwIj|m2hy{`8zq}gBbCGAM>594Vjj}5i7BS9b-8mN^| zjDz!66!Jv8PDm0m;!G))jR7HUNG0Mw195?u&EuIsA0mQod@+kedtbm8v$ejo#gG8* z@y3K#gybkqGXhTCYh=XdUXn=x^_hX*{yza~N2aoptfSt_1YF_D+254?Mz(0EUZUjT z`JFjHSb<2^kdE#C7F%NTf?-H(ce0k)7yQIX&&-C4m+9Dwa|p|Z96n}vBoC<9olzjSA9H8Rev6ByRQFU(i>5}&1-^UwC_3lIZGL^uF_X5S zU{eO_n{*}eb&(>-yM(=>5d7N420j$XzKjWy;3l*-%IzQ0tsZ{C%A8v^Jh=8TgbNzEl1NEh>4{6iXA z`mD72_L0%wWOqA{EH>J~2_kaP?P-2lFj_&x9bA%aE>26$B$%dHj$0lVg`Yiqo8CHb zl^#O@ZY#Wo=^_iP?u zpeqzFc-5c-F$=>HV{GDk;~kV|#CW(qP2ODzu9QDJcY!Z(fXtZuqb6lq(im2u@l!ju-_ zou%Pej-H%|{&F7M?N7hgmM$+(kYd0VRBuwx2bqBl41|ZR){C1 zxq=>K#Iz;}-7+W!S%Jtb*x@zPPV3Xmh(&(1_q_U>En4i9nnc^BAgcAJfiC##m zsqLvN>U$Wtjp*DmnfodY>B;RXG1RW!(GupWT>NIm7F&WTfU>=)8a2E6wf722sq-mU z^?hkMw*3O9v)%ITz2cU%Y_m0vr+e89xuH#36Q?+-`1guS$cOUK@qINu=scoDLv&T{?de@$hz9jvZQE@r*k2)IwnEE%RFKw)nw=UNhji zjGewS`gz|nH+*+}nZ4~*e|)u!LLHXzY`PkYpDO@guCerR!PD>EVaqhANzQP2N zqV!zu@FM?)QGs*OzKHd1`bS1gOFHeF;qzta_Ud=M!wDK+W=XkLlRkq*YVwydkArX4 z|I}H)*}4F`#>_;)kDqVt-3|d*zwcH%QX^gV3GoX`jYyf%by-cdt%+FeYct-hy^(`IB3r0NnSmEv0{G5xyXMQY32JNplDJQm6``a5s@%WI{?ICGP z@+~bG4NCX>yR6Skh1#MxDAPIGtY&nNuC{yz#nzqFQ@`wxXKyWB$9wkQ@Kx9|b)_C| zWTTa!uYSI)#01Kx(5j7J%07n!U{Ysbu`~$bL9YO3d%eh%_;{#$CS{ZQz30Hq27)M7 zV06&2JLTHC(;NsJj7IOjnZwUCC0`dC^(JJX%#38vxEIT=(R5$=b)m~wxp5+3+|Chc zJh<`4;_81N_phXelm*TtMZR>BFAR<9obobDqBs5eE&lzs$ZF=

({%T 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 UsL(*(1plckpHX_PXnE&<0ZiFgHUIzs literal 0 HcmV?d00001 diff --git a/docs/WKDG.md b/docs/WKDG.md new file mode 100644 index 0000000000..710acb1011 --- /dev/null +++ b/docs/WKDG.md @@ -0,0 +1,43 @@ +# Developer Guide + +## Acknowledgements + +{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} + +## Design & implementation + +###Add Command +The purpose of the AddCommand is to take in the user input and split the input to three different categories. +The three categories are the input name, order index and quantity. These data will then be added into a new Person object, +which will be added into the list of People. +The class diagram below is a brief overview of how the Parser is related to other classes. + +![img.png](img.png) + +## Product scope +### Target user profile + +{Describe the target user profile} + +### Value proposition + +{Describe the value proposition: what problem does it solve?} + +## User Stories + +|Version| As a ... | I want to ... | So that I can ...| +|--------|----------|---------------|------------------| +|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| +|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| + +## Non-Functional Requirements + +{Give non-functional requirements} + +## Glossary + +* *glossary item* - Definition + +## Instructions for manual testing + +{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} diff --git a/docs/img.png b/docs/img.png new file mode 100644 index 0000000000000000000000000000000000000000..737e4aa4d07236dd19485359030d2ef3a8167439 GIT binary patch literal 44644 zcmd3Oby!qy*X{@cN=k#2N|#87geXXN4j>&8!$@~1BGS?z-Q67nNJ>k`&3ud0Z_Y-T~>t6R-TYp7)2`u#c=pYaXOG;8q83aNW0fBDQ-a!IB zA)fhe1_F75q{Kv3opm>1^&vD;u2pMHIGlppSM_+}(qc2uF~p)IE!0j>(7$6w@O}cJ z;JxlZ$w)$elc9Jw@w90#0hSe>ivQikbHaOD-wBKly5tVx}S4YIAlu1dXVGG;Q z1JpEvy<5AJUqsx7dvWA2-m*2Gq}}rFl+=*++-q)Wj=%Mh=~68Mt-)HEcU2Um*c?^n z{(~B%v|OoZ5G9}5EsV;Ii$uBh>SS!^qmgb9JNqx0$EYvp)`Mpo<~U9dcnbuAiZEadLCZ-?jfFpNYKIBqmVP*yuPvGm~iO zD#b>@K(idtW(bFWDwBTb!*0^SPQ5@P7d-ylS53f|>D*bVE!aQn*xrRkQ}E|Tx#D$k zQ`kue)5>L`@H6HeY6Lpssp*!g$YzGqMQqAsXN=-e3A?{Z63CD3p7ZTcdo}_;$l2G* zDUr@rG@)V(kn{7Rn|JX)^VcXx<9Hm>gxpQfX`P}@TPI!b zllp$yF&d8?N_uzcuR|klU)gP}whd#cEytk}mV`-lREom*wb1uOy3en$!%6P2q5qoP zdsWp#CTPoyX&j#=&hfLJJE3{iwz%7|u01R^w`1j_{yG9Hf&Fh+UeX51z^30hL#tSW zqWkY9W)QgSKIhV54D=IrMcte0`H@S$-HbmP|LCjJ>D4Du#2BiRA7CASKTFI!UVe_+ zjPsHsqS5$o*PZnt$~jo5Ei(V+7PI{XLp|cwPk9*{Qr8CwP5>tySD|Eh{+)oNY zv@Gp3CIk$koUvo;5Sm6TNwhUHbbGCKr|`q$7ZNOwR;&&Zc-E3QzC9dzDK~z{UzWyX zy>M%>M~js_>pkPU%nALg+?N)1CX}P_(vzVvNO8H!$DwF$HEVEd)hijM3@cjh6vODm z@GCk*LZSbdgi3l--Y@V&PM|1?TwW5MLdaOhTVHc^gfR?GW`J05D=4$NX3ZUVmLK>( ziFF*$ua@(ZcDkUU-rn9OcxdC{!RnD!uKPZ)R?5sc`bV>24_W|ECea+P=mQm~$ra?Q z=qMXR#UxRzQeGr<($3AzZM1kdH=BjI=X0LoU1{y`mO{qF469aW$8o0s9Mxs5+#x-+ zzXuo_D)U4s3&!~DbW`c!ruUKbS59=__1<2Y>qTYFPF1SWRlvQ2m@gq- zy_AR$Wr%=_kn-@v${;AcB7|!ACD#4;$3=8w(*JsHoGz=X5l*U5cF*pGrOr?rCF##b zPYP*#N3?rsIzsQa-;F9<(uRRkG>13O+ZC5O>+*dk4-p_IYos`vw$fE-riD49_8_SeFXEeDV4I5D`W*9#;0 zz^Thq@gc7^aNQ{DOq3w0Q~O^&W9L;vzJ;+DGA$bMI&kTiSRj-#|7j8F!c)i4yOWN_ zHb)D>Oo84EJv^6vYQhr~v&YeymG?_Rlqzxr2_Ds|TJW6QK|s(Q7GPeW-!>LAgf>QZFgI6@pBWYP25a1MsRi; zux@}9{R2M{gWD(67?37P$I-2Nm$iH>H(%_?SjCimQdvvxdrLC!G+o4M?dI}%I~DR4 zx3}fl)2lvZ`BzB=ig`o~xuRH>5QR{2aw%n+NN(rcVJzYKzJsUoL5i8#RDFY_sltpn ziIOCDEyXorvYSVkAnoXo!^~~M|1mM5O8IvT2ATOWo1Dt7rRSg~bu*glVc$&@JX98Q zsJXZJc`o0iyRt;!Uq`ACOfZ@c1QK_AF2Ur%=uv{k@80=3Z?Twf_-~`XNr2M+WDvi= z0mtL^gWnW@r6ja`>+W32R4+{8(}G08)Nc5@@=a>l0b{b+94=d^?fIdbgVPJB_ScV2 zw>!z2&CI^*Zkm-hGox_)6$1?3dXSICXD#H&B+-cKM!xPf{jpYM#;F8@oYSAeTR+@a zg%0R9D2H1=eqEix8=F3>OMi&#{hJxRITAi%QuTbqGV1<=A^FFwZ?%yOy0NWXSk$+H zXolAT5y z5{OWy=eLI9v9DFNJrJWBkL`&YI}=(=w&(;GcCzfsvp?Znp0mCx{xT#}8$Bv+T2pQ~ z<22KQq|>=q4$(9Wf`P|cmb032sx|KXwM_}IP>GTF%-GwX=rm;R^-Z2*o1@5eD7BFY z*;YQ?pOs8>m~Sf=*ewgTt@={M8l7Jb$0n`1yUr?;uf=T2!plTi-KAg18JQ~WzX0Fe zr|F?!%w_DMaSxh2L!%@zx()%8(Ln2AL8>p?tv zd+MO%;J6rA972QTICgm;oqsM0iS713_G2fs05*ejmm9^C?HF5Ri=11r!|~9qOX*$P zspt32#uEWsRggShPZZ_Z#i<QW2RQUOD_lH=hK7ov)_QIaAZ>qtXTnAogId4BURr)i-*pBUb?{?S{y z0q<;#DTvJ!CKIs?8$3F1io5>?&ypok&A~Gh?24h*tv~fe3;Mx&v@Cb2MhLE3%%Gs* z!Yc=>{F1cw{e0HY9}?4q-ywb4$g6FLJUzH%_DYVs5nfo}Yt+#pNF39kJn!<4$7|w4 z4kk3-b4$6sk`N($`1t7c2W#wPeg|v?WhguETC5Q|OGg6?hMPcda@Vg)LHR(A}BtdYx^eudtUVy+KQR?P}T;f$1eZ8A=CN)HjDj#PKy5ztl@7I z`@gzd+^od$@$t?q%u=AJsECr1a-W2=6uuR1&?R^|ZN*a`V*iE&S3hWNyd~gw()o*b zah8VC%v8Y(J+pk4@6_bXroD~`dioLlO@jY;OWi+4;-53zP08qL_(<6GT}wbxBs2Kv z{4$;wsw}MZJhOa!d>ma?giv%5dQs55PIU5_Ac;c*EET}`ZLxPb>mFgEVV0Fj4RuB` zMp$f#`@hm!Ln;at=#YZCMpzA9jA|r-E}k(X{7~aAZDGUnqaWb>W;wq!elw}M0v%f5 z;dCpYj(=rqN>oxx;%VxE%n(v3GLMs8QA1{mCXaJ~G7!X;+4k<0vme-ZugeW8zbAmq z;r2N6Pr|INl3MKleI_#^9$T!^>@xYUs(JIcOO%s?lhwdPVd_vkgVH-O8x_iKUj#q&%VTr4t)*;!@DBc=j8)t6Dkl+7|KlfL-8 z3X?p(^h%SJ5B~P~oG# zsG0LubOwPGmxEAtF@LfJJXO@E*`R^>AWn7n2lm5W(W*gn?^e*{5AffP3cb5WHJCVb zM}-8+Q0Zco`Re#?@Nka@s%67Y3IAMW3He|1ufpLZc>`P zLWcpCvD7RFOJ1@=jxLPz@{P5S2GHA?^5%!`?L z>&yZy_&03p>n~b0zG};Ul^z>N2viVg;~8hP>GDT92V9f57lJO@adJvfZ1YxnQWj~{ z0cl^pCl(lNCQ)6PTB=29QI)S>Fsk$Wn8O?Sda`!P`QClbu^Q4u(YEF^d_VDlqic^f zn?SF#>>J^vJy}etZi@%*1|HUvQi`%hVRZ~N^vU^TjBHWZEl@MlN6xX!u*zy4s|fQD zsz^HOb-6w6FlY-hR;DZSz{^Wq@egeQRw}mU81w^?5~jN9(p-FbL=u*DnCZDoZA=o5 ze$T;yYD&SicQi^UfEb6L4})a06&DwKo%ZPEm01fNr+jj?do^8RLe>!=hFIZ~(+iw< zYUtw{AAe&hU-}uFIe{sBbmde=R=OL9i>TU(aar6CqIc{0_@%tQwXzx)LBy?CYi)dh zD&v2@RMs+Wk(53lNs`f~>{&c9T(Pq>tJH;p-dDu_JZkE>15A~eJ7$ABXSM_Wtuu7& zxs@W+PQ@T9g(I(F7o_`{kyt)qrJ4fr&FuUtsnBR$PNmUP>obF5gh%ddS@~Wg?*_7e z)a#@uzetrVL1{#E6o>6xJW};c_n7}p@`7pN4}Vgnc9vf*zc>UbOzV>5{hFl>9l>PVB@sR<>-x@T7S^X}*`|(UwLgK5K zYl)Jiebtaa-j%(YY^*2^T$!V}7l-655-^urW&9V>t#@JwrdJJF$6F$Rp!6SMPf9l_ z#ysgy^^7(rh>1f5Wiw9eYd^&M#^^%)E%Ph`uQ5Cd2c2xQYyCvsJY(zKVqmMl;)JCwUgq3?MY zj2TH207V&we?3gAq;tQkDnh~P=3VN3RiX1dF!RI;9JrZiCU<jk55b9s5z~OR~!#R#YI)>9LW~121cNmLUYC z)0zQ<85RZzI{(^@CP!~qH{X<5kg0c~inmz`X;059x^1JE;ON4N8=x$D<<3;4%e1!_(galm*5T-NsM6J6C2_V7jA#?-F-hlI^;)-hKq1aUkBX`p zU%>Sdrb|)ih$HkkXV!wipNE8R#=@MM1?LIg(1d6{iKwzXgQz6V5Dt8@uG=xCtF*VX zOMgH0B+A>)eNH^4t5UYN^2I;`dZ6TGP^BU^duk6121_ifLW>%dttT22|7n+My_z^N z9&=<3^6ECMf>D2>iDpj_?V!4_7y6sWW45e<{x@Iz3P^7jKp&ZkegDG`egaXBZ3mJw z>d!L8T@WZQp%j!P`cn`F+s60uNBQ-KNyrimNwVX|ln05Q8+TJ&G92PUt3dxY%YhP=!4 zIY;)6dUyVg_}yC+8MI?GU>?UPH}m+l!OFj$|F`Qwnpk@7d*a9?ltUl;(Ab;#fyoXT ztP;q!N&|r!I2as!9uib!(6bw2*7_dn!xs?fTiUGtDX>UXAeIBaGtCFGHI_6=q1CBX zmE8jk-fXoZl(5+ywHWQ?)0->vK}0$82*A}rua$s}dUUh>tm{}H_1nOY6mggu=xO$@ z>oXuoSL9Tq>kIpgBd1gR`r?4Jfs$nFW_Tge1i$Y%@~sA-1wA>MN-TkqvaimDuRq49XxkzRa9hGM8P0);h-rLq*?bO()b8edsf*-O={@>(;BB}5vtmj|c>|)1R=oH=I+1bq z9Je&rVVi&~6~<(at4+)?Bz3f(w}-io{fHWS&1p};xz z-u!`#P;RxKpI?56{jNurknTizgNkG~C#`v%Zyf-uB%)foM@Q;`F7Y8*aF*8KgGqwit1Q)WgbpnRB zna>zSiYFMKM2B-|Fty9#+UvVXQ>WkSwFo1m^WLbA+m36ItxBtQT7UH6}02c?dl^EPCoaJx-ddC3dpvMDXnK5uPP9 zS;XtH@6<;K!{{`V{i#argxpXPB3)bY!5H3sg(hVDa9y%E2^OyYLU zLMKY}yyYYbUCz%on)ebk3A((25e(q*ERQT5G9 zP-awD<q*Cc|2R5v0yfF~1Z_O+kj~!%SZq>TA3I`}&T?esQC8mHEsz9NHAsAtyqZgsv7vn0;3!2yVU1ktu!T zhC-lko-+Gu=T%0ub+o%noCDqtF-to*IT6Q{W!M(Xh9s&9qbq$FV+crz-O6z#tLWpi zqmXP}%f@yza8j$GC@V8Ok6bV8?PM@e)olKf+hauj>cCmQdBZriQ1GlBNd^{t7?syUu0%(4m#H-zcsp%sEoDXKp& z@?5u8ixE4oNYmBoar`k2g3fR$|A#EBRS5{ z6GXO!s!;e6Sq-Utd@e5`!Du{u`lYo%Bn}X>073y^cd`3Vy~Wkk(cpJM3Y? z3$sNGOwcK)L6u5VXZ5=Z1{IKkngR3y>>3{uts7=#frIF_K8#c8;e%pGdj=;{gc+(s zAx*;cGG#OZgmw&4rwv}$vo=GbL+_-T+wT-*ZALP6cMmawqjIYYY&go?$xngyg=HoM zfQ3Z+3!~|?0-iQ7PQ?HXqVyq#l z6&$Rzj-7MIL`GW9?SPZa9Y=#7r%i?wbnJ0v1BL?U79Vy9Cg!+BB*{6s3MxQCy@@Lo z9E;B%G$Z{HvGR^HZ1#Fbs<{aB!FpRMbf2d@up4*)YtPia*my#zVzXAN`33AU~hB9=Ikc?On>WS;`Y29M> z0@nh>_Qlp6yBVzitQ9lJSsCWG2t*S=IeKavzdKf);W^vr5s##D0VGg*4$!$^sSB}; ziZEMwWvREGDAstgfDX8aVyX^xjROxi5foO))lSlgE8_WcE3%7}Zm>UoQPwC#BZddAi1f!%!H;8}4}x1&6*H;pxo<&hti|Gsq8 zoEjXp%VEyTsb@o*2qN%xNcxq>K_9Qi0&8P8lSP4?M6}QC1SDEgLOJs#SKXJj^Yjfz zrb|XC(m~u7FZ{c_IbMM7Q3J;sd~>V-z<%sg!mNCuC;HK%SK4DXY4>t_j>}2 zW(9dw-E{QmR03}G^66nJYx~F^dzmlnND+4GhDijyWzP@``$ul=B!67XT#zIkw~Dz%5N`0D<1(Dp-_e z_DNtoSWBgwrX?B;x~(2<%zN0oR^w{7#y)U(3>4(^yviJa`_`gYekRw!vvY`S+E?=5 zX|c-+;7^;i`rg;qr!NZn7IH@J&D{dHtlD-0rFP{zqfP9&=SZM1TmaEu-XMCgu6dj3 z2;6>AnF^i-q7FLwJsxmz%L-D^7{+gk!~_Qd8{gA^4|%}4x1|sTKMt(F@AsYW#eK86 zF#UAVX1q9@LfVqG4ZIQLyvai(#23jJ#mm(IzVS z%m?!z(+qy#PGfg|MZ;kDrpBOj#8%5O-juwO6jSD#+()p|F}m_tx4?MugVxL;pgp3qsTLd)FU3$a0uduxERr1%w0Lm@Ypuml`Imxw&@_@(hU%IqW)jc_%W)o*T3dD882MmkYxiA!}|SJ?01H|BewIkSbTprv@1wvTRXOB#erIZ-8E@!C4`gb1n)BL7Qg|N;VR=J!O`e2X~3k&?&MmO}mI29oSffIuD zJA0%P;U^8OpoBmhz-9%0+wAlTM1oQvIA``^yShr{)!K=@fvQC%$9DoC%VPWT=f+I- z=W6uO7$%)HR-aVqdd-g55a4MvEt1Xa*t_4|rE~A^5odmme!8aMwf-sja?`B;sL`tr zn%kk{%5?U^kJH`+_YG(@^S5Q)H`Skx(AtxXI8CfZpC*{o`d0TjdZS=AjRn8k*zLrG zRicMzt6;RdtYN5%f0{oSdMxJ^%2<*!`&r(*V=Br52PAJc4MZVqAPP0t&{w|mN0(i< zICGM(UU+)=($!KC*8ZBK`Lx==%^q;msb5&Zki zLvaavxBUkafRc%h?<*Pe+$^`8gQKIWH79ezqGpCEW&JZZC#M)B5w9zqJl?2nGkFzZ zcClz@0|gWl3o9L1ZsQ$3?}MQr0M-Bx{Xm*C5fN>R1v1SxOhzuo2R8OuVG`Fi9I4qh zXLPkW-xuIR>pzj}Kg&7GUlxymKswRWShosDfgk{=03dzx|7jx*=0R?D{ZE(zkcIx4 zX8b)tzRAM=mL1;+C{M8ek&%K5e!0`Xr_TRt(_E9{*>SArh0bmspI?ZRfM ze|!scp2=n(+SSkS2!VS^Nh@>~G&D5Uc1+8qqRq^b#k#+@`r-I&spDyPEob={cNnzk zaYM^?fo?ktk(U8_rburLlD^x4qH%ubBGvr4?>9n3898&_rn$=Gx(kxHJPsj^crQRf)7*-Jr<+BU+uD6t+wsGu4GXwm zF`ZMUH8wOA-`yvx#;V*)U^u#5DL}Y4s-efIR%MloSq?bMiCMP6(ra( z(fZPpjjZSf+da)F#|}au#rgt@kHd|veN3{~fkB>5wIaxvk_^z zjbSHt*x0gpCf#6)3fLjgkt8og85J#&uLEw61WJS*71;Lu=t?#g5&o9Y?r(-YR_B$x z)!`w9vm*^0L$G%b0w;Td!L2Q6L^i%VApujYEuhbFOW^4{otpHAJTk_CU-Y<1{ z*=zR%Z7n0GSv4Bv+sR~XEyfIm^?VkMNv!}+{0raDVD8v*X14%W%hoh~d}AG;wPes# zldrCAVjjHInRiPk>DPL6g$Q>Nw$J+%mA3s}&M2aPCL!_XuMnjNUq_u;T@-MXCXQ*w zVcxH}Xo4_3m(EWx=sne0XEg*9jcPOYbmLWD))_^MxpZ_R>5z<&{giiDhM6x9M6M6K zF2}u=Q-uas&X?BvI9fy^gg-KMb}B8O@Tr&!ICywmo*t~S_~DPjtzVlnbraK)R!mn_ zN{r2-j%u^WcaA9+RrX=fV(uzhS=Oaw1MLd0yYUgI2W7G%cXzFB;6F}xZQ%N1!0Wu) z>wM>Gd*=#xD5nT---@!Ei+LwneXCm!4IR(rrKa?vk;xCf{x7_xKP$b_iX5%{+Kqft z<}P}*dZk<6_5eCHCFh4-R*pZaO;%vx#%OApoH09XQc6Ma_Iy@fHw$1xgf~PWaE2dP z)a7{7Nnq1S;oMna#zG^&8=Nfy=qqV#zcw~K)m?n%7AZv}+4;i?y`i?Y7Cq1fp2{1? zkJgi7bJNXHON)HdMQNu9!_u-ol1Sob9fkX0FQ=a<%QMm}KVZ!)%M!GkqO1y+h1BCA z>;RS;uKHtZt1zO?^;Yk5&M!dRxP!{oz%uqm%H*ok>%tFdFQfC5YWE8qe=UnrXC=kX zP<8Zq@m~;RInQ>z&vtzr0*7n+T|g<=zkAuYeY&os{&2wt{Ba}ndhHy0vVF)%ZaS}T zB6~43Fn5|b=l^hR6?%OHefnMD`cUC|9_MO4^!g+efv?~ibiU+t>vMY^FPj&SAJn@% z2sswxCrH+zUTw`?ZC!6FeZ3}B{CZ6R{KHrL+H`&1bloI`E`@e{^CQ`fARPOuiPAU2 z=lae?-`quC@#R$UWxL)*d(%Zv69dxU#6C9hA;{0O-DtYn@Iq*KA@-I!ozefsCx{=e zRn46Q&(+k`b=$}Pja)2O@nk~*k6R%CD zn$H9SRGW|ZhHCpd57{7&?#(J6J>O{n)K#4izQCc|{r30oj519Wg?HJqS?AbSBq)~7 z7szv#i)ywrtBX&u%(@lXnC#qr+x%!RrvjA^+V3?@6;^cf)ab6Utz*q2apmv=!XFTl z4l}6N`*twl2tBb~*NLL@JX5zC_sX><-Zx$+C_@D0s!-ukM`;-vbW}!pTR_b>Z{+SGG9Hikz?-W$WN_^AgZ?V{z(Ua1d?|QG6FT~*Rl>Lrs7B7DOKg`78rMPXzOx1 z$RRqgc3I_GDiP1a^+XaSD3L)wzlAj0?d}f>$--E9${=U{`y*r{D9HCsAGi+TBBIym z!z%h6{N$s0tbE?G8xN-<=T}>49HyR>oPBh)JSXS5G-bAgf&u}p`R7w(e@L;GA6*`= zu_6jGE5zt;Mbbp7H?YJebQLw($?tI@qT6Ho%L(x7mjKBS=4%6kd~f7s!`iOd!J2<0 zdkCahZ*Nkp!3Ya;>H0XSJ!57y-6s*Y7B_XKs3#UJoEeO^!&?CWuV6^!kEoZ*=>>Yl%xBS3xmvo4c+>Lrhr3>?0 zYhmW{K#F_l4Ex3Vf~5CqwdcEIb$~!XzA%U;ET6l^XuhDfM+0zN_Zy`^VLzi-8fH?= z$RFmvE;rQ2x=B1Dq?SWr1P}8&iuB-0R2gc?Uz7q!;pxrnC=nU1yxPOCF7+GMrXKiW z?3V81eT-4V6gr22?QR;Ar)jf}?aXtL-O&u!)f9V{TKzigw6QcE*4EaacOTW|@X!<< z_Sa^4rM^1Cy6X|U;KE-opwx`T)c@+FNCQ5;w^7_Q7Sla6XTPbHZ6s9}x&A_etCclN z#iHW;ilV1ex@mpZExXL>gQd{WQt6n9d-bznr@55A-TSX85BNbF?`{rnTMA}K6Sof( z!Sk_mOHaCP%XR582P{5oku0wt@p&Zkxy@Xg-AJpL5F#*TJ*H8McaMlx`cYRnI44%R z5sONrWa@Hce92jUuFEL~gRT%KB07k^oW&(X4Z|RoCE!L$YQCO`QTE}BW z(bAnV&uK?@Jx%=*<{3H&+nT%dps~WFbU<>{at9+MWH80>C7|*EGD|Dw*9dED-rM3M zvX9oi8Pp?r&_f_iZHpBFj&5!n+=UEc@9EDk7mD&({4+CNE4?sYXDxs8WF@7e?3R*( z*sJ}`gk*X}78@N!mcdRF|I(eLjM;=xj&Y0pCFTQ$hBB@EC_{x>0}4ZgdKF#+>K|^a z-xgt7?n%VKpe{@L;~q23YRa8%L42aIN9Bp002{pO zk3<`xUiv_73=NP}1Gjc*fE?CnxD=j|*l@H`hFTt#o7u;HSGD&~;lf72VlP$d3=ncz z341*>S0+EWWw2OA`kPq}Tq+YLRXHt~as(pF1i$v*$+G1lvy+8o(sY}VZPzQ?lkBq^{ z4!;$IpV^s3-ROt$qNXo`Do-F2KZ2^^GU#0CPfggbV;$jhC(AVKStw)nh-mD{>A+`@ zro@=%fcY1wMqamunaL+7mTOU4L{4~zdCbMKD=?-yE%2+flPf{3OI5>OpN>|T$tN0+ z9SM!@L!Jx~y(A+SDW{>Wt*<95CDldl%lVz}za5{KDzx3lPv4|#*x7R7*NeSepiWlT z2bJ&McgJpEy7BGeFA>7pMvxFFM}XO?`>h7h*n8gZ!CscP=8+mufjkBsz@UFAfBjjs zXvLhDx-}pEM;(GXiA%VNKSU2NESXQbU4nnFkxM8wmv>Cw z+z%Huc~9^IRV}2&D9H!MR5+J=>Tal^RX{N{32)Y!Bu;Y{b^s0>Nl@DECP~G;!9lR# zn#w4=$cy^3r}dfBhsuRiNhw}Sx=xpHU4A8)(Ah|fJwWFn*PfMCUP>SD8!N(ue9SbM z@_3!z-rg?PCeeLp28d%lKaqP;3U-ubu3fxo(c-2Dlh5J}5VAKOY=~Z(?xq#;bMBKu zr+&P?8OTN|Imy?Ub}B04`*lA)KHl{3m3=@Qtju~&B$a;_yG&w7viu9Uu<2}_IWvG~ zqCxh|O5j4Jn{RpEH4{%oC8HqW;KeaYps`Qhymam7u|`PFch)L(AG96Jcg|-iLE*%mkQ1 zFIwLErpp8shE)dTs{;TqHc}Z_n>st6`&-xhK>CS(hTNJjAV;g9TF@@$z9i6zbcc~- zd1r|}m)EGv5ZUpvN*})>aWpC5sc9`f&!yw4#{_A^PSaOLf6iHKrS1e7nD~u|%4`A# z8%~M}s3+xV`HyOYRYu4X{>+p}_A-Xm0z)EP$p{z#y~{R+XAg0%GQX`o!GzEZUj z4Knf1-?@LfDTWwxT(09*t=JkAB~TEaC0K`)_z)O$dq7R(C`hn?MgWz+3%Z@aGAd7< z-Q38i22}O&ZuN_jYI#*GkPfW8sXx+8*q1McG~N0vt-%Oh>o%C)kA)DGiR|~9=gtb- zb1hJEGiDRm&Ikot!pr=g7=FOjD7+g?jlnxp1}^v*0<;>@GnUUma$LJaD8?*=7_xO0YdO-WDyRmbLQx zDtXm;w!uA|(7Fm@LHh+M=2^2Bl1A=s?HH+eOYwaDMY9(H!53}iu?*O%Y#51<>$>{M z(Pqw(_+Ti`oc{5>S;1;7XssL5wv7~TXtkX4#_VA)z2i4A)16`zTOxojk>6nIQj+TZ z=RG7z@3|y+Ud+Xwo$MK@LLr*?-O80S0qyW=sLH(Bb*2()oF=LBmzOHV^qwddEn}NG z<9X(;A?pyglQ`AoH*RjsG6dy!=@{RIi{Yji4Q$l!hVWu^5^Sxkyp%IwH=uZMYa!IX zRtz4;*nhdu6EON!&jS(FtCGstb$-0_Dh$#jps6mp^+`GNg8&_*({lW1!&rcOB3r3I zyE1ZL{NbGEIivze0l^OKpX(GSS47jS1F$xD?1f9cUg_|pjbP_8zY^ohEs%G6ZDwH* z=S29@A#T7jixlxww*ASVcqt&fmzJpELEkW8YvVjz3o}kY*JZL#uH!-=Ml{>;0vr=s z=Rgq1Lt$*r9q)NltZA>VTGS~DFy`l4h-wL^E`s*z9aZ?9Wvy}fK~$y+{K@r5O(B_d z0v{Yckg4P}T5wfogcMro5XUg!QnwmIx}3MFF3;iuNj6n@H3CvpifS-yeKwk5(c+dk zYGK%h;jd1ZK42RwGe#K-v#%7j@}HlR1I?h*(uP;1QH~0y9UU76f6AU8>4Wh@L!CtN zTpEwx(uo%u-|2hjlWUklua9r$(S89Spy}mn1#`_fHTWuY<{RbXAc(*k^-?Bg0p5`T z+;vqDxB~TKA*a8a>cWeJ`l&} zq&p{a*$>mg zx5dJN{y&|%`rOD^(t2IJjt;M3k>PLe!?Kc@3`?-e6F8-xzN!S~_ct2X;osTma}Y-_ z*jJEL+ozxRrTNP{E-aC}*`vg^y~0;Y_rwU($QNk}rJUZR%}{~edTiC{#_kD(h)=|l z@U?93rr+_gcwlj#qO%ubOu*auUjAvSBN*&6Gwvt_(4nHUt(7u03cPx1$7mbe(!>3N z;Auy`=RDE&#GfCvrTM-szVIpqne}#Y(GX+$T)ets@w9HN?VS`j=xHx*Wk&27v5$o z@sV}R@vM1k=WNP~3Yg&ctF>cTR3#j-p_w;w^d_A@jK8TR zx+bgi>~YJ>x-99W;EJ4^R$UMI^LyKF%<$bNEP?0d+4)3RsO-NgO}}{J2YDM{t%7&W zudG{4zy@{HN;lebZ+E(KO?Im-Nnk9rkpu zG2huNHp$?y)ivZ`7E2nwnT9|mKa(A zXQe;<6WFJ9|EvgUo5Wtux&f^pZRN+8W_JO&&V5y?z3Nb$bCmH(ddA41Y@>L_; ziGQ1(xmkg@j+Wc72W#`XBI)Oe`|9sG=|;ICy%CRb>P)XCN;rXU--VN4p{o>$o;HghdDMPQ!|;DT2CoI_WfAN zMS1;GLADVZ0&-9uM-@R-=evN=pLfIPA1K^Mh|wXTs*OBmNXnWps+=ML-W`$ed>_(M zeJN*N8c9&YEPQ(J#WqfpG^OQ&Rg^RjAHKof>e$Dr9RA2CxrrPH>rSR9_Mxf0XF>VZ zA5Flj&`cKQ!kG`ns#uPs&7|f)L(Yvx2Q=j13gHs^hlcj;F?IokZMAE#QxBuWn~&vn zILU9F=#+!OQ;x6ISUzZa0xwSZjm;w10?rSvkCN>vB$JYIyj{^h3|&njrU0q!$4M(lao{T@TiSVCZ)2?qx%m!w6#w+oJG!h zbCtVD=*?eX1ON9%Lfy5;z3Zk%87cpk-}{mKr76uaPD`M37+K{ZD>4)Ls_9 zTj*Op-`->T5+;s_+ABZ=ZUi7hIl z@sYv#e=8i`(!IG1strl&GCkE;_GF1Yf{{Ic=Vd_kjTc#`Y&Rx+(YhYSo>5 zYwGWlx&PUpg8mZdwqHtlzi%juFMKz7IlcMS^#^E)})D4zMSb^`GW zpbzY-zk= z5?zr9VzN}i_W9yC>$mfUuS?&?=KJ*QY+jABbCiWuM&+e#BS*4^IOqD${)(T0&01he zK3$Tl?e4?|Y0}KnBny?oDLa*%5qmQ4jH|z?+`v0^s2u&3z50jt1P8}&E$5!x3?`W> z=U3u2-IFHfQ&qGAZ>VcnC>Xw(IXnsJEl1+CenCuujJ83!H8>fYN}Br$=m=p>#qXJN z*of@@ezi-{-f?#ar^!!!%CR6cQu-~U9Xt-N~>CZZYVD!_%UszJ$9$+Aa`BP>fD3`+XN&0skF2Sv7~F}4s~%FLoiju)zaPY-Wwc};A~1OxlgTG#TBVTtd3jRw zrB*$KMTLgsp9+Y#;96GGvCcv8M~+A6F`kdEJe3b`yNgsDMWa|C1s+s$QjK6G?JhPj zqu|>ek@LSc2ztPoHo??mYplUK1=b2T;iIVb!3dx|t6{Mz*#@r|W;i~E38_L$Z}r^i zuKGExw(_l1*--JEP{W--lEtAOEm?E)@sYyP9Vc_&a6UyF!`~perI-$T{zsGnQsIuZ z?#`qHL)n1>8%l1QqoKW{T1%)fGm6Tuy$T1klYHxI)mk}K=*>&lcEhO`**Vn^Kd(B2 znFrvWAI^p|i4fxkM-#9Qq00|zeBiBRR-MF9Y3h-z6D;YCWN&SP&GC$35RwtNl&Fe^DavTmhuq3<>Kj^syDV(& zLB1Qqs@qG8Y~IyWTNKG5*db|Iol_n1r{D`@iRD%Sc6N44xiWSZ_&l_PTQjFg{BnR- zNxyPwIcS(bMOjK1o+HqUGb1uRDB^JE1G0IZC5x9DxP$$2)#C}zm3zM8fvvfRDU){~ zy1m1YAFHy2c4DyFZC7C@Ui($`r&{%|WviZ$_626f1n0(5VuHzWQdvTJg5N$KZ;yKD zQ%ORFD)-uKyqzB^5V=}4$E}{A*`^PVwyGDLJb%k7gqlFwA8p ze@%l+C1z%J)*=`^y0?fL$AjX3n*P}@&b)H<+|51SI9X_1*~JL0gKQ{VeOGWF`%&~j z#FSyN+|8#=f_d@a!``h9mH}M4Dk)={>yx&{bY6Jee%Q+c%mYyLGapx15 zocFxzJKrD2wOlLQ^=f-xd;j*{zgwn{FDeUOzbapstOTc=6Q!NBlz9h`1P*{CJd`QO zz1}a*A(cGEqHEGt4&RuHKcQ>JSfLXVt$6wKck55vDsDl5r=k2s!1m+tTLTUn+f#x~ z8T^eCx7M~lv7Fle#PvXMAj*aJ7Szq%9eY~V&C~!X>pyH*Zf0PNbRp1B|1Qc;)e+ zsr|dxqhv;MAbfZlbo6=wz9BVx_>EH1%rv7w*9*GzwmUoIg+^I)@8~wYy3eYWZ2du0 zfA6%nJ!{$#w`HUkmuJZXlvx&B*WAe+fnUjkrkkMS;$P$M<^Iem%Y|2{zp|;L#W-oB zRT!<;FJm7($+E2jj9;J(a-sbO8cV`J}WFf`;;J#upO;wOP9RH(?$bW&>{sphMUCRl)tV64?@J{2E zY@sATyON`;k67cc$_(qqSJ%qC&EA^7@j)qD<361GiDwfBe5y*;e_-2JT|_t)&uEf zD`&Ytkw&}EGkC=sbZu51eNU((yx-RB6t(3h;?4B2+EaIz($eRy4d5i=Ew|@et*G{&d<~!A{5+onEFOiQIIkG=!wXN`{%b!W2OSkdpDIIs5Yz(3` zW5J(3KQ{?I@{+>E+Qd^Am?oQ@SiXvB?O5mkg z)2kVhTmNBkK2_h$+FEp+qtVOACJ4~X6oyf1sNkD|COj~D(d5)mE@9+I+Ps{~>Ace5WYO9(icU|h7u5q{R(=&9pPKltaiR|Eyo zUn-b^0_Am&qUN-+e6gXG7d@kz|Lf-CjWx(M*Jeig3u*)88iqX*(G?fNa{uzzS5yFE zXSCMulo{fMEq&nA7((j(wY1P3J3RQGd#gfk3eX4`wwFK8d(ii4`4dY3l2=5Z4_D4V zV#eN9V2)APz8`V%wxd+fCrSMsTWb1CR&%UmN_TpBxt>j&6#mRiFiN)hqtStyiQ7@F z!x2S2F?i=pS*Lk?iX(2>ulnYq?FtWD8>KVVrh&;>$HL0;wyO9v%J2oOZ{Z7#=P|1^ zO`&DLJPU1FJn7Pnyg18Y+D*+RjeF-cq@G`^La*a{$|os1y2f^Z=i zkkN#T3aFu~IG0+MEgdKgk+S^S?)&!wtoCA|*6heM>*tXtJ8$CRQk-0}+taUhU7(>Y z6Bxh=t66GT5sWvS_htmCO8ePU&fvt-b=ol%Pb7l2HH&SWZqrsLHe9UMw^1<|nZdGx zWW{eO*}rMko$?cwqtCmoMX#;mBSqYI{bszyS2SLW!dA~V<&~fbOTrte&;hNPN8#$i zC^ljJy+p6@a}~!s)eO5smRfg{Op4ib^Z_QCUXz&j+I2 z-&$7RTv#@ewiRU?cy*>Tgl!EGgvcbcmyyw5GGR0geEM<8p)65lseCW52-O{J6=%-> z69xe(uwHC08EcXkG|TVQ`mGdno&Z5x1|>3PdyjIg8DC~HHqmDqt@2ck*(O%sZpmH7vaHjXHe|S*Mf?n-;C#uHdGBIHp2Le2fG)+<*?l{&$aU5%&xKR<}5tO_%;^U;Nv{avfcpF{8AtKN>mG^YL3+O{>V_@s%&ez002hV6HOC zODm6ei6hksSEcCbL#*oNy~^Rba_rjGZHt|%B`z~eAOzV|FF0Gf{DPq)p5u*Jy*Fqq zX3Rj?HzfMB$ysU(@*gRt-+;*3S-Lrp#vBuGv%>8Z!!ugHA?uzDoZ-!4n`>u>$1Cy$ z;n?LJM8!LWo<-atcV6rhM4bfM*QBZkK1*!8c_EZ3&*&g_rgu59@XNJlnu0Mpuhm0y zJ5`30Zds0-J67cd-j-I=h+#6W);E~)SsrbrFsvQ%sgWNL2f&`QQ)<3)+moGDEW}$obI7FQAho9*yFD?y=lq&vGy4yfeX`&nYhg(w4 z52Wt`l!WvNcG|3?7#u9yeuQ-YVOTlOr~l3K>Dv;kviAf3xV}AS?LFJxxvSds{H*%U zFQ4hE53HhbQ#`#lrn1Sfk{GBC?og3;SF)c@=xN>U8gdGpfE-jRc>L4in(FP_le#Cb z$)xB4*ZVjr_ra_`CbB!N4^Rez+$HZ>+VO3biN*lG;+iw>Kpbl;UnJ>8TTBJBeQ3fx z7W^*4&^#ZQlDKRc)5$EnUM_Vto*JkGSJIiT( zwh--tM@I28kyR~$^PH5u8lx??^flCXIem2fi<%`Two8wxof#Wg8*dl0@Eil?98Gv< z=;X!To``G-=SN0VOsl<~(Qg7-Z!wKBp2PK64&QceL7f|zbw+*s3T;{{{LJMbDBh?L z>m{GFHOcjtLpY@(D&!FD*xEfOi9eT~w{e+Mec)VI&(v$SI@G(h09LNZ;{JU$Alo>j zF)ufb4OG}QO&x@1s*$6TJ2|e^B%$gBZ<|UN!BcU2qx-I4HmdgAXm8r7d zYm!T>GDb>Wo_&yEfk}7ntugYNEL!A_l--)M-y6SMR#QCRv(}@lf1jh{4{S%r^Yhj} zWq{<=Pe>72Cm6gR`p#}#oU`JCXnk>g=2b0MPrZ#4Z}*DJb7&tUE(maklymmZr+m@( zIgg@Zc|1~=<`x+fP+XPW&YJq}wO0u5#Tf1`V{X8!3#cb;Bu;WDmG#ra4bt!^vPnN? zUO3AG>AsJdXJ)MSOb2kRKdntL z=MfIAovzVgo%R+3X}0~xT-^jVpWdVhvGsJKr_YXCSZ>6*5S3)~%?50>E3NI*pr=Vz zJDG6)H41&@k>hgg-L=cnZBd>p+@)x!l*h}s-06=EDb5q`J^9b0%Twb*_5vC>)YwCz zJ!@VYWno^cr*G?~vkc(M{~q}k)rC861i+pwK)rqBvDJpKvsy{%F3yzUx-glP+`%_; zV>_`tSJ*@j*tU5E0kz~&`RTkKH_e#^reE5l9E5CskDG4(c;^Z4MG9V|gLd*<#pt#1 z&8(gaWdTn6D_;&}xU@HMkv^iCvhbc!m*ZL8wY6G)$1sC|3hT|U)+y> zmJIOUdCPS&h>NkC_=!Jk7~ezwU`~8O;uQcS7QcLF8z2L`6W@uiAf>e65CqbkOyW3z zK#EV1E~6mTPJF*1-30RgVp1U0WD5Xt1PCCf_(paC86vSO7?AxuVQ@lA00Jlw{$fl3 z{0EOob)5`=1OZUO2$Eb^o@fr8EFk~hpubTwkjg z?>-L4zBTCYY!ZNS^jbSonmot;7EB2#WdcLQp9VNeR-Oa?lfIzC4TQas58&cJA8V$3ziz4n<8J`%2O~jlx3e5{ z*mv}<1*{t|LPKv7?gs9V62O06!A4?H3EHv^>iB+%4T-eF4gwKWT$ik6Ic{_A zvsJcZ|0Dj2|18b-pT$feT6MR-GxjAnJEJh1vTWA%8J^q9mkBcV z&A;atJ6`N6Cb3Ku6#<@$@rjAKwe+{QHseFpf)Ou!YyfhW_nn%6lo>Rv%w3UFbTPAm z-6mp?B5CG2m#dG|+j0$)D?AEm`n{?EAn@Z+R8*E{d!v}Au4AC-28j3LTHHSL3PT@I z);2cwx+xo_-^N&r6^DV8!*BI1%`qjftQLAsMjM0@QjtR&7dQL0 z?0L9eRq7ZMe&e~8ckt!Y6E*EoqtG745JHyz)N5H`EhEl9u@H|4R-9y&f`fEbYzwIG zeb7GSr68bMW{$G4(Vug&I+ThxbF2%ljD?1#_9FB^JgZk}N1QE*J4}(bL!D{2*s9|q zuV50hz;n^Rb@>Hd+<+E#RbI72@(+R+OVi=5pG`?GEfmWj84hR`TkG=OBgkImMJgozr^iJbBByD}EK#7`=N8ptv`p zO+D{H&hMv3pTJH3s*nX^pbLY#$|oI1lM@sr>|Zb0zfVN!#pnH^eh*lrd#IO4$9>Ii@UAb>p^TA@pr12mh-kv%rkc04h3(VCz%RNnmriNSr@H>W!$?cL~p+m155|MrTx zi1ZK*1o0Q-03M3Oub+FAkJstW>DGCn$rWIwUA25?9~78LX{shh@6B!0B*NWw)$N%e zj1PVqrNHVF7{=3Owddt@H2fZS7`RL1IVYl-ZV5;8>cX@s>;nYv^DuGFk z4V7of6BGWP`f5@rj!E`N)y!>@qd)(t8<9;7zpM*8B#_Y;zO_JC;G^~2(&dWC&Y#~* z;xgA$eDa9%!9tI`m5)7?g_qq_{r9Uy1#KC9fp^8OoB!Q(0R=B#V`-<1JEIl^Kmw3z zyH4@)aDSykZbkXU_OiE*ttCZMLA%6v3SIF^7ewFQs=64*&@-f9qB_qdj=FxD-&B35 z4iRcUZjZ4#`!Lxq5>#Y^GImn>sz(2ftc$7>Pbc8c;juY8qSd&Hd~gdLw+p*+1)D5Y4?<)4;yzq| z?=ryD-_{5LK2i?9Sx_k0?sAFv$UXje47EjDIs2%`Wfad|CRP%GxAZAj(&1mIc*DTb zuu8p2QTp^xi;gqBQV({P&z0lOg*Cj;#1O-9Kgdjgehl_-zWN)(B{jNvI|DW0#Kq&5vn3Q}?ml^?=9G%*QE=as_g@^1|12+&q#TmKCKd{Jhdcn5mClvze-q zvWYiE)M)!B_cbuRd2m%ok-OqhKKsqNi%)JaTw5n7TRgn*VQ#X^MZxL>F$ePOR>l*) z)>9E@-p3qgJR3k$a{7|U?dw{U_mqi}HCI#LGai%W`Cq%?Mqj#zTt?sH?bQjGSc-q< zO&NLliScoyL6QG$fw(+mPDI^B=t{tH+cG=U*tB#Q5EmD$?KnXWh)eDd3nrg-`~u&~ z*+@Q0a#P=*JF|sAf#@-)9ki_~f1oT}$-aE~Hk(QQL6UHNNpKae>S;wG^DPphE z*t9GAD1%IiSI79}$<*XOh+k+ZC{VF4FGDWC}n27~}OhnjgKBk*@sd z_6=2eS6;GQV@e%WZ9(-^d}TwqwwatpP7R`K@DIIwVmx>1hNYTbK7V4o_Ho^6wG@LM z!2z!-=hQ_{(NDjlAof-@;qK|bZ{WT`+ukdue zmiN15+24e|(!>g*tw)qGKKV{%Ms|E9z9akZjiFI!Yk~kSpU+7Hrs@~JOl}2hu6>Dj zu_g^_x~#n;C`ewMRS>3r%QM!ED)rM<=;!TKH?gSbH|a8^F*VV~TEnq*4$c1FaNQ6- zLd{A~L=*w4`*c)t7&K*JWDcVH2K14*q>|QumGbuPn-8tps%{m_e#$V%NK4l?3}%l) zCl8fKo|dndzsteFQS~4RKUS>=HR-l@GM;cx9x~@=z!&&#uoS6U!m(zZRad)@&6oaM zUsu$%7DVFv7^BL~`#7#oN9FB1QKniZ%AI5+$q6_Mmn3M&w|CsHPNy5~a-4*)KKOa^ z9|=(^>XHDAs_Kd0Rq4^oD7pvY`CdlPE)AyT`(UHsckwjywLFD^53>{ z*tD*07@3$%R{J(7Y?+A*#T@Q|+P6e};TMr{CuE`KX>oD!f-CxmL}JeK%AOXo&;Hr@ zkAutaZ9Nr(w$Q#*i!kG7s91iJQ_PNB|I~UCilGiG^5Jv#FB}mFPf^?Jmm0=t3?f{Z z#MvCT*6cOvgd;-4>nQvBH~c#EDhyonp&CiXfY~~BFHjfDQ6h7Q3>qnhPB_!UKK^Z) za-w@2^$)B|OYd8Y28a7@Xp#qQch>5kJ2b$-48E8UG7cTQ)m^P(PZ{)Jz2|!Tn9Dt_ zrmI3(mZ}K?R3(?HFW4aTHyo$SeYcL!@ zcHu(8=s5c75_&4DrC(2ymzH?v6e^%>*#gDP#cv1*{%RGvm^xg@#%Zx(BcqPp*j?T% z8HsBf7n-wKZgT86Z`G5m$rlL7$@T3Gp08vluyyRLaA+mqhS3GQY!Su5NWVGw7`sNo zDoWs}+$Y5*N8Ic@m}@Y3DQs3S+dK!>=}eOFbsTU0KZyJ1Uw*oddbM2ha8# z>SaePN6!eoXV$fp(@l}(Q@cXRQ8qh7H0Tx3wc7VIVs*6itMfH=?Tk``8PgP1-+egC z(1FH=Cg)Ogz8>0Dx`4j%FK;CD-0g6!V+|-!$hmWt_uS1z6J#)wMdy~C25b>DC*4_t z7HR*^G~9hoboHKDcQDeuVoMrb#h$vCY=ZB>IcO-`s=!8gU01u+I%?%+|30ulzjq1h zAF!EOY*(Kie(srv8mgM|ZXmUj-DADS`(5D_G^Su%!rEJSl#*;1oG%SnuHsfCtK5)Z*;c80LjA;Saoedj1SBP= zdKZ)TCM+oQuCc732i!5Oh+Hqf-DD$)%5<(H8JOy+-Dd89Q=$5`ZoEgHI8+}xd3Du$od5o%aAT|EDDlgYEJqjQk+k>{8> z=dm#zj~HkZ%@NiSM4O_3RTBusP+s3L?x*17>r3QUF7C3LF@eSKFrBXX<-Geh^?4kw z1G$;i_vYJT?d^}L#&=DoFa<1T#i}(v>xr}-j!cgW zTqwJ=%vc&aeY@8pu+fk=B!F`C_!Aai-xZ^+@~d zI*w}3ZWWxyjO%9Ma)`67{Y@sF3Zg-MAA}g0k(VPD7bOfs>b+y-_WpkZR5BhZk7IR zf65Udq_ROF%Fr;=APBz=VwP-&m5TZwr6zN@&~*uVvUpXeT|!_v-ZPm>5uz?O^&oj9pB99;?PbCycpQCm*kM{HCCWN zOoH9rMzk;*)6p4tx~*f1E%l?JA7K3+;VumJJ$$Yz`nlV=aIHA)-oaGWZO=~57}HO*88NSQtB5k7Ax#*2rp7dYt+3kR6sv?x^!jQ>{&x1p7pC3^hugY zv#*|%gY!Wc*~z3orMRT(lEBGSOLn+)d{qM-V_(&lq)!E@Eso17va_F~#S`%+oxeSD zHFwN-A|Ccn`Awo@mCXEWZF4EHsKxa5dwY+m zyzPL@OMKr>W&)BC5~4*J$7T};*FIkplBX(#Wr+4&!^|2e!iz@Jg&9!5v5%qD<L z@i2S!h7bBaD`_Sx;{&`jRn}eMT*8s4m8v77nZ`+hl)vmquN;)GPib>;FOx8=y*4>< zxNsL^dgj7jxzJn(aW-gWG?XmHDwL%Ozg7(imhX#@E>aL6T*&g=_`SH8y(c2cesF)Z z#t9!giL`6+#fb8aEhV$yN?Shi_6;s_^jBIro`iV}?vqakwpY$2qlREM?PxDt7dlcp zaaqlR2hZ5g^3Csgovt@AuYLN&nluhuRP7zV$Z`Nci%2sIJVAh>Tw*(5tsgF0?8zs{ ze=;eRcWS}Y%-^`%)a-eN#<0enqL!D@WV*!_#h0An`0(fUaEqo5yl8ziqjOiS@!o3k zTDwsN0vifG1p4K&A?nZlKj6ez_z*gB?xxr2o7O&I|3M8PeI2XVzV5S(naAL##)!-5 zxhS_1@iU%I?UMKK`%Za-Rts+7E-f#Xh0YgMV@<~@bzjGXdV@rsiaB1|_GAD|;Ja$A z9m1Pv!eR`Zv`|C0Ja56V3nWICtn2~w@J!=N{FQ%I2bwajb(-D~NVYeWfb?7` zAyzx`8D|znxEtPI5>WeY0Q4S@s6=qVgnI*+o=EYct$~fxZ@T!Vw$%D$MI4HLQT}%{ zK|)?mZg<{u$+K1{NBl3Vzu=^{0dyEGkiwT?8L7=|^n9_Kb<||88i86t=JP5(C&_&| zadxH%!DQ0x$ILn2Pt*8S0PYy zj*|=j+mkYE7;On-q&?0Gq{V zqqX%W>y*y@R7s-CvZ|6G+Mj~#T`M7f-O94+?h-)ScK*J%&#N3e4G2jMpZy1A z0=$3%q2I8`*K3r8>w<5wgua*3rZLW0&<2~q8zC$-r=*?ER4NhhV~}n>)New0iE;ZzG9|>GER!eR+fU; z?j>w&NjA@uwA{xSXRijw8x=&Os>){QM(n8P#zism<3AjVN+VUnne28EWLd`7uYjle z-qCQe1`>8`GwYQoP@a);`xiq%>H42Z&eZW)vnUtw*P3swe+bV_v46bPx$ zkUay%Z|zI+Rm6%X$2TDD&n@nbpDi>lk{GB)bo=%k={4>H>Ox25Do~A*ldNB|mA9^! zcPNF=t{K0tz+2M#FD}K7seHf$pUCAR9D2Z-dlCP&LQ~N*Km>HWxb8qjrb~wVN>m%5wq3llG@dl6m~sE)0tX$ z#*JhH>hT6`Hjd#{^w6!URgF_7<`E$?Yo*gC8Yp4C?=!lWx9`fY*cAWzF_`%58_JS@ zX)pm!$EnyYl^%J4pCUOCKV>O=KanyHQmHt6N0dyDhEhKY6$`JYQ6Kc8)MlAt4{_Wg zmIuQ08EVL=Chn|8kpvnPgnaH^Eu zEpM$$&uT(Z^{0nt`;s%1(o!o8_Id7@y3T)yF0+As0CqlRAfL#lw<%pOibgJe@eT@Fef@GK3Qg$IZ>O$`MEgon ziS#GOcZu2U)({O49J#2gnz_+?Ce@C}2BdC3&V4Pr&{0|hT_rf{@Q4ODMI<{I2(wAl z2Y(j2u0?!&Pg*z)lksPhAG`9-n|zMf)1bpR*hN^&IUlN3t;`O^ zKV*Xg0nj5EO|pJE0j7Du=fi@nk}R?OV}ycsy!dvi)XlcnlZE|30Ag6JR?4%y*ro6! z&`U35wnM-2p+XLW5xsX@T}$Dq*b0|r!!gy7#B_py^ESzFal((eOHF7NIfPUUmqf1+ z5dsdQu2;l_)+7Dmcn98JL;J=N^R!4)8B`GnJbL;cJ3g=3pj-)Bcn0d0&(_@#pKx6I zU;K$1JhT<&kH7g7?5idcRJ8TIqv`U;J?61|m zi#UCyOJp_~dmL3|?Ebts!{zovvfJW+EwE)}SRi7!eA%38V^)AX@=oAe<*lW%^=*xW z;uI98ojJ7ERYNNM#Tjf$b;{sP4>G}H1nO_9^p4iT4WTe&+lpz~yqQ5KV~Maq-lx`7 z5@q^0Ay<<@tsS9KPt(=IH4%ikxYI~O#6u#5*$XBD^>8rg?F(5#Nf|1!%o6T?HAS>Z z+vZbo@dd#@PGx%!Zn31=Z1$CoELQ7jWe{iSl;LE8J%6br4@0=SWf)fYqH*}0wM&`@ zFKQ`=(Y0+D347xPYXAy15BzXF06a#(=)>wu{Y=GBu~G`w(+>8()AR-$?n{yv^J^ko zf0<~ged!!H;0enSpS0Zk8+@v2W&a77X|6S%?tKM!0}I>BP47$}?=k{eY3uyjmFuNt zjV=OVjx_Gp%!`_^UE_Gj$#CaCH!6wBOXk6T$0>ddk}+RB9HDF0`}@LLU>1!C^`(Pe zp@hyH@{Z0DBkb#0)H9`VJ?7$lhiQXa@V#}65L++nz?7BWIH=}0^_1sPZhqcqrSw|0 z@ow@k>d1Azd>=B`yM6A1ousNA}tCvy9Bx=19i%D#QMIxKxg_?kOin6Xk>$4zTj zXMR1nyMd{AQ#`x{xBPX@gFgLIvDBueV6N;kro1swGX-nu5ao46U{!e`pik@*aTe+; ze#|5BFVi~yrrFtZ-Q|HZvD0b&rVP%7%V8f)uqkuZ3=VcZXOQX<w6qk!fviRNu6^-Y@Yz>5U5 zeM}i0(H0<3OVIofFo0@E6-mC9*{)eZN~3oQYph*?LRKG?VvH-(dE$O(Tj@}uSkwy+ zCf5}LbJOl6{^9hW^S?{X(S#+x*LvP1+jV{7F!`gh+KL9uUO~S-Lug`{*ynq&hrsw)H z_k3Xx!I8@WG+*E(!v>rHy7xla)eN4>cE*$U+-`%FIQ)-8Bb}Q$jZ~r;AEGik@3R@U zSXcOG&lmeT78Wm@49+noaTtCk&uMtNa%T(iS3}mHOvK`47#XJ9%Y8HBTjJwE6#0pP5H^L=Wb1X6#)eGoHm+3tSMk;qwLxI| ziRn+fSM<&`7jT8OTMmg>@WJUhPUcnmHral#el<+yWL+eK=@g3tRy*6@oDwzybVMf9 z;8Vv9Rf1|r8|Qu3*UC3E-n55k1ZVDMV! zl%VRXi0OR8+fKJp*DF3#9JxFFbp6iQ`KqxuMGhVP>FMbWcbz{;J(agDuJIqE5(sLO zHex#|duFcAW)-&BNT&NYV?^NjE3=hjVj%>9*_^M^1ypHxvztl)^+)EiE!} zAl5OGJF0n+QvYPGxa<41;z%340|1_UsHsE5;T!7mtl(kP@2?(o;tSyu07LBO9la&< zFw)UFl0S;}iuPZ&%|b)&^$l#sp`N78xo0yvlXt$lz_DXb`codO4SJ26R;{LESBMN4 zbk-%a4XK7ajPz7^-12C7qm;%n@!2fcF^ZBo3dWtF&fw}4vRu`g73$&4pD~U16_@m* z-}ePaGIw3>;;3+Wj)?9lKJ;8)TU#q(tV$Mdis))+)Yd!Gv*>WMMBwn*JZ9AL#8?Wx z(8V{y5wlg~;Fd#)PQ;qhGp`~$Yi6&Ycvd7gkB0^bx)x1wS3dOiDl>Y(bS5$1xao)I z^)Ovznl-8KBlKXm&yTEx;?F2!vgGe*eGR)XVVdiF|1*H|-#J1577_g?H#}y7oaS47 z_K;`#Da92g|C40b72#x8F64+q@|9r_?x#cw2t9$i`RPkMegY zVJwtLaZdqUcIOoyqW%kk8p7Mp^6=CJ^s)c@kpDX-|J&=t{Bh9XT+m@D1peE%6;*%Y z+xO4_-EQa3Fx^A3ow<_`JbORxYvVS0^9@%R#My)eN~F^xyd7pm%k@cY6B2*1rFwGmR4m;}Zv;XoC_Hz^C0RFQ6l$ zfV@I>Isf~92<4(c3TMz;HIOko`V!v(K1H|f2jm~}{u}}7|Lq6I|Naji^ufWzQGkV% z_2MSH%;XMJ7aJDXArDW3rgI`tk>}ra65|oNS4{;IlH-N~ zwpY?@bKzoDmElib>zF$VE|F&VdI%VSGgwnrzm&c?_G=q2l66eFpd;6lRbxL^ejL6V z#D+E1H_UHNa8Rb|u0FZkA3d6?kW>Bj%a_+&=q#*hbpz@+q}dd7X@V<9oVJ|{WT5bf z`7R+n=>!gRwY$Tttzd_?{93-6rrPOh!G&YK+MbA75FcMm?oUx`@OL^5fxsw1gU^FK z{kk{Yy#z#+o^{@uw(a$GMb=0Pd;z55dQ%*>qRw+OSP!%GPvYQpx4*p(Rd^^Yf+(2= zMu8E1;2PZ#-Qo#EVJyA@o`kpLT03t9f#8{eQ0u_=a7_m|0O!RKG*SmyF@>|ds0<{l z>TV9oEx*`rNdx+}pQS1OIOI3d3@gChW#ED(enng3?xSgVOW(pbhSgOT+X!V89>hTD z1=BHNCm_u%H{dLt;uHQc3Mq&*eB>YPIg)VX6Sqv8Hcd%P>uEyUVqeeW zNQ?0!=x+~r)kfN?|J>c9&AV~m-beb?cOHHXY?~0`EjUZeGhnmg*PDN6EN<$iTq4Mk z-m-=HPX1VKBg@On-x#_9W_^_m-1nNcANRI#XEr5cuQp?k#M@1J;dK@;Y=`qvhx4U} z3qQ3Pkkp4fNdar^=i$HbKBOVUL*h=35SI(eu3}2Or#*T z{I?z23KdJ~0Ze>%XJWjrE1r$p_37ZHTu!;G5^zUpefUoLlaur@d#_?W2qj}|cAP=c-!2J|wgz}~) zt}C|M2xsVTCZ^6hY{vG>7(UV>Xt=Au$R=ZsLu!5%+5xC@l1C1TaX^Za4dWGoeubxK z{V}wqc7`D52Q#B1pV;9)o5HeXu?^PB=?pqZbMS9ybe1`YzHg`QIzLIoS6c4R=uze0 z3In%y{I|`_e=^G!z=D%o*P?|$tR|&T%?AUb_elldm0J85VCw&09%|!5pavZ_K^=aN z%{i(B%nVS%K;b6)jCj3_k5b!;UC=V!0VI@#VnugYy5hBPX?=6X_j!skYN_;rI!F|ZPH*Zrkj{pW}4b_C%4?#7kH+V}dY?@!~YYWHKuc|&mDt#19p^Y@uyI)&!B!%p}g2{GnI-;DtIbhO3rsShfjVt~sIn3>4x!y`k9@l|i~j0aQQ zNFU+El~U?*VhNeMw4%5Jpw#Xu3*ERNgsUEr-KusDEOVQDQPzC72y>--7Pe+&SN6wd ziczNRxf0K?iER@M0a*+}i|Iuzj5LM6KbI7gpkC^ca?odx^RF2=J&gF8rFzj(t9Dht z0zRg@n&4OsLMM&3iw;p^nxa)Qy}MY)@vD6*iy3?Go1DBL71?#Xnv#R5Rq~EehrTaI z8i6E3T77n$F_`LQRhY2pSI5B%1q;Gk27ysFYV0Bk+2ljd!_mGaq!B^68}a)3_- z#&O;PqY+wf=B!rONd*kVFz^Z}N_~iY>q0cxVMnUTj&9)rIq= z6khW!GxEtkIkHC@0meNnPB4;2{~$nyYWSsOU8xpq$&Qc0pZlTs;r6u&*> zS%I+Wyg-4l)yGco7UxO5pY!yG7bS~a zD+)?-qx>N5$_q03yn9}!B@BGj?>mwX=evXlqFFqk(myWQdQYpz2Qsf#!}u?)D{d1kK8T~M@gng2A?R{llaC4F zP(@OR^dP%+0`jIeTzZXN<(jhyy)6U{Y#{errdRk9S|u{b zZIK-!qD&mk{+rwsCW_jzM<-pHik4|hzAD^u#K})WgH}LohG&Q8Rkx#jk(5lWKqS>} zh^6amO|DSuvSSw92iqi85qAJKeU2uX#LpD9)YPq}J|;LcBJIx)ZIV5$(ngj$J2MN! zSdN|V6NoZ3E0ZxOfri?gJIYBtPig^i9i5V(p{foG{iWy&#baD=8LIvZWwG1%*YLm| z{dD)y4X=u|Lj5(ly+Re3$p>u}S_XrvnQFQxU8fB9#$aEsl;kJo+FX|Is2tY5FO#U5 zHRBqF?1_wvZ1vDMh;g%ErG_wm(9adm{dF!pozQbmP<>M(Snq;Oy9j~+Qj?o#SHlw$ z;~N^zMb-M2G*R9(69$z@DYHEli-CQHVasb0mg@Ihi=7*%J9Rmd(mRnd27Wl-Pk)a0 zd?BF2Y0D%)u?_ROGpg5w=WEifYXXbLN_@u?O;Y0xdZ@B(dioMHWlE~0(FL#U-&qSd z*XcWENr|BKdw5Hbn>D`9zQxM0;iuWhAe_IWmzi!BN_FDXffDoc_YdcC^`-Av%}}4KamLkei;wYnDlM z)-#lRWZB6fwvqadjw4c}zR*(r_Q$JlHqR~Ah zi<`S*Z8PoPW$-q*>B_}^miOl~VqavRaTS4_4goUR{^zv-JPTM;36WqvqeRyH5}4d~ zNuv8dx$PDlT}AYL)Z_qV$qey=G&2OR}gjOcAr6<|GhRc3awKxpsz-(OX3 zg6x0y^3XJX{$K#uFNCHpcjhej%>I;kE!JcDS;2eZpFat_S5aspTk8DLR%KPgk;};n zIJeq?r=6c--|5r>dprKTK_-J2d~d|&%Pbh0#;-YGXkKI=QvtbzHd!26y0tOJwK+kO z5%QS`dx1NVbH{STUkl0coKfPOvb(+&i3a&1KJ~4|huWg_(fB*NTXgTjj?w*m3Qvpy z0Cm-2u8BxiKR(A7!9LTC8ZgN2TlwoS#&1uUQgqV4_630%E+=};lfr$s{4X4npfFcz z`*3|=w*keE*57=IE8dpP1E+-Ylr1PAd+$BJ%@P=n?-zcXpodof%ZG(zc_62GR-Z%e zanwbEKHpOYxJT#f#TQ^zJ-Y=bb2xdOZ`0Fsz&Z*7Tb zd{(22|7i%zWuq!Tn2Y96q5I;CC5>k zViP;@{p$r{pngn7R<@vJy5r2TR179hN{H-Xz`Rt}O7^ScFFcS^ zs4DVk=e8jd2b1yrmgz;F70GF6RwjLSUUhqZjhyJnPtA$=2G7BXhiFHU~!SmRonIXeZD;FHYhr=`{dN z0kTgB38C0pf7Ofmwi>`3qy{V@)nUdxsxYK5Uk|!8t^zdEOak~(q?IPIq4mK zEdkD;AOqDLGLp#P80h13=W3W}o|wd=c7rNJ8OSI-wIWI0vAJIGqe=hu1^P^exlxTc zpXbw7Z=mLvF++6^q>z4F=-`aC0iT-Y4G_o&C|I-bx5>;@A|R|+R#!z$suz=>JYr~% zt_ov+r&XDThnOfAHL87Lp1cMYe8tM+9r(uBL`|XRh7A5{gzus~79|S%K>b_uv4o`= z-QaK;`MQJ0+ikYR;V94C}Vi6XgUEa@e8ULD*oA27+oM68A1>0XXpU< z#ySo4Vv|2yi`vLC>HP4%IR)=B*#K72lnMOI<9Ne(UQUxFe4&&dPlRW~JCMOJrwA0HrN90XRQ8x{Z>@|=AGG-zh7mL#t=13`J)TX9=|3-SB%wvCeiM5_ z&_nl>qk&oZ>K*4#0VyeBN10z%ar^aRN7Y|oqyA_1`-KkrNgv)jdY7@U;;mGe7#ClQ z3ra{c;GZ3 z1GwK8DH55BPQO}mtmZ0MCKBD>2IXMzZUBd1z~acOMlX0+Q|s&o#Ow@!3QC~Tj&wgg8z{2_(7V~oO*qBp%AOSz1RiHW?U z1z(1pC92y$4xhi+2)m~+uMAQHfnLxlUhwuTHLJbE1JL_2h2%#kp^s- zyxNf>Wwe1&p_+;K;LG^oP@(ZV)AI?b9p`fj1N9RZVB=x)#Dt>$SH~Iq)mDMI?^8t6 zbKh;=#2CKVWO?$^mBFOLf_1$epwD#}$1VJ+z}!><=tcaEl|4_-*igUiL|MlZeL|D# z(lSWO4K*%&AeWK%db$i{?r2}kNAn@KO5`j;0Hg@Ge(83{hT3nAY`K^u7dZg@ysEYm zxx}?Cs6sUX5(a~-9@IM5j#qw2Nft|9_%P;l?iv^aGC1Mc`c;VGC4{)*IWGF#m&6H1 zJ4+gOq6)U)Vw`lmXR&@Tsjv?7z@R~nEp^zGe?CMo+_qZF3O(L!#j4$ms3 zUSE^`u!1{bTs&V2*fYNm<`?cZ;w*pegIRw4;0Y1TOq#jK8F!spgF!D}vsy*#s}VLm z$v3LXW$lqh8+GioVUqnRjvBC;MxULUmASqQHm+%Qd(#nKrXRBfQ&7JW`CFHcE2Oyl zeu~XosKt?!$udR?6w8?@RbE9~-{<2S@G`vMQ>(HD7lk^*;9-0CWc*m~MYRYMOvMzp z4OkQu#D3}-Ye-3N$%%^pr?PARXL|qR&eut$oQf#NEk};9C33%2baEMT8)hgYa+x)E zQ*??#MUoMdc4B2S%bi&Imdjy=O{|8=99xLxgpuU?);T})!}oC>kMjp?`+WBPyk5`e z>-Bm*U!R2cRPx8cmoKlT>Ox}NXMMBn^tFIE?_3}y^7KZv3EHJCr3mI*AdYp!NT*}R zAasXF;s7{Hkh~M+%mE;JHgU0AMj)094MABn^-q+69;vdygbt_El0VL1W3b)iC@L)u zT*cG*R-0vrrIt%8hZ=K({U>uKRo!2f1t|;%dB@_K%aeXsNW?)8+A`}f3 z)LU6w^U|>`Um>9~}5Boe;0>*T|$Tv`*Z;fa_YH`esqvWe>T=ql#sll-n+ zsfQsUasAzR?z|(uCGih~QdS6pGBeTrraH%ZSwYCm&mOC@yM%u~P)!|Hqn*jwDCk6t zYg#S6DKMPacq5SwQsrfjrT6v>H>VA93v6RiaQuVc=O@Xx-Pp+M)oi3)H>*aCe@66R zVg>~6ThD3@=W(VsvyODjU~7Bs{lU_Mt>K3!Kcc35eX$(O0QQCp1_P>VsHDitsfWCoI^D|*#=EnmIIynr@f}g>##$Ab ztklX~uxY-(#>U>4NTw6uNs1D0cUNnSEm4*8(x`ol2Pc|XO~j~ zYwhn}iuHp;orCYvjXxupYWJ{KGJ{zv+EtUOQ`D}}8};+vcDRoxTxvbpPAuu>(DSvsVysm5-C$RCpsHsJ?Kj%<5b**RAqPG(5Hg#RpPIYk zZ6W&hO06v1)3>Jv()z>)C-y4_oi7%*%%eF9^*#|jSXK9AJn-{DU&66l*SSq53&9r+ zYw*dm(4~BI6xy#ct_?tsF{fH%NPW#fr2JCS{OirHTez2RT~86R9)w${PnY_Vgn4O{ z-COE{3B$fWNM{{5Cs_lH-!z%!LlkzHI2c)I^RB7CG#K_VV<^E7Iavd>O2pB|QKB=Y zOm^&8i?oYtIK?{#j7IPBAMH$vEAy^9YMF)}Z*I(7Zsyp10`)O^}u#Em;X%%sw41^;bbm6aI} z=TaxLp00?^8FI&a(9@?l9Mdm_RRwt#dXf^#{F^FaPLhu5U$`!EDb}OfJ!zi!le69} z?axM|5O>@NbK4xu&j&ou+4Ck~25B{jyuKplw)WW`x5pg%J2vN5q&dzvumkpIdUgEJ z$MBK)kjmgfM(zaN+|JRgp?o!tjy#T2ZP>vx&wH}ikNKUap_Q`D$ix2nK~z4AaGvZ zYBZwl*wm1i`oFhNC~w@qhg3_ONDyF9JzsILj5vAMFMibM30*Rre=gMkYy*H!ewjZnXkH-DI6Cy3L| zw}4B*^<5w}ravmk8GgD5OLabe04H zW?UL|POlN3%X0;F;q!`5v1JPs?snVpsUl>6UHOZ;;7^B7Pct=6!ArC*miXxqFpnC~ z#UzA}p6~B1!zurcQf5IKM;~5Bz)(1(5vIVLt|^;vG$LoVH^l~S5!AfTIvIx)J)5V7 ze|dmyrAD?j)`!>B4F5z||H{R1@nsA_mxY#Wx`ceE&s$3U;uhK#cSuI9U`Zx3Y#vqZ z`aO0Xw2^ugsP`P=o?+$}M_+mVrdgYNKdDLR>0omU%RC3$%MDqYBar7HP~hfA%5x{- zs6elIuVzbSo%W>tj-bP_h3=pdM5M^7Yi!v5fvZ-SGQ%@i3P6t%x3`Yp?6aL#Io_-Bl;ha6Nc^aRNq7(_8 z37Y)72r48Kbw0T~;-dowNK`-!!Qb0ks47*5sq*j&A8L=(Xr(0GTO0>p@v}vWN1pHbgL#!~?Jkk&M z2+HGUg*$~8-Vd?ENq$OPH3cl`vTb{I-B*M9ez%w(2mLzsT`x9JZN4+S*zf~Q?t?3y zpDS6a1YGCPg2WdV{3eoAaNyxAGxkzqn->$Q$p7IPW&8-S0d$Y@(rqB1jF>b7BL3eYN>jqA6j=xT*!D0xDrM`sAJLV6n^+!9x3(nq*}{C zQe#}+4)4H1rjc3^&oBW@H}t&dK*LB{$jQm+yAq}K*G>n3;#L;yBq|p>hSc#~&a#cd zcCW3iAwCZ5)+AOMKQdujnF9w1gT+6V93b{Gk|{PaIpkTw0VMM-XclgkMVoX>-iy6y z(4M@I Date: Tue, 19 Oct 2021 23:41:12 +0800 Subject: [PATCH 134/429] Add JPEG for AddCommand Class --- .../AddCommandDiagram.drawio.png | Bin 80653 -> 0 bytes .../AddCommandDiagram/AddCommandDiagram.jpg | Bin 0 -> 95733 bytes docs/WKDG.md | 6 +++++- 3 files changed, 5 insertions(+), 1 deletion(-) delete mode 100644 UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio.png create mode 100644 UMLdiagrams/AddCommandDiagram/AddCommandDiagram.jpg diff --git a/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio.png b/UMLdiagrams/AddCommandDiagram/AddCommandDiagram.drawio.png deleted file mode 100644 index 71f77a22ac230a342817ef51ab178def1b89c18e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80653 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

#OI)S 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 z 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 I#(nSq54E^B3;+NC diff --git a/UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio b/UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio index 41208b1ca2..d29a5b68a8 100644 --- a/UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio +++ b/UMLdiagrams/ParserDiagrams/ParserClassDiag.drawio @@ -1 +1 @@ -7V1dc9o4FP01zOw+pIMtbOxHIGm7M+1sJmy77VNHxQpoIyzGiBL661eyJWPLIsEJBhOUl1jX+vLVOedKspx0wGj++CGBi9lnGiHScbvRYwdcd1zXcQKP/xKWTWbx3X5mmCY4kpm2hjH+jaSxK60rHKFlKSOjlDC8KBsnNI7RhJVsMEnoupztnpJyqws4RRXDeAJJ1fovjthMPVe3u73xEeHpTDYdePLGTzh5mCZ0Fcv2Yhqj7M4cqmpk1uUMRnRdMIGbDhgllLLsav44QkS4VXksK/d+x928ywmK2T4F+kHoO44X3nd9FAYouHLkGP2CZCX90AGDW5gsUSK7zDbKQ8s1nhPIHw4MZ2xOuNHhl/c0ZmOZSaQhwdOYX094n3glYPgLJQxzPw/kDUYX3DqZYRJ9ghu6Ej1fMu5ElRrOaIJ/82qhaoPfTpiEjOuXcoxFSW7ucmuCljzPrXKHk5s+wSWTeSaUELhY4p95h+cwmeJ4SBmjc5lJPel7TMiIEpqkDgD36Y+oVYw2ilRuNapZ/XM8kdcE/kRkmMND1ZQCRDxUQh9yrKWuLDQnMwnvvodzTASrvqIkgjFUTs/84bhVFEhgCM+jx4JJouIDonPEkg3PIu96CsybHPZZer2lQs7UWZEF0gYl+6Z51Xlrd5ytMJ5yf+fNAa/cGnArreW8K7bGx77UGiQcYjFkaCj8uyxin18UHnRrShmxLzvCKjt0UhCsE2KvcVUsIeieGTgyx1FEUpAs4ATH038EZ66vnK3lU1rwGmwtd9JPIAUogwxmGM+ReEuXmGEq6k+yvMMFxTFLnekNO951aknYiMb8ISBO4YQ4d9ZI8GdYBdpuQXkeepvymD6LtN1AK415nQF2DfLn+kQ864pfTLOHHorohLhX5nMYR3+MWcK9/SfXSW6XRlWK96BQUIMKdwgzQUWnfG20ZIpaBkavCgxhWs8wQ2NuF31a80jObZTXd09SBZtx3KHYAKAyUIZ8fEbdd56AjDviaWebPg2KQG8/FAG/ARj5Bp0Ag0EU5eiwkfRSIqmrRdI8XYxtwIDMXhPI7JsEzkawp7QnJ/NrIphxhJuIYKFnkp7r1QOyonM5ouP1tQm1QXN8UzT0GoCk0wVWdGqKTk7jV4mOaYgPIDofv12t//qB/wu+wB9f70I0+jC+u+pVhhRFU6SUhHtjRqc0huRma9V4Vxj755jG5WMgtng0m+C3InFBYgKeRnGkStBFOqPllkJ+nlIE9PflKS/1iNk3UQOf6map7/IJxPX1o6pcJDZ5S9zdhUIi+b14b1ssTalymX+FU0uiYNCJJV0lE/QMsrh/+BpmF2X7ZqwliECGf5V78MRS/1bwYitLQb88Fwq1zYKs47JQcdtKq6fva7sTvlZR9nCVil6wB2DEujnGIoIYsjP8cwy2FZk18GpnsA33mOD3GprgG+Hp23BbDbfPDPFunteKuKZxbiriGrfqP6N4ZTXo4jTIC9omQoEVocOI0I6pWEtEyLjT+XcSoWRpZejiZMjp7rPbaVqWNqZDauvDCtFrhSisLUTH3H9wnOo4g8FNhJnVoYvTobB7wpcuZni6VXhaGXqJDDmtefli7p5hsxsMhhu7M3R5MtTvtW1V5vSsDB1IhkCr12WOcY/6S/wQ03VspejipKi3z4zouAszu019KCmqv0991JWZcaPaatDFaZB+KgX0w1NrkN2lPpQG1d+mPqYG5R/cHOR4SgSXs9Ruz6o0elZFRY7iWZU6L2rrHVfhPoebQgZJnW3N2ikU3yvLWeVjKy2/o51a0fLzi6wH5tJAE898Qlf38Ez+KY/qhqNV1PDhmXzkL5iKBVqBoA6x0tQtSjAfBTHvySlbl9kNMnTHCeq20xO4r6Fn0NVaeyk9XV0lwJHpWZ0BXTI9a5GzXTystVZsFxd7+nGWWlz0/YNxMXwX8kCb/2j1HvnYqQssNd8wNQ9y5rppZvr6AY/TMLMHtG4cm4oH/dzBUrFlVNz1cqddXAz0ldxpuOjrrxaOzUXPcvEtc3HHpnK7uBjqbDoNF/Uvo1yPz2CLP8dlZt8y8w0z8yy2dRxHnyq+lpnvCgvCrvZ4+/I07J94KRkckplnQ8bWvwJ56nPT5yNlM1/tOtpXu0B/YbD3mwe9or53XNCHFwn684tA6k+unArx+quAFyNejx4gOO4ETIU+i/h2If7JI5unQ70G1q5/pqg/6Btmi/pGUb/3NkAzoO9pf73hfEHvWtCfDejVR0KnQr3vvxXUH/SVqEV9s6h3Tov6QJ/Wny3qL/OPrZ0n6k+8ltV3GlsIep7c/suDLPv2X0qAm/8B7VjbUtswEP0az7QPdHzBITwS0wADLS0p7bQvHWErtiayZOQNTvj6rmzZjuOkoTfKQzJMRjpeaa3dc1ZLLC9IF2eKZMk7GVFuuXa0sLxTy3WPhw5+a2BZAb5zXAGxYlEFOS0wYY/UgLZB5yyieccQpOTAsi4YSiFoCB2MKCWLrtlU8q7XjMS0B0xCwvvoFxZBUqFD327xc8ripPbs2OZJSmpjA+QJiWSxAnlvLS9QUkI1ShcB5Tp2dVzO7a+391ffsvfjojjzHhbvL3x1UG02/pUlzREUFfDbWy9U/P1yMRPX3+D8+zQ9mUXHuVliPxA+N/Gy3AFHJ6M5DmI9iCkEMk2JiF5NQDERv7a8E4PUxui1sTfBgmWdgbxgKScCZ6MEUo6gg8OpFDAxRnpOOIsFjkM8I1UIPFAFDPN4Yh6AzBANE8ajK7KUcx2JHEg4q2ejRCr2iNuS2gc+VmAo6Q46FhO9EmEbUUVztPlQh9dpoCuSg7EJJecky9ld88IpUTETIwkgU2NUn3TMOA8kl6oMgDctP3pXORcRjWrrmk/V/ikLzZiTO8pH+H5xuaDeScgyhjkoOWu4XIZyxZ0x0tEdk5RxrdrPVEVEkDroVTwc16Qew0wXa1rZQTSnYT9WDSpTCmqJ68wuQ0MqUzCOzbRo1ecODJasKq8WHjGKj5udG2c3WCGIiDEHjTfP73hzPLfnrtl51R3yoeONcKSdIEBHOub5qpRwsHLOFioF9gti83pi4yyH6+mFyOaAHu0StC0fNTS4n+u6MsJqTIG2c8sNtEkzx1SM3ZXH/mlPf5he6GqvotA6ZfosqjXJ6RS2KjLPSIhV4aq0OT1skRsTbA0VCQM6QVy/U4EXDWIS95vyUgEJiyIqSoUAAVKJTEshk0xAmSEMij/Cgwf2G788ZYBzp53jnzZXWKwEno+wksEUFVzQvK1LO+i+vUj26b7sEmkXv93D7fTuMO0ntAqGfAh3l+qrordi9nE2vw4nG2p4WFXnC1EV7JZZP6HVnjTPSRr/iUXxb5Bm4+s5Gy7+NQpwtn5nP+nq2ZH/FLPGaZvwT5oPpwdOjxRenxTehmSXl+UHmTNgUu+vKts1EvyvPB8dPvHyG/x5njcWhw159k56PR72Pjk2Xftubt/NrXdz3tG+ndssLbcnrX0798Ju5u0l8eW2c/3/Evbt3EsnzXO2cxtf73Dfzj1Hnv9hO4fT9qfE6opqf4/13v4A \ No newline at end of file +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 \ No newline at end of file From 3a07bc9158493abd4511f3bae4662e541753baeb Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 18 Oct 2021 19:53:02 +0800 Subject: [PATCH 114/429] Added DeleteCommand Diagram.drawio --- UMLdiagrams/Untitled Diagram.drawio | 1 + 1 file changed, 1 insertion(+) create mode 100644 UMLdiagrams/Untitled Diagram.drawio diff --git a/UMLdiagrams/Untitled Diagram.drawio b/UMLdiagrams/Untitled Diagram.drawio new file mode 100644 index 0000000000..1fb6931182 --- /dev/null +++ b/UMLdiagrams/Untitled Diagram.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file From b058f7949a852391c0ea0b7155e45d006a8ffb33 Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Mon, 18 Oct 2021 20:04:39 +0800 Subject: [PATCH 115/429] Add function to check if current name exists in list --- src/main/java/seedu/duke/PeopleManager.java | 10 ++++++++++ src/main/java/seedu/duke/Person.java | 4 ++-- src/main/java/seedu/duke/Ui.java | 4 ++-- src/main/java/seedu/duke/command/AddCommand.java | 15 ++++++++++++++- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/duke/PeopleManager.java b/src/main/java/seedu/duke/PeopleManager.java index fa98a2debc..5ae69a391b 100644 --- a/src/main/java/seedu/duke/PeopleManager.java +++ b/src/main/java/seedu/duke/PeopleManager.java @@ -43,6 +43,16 @@ public void deletePerson(int personIndex) throws LotsException { } } + /** + * Returns the name of the person object given the index. + * + * @param personIndex The index of the person to retrieve. + * @return Returns the String name of a particular index. + */ + public String getName(int personIndex) { + return listOfPeople.get(personIndex).personName; + } + /** * Returns the number of people in the linked list. * diff --git a/src/main/java/seedu/duke/Person.java b/src/main/java/seedu/duke/Person.java index 98e45d6990..f51ade8d91 100644 --- a/src/main/java/seedu/duke/Person.java +++ b/src/main/java/seedu/duke/Person.java @@ -95,14 +95,14 @@ public void editParticularOrder(int foodIndex, int quantity) throws LotsExceptio */ private void findAndEditParticularOrder(int numberOfOrders, int foodIndex, int quantity, int i) throws LotsException { - if (individualFoodOrders[i] > 0) { + if (individualFoodOrders[i].getQuantity() > 0) { numberOfOrders++; } if (foodIndex + 1 == numberOfOrders) { if (quantity == 0) { deleteParticularOrder(foodIndex); } else { - individualFoodOrders[i] = quantity; + individualFoodOrders[i].setQuantity(quantity); } } } diff --git a/src/main/java/seedu/duke/Ui.java b/src/main/java/seedu/duke/Ui.java index 673afca108..a765f38829 100644 --- a/src/main/java/seedu/duke/Ui.java +++ b/src/main/java/seedu/duke/Ui.java @@ -58,7 +58,7 @@ public static void printOrdersList(PeopleManager peopleManager) { } else { assert totalNumOfPeopleOrdered != 0 : "Order list cannot be empty."; for (int i = 0; i < totalNumOfPeopleOrdered; i++) { - String currentPersonName = peopleManager.getPerson(i).personName; + String currentPersonName = peopleManager.getName(i); assert currentPersonName != null : "Person must exist."; printWithoutBorder((i + 1) + ") " + currentPersonName + ":"); printIndividualPersonOrder(peopleManager.getPerson(i)); @@ -73,7 +73,7 @@ public static void printOrdersList(PeopleManager peopleManager) { * * @param currentPerson Person entry in the list that is currently being accessed. */ - private static void printIndividualPersonOrder(Person currentPerson) { + public static void printIndividualPersonOrder(Person currentPerson) { double totalCost = 0; int currentItem = 97; //97 is the ascii for 'a'. int totalMenuItems = Menu.TOTAL_MENU_ITEMS; diff --git a/src/main/java/seedu/duke/command/AddCommand.java b/src/main/java/seedu/duke/command/AddCommand.java index 75644d8a9c..6ce4ff474c 100644 --- a/src/main/java/seedu/duke/command/AddCommand.java +++ b/src/main/java/seedu/duke/command/AddCommand.java @@ -1,5 +1,6 @@ package seedu.duke.command; +import seedu.duke.PeopleManager; import seedu.duke.exceptions.LotsException; import seedu.duke.Menu; import seedu.duke.Person; @@ -43,11 +44,14 @@ public AddCommand(String input) throws LotsException { */ @Override public void execute() throws LotsException { - if (personName != "" || foodIndex != -1 || foodQuantity != -1) { + checkNameMatch(personName); + if ((personName != "" || foodIndex != -1 || foodQuantity != -1) && !checkNameMatch(personName)) { Person person = new Person(personName); person.addFoodToIndividualFoodOrders(foodIndex, foodQuantity); super.peopleManager.addPerson(person); Ui.printAddedOrderMessage(person); + } else if (checkNameMatch(personName)) { + } else { throw new LotsException("Please enter a valid Add Command!"); } @@ -162,4 +166,13 @@ private static int getFoodQuantity(String input, int indexOfThirdSlash) } } + private boolean checkNameMatch(String currName) { + int currNumOfPeople = peopleManager.getSize(); + for (int i = 0; i < currNumOfPeople; i++) { + if (currName.equals(peopleManager.getName(i))) { + return true; + } + } + return false; + } } From a456a168eb337c8aa343fc72b4f9397228b08c2e Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Mon, 18 Oct 2021 20:40:57 +0800 Subject: [PATCH 116/429] Editted code to allow orders to be added to an already existing person in the list --- .../java/seedu/duke/command/AddCommand.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/duke/command/AddCommand.java b/src/main/java/seedu/duke/command/AddCommand.java index 6ce4ff474c..a52a6b3c9c 100644 --- a/src/main/java/seedu/duke/command/AddCommand.java +++ b/src/main/java/seedu/duke/command/AddCommand.java @@ -36,7 +36,9 @@ public AddCommand(String input) throws LotsException { } /** - * Adds a new person with the given attributes into the list of people. + * Adds a new person with the given attributes into the list of people. If person + * already exists in the list of people, the order will be added to the existing + * entries' attributes instead. * If it did not pass regex, it will throw new exception and no new addition of * person to the list of people will happen. * @@ -44,14 +46,16 @@ public AddCommand(String input) throws LotsException { */ @Override public void execute() throws LotsException { - checkNameMatch(personName); - if ((personName != "" || foodIndex != -1 || foodQuantity != -1) && !checkNameMatch(personName)) { + if ((personName != "" || foodIndex != -1 || foodQuantity != -1) + && getMatchedIndex(personName) > peopleManager.getSize()) { Person person = new Person(personName); person.addFoodToIndividualFoodOrders(foodIndex, foodQuantity); super.peopleManager.addPerson(person); Ui.printAddedOrderMessage(person); - } else if (checkNameMatch(personName)) { - + } else if (getMatchedIndex(personName) <= peopleManager.getSize()) { + int currIndex = getMatchedIndex(personName); + peopleManager.getPerson(currIndex).addFoodToIndividualFoodOrders(foodIndex, foodQuantity); + Ui.printAddedOrderMessage(peopleManager.getPerson(currIndex)); } else { throw new LotsException("Please enter a valid Add Command!"); } @@ -166,13 +170,19 @@ private static int getFoodQuantity(String input, int indexOfThirdSlash) } } - private boolean checkNameMatch(String currName) { + /** + * Function to get the index of existing name in the list if a match is found. + * + * @param currName Name of person to be found in list. + * @return Index of matched entry. + */ + private int getMatchedIndex(String currName) { int currNumOfPeople = peopleManager.getSize(); for (int i = 0; i < currNumOfPeople; i++) { if (currName.equals(peopleManager.getName(i))) { - return true; + return i; } } - return false; + return currNumOfPeople + 1; } } From bc7287b9ba2bab8893b7b685c32376009a430e2a Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 18 Oct 2021 20:55:44 +0800 Subject: [PATCH 117/429] Update DeleteCommand Diagram.drawio --- UMLdiagrams/Untitled Diagram.drawio | 116 +++++++++++++++++++++++++++- 1 file changed, 115 insertions(+), 1 deletion(-) diff --git a/UMLdiagrams/Untitled Diagram.drawio b/UMLdiagrams/Untitled Diagram.drawio index 1fb6931182..dc1a4daf16 100644 --- a/UMLdiagrams/Untitled Diagram.drawio +++ b/UMLdiagrams/Untitled Diagram.drawio @@ -1 +1,115 @@ -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 \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 2d94945435d527cf08357c16b8bcf8e5bbe1daa4 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 18 Oct 2021 21:08:33 +0800 Subject: [PATCH 118/429] Update DeleteCommand Diagram.drawio --- UMLdiagrams/Untitled Diagram.drawio | 66 ++++++++++++++++------------- 1 file changed, 36 insertions(+), 30 deletions(-) diff --git a/UMLdiagrams/Untitled Diagram.drawio b/UMLdiagrams/Untitled Diagram.drawio index dc1a4daf16..a93879e10c 100644 --- a/UMLdiagrams/Untitled Diagram.drawio +++ b/UMLdiagrams/Untitled Diagram.drawio @@ -1,10 +1,10 @@ - + - + @@ -18,32 +18,34 @@ - - + + - - - - + - + - - + + + + - - + + - + - + + + + @@ -70,18 +72,18 @@ - + - + - + @@ -92,22 +94,26 @@ - + + + + - - - - - + - - - - + + - - + + + + + + + + + From d1676f0723202c803e2ce2fa5935fbeee597a71b Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 18 Oct 2021 21:11:38 +0800 Subject: [PATCH 119/429] Added DeleteCommand Diagram.drawio --- UMLdiagrams/DeleteCommand Diagram.drawio | 121 +++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 UMLdiagrams/DeleteCommand Diagram.drawio diff --git a/UMLdiagrams/DeleteCommand Diagram.drawio b/UMLdiagrams/DeleteCommand Diagram.drawio new file mode 100644 index 0000000000..0014eb1495 --- /dev/null +++ b/UMLdiagrams/DeleteCommand Diagram.drawio @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From a964f479e738b2972252a9aeebaf9b5d14368d62 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Mon, 18 Oct 2021 21:12:58 +0800 Subject: [PATCH 120/429] Added DeleteCommand Class Diagram.jpg --- UMLdiagrams/DeleteCommand Class Diagram.jpg | Bin 0 -> 74506 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 UMLdiagrams/DeleteCommand Class Diagram.jpg diff --git a/UMLdiagrams/DeleteCommand Class Diagram.jpg b/UMLdiagrams/DeleteCommand Class Diagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..87e84640649411dfb398fee540fca4917f99356c GIT binary patch literal 74506 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%0AI%;cR^TMy@v3 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 literal 0 HcmV?d00001 From e360d9bb9765d8caf0bcd7177f448188cb68381c Mon Sep 17 00:00:00 2001 From: mohamad-adam8991 <69377976+mohamad-adam8991@users.noreply.github.com> Date: Mon, 18 Oct 2021 21:19:00 +0800 Subject: [PATCH 121/429] Added additional JUnit tests for add command --- src/test/java/seedu/duke/AddCommandTest.java | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/test/java/seedu/duke/AddCommandTest.java b/src/test/java/seedu/duke/AddCommandTest.java index 45bc7eae66..30696439ed 100644 --- a/src/test/java/seedu/duke/AddCommandTest.java +++ b/src/test/java/seedu/duke/AddCommandTest.java @@ -1,12 +1,40 @@ package seedu.duke; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.duke.command.AddCommand; import seedu.duke.command.Command; import seedu.duke.exceptions.LotsException; +import static org.junit.jupiter.api.Assertions.assertEquals; public class AddCommandTest { + protected PeopleManager peopleManager = new PeopleManager(); + + @BeforeEach + void setUp() throws LotsException { + String[] names = {"Adam", "Markus", "Andrew"}; + String[] foodIndex = {"2", "3", "4"}; + PeopleManager.clearListOfPeople(); + + for (int i = 0; i < 3; i++) { + String sampleInput = "add /n " + names[i] + " /i " + foodIndex[i] + " /q 1"; + Command command = new AddCommand(sampleInput); + command.setData(peopleManager); + command.execute(); + } + } + + @Test + public void execute_sameNameInput_listSizeRemainsThree() throws LotsException { + String input = "add /n Adam /i 3 /q 3"; + Command command = new AddCommand(input); + command.setData(peopleManager); + command.execute(); + assertEquals(3, peopleManager.getSize()); + } + @Test public void execute_foodIndexIsNegative_throwsLotsException() throws Exception { From cafbf16f5a72bfe09f17eb645926b1fadd122e78 Mon Sep 17 00:00:00 2001 From: markuslyq Date: Mon, 18 Oct 2021 22:19:25 +0800 Subject: [PATCH 122/429] Created UML diagrams for DeleteCommand Class --- .../DeleteCommand Class Diagram.jpg | Bin .../DeleteCommand Diagram.drawio | 0 .../Untitled Diagram.drawio | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename UMLdiagrams/{ => DeleteCommandDiagram}/DeleteCommand Class Diagram.jpg (100%) rename UMLdiagrams/{ => DeleteCommandDiagram}/DeleteCommand Diagram.drawio (100%) rename UMLdiagrams/{ => DeleteCommandDiagram}/Untitled Diagram.drawio (100%) diff --git a/UMLdiagrams/DeleteCommand Class Diagram.jpg b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Class Diagram.jpg similarity index 100% rename from UMLdiagrams/DeleteCommand Class Diagram.jpg rename to UMLdiagrams/DeleteCommandDiagram/DeleteCommand Class Diagram.jpg diff --git a/UMLdiagrams/DeleteCommand Diagram.drawio b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio similarity index 100% rename from UMLdiagrams/DeleteCommand Diagram.drawio rename to UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio diff --git a/UMLdiagrams/Untitled Diagram.drawio b/UMLdiagrams/DeleteCommandDiagram/Untitled Diagram.drawio similarity index 100% rename from UMLdiagrams/Untitled Diagram.drawio rename to UMLdiagrams/DeleteCommandDiagram/Untitled Diagram.drawio From ef13c17ea4b84598ca4acd1f4b4403b0e51cdaac Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 19 Oct 2021 13:27:53 +0800 Subject: [PATCH 123/429] Add welcome page & Product scope. --- docs/DeveloperGuide.md | 17 ++++++++++++----- docs/README.md | 13 +++++++++++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 48da41fcd6..db4cf47b61 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -6,10 +6,7 @@ ## Design & implementation -{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} - ### Parser - The purpose of the parser is to the command that the user has typed in and return its respective command object. The class diagram below is a brief overview of how the Parser is related to other classes.
![Class Diagram](https://raw.githubusercontent.com/AY2122S1-CS2113-T13-2/tp/master/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg) @@ -57,11 +54,21 @@ testing easier. ## Product scope ### Target user profile -{Describe the target user profile} +* User has good typing skills. +* Is comfortable without GUI. +* Tends to make large orders of food. +* Wishes to track multiple different orders of food. ### Value proposition -{Describe the value proposition: what problem does it solve?} +* Large orders can be confusing to keep track, especially if orders are to different stores. +* Allows users to keep track of bulk orders easily. +* Easily keep track of costs. +* Ensures that no orders are left out. +* Knows which order belongs to which store. +* Allow flexibility and control over what description you would like of your friends. +* Users are able to delete/edit entries quickly. +* Comments on the food can also be described by you (e.g. No meat for BanMian). ## User Stories diff --git a/docs/README.md b/docs/README.md index bbcc99c1e7..25222ea85e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,15 @@ -# Duke +# Large Order Tracking System (LOTS) -{Give product intro here} +Welcome to LOTS! +- insert Image of menu here + +Large Order Tracking System (LOTS) is a Command Line (CLI) program that enables users to +keep track of multiple food orders from a pre-set list of food items from different stores. + +- Head over to [User Guide](UserGuide.md) to learn how to use LOTS. +- If you are interested in the backend of LOTS, head over to the [Developer Guide](DeveloperGuide.md) to find out more! + +
Useful links: * [User Guide](UserGuide.md) From 0e97bae9480645769ea555cd13afc19f4af81182 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 19 Oct 2021 13:32:18 +0800 Subject: [PATCH 124/429] Added setup for Dev. --- docs/AndrewsDG.md | 3 ++- docs/README.md | 1 + docs/settingUp.md | 20 ++++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 docs/settingUp.md diff --git a/docs/AndrewsDG.md b/docs/AndrewsDG.md index 641f32ddf1..974b247d21 100644 --- a/docs/AndrewsDG.md +++ b/docs/AndrewsDG.md @@ -87,4 +87,5 @@ testing easier. ## Instructions for manual testing -{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} +Before jumping into the details of testing, please setup the project by following the +instructions provided at [Developer setup steps](settingUp.md). diff --git a/docs/README.md b/docs/README.md index 25222ea85e..c6bb5d38d9 100644 --- a/docs/README.md +++ b/docs/README.md @@ -15,3 +15,4 @@ Useful links: * [User Guide](UserGuide.md) * [Developer Guide](DeveloperGuide.md) * [About Us](AboutUs.md) +* [Setup For Developers](settingUp.md) diff --git a/docs/settingUp.md b/docs/settingUp.md new file mode 100644 index 0000000000..5bdc2773a5 --- /dev/null +++ b/docs/settingUp.md @@ -0,0 +1,20 @@ +# Setting up and getting started + + +* [Setting up the project](#setting-up-the-project) + + + +## Setting up the project +:exclamation: **Important:** Follow these steps carefully prior to amending or running any test. +The code might not work as intended if you omit certain steps along the way.
+``` +It is strongly recommended to use an IDE that supports Gradle. (e.g, Intellij IDEA) +``` + +1) Fork the entire repo from GitHub & clone it to your own machine. +2) Configure your IDE to operate with **JDK 11**. +3) Import the project as a **Gradle** project. + - :exclamation: Not doing so might cause certain tests/files to fail. +4) Run the **main** function in `Duke.java` or run using Gradle to test some of the commands and ensure +that the code works as intended. \ No newline at end of file From fceebe82d1d12808358e1fcc8c1dd85f7c7debd8 Mon Sep 17 00:00:00 2001 From: andrewtkh1 Date: Tue, 19 Oct 2021 13:34:22 +0800 Subject: [PATCH 125/429] Edit Parser Class Diag. --- .../ParserDiagrams/ParserClassDiag-Page-1.jpg | Bin 63530 -> 45708 bytes .../ParserDiagrams/ParserClassDiag.drawio | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg b/UMLdiagrams/ParserDiagrams/ParserClassDiag-Page-1.jpg index 88cf0fc89685c6bc6635d81932c9499ee39fa339..9603a2efd74e72bd0c0450a45bdda2634b7d7088 100644 GIT binary patch literal 45708 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 F{{vq4v0nfH literal 63530 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
*RZOkV|_v+#NM{4HR)=aZM zu+t6~zbiJs>Y{XJ%Ss99+JolZ>aSfv9nV1vAiLPk&{mK}7_ti`hR{FCjUl@*fCF`f zjxdywsP>gO&?%+xCenMBnpT>Ab(wOp<5g^Ee zV*JhRvB=wQCeeA&H&6C|HNUt*K0GsY(|@=QgNF-ZOb?D9zliSc?8Vsa9{c#=R+0bf zf#y(;|Nfi$qsL6kf*+#^+Op72K{`Ps6(O45cUUa(mWo=V5%DZ_wf4!_gdJdAb&Aii zPfo5b+9d9-32PaBrgjM=34v$S|52{=KjbfvJQqU(T^9$VTqlsB>uUVpbX}6D#HQWY zRvt2v9SWceuO;Z}1FFnB=lXXT-qp@xZ2rqF&&^F*=I}g)_8o@hS+h^v!_w9yO}h>n zylfcF!3Dqah6~aTQ;1QzY-Q&lGgGXfi%*-U7VvzGI3V= zZ5YxWVD~jm=TxTHH;;Wx_)?U_j$W~@fNrSWukLX%8!T}iB-gw-igJEtD?VeJTt(eC z(d4LfO!i6r9+v7}Xb-N%hvyTLUwy)()!}fJPZVKf+1*OeEvk7ii zRMy}2*6ExpVk}O2Tak=zJ|>`ztEKMwO#)?*obVHUtG4IZJkUjg{tZ z!Fh1Mzx@%cpUlaZOgqF-g2<^HFzO*9XhPSd;IQsi>b9>TVmQrec{H08 zbfw;FX^`r{&tMG8)|6hp15>FkDY?AY! z%Tf{xrf_itO5Cg+BF9@-KOgJZ61>^yv3zm-b#hd7CwwhsrU~n)Cw(d>@JXlibNBaM^ByGZgE%1SK*#0d>_O8H3t54 zD>1&5zH{UgPF$`Z$RlE_?2{x%dr0r=8fxpy(=nAJ@4kIX%f?z6NBJ2ko#CochZRgC zA^F|+$%o~q9l{>cPHQ7@RPWx_RgvT@?srlGQeruK>JwgO;tpKk!c8o^4)MIkB-#Oo zzj8$nhO9eDS)Q>iC?j(3Xm-$&}12UJso=4+$sPH4N*X))#d;az3 zT=}#MY;q@A@ig_MdBAZRD^tLN<5JcE)B_`%&2wo(3ESU|0n4>osD*M$p%x0&dQ2dMI0`~jp{{rAq B(m?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 \ No newline at end of file +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 \ No newline at end of file From de6a0021fb3c98f2ce5aa5c861d86c2eb5c2489f Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 19 Oct 2021 13:46:17 +0800 Subject: [PATCH 126/429] Update DeleteCommand Diagram.drawio --- .../DeleteCommand Diagram.drawio | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio index 0014eb1495..54885fa03d 100644 --- a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio +++ b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.drawio @@ -1,6 +1,6 @@ - + - + @@ -115,6 +115,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From f0c7b261085b8bcad451478a76847ab2c84f5aa8 Mon Sep 17 00:00:00 2001 From: Markus <69578193+markuslyq@users.noreply.github.com> Date: Tue, 19 Oct 2021 13:53:42 +0800 Subject: [PATCH 127/429] Added DeleteCommand Diagram.jpg --- .../DeleteCommand Diagram.jpg | Bin 0 -> 82322 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.jpg diff --git a/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.jpg b/UMLdiagrams/DeleteCommandDiagram/DeleteCommand Diagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c8e03612781a86fe7598e74ac21ae250fee65ec7 GIT binary patch literal 82322 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