From f047a3f9e8492bff183d291dc858e04f9cc74bb4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 30 Sep 2023 01:14:33 +0000 Subject: [PATCH] Rebuild pages at 91d192d8cd830d11e8b57135b5026f47bcf4748c --- Propene-Dan_ip_master/authorship.json | 2 +- Propene-Dan_ip_master/commits.json | 2 +- applepiofmyeye_ip_master/authorship.json | 2 +- applepiofmyeye_ip_master/commits.json | 2 +- archive.zip | Bin 12906333 -> 12904604 bytes limzhenwy_ip_master/commits.json | 2 +- reposense-logs/reposense.log.0 | 13656 ++++++++++----------- summary.json | 2 +- 8 files changed, 6834 insertions(+), 6834 deletions(-) diff --git a/Propene-Dan_ip_master/authorship.json b/Propene-Dan_ip_master/authorship.json index 41b350c0..b8fa8e15 100644 --- a/Propene-Dan_ip_master/authorship.json +++ b/Propene-Dan_ip_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"# Veneto project template","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"This is a project template for a greenfield Java project. It\u0027s named after the Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"1. Open Intellij (if you are not in the welcome screen, click `File` \u003e `Close Project` to close the existing project first)","lastModifiedDate":"2021-01-17"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":11,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":12,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":13,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"1. Configure the project to use **JDK 11** (not other versions) as explained in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).\u003cbr\u003e","lastModifiedDate":"2021-07-29"},{"lineNumber":15,"author":{"gitId":"-"},"content":" In the same dialog, set the **Project language level** field to the `SDK default` option.","lastModifiedDate":"2021-07-29"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"3. After that, locate the `src/main/java/veneto.Veneto.java` file, right-click it, and choose `Run veneto.Veneto.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something like the below as the output:","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" ___ ___ __________ ___ ___ __________ __________ __________","lastModifiedDate":"2023-09-14"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" \\ \\ / /| _______|| \\ | || _______||___ ___|| ____ |","lastModifiedDate":"2023-09-14"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" \\ \\ / / | |_______ | \\| || |_______ | | | | | |","lastModifiedDate":"2023-09-14"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" \\ \\/ / | _______|| || _______| | | | | | |","lastModifiedDate":"2023-09-14"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" \\ / | |_______ | |\\ || |_______ | | | |____| |","lastModifiedDate":"2023-09-14"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" \\__/ |__________||___| \\___||__________| |__| |__________|","lastModifiedDate":"2023-09-14"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" ","lastModifiedDate":"2023-09-14"},{"lineNumber":26,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":17,"Propene-Dan":9}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" mainClass.set(\"veneto.Launcher\")","lastModifiedDate":"2023-09-29"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" mainClassName \u003d \u0027veneto.Main\u0027","lastModifiedDate":"2023-09-29"},{"lineNumber":48,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" archiveBaseName \u003d \"veneto\"","lastModifiedDate":"2023-09-16"},{"lineNumber":52,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":"// archiveFileName \u003d \u0027veneto-v1.0.2.jar\u0027","lastModifiedDate":"2023-09-29"},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":60,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":40,"Propene-Dan":20}},{"path":"src/main/data/veneto.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"toDo,borrow book,0","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"deadline,return book,1,2019-08-10","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"event, project meeting,0,2020-05-09,2020-05-10","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":3}},{"path":"src/main/java/veneto/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto;","lastModifiedDate":"2023-09-25"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-25"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"public class Launcher {","lastModifiedDate":"2023-09-25"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-25"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-25"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-25"}],"authorContributionMap":{"Propene-Dan":9}},{"path":"src/main/java/veneto/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto;","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-28"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-28"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-28"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-28"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-28"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"import veneto.ui.MainWindow;","lastModifiedDate":"2023-09-28"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"/**","lastModifiedDate":"2023-09-28"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-28"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-28"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-28"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" private Veneto veneto \u003d new Veneto();","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-28"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-28"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-28"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-28"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-28"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-28"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-28"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setUi(veneto);","lastModifiedDate":"2023-09-28"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" stage.show();","lastModifiedDate":"2023-09-28"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-28"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-28"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-28"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":34}},{"path":"src/main/java/veneto/Veneto.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.command.Command;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.storage.Storage;","lastModifiedDate":"2023-09-14"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import veneto.ui.Ui;","lastModifiedDate":"2023-09-14"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"public class Veneto {","lastModifiedDate":"2023-09-14"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" private TaskList tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" private Storage storage;","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" private Ui ui;","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" private String filePath \u003d \"./src/main/data/veneto.txt\";","lastModifiedDate":"2023-09-28"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" public Veneto() {","lastModifiedDate":"2023-09-28"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-09-12"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" storage \u003d new Storage(filePath);","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" tasks \u003d storage.load();","lastModifiedDate":"2023-09-12"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" } catch (VenetoException e) {","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" ui.showError(e);","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" tasks \u003d new TaskList();","lastModifiedDate":"2023-09-12"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" storage.init(tasks);","lastModifiedDate":"2023-09-12"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" * operate the user input and return responses","lastModifiedDate":"2023-09-28"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" * @return the responses","lastModifiedDate":"2023-09-28"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" public String getResponse(String input) {","lastModifiedDate":"2023-09-28"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" String response;","lastModifiedDate":"2023-09-28"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" Command command \u003d ui.getCommand(input);","lastModifiedDate":"2023-09-28"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" command.op(tasks);","lastModifiedDate":"2023-09-12"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" storage.checkChange(tasks);","lastModifiedDate":"2023-09-12"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" response \u003d ui.afterCommand(command, tasks);","lastModifiedDate":"2023-09-28"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" } catch (VenetoException e) {","lastModifiedDate":"2023-09-18"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" response \u003d ui.showError(e);","lastModifiedDate":"2023-09-28"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" return response;","lastModifiedDate":"2023-09-28"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-02"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-02"}],"authorContributionMap":{"Propene-Dan":47}},{"path":"src/main/java/veneto/command/AddCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoOperateException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.*;","lastModifiedDate":"2023-09-14"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"public class AddCommand extends Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"add\";","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" private String text;","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" private int id;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" private Task newTask;","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" public AddCommand(Task t) {","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-12"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" this.newTask \u003d t;","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * the AddCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList where the AddCommand put new task","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" tasks.add(newTask);","lastModifiedDate":"2023-09-12"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" tasks.storageChanged \u003d 1;","lastModifiedDate":"2023-09-12"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" } catch (IndexOutOfBoundsException e) {","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoOperateException(\"Add\");","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" * @return the String representation of the task added to the TaskList","lastModifiedDate":"2023-09-18"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-12"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" return newTask.toString();","lastModifiedDate":"2023-09-12"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":51}},{"path":"src/main/java/veneto/command/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"public abstract class Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" * the Command operates","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList that the Command operates on","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" public abstract void op(TaskList tasks);","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {return null;}","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":16}},{"path":"src/main/java/veneto/command/DeleteCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Task;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"public class DeleteCommand extends Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"delete\";","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" private int taskId;","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" private Task removedTask;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" public DeleteCommand(int taskId) {","lastModifiedDate":"2023-09-12"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-12"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" this.taskId \u003d taskId;","lastModifiedDate":"2023-09-12"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" * the DeleteCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList that the DeleteCommand operates on","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) {","lastModifiedDate":"2023-09-12"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" removedTask \u003d tasks.remove(taskId-1);","lastModifiedDate":"2023-09-12"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" tasks.storageChanged \u003d 1;","lastModifiedDate":"2023-09-12"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" * @return the String representation of the task removed to the TaskList","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-12"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" return removedTask.toString();","lastModifiedDate":"2023-09-12"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":44}},{"path":"src/main/java/veneto/command/ExitCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"exit\";","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" public ExitCommand() {","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" * the ExitCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList of Veneto","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) {}","lastModifiedDate":"2023-09-12"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-12"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":28}},{"path":"src/main/java/veneto/command/FindCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoOperateException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Task;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"public class FindCommand extends Command{","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"find\";","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" private String keyword;","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" private TaskList foundTasks;","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" * creates a find command","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" * @param keyword contained in the task which should be found","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" public FindCommand(String keyword) {","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" this.keyword \u003d keyword;","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" this.foundTasks \u003d new TaskList();","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" * the FindCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList where the Command search from","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoException","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" Task currTask \u003d null;","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" currTask \u003d tasks.get(i);","lastModifiedDate":"2023-09-18"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" if (currTask.contains(keyword)) {","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" foundTasks.add(currTask);","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" if (foundTasks.isEmpty()) {","lastModifiedDate":"2023-09-18"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" throw new NullPointerException();","lastModifiedDate":"2023-09-18"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" } catch (NullPointerException e) {","lastModifiedDate":"2023-09-18"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoOperateException(\"Not Found\");","lastModifiedDate":"2023-09-18"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" * @return the tasks found","lastModifiedDate":"2023-09-18"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-18"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" return foundTasks.toString();","lastModifiedDate":"2023-09-18"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-18"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":63,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":63}},{"path":"src/main/java/veneto/command/ListCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"public class ListCommand extends Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"list\";","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" public ListCommand() {","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" * the ListCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList that the ListCommand shows","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) {}","lastModifiedDate":"2023-09-12"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-12"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":28}},{"path":"src/main/java/veneto/command/MarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Task;","lastModifiedDate":"2023-09-14"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"public class MarkCommand extends Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"add\";","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" private int taskId;","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * This variable indicates if the function is \"mark()\" or \"unmark()\"","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" * funcId \u003d\u003d 1 -\u003e mark() ; funcId \u003d 0 -\u003e unmark()","lastModifiedDate":"2023-09-12"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-12"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" private int funcId;","lastModifiedDate":"2023-09-12"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" private Task currTask;","lastModifiedDate":"2023-09-12"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" public MarkCommand(int taskId, int funcId) {","lastModifiedDate":"2023-09-12"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" this.taskId \u003d taskId;","lastModifiedDate":"2023-09-12"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" this.funcId \u003d funcId;","lastModifiedDate":"2023-09-12"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" * the MarkCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList that the MarkCommand operates on","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" currTask \u003d tasks.get(taskId - 1);","lastModifiedDate":"2023-09-12"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" currTask.mark(funcId);","lastModifiedDate":"2023-09-12"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" tasks.storageChanged \u003d 1;","lastModifiedDate":"2023-09-12"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" * @return the String representation of the task marked or unmarked","lastModifiedDate":"2023-09-18"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-12"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" return currTask.toString();","lastModifiedDate":"2023-09-12"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":52}},{"path":"src/main/java/veneto/exceptions/VenetoException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.exceptions;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"public class VenetoException extends RuntimeException {","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":" * Exception that may occur when Veneto runs","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" * @param s the message of the exception","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" public VenetoException(String s) {","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" super(s);","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":11}},{"path":"src/main/java/veneto/exceptions/VenetoOperateException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.exceptions;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"public class VenetoOperateException extends VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":" * exception that may occur when a Command operates","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" * @param s the message of the exception","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" public VenetoOperateException(String s) {","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" super(s);","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":11}},{"path":"src/main/java/veneto/exceptions/VenetoStorageException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.exceptions;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"public class VenetoStorageException extends VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":" * exception that may occur when operate on the Storage","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" * @param s the message of the exception","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" public VenetoStorageException(String s) {","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" super(s);","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":11}},{"path":"src/main/java/veneto/parser/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.parser;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.command.*;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Deadline;","lastModifiedDate":"2023-09-14"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Event;","lastModifiedDate":"2023-09-14"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Task;","lastModifiedDate":"2023-09-14"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.ToDo;","lastModifiedDate":"2023-09-14"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"public class Parser {","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" public static final int FIND_COMMAND_INDEX \u003d 5;","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" public static final int TODO_DESCRIPTION_INDEX \u003d 5;","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" public static final int DEADLINE_DESCRIPTION_INDEX \u003d 9;","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" public static final int DEADLINE_START_INDEX \u003d 3;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" public static final int EVENT_DESCRIPTION_INDEX \u003d 5;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" public static final int EVENT_START_INDEX \u003d 5;","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" public static final int EVENT_END_INDEX \u003d 3;","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" * translate user put to commands that need to operate","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * @param text the input from user","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" * @return the Command that the user wants to operate","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" public static Command translateCommand(String text) {","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" String[] texts \u003d text.split(\" \");","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" String command \u003d texts[0].toLowerCase();","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" switch (command) {","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" case \"bye\":","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" return new ExitCommand();","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" case \"list\":","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" return new ListCommand();","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" case \"mark\":","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" return new MarkCommand(Integer.parseInt(texts[1]), 1);","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" return new MarkCommand(Integer.parseInt(texts[1]), 0);","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" case \"todo\":","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" return prepareAdd(text, 1);","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" return prepareAdd(text, 2);","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" case \"event\":","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" return prepareAdd(text, 3);","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" case \"delete\":","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" return new DeleteCommand(Integer.parseInt(texts[1]));","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" case \"find\":","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" return prepareFind(text);","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" default:","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoException(\"Invalid Command\");","lastModifiedDate":"2023-09-18"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" * generate FindCommand according to the user input","lastModifiedDate":"2023-09-18"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" * @param text the details about the task","lastModifiedDate":"2023-09-18"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" * @return the command that the user want to operate","lastModifiedDate":"2023-09-18"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" private static Command prepareFind(String text) {","lastModifiedDate":"2023-09-18"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":" String keyword \u003d text.substring(FIND_COMMAND_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":" return new FindCommand(keyword);","lastModifiedDate":"2023-09-18"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":63,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":64,"author":{"gitId":"Propene-Dan"},"content":" * generate AddCommand according to the user input","lastModifiedDate":"2023-09-18"},{"lineNumber":65,"author":{"gitId":"Propene-Dan"},"content":" * @param text the details about the task","lastModifiedDate":"2023-09-18"},{"lineNumber":66,"author":{"gitId":"Propene-Dan"},"content":" * @param funcId indicates the type of task","lastModifiedDate":"2023-09-18"},{"lineNumber":67,"author":{"gitId":"Propene-Dan"},"content":" * @return the command that the user want to operate","lastModifiedDate":"2023-09-18"},{"lineNumber":68,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":69,"author":{"gitId":"Propene-Dan"},"content":" private static Command prepareAdd(String text, int funcId) {","lastModifiedDate":"2023-09-18"},{"lineNumber":70,"author":{"gitId":"Propene-Dan"},"content":" String[] texts \u003d text.split(\"/\");","lastModifiedDate":"2023-09-13"},{"lineNumber":71,"author":{"gitId":"Propene-Dan"},"content":" for (int i \u003d 0; i \u003c texts.length; i++) {","lastModifiedDate":"2023-09-13"},{"lineNumber":72,"author":{"gitId":"Propene-Dan"},"content":" texts[i] \u003d texts[i].trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":73,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":74,"author":{"gitId":"Propene-Dan"},"content":" Task newTask \u003d null;","lastModifiedDate":"2023-09-13"},{"lineNumber":75,"author":{"gitId":"Propene-Dan"},"content":" String description;","lastModifiedDate":"2023-09-13"},{"lineNumber":76,"author":{"gitId":"Propene-Dan"},"content":" switch (funcId) {","lastModifiedDate":"2023-09-18"},{"lineNumber":77,"author":{"gitId":"Propene-Dan"},"content":" case 1:","lastModifiedDate":"2023-09-13"},{"lineNumber":78,"author":{"gitId":"Propene-Dan"},"content":" description \u003d texts[0].substring(TODO_DESCRIPTION_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":79,"author":{"gitId":"Propene-Dan"},"content":" newTask \u003d new ToDo(description);","lastModifiedDate":"2023-09-13"},{"lineNumber":80,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":81,"author":{"gitId":"Propene-Dan"},"content":" case 2:","lastModifiedDate":"2023-09-13"},{"lineNumber":82,"author":{"gitId":"Propene-Dan"},"content":" description \u003d texts[0].substring(DEADLINE_DESCRIPTION_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":83,"author":{"gitId":"Propene-Dan"},"content":" String deadline \u003d texts[1].substring(DEADLINE_START_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":84,"author":{"gitId":"Propene-Dan"},"content":" newTask \u003d new Deadline(description, deadline);","lastModifiedDate":"2023-09-13"},{"lineNumber":85,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":86,"author":{"gitId":"Propene-Dan"},"content":" case 3:","lastModifiedDate":"2023-09-13"},{"lineNumber":87,"author":{"gitId":"Propene-Dan"},"content":" description \u003d texts[0].substring(EVENT_DESCRIPTION_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":88,"author":{"gitId":"Propene-Dan"},"content":" String start \u003d texts[1].substring(EVENT_START_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":89,"author":{"gitId":"Propene-Dan"},"content":" String end \u003d texts[2].substring(EVENT_END_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":90,"author":{"gitId":"Propene-Dan"},"content":" newTask \u003d new Event(description, start, end);","lastModifiedDate":"2023-09-13"},{"lineNumber":91,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":92,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":93,"author":{"gitId":"Propene-Dan"},"content":" return new AddCommand(newTask);","lastModifiedDate":"2023-09-13"},{"lineNumber":94,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":95,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":95}},{"path":"src/main/java/veneto/storage/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.storage;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoStorageException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.*;","lastModifiedDate":"2023-09-14"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import java.io.*;","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"public class Storage {","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" private String savePath;","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" private Writer writer;","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" private TaskList tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" * create a storage for Veneto","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" * @param savePath path where the data stored","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" public Storage(String savePath) {","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" this.savePath \u003d savePath;","lastModifiedDate":"2023-09-12"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" * initialize the storage environment","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoStorageException when it fails to create the directories","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" public void init(TaskList tasks) {","lastModifiedDate":"2023-09-12"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" new File(\"./src/main/data\").mkdir();","lastModifiedDate":"2023-09-28"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-12"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" new File(savePath).createNewFile();","lastModifiedDate":"2023-09-12"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-12"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" // but may not happen","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoStorageException(\"make path fail\");","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" * load the data in storage file if exist","lastModifiedDate":"2023-09-18"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" * @return TaskList containing the data stored","lastModifiedDate":"2023-09-18"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoException if the path is invalid","lastModifiedDate":"2023-09-18"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" public TaskList load() throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" tasks \u003d new TaskList(100);","lastModifiedDate":"2023-09-12"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" File f \u003d new File(savePath);","lastModifiedDate":"2023-09-12"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" if (!f.exists()) {","lastModifiedDate":"2023-09-28"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoStorageException(\"No Storage Found\");","lastModifiedDate":"2023-09-28"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" Scanner sc \u003d null;","lastModifiedDate":"2023-09-12"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-12"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" sc \u003d new Scanner(f);","lastModifiedDate":"2023-09-12"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" String text;","lastModifiedDate":"2023-09-12"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" while (sc.hasNext()) {","lastModifiedDate":"2023-09-12"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" text \u003d sc.nextLine();","lastModifiedDate":"2023-09-12"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":" addTask(text);","lastModifiedDate":"2023-09-12"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":" return tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-12"},{"lineNumber":63,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoStorageException(\"May not happen\");","lastModifiedDate":"2023-09-28"},{"lineNumber":64,"author":{"gitId":"Propene-Dan"},"content":" } finally {","lastModifiedDate":"2023-09-12"},{"lineNumber":65,"author":{"gitId":"Propene-Dan"},"content":" if (sc !\u003d null) {","lastModifiedDate":"2023-09-28"},{"lineNumber":66,"author":{"gitId":"Propene-Dan"},"content":" sc.close();","lastModifiedDate":"2023-09-12"},{"lineNumber":67,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":68,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":69,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":70,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":71,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":72,"author":{"gitId":"Propene-Dan"},"content":" * translate the text into a Task and add it to the TaskList","lastModifiedDate":"2023-09-18"},{"lineNumber":73,"author":{"gitId":"Propene-Dan"},"content":" * @param text a task stored in the file","lastModifiedDate":"2023-09-18"},{"lineNumber":74,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoStorageException if the storage file is destroyed","lastModifiedDate":"2023-09-18"},{"lineNumber":75,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":76,"author":{"gitId":"Propene-Dan"},"content":" public void addTask(String text) throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":77,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":78,"author":{"gitId":"Propene-Dan"},"content":" String[] task \u003d text.split(\",\");","lastModifiedDate":"2023-09-12"},{"lineNumber":79,"author":{"gitId":"Propene-Dan"},"content":" Task t \u003d null;","lastModifiedDate":"2023-09-12"},{"lineNumber":80,"author":{"gitId":"Propene-Dan"},"content":" int isDone \u003d Integer.parseInt(task[2]);","lastModifiedDate":"2023-09-12"},{"lineNumber":81,"author":{"gitId":"Propene-Dan"},"content":" switch (task[0]) {","lastModifiedDate":"2023-09-12"},{"lineNumber":82,"author":{"gitId":"Propene-Dan"},"content":" case \"toDo\":","lastModifiedDate":"2023-09-12"},{"lineNumber":83,"author":{"gitId":"Propene-Dan"},"content":" t \u003d new ToDo(task[1], isDone);","lastModifiedDate":"2023-09-13"},{"lineNumber":84,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":85,"author":{"gitId":"Propene-Dan"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-12"},{"lineNumber":86,"author":{"gitId":"Propene-Dan"},"content":" t \u003d new Deadline(task[1], isDone, task[3]);","lastModifiedDate":"2023-09-13"},{"lineNumber":87,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":88,"author":{"gitId":"Propene-Dan"},"content":" case \"event\":","lastModifiedDate":"2023-09-12"},{"lineNumber":89,"author":{"gitId":"Propene-Dan"},"content":" t \u003d new Event(task[1], isDone, task[3], task[4]);","lastModifiedDate":"2023-09-13"},{"lineNumber":90,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":91,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":92,"author":{"gitId":"Propene-Dan"},"content":" tasks.add(t);","lastModifiedDate":"2023-09-12"},{"lineNumber":93,"author":{"gitId":"Propene-Dan"},"content":" } catch (IndexOutOfBoundsException | NumberFormatException | NullPointerException e) {","lastModifiedDate":"2023-09-13"},{"lineNumber":94,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoStorageException(\"Storage File Destroyed\");","lastModifiedDate":"2023-09-18"},{"lineNumber":95,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":96,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":97,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":98,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":99,"author":{"gitId":"Propene-Dan"},"content":" * save the data if there\u0027s a change","lastModifiedDate":"2023-09-18"},{"lineNumber":100,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList that may be modified","lastModifiedDate":"2023-09-18"},{"lineNumber":101,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":102,"author":{"gitId":"Propene-Dan"},"content":" public void checkChange(TaskList tasks) {","lastModifiedDate":"2023-09-12"},{"lineNumber":103,"author":{"gitId":"Propene-Dan"},"content":" if (tasks.storageChanged \u003d\u003d 1) {","lastModifiedDate":"2023-09-12"},{"lineNumber":104,"author":{"gitId":"Propene-Dan"},"content":" save();","lastModifiedDate":"2023-09-12"},{"lineNumber":105,"author":{"gitId":"Propene-Dan"},"content":" tasks.storageChanged \u003d 0;","lastModifiedDate":"2023-09-12"},{"lineNumber":106,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":107,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":108,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":109,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":110,"author":{"gitId":"Propene-Dan"},"content":" * save the data","lastModifiedDate":"2023-09-18"},{"lineNumber":111,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoException when write fails or close fails","lastModifiedDate":"2023-09-18"},{"lineNumber":112,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":113,"author":{"gitId":"Propene-Dan"},"content":" private void save() {","lastModifiedDate":"2023-09-18"},{"lineNumber":114,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-12"},{"lineNumber":115,"author":{"gitId":"Propene-Dan"},"content":" new File(savePath).delete();","lastModifiedDate":"2023-09-12"},{"lineNumber":116,"author":{"gitId":"Propene-Dan"},"content":" new File(savePath).createNewFile();","lastModifiedDate":"2023-09-12"},{"lineNumber":117,"author":{"gitId":"Propene-Dan"},"content":" writer \u003d new BufferedWriter(new FileWriter(savePath));","lastModifiedDate":"2023-09-12"},{"lineNumber":118,"author":{"gitId":"Propene-Dan"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-12"},{"lineNumber":119,"author":{"gitId":"Propene-Dan"},"content":" writer.write(tasks.get(i).saveToString() + \"\\n\");","lastModifiedDate":"2023-09-12"},{"lineNumber":120,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":121,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-12"},{"lineNumber":122,"author":{"gitId":"Propene-Dan"},"content":" // may not happen","lastModifiedDate":"2023-09-18"},{"lineNumber":123,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoException(\"write fails\");","lastModifiedDate":"2023-09-18"},{"lineNumber":124,"author":{"gitId":"Propene-Dan"},"content":" } finally {","lastModifiedDate":"2023-09-12"},{"lineNumber":125,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-12"},{"lineNumber":126,"author":{"gitId":"Propene-Dan"},"content":" writer.close();","lastModifiedDate":"2023-09-12"},{"lineNumber":127,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-12"},{"lineNumber":128,"author":{"gitId":"Propene-Dan"},"content":" // may not happen","lastModifiedDate":"2023-09-18"},{"lineNumber":129,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoException(\"close fails\");","lastModifiedDate":"2023-09-18"},{"lineNumber":130,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":131,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":132,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":133,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":133}},{"path":"src/main/java/veneto/task/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" /* fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" protected LocalDate deadline;","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" * create a new Deadline Task","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" * @param deadline the deadline of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" public Deadline(String description, String deadline) {","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" super(description);","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" this.deadline \u003d LocalDate.parse(deadline);","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" * create a new Deadline task from storage file","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" * @param mark if the task is marked","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" * @param deadline the deadline of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" public Deadline(String description, int mark, String deadline) {","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" super(description, mark !\u003d 0);","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" this.deadline \u003d LocalDate.parse(deadline);","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" * explanation of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" * @return return task details","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" return \"[D]\" + super.toString() +","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" \" (by: \" + deadline.format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"))+ \")\";","lastModifiedDate":"2023-09-10"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" * generate texts for storage","lastModifiedDate":"2023-09-18"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" * @return String of the task data","lastModifiedDate":"2023-09-18"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-10"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" public String saveToString() {","lastModifiedDate":"2023-09-10"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" return \"deadline,\" + super.saveToString() + \",\" + deadline;","lastModifiedDate":"2023-09-10"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Propene-Dan":51}},{"path":"src/main/java/veneto/task/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"public class Event extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" /* fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" protected LocalDate start;","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" protected LocalDate end;","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * create a new Event Task","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" * @param start the start time of the event","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" * @param end the end time of the event","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" public Event(String description, String start, String end) {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" super(description);","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" this.start \u003d LocalDate.parse(start);","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" this.end \u003d LocalDate.parse(end);","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" * create a new Event task from storage file","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" * @param mark if the task is marked","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" * @param start the start time of the event","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" * @param end the end time of the event","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" public Event(String description, int mark, String start, String end) {","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" super(description, mark !\u003d 0);","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" this.start \u003d LocalDate.parse(start);","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" this.end \u003d LocalDate.parse(end);","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" * explanation of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" * @return return task details","lastModifiedDate":"2023-09-18"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" return \"[E]\" + super.toString() +","lastModifiedDate":"2023-09-10"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" \" (from: \" + start.format(DateTimeFormatter.ofPattern(\"MMM d yyyy\")) +","lastModifiedDate":"2023-09-10"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" \" to: \" + end.format(DateTimeFormatter.ofPattern(\"MMM d yyyy\")) + \")\";","lastModifiedDate":"2023-09-10"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" * generate texts for storage","lastModifiedDate":"2023-09-18"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" * @return String of the task data","lastModifiedDate":"2023-09-18"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-10"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" public String saveToString() {","lastModifiedDate":"2023-09-10"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" return \"event,\" + super.saveToString() + \",\" + start + \",\" + end;","lastModifiedDate":"2023-09-10"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Propene-Dan":57}},{"path":"src/main/java/veneto/task/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoOperateException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"public class Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" /* fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" protected String description;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" protected boolean isDone;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * create a new Task","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" public Task(String description) {","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" this.description \u003d description;","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" * create a new task from storage file","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" * @param isDone the status of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" public Task(String description, boolean isDone) {","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" this.description \u003d description;","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" this.isDone \u003d isDone;","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" * mark or unmark the task","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" * @param funcId the function id","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoException if the mark operation is done before","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" public void mark(int funcId) throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" if (funcId \u003d\u003d 1) { /* to mark task */","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" if (isDone \u003d\u003d false) {","lastModifiedDate":"2023-09-03"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" isDone \u003d true;","lastModifiedDate":"2023-09-03"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" } else { /* if the task is already marked */","lastModifiedDate":"2023-09-03"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoOperateException(\"Marked\");","lastModifiedDate":"2023-09-18"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" } else { /* to unmark task */","lastModifiedDate":"2023-09-12"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" if (isDone \u003d\u003d true) {","lastModifiedDate":"2023-09-03"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" isDone \u003d false;","lastModifiedDate":"2023-09-03"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" } else { /* if the task is already unmarked */","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoOperateException(\"Unmarked\");","lastModifiedDate":"2023-09-18"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" * @param keyword the target keyword","lastModifiedDate":"2023-09-18"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" * @return if the description of the task contains the keyword","lastModifiedDate":"2023-09-18"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" public boolean contains(String keyword) {","lastModifiedDate":"2023-09-18"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" return description.contains(keyword);","lastModifiedDate":"2023-09-18"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":" // toString","lastModifiedDate":"2023-09-03"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":63,"author":{"gitId":"Propene-Dan"},"content":" * explanation of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":64,"author":{"gitId":"Propene-Dan"},"content":" * @return return task details","lastModifiedDate":"2023-09-18"},{"lineNumber":65,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":66,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":67,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":68,"author":{"gitId":"Propene-Dan"},"content":" return getStatusIcon() + this.description;","lastModifiedDate":"2023-09-03"},{"lineNumber":69,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":70,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":71,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":72,"author":{"gitId":"Propene-Dan"},"content":" * generate texts for storage","lastModifiedDate":"2023-09-18"},{"lineNumber":73,"author":{"gitId":"Propene-Dan"},"content":" * @return String of the task data","lastModifiedDate":"2023-09-18"},{"lineNumber":74,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":75,"author":{"gitId":"Propene-Dan"},"content":" public String saveToString() {","lastModifiedDate":"2023-09-10"},{"lineNumber":76,"author":{"gitId":"Propene-Dan"},"content":" return this.description + \",\" + (isDone ? 1 : 0);","lastModifiedDate":"2023-09-10"},{"lineNumber":77,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":78,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":79,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":80,"author":{"gitId":"Propene-Dan"},"content":" * return the status icon of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":81,"author":{"gitId":"Propene-Dan"},"content":" * @return the status icon of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":82,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":83,"author":{"gitId":"Propene-Dan"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-09-18"},{"lineNumber":84,"author":{"gitId":"Propene-Dan"},"content":" return (isDone ? \"[V] \" : \"[ ] \"); // mark done task with V","lastModifiedDate":"2023-09-18"},{"lineNumber":85,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":86,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Propene-Dan":86}},{"path":"src/main/java/veneto/task/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-02"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"public class TaskList extends ArrayList\u003cTask\u003e {","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" * indicates if the storage is changed after a command operates","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" * will be modified when command operates.","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" public int storageChanged \u003d 0;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" * creates a new TaskList","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" public TaskList() {}","lastModifiedDate":"2023-09-12"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" * creates a new TaskList","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" * @param initialCapacity the initial capacity of the list","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" public TaskList(int initialCapacity) {","lastModifiedDate":"2023-09-12"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" super(initialCapacity);","lastModifiedDate":"2023-09-02"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-02"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" * the string representation of the list","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" * @return all tasks in the list","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-02"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-02"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" StringBuffer rt \u003d new StringBuffer();","lastModifiedDate":"2023-09-02"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" for (int i \u003d 0; i \u003c this.size(); i++) {","lastModifiedDate":"2023-09-02"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" rt.append(\" \" + (i+1) + \". \" + this.get(i).toString() + \"\\n\");","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-02"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" return rt.toString();","lastModifiedDate":"2023-09-02"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-02"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-02"}],"authorContributionMap":{"Propene-Dan":40}},{"path":"src/main/java/veneto/task/ToDo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" * create a new ToDo task","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" public ToDo(String description) {","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" super(description);","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" * create a new ToDo task from storage file","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" * @param des the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" * @param mark if the task is marked","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" public ToDo(String des, int mark) {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" super(des, mark !\u003d 0);","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" * explanation of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" * @return return task details","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" * generate texts for storage","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" * @return String of the task data","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-10"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" public String saveToString() {","lastModifiedDate":"2023-09-10"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" return \"toDo,\" + super.saveToString();","lastModifiedDate":"2023-09-10"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Propene-Dan":40}},{"path":"src/main/java/veneto/ui/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.ui;","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-28"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-28"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-28"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-28"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-28"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-28"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-28"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-28"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-28"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-28"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-28"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":"/**","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-28"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-28"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-28"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-28"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-28"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" private Label dialog;","lastModifiedDate":"2023-09-28"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-28"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-28"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-28"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-28"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-28"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-28"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-28"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-28"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-28"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-28"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-28"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-28"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-28"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-28"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" private void flip() {","lastModifiedDate":"2023-09-28"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-28"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-28"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-28"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-28"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-28"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" return new DialogBox(text, img);","lastModifiedDate":"2023-09-28"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-28"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-28"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" db.flip();","lastModifiedDate":"2023-09-28"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":" return db;","lastModifiedDate":"2023-09-28"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-28"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":63,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":63}},{"path":"src/main/java/veneto/ui/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.ui;","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-28"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-28"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-28"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-28"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-28"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-28"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"import veneto.Veneto;","lastModifiedDate":"2023-09-28"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"/**","lastModifiedDate":"2023-09-28"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-28"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-28"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-28"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-28"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-28"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-28"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" private Veneto veneto;","lastModifiedDate":"2023-09-28"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/User.png\"));","lastModifiedDate":"2023-09-28"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Veneto.png\"));","lastModifiedDate":"2023-09-28"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" public void initialize() {","lastModifiedDate":"2023-09-28"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-28"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" public void setUi(Veneto v) {","lastModifiedDate":"2023-09-28"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" this.veneto \u003d v;","lastModifiedDate":"2023-09-28"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-28"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-28"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-28"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-28"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-28"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-28"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" String response \u003d veneto.getResponse(input);","lastModifiedDate":"2023-09-28"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-28"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-28"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-28"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" );","lastModifiedDate":"2023-09-28"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" userInput.clear();","lastModifiedDate":"2023-09-28"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-28"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":54}},{"path":"src/main/java/veneto/ui/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.ui;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.command.*;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoOperateException;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoStorageException;","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import veneto.parser.Parser;","lastModifiedDate":"2023-09-14"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"import java.util.Arrays;","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"public class Ui {","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" private final static String GREETS \u003d \"\\nVeneto: \\n\";","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" private final static String COMMANDS \u003d","lastModifiedDate":"2023-09-28"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" \" toDo [TASK]\\n\" +","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" \" deadline [TASK] /by [DEADLINE(YYYY-MM-DD)]\\n\" +","lastModifiedDate":"2023-09-28"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" \" event [TASK] /from [START_TIME(YYYY-MM-DD)] /to [END_TIME(YYYY-MM-DD)]\\n\" +","lastModifiedDate":"2023-09-28"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" \" mark [TASK_ID]\" + \"unmark [TASK_ID]\\n\" +","lastModifiedDate":"2023-09-28"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" \" find [KEYWORDS]\\n\" +","lastModifiedDate":"2023-09-28"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" \" list\" + \"bye\";","lastModifiedDate":"2023-09-28"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" private final static String LOGO \u003d","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" \" ___ ___ __________ ___ ___ __________ __________ __________\\n\" +","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" \" \\\\ \\\\ / /| _______|| \\\\ | || _______||___ ___|| ____ |\\n\" +","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" \" \\\\ \\\\ / / | |_______ | \\\\| || |_______ | | | | | |\\n\" +","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" \" \\\\ \\\\/ / | _______|| || _______| | | | | | |\\n\" +","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" \" \\\\ / | |_______ | |\\\\ || |_______ | | | |____| |\\n\" +","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" \" \\\\__/ |__________||___| \\\\___||__________| |__| |__________| ...starts\\n\\n\";","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" * shows which exception occurs and give hint to the user","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" * @param e the DanException","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" public String showError(VenetoException e) {","lastModifiedDate":"2023-09-28"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" if (e instanceof VenetoOperateException) {","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" switch (e.getMessage()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" case \"Unmarked\":","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 这个没标记过哦!\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" case \"Marked\":","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 这个已经做完了哦!\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" case \"Add\":","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 输入格式不对!\\n 你可以跟我说:\\n\" + COMMANDS + \"\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" case \"Not Found\":","lastModifiedDate":"2023-09-18"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 好像没有这样的任务要做哦\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" } else if (e instanceof VenetoStorageException) {","lastModifiedDate":"2023-09-18"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" if (e.getMessage().equals(\"Storage File Destroyed\")) {","lastModifiedDate":"2023-09-18"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 没找到内存哦 现在重新创建一个!\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" } else {","lastModifiedDate":"2023-09-18"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 不该发生的发生了…\";","lastModifiedDate":"2023-09-28"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" } else if (e.getMessage().equals(\"Invalid Command\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 输入格式不对!\" + \" 你可以跟我说:\\n\" + COMMANDS + \"\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" ???\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":" * give responses to user after they call commands","lastModifiedDate":"2023-09-18"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":" * @param command the Command operated just now","lastModifiedDate":"2023-09-18"},{"lineNumber":63,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList of Veneto","lastModifiedDate":"2023-09-18"},{"lineNumber":64,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":65,"author":{"gitId":"Propene-Dan"},"content":" public String afterCommand(Command command, TaskList tasks) {","lastModifiedDate":"2023-09-28"},{"lineNumber":66,"author":{"gitId":"Propene-Dan"},"content":" switch (command.getType()) {","lastModifiedDate":"2023-09-18"},{"lineNumber":67,"author":{"gitId":"Propene-Dan"},"content":" case \"exit\":","lastModifiedDate":"2023-09-13"},{"lineNumber":68,"author":{"gitId":"Propene-Dan"},"content":" return goodbye();","lastModifiedDate":"2023-09-28"},{"lineNumber":69,"author":{"gitId":"Propene-Dan"},"content":" case \"add\":","lastModifiedDate":"2023-09-12"},{"lineNumber":70,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 记下来了:\\n \" + command +","lastModifiedDate":"2023-09-28"},{"lineNumber":71,"author":{"gitId":"Propene-Dan"},"content":" \"!\\n 现在有\" + tasks.size() + \"项任务要做\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":72,"author":{"gitId":"Propene-Dan"},"content":" case \"list\":","lastModifiedDate":"2023-09-12"},{"lineNumber":73,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 还有这些要做哦!\\n\" + tasks.toString();","lastModifiedDate":"2023-09-28"},{"lineNumber":74,"author":{"gitId":"Propene-Dan"},"content":" case \"mark\":","lastModifiedDate":"2023-09-12"},{"lineNumber":75,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 我这就帮您标记好!\\n \" + command + \"\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":76,"author":{"gitId":"Propene-Dan"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-12"},{"lineNumber":77,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 啊 没关系 帮您擦掉标记了哦\" + \"\\n \" + command + \"\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":78,"author":{"gitId":"Propene-Dan"},"content":" case \"delete\":","lastModifiedDate":"2023-09-13"},{"lineNumber":79,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 好啦,帮你擦掉了一条任务哦:\\n \" + command +","lastModifiedDate":"2023-09-28"},{"lineNumber":80,"author":{"gitId":"Propene-Dan"},"content":" \"\\n 现在还剩下\" + tasks.size() + \"项任务\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":81,"author":{"gitId":"Propene-Dan"},"content":" case \"find\":","lastModifiedDate":"2023-09-18"},{"lineNumber":82,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 相关的任务都在这里了哦:\\n\" + command;","lastModifiedDate":"2023-09-28"},{"lineNumber":83,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":84,"author":{"gitId":"Propene-Dan"},"content":" return \"Parser error\";","lastModifiedDate":"2023-09-28"},{"lineNumber":85,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":86,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":87,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":88,"author":{"gitId":"Propene-Dan"},"content":" * get input from user","lastModifiedDate":"2023-09-18"},{"lineNumber":89,"author":{"gitId":"Propene-Dan"},"content":" * @return the command translated from user input","lastModifiedDate":"2023-09-18"},{"lineNumber":90,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":91,"author":{"gitId":"Propene-Dan"},"content":" public Command getCommand(String input) {","lastModifiedDate":"2023-09-28"},{"lineNumber":92,"author":{"gitId":"Propene-Dan"},"content":" return Parser.translateCommand(input);","lastModifiedDate":"2023-09-28"},{"lineNumber":93,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":94,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":95,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":96,"author":{"gitId":"Propene-Dan"},"content":" * greets when Veneto runs","lastModifiedDate":"2023-09-18"},{"lineNumber":97,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":98,"author":{"gitId":"Propene-Dan"},"content":" public String hello() {","lastModifiedDate":"2023-09-28"},{"lineNumber":99,"author":{"gitId":"Propene-Dan"},"content":" return","lastModifiedDate":"2023-09-28"},{"lineNumber":100,"author":{"gitId":"Propene-Dan"},"content":" LOGO + GREETS +","lastModifiedDate":"2023-09-18"},{"lineNumber":101,"author":{"gitId":"Propene-Dan"},"content":" \" Veneto为您服务哦\\n\" +","lastModifiedDate":"2023-09-28"},{"lineNumber":102,"author":{"gitId":"Propene-Dan"},"content":" \" 有什么可以要帮忙可以跟我说!\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":103,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":104,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":105,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":106,"author":{"gitId":"Propene-Dan"},"content":" * says goodbye when session ends","lastModifiedDate":"2023-09-18"},{"lineNumber":107,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":108,"author":{"gitId":"Propene-Dan"},"content":" public String goodbye() {","lastModifiedDate":"2023-09-28"},{"lineNumber":109,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 拜拜啦 下次见\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":110,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":111,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":111}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":16}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/20.0.1\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"veneto.ui.MainWindow\"\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"324.0\" AnchorPane.bottomAnchor\u003d\"1.0\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" \u003cButton fx:id\u003d\"sendButton\" alignment\u003d\"CENTER\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" style\u003d\"-fx-background-color: #b6ff8c;\" text\u003d\"Send\" textAlignment\u003d\"CENTER\"\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" \u003cFont size\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" \u003c/font\u003e\u003c/Button\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"552.0\" prefWidth\u003d\"388.0\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":23}},{"path":"src/test/java/veneto/VenetoTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"public class VenetoTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" public void dummyTest(){","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(2, 2);","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" public void anotherDummyTest(){","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(4, 4);","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":21}},{"path":"src/test/java/veneto/command/AddCommandTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class AddCommandTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void op() {","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void getType() {","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":20}},{"path":"src/test/java/veneto/command/DeleteCommandTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class DeleteCommandTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void op() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":20}},{"path":"src/test/java/veneto/command/FindCommandTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class FindCommandTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void op() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":20}},{"path":"src/test/java/veneto/command/MarkCommandTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class MarkCommandTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void op() {","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void getType() {","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":20}},{"path":"src/test/java/veneto/parser/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.parser;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class ParserTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void translateCommand() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":12}},{"path":"src/test/java/veneto/storage/StorageTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.storage;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class StorageTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void init() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void load() {","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void addTask() {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" void checkChange() {","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":24}},{"path":"src/test/java/veneto/task/DeadlineTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class DeadlineTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void saveToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":16}},{"path":"src/test/java/veneto/task/EventTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class EventTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void toString_toDoWithDescriptionOnly_unmarkedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" \"[E][ ] a (from: Sep 10 2019 to: Sep 11 2019)\",","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" new Event(\"a\", \"2019-09-10\", \"2019-09-11\").toString()","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" );","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void toString_toDoWithDescriptionAndStatus_markedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" \"[E][V] a (from: Sep 10 2019 to: Sep 11 2019)\",","lastModifiedDate":"2023-09-15"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" new Event(\"a\", 1, \"2019-09-10\", \"2019-09-11\").toString()","lastModifiedDate":"2023-09-15"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" );","lastModifiedDate":"2023-09-15"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" void saveToString_toDoWithDescriptionOnly_unmarkedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(","lastModifiedDate":"2023-09-15"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" \"event,a,0,2019-09-10,2019-09-11\",","lastModifiedDate":"2023-09-15"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" new Event(\"a\", \"2019-09-10\", \"2019-09-11\").saveToString()","lastModifiedDate":"2023-09-15"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" );","lastModifiedDate":"2023-09-15"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" void saveToString_toDoWithDescriptionAndStatus_markedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(","lastModifiedDate":"2023-09-15"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" \"event,a,1,2019-09-10,2019-09-11\",","lastModifiedDate":"2023-09-15"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" new Event(\"a\", 1, \"2019-09-10\", \"2019-09-11\").saveToString()","lastModifiedDate":"2023-09-15"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" );","lastModifiedDate":"2023-09-15"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":40}},{"path":"src/test/java/veneto/task/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class TaskListTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":12}},{"path":"src/test/java/veneto/task/TaskTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class TaskTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void mark() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void contains() {","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" void saveToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" void getStatusIcon() {","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":28}},{"path":"src/test/java/veneto/task/ToDoTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class ToDoTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void toString_toDoWithDescriptionOnly_unmarkedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(\"[T][ ] a\", new ToDo(\"a\").toString());","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" void toString_toDoWithDescriptionAndStatus_markedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(\"[T][V] a\", new ToDo(\"a\", 1).toString());","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" void saveToString_toDoWithDescriptionOnly_unmarkedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(\"toDo,a,0\", new ToDo(\"a\").saveToString());","lastModifiedDate":"2023-09-15"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" void saveToString_toDoWithDescriptionAndStatus_markedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(\"toDo,a,1\", new ToDo(\"a\", 1).saveToString());","lastModifiedDate":"2023-09-15"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":28}},{"path":"src/test/java/veneto/ui/UiTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.ui;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"class UiTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"// @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"// void showError_unmarkedOperateException_writtenCorrectly() {","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"// assertEquals(\"\\nVeneto: \\n 这个没标记过哦!\\n\", Ui.showError(new DanOperateException(\"Unmarked\")));","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"// }","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" void afterCommand() {","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" void getCommand() {","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" void goodbye() {","lastModifiedDate":"2023-09-15"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":23}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"todo borrow book","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"deadline return book /by 2019-08-10","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"event project meeting /from 2020-05-09 /to 2020-05-10","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"list","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"mark 1","lastModifiedDate":"2023-09-08"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"mark 3","lastModifiedDate":"2023-09-08"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"unmark 3","lastModifiedDate":"2023-09-08"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"unmark 2","lastModifiedDate":"2023-09-08"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"list","lastModifiedDate":"2023-09-08"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"delete 3","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"Bye","lastModifiedDate":"2023-09-08"}],"authorContributionMap":{"Propene-Dan":11}},{"path":"text-ui-test/runtest.bat","fileType":"bat","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@ECHO OFF","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"REM create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if not exist ..\\bin mkdir ..\\bin","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"REM delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"if exist ACTUAL.TXT del ACTUAL.TXT","lastModifiedDate":"2020-08-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"REM compile the code into the bin folder","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"javac -cp ..\\src\\main\\java -Xlint:none -d ..\\bin ..\\src\\main\\java\\*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"IF ERRORLEVEL 1 (","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" echo ********** BUILD FAILURE **********","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" exit /b 1","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"REM no error here, errorlevel \u003d\u003d 0","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"REM run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"java -classpath ..\\bin veneto.Veneto \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"REM compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"FC ACTUAL.TXT EXPECTED.TXT","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":20,"Propene-Dan":1}},{"path":"text-ui-test/runtest.sh","fileType":"sh","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"#!/usr/bin/env bash","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"# create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if [ ! -d \"../bin\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":" mkdir ../bin","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"# delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"if [ -e \"./ACTUAL.TXT\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" rm ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"# compile the code into the bin folder, terminates if error occurred","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"if ! javac -cp ../src/main/java -Xlint:none -d ../bin ../src/main/java/*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" echo \"********** BUILD FAILURE **********\"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"# run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":"java -classpath ../bin Dan \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-09-08"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":"# convert to UNIX format","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"cp EXPECTED.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":"dos2unix ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"# compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"diff ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"if [ $? -eq 0 ]","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" echo \"Test result: PASSED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" exit 0","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"else","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" echo \"Test result: FAILED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":37,"Propene-Dan":1}}] +[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"# Veneto project template","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"This is a project template for a greenfield Java project. It\u0027s named after the Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"1. Open Intellij (if you are not in the welcome screen, click `File` \u003e `Close Project` to close the existing project first)","lastModifiedDate":"2021-01-17"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":11,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":12,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":13,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"1. Configure the project to use **JDK 11** (not other versions) as explained in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).\u003cbr\u003e","lastModifiedDate":"2021-07-29"},{"lineNumber":15,"author":{"gitId":"-"},"content":" In the same dialog, set the **Project language level** field to the `SDK default` option.","lastModifiedDate":"2021-07-29"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"3. After that, locate the `src/main/java/veneto.Veneto.java` file, right-click it, and choose `Run veneto.Veneto.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something like the below as the output:","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" ___ ___ __________ ___ ___ __________ __________ __________","lastModifiedDate":"2023-09-14"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" \\ \\ / /| _______|| \\ | || _______||___ ___|| ____ |","lastModifiedDate":"2023-09-14"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" \\ \\ / / | |_______ | \\| || |_______ | | | | | |","lastModifiedDate":"2023-09-14"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" \\ \\/ / | _______|| || _______| | | | | | |","lastModifiedDate":"2023-09-14"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" \\ / | |_______ | |\\ || |_______ | | | |____| |","lastModifiedDate":"2023-09-14"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" \\__/ |__________||___| \\___||__________| |__| |__________|","lastModifiedDate":"2023-09-14"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" ","lastModifiedDate":"2023-09-14"},{"lineNumber":26,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":17,"Propene-Dan":9}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" mainClass.set(\"veneto.Launcher\")","lastModifiedDate":"2023-09-29"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" mainClassName \u003d \u0027veneto.Main\u0027","lastModifiedDate":"2023-09-29"},{"lineNumber":48,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" archiveBaseName \u003d \"veneto\"","lastModifiedDate":"2023-09-16"},{"lineNumber":52,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":"// archiveFileName \u003d \u0027veneto-v1.0.2.jar\u0027","lastModifiedDate":"2023-09-29"},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":60,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":40,"Propene-Dan":20}},{"path":"src/main/data/veneto.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"toDo,borrow book,0","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"deadline,return book,1,2019-08-10","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"event, project meeting,0,2020-05-09,2020-05-10","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":3}},{"path":"src/main/java/veneto/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto;","lastModifiedDate":"2023-09-25"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-25"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"public class Launcher {","lastModifiedDate":"2023-09-25"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-25"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-25"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-25"}],"authorContributionMap":{"Propene-Dan":9}},{"path":"src/main/java/veneto/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto;","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-28"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-28"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-28"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-28"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-28"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"import veneto.ui.MainWindow;","lastModifiedDate":"2023-09-28"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"/**","lastModifiedDate":"2023-09-28"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-28"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-28"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-28"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" private Veneto veneto \u003d new Veneto();","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-28"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-28"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-28"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-28"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-28"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-28"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-28"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setUi(veneto);","lastModifiedDate":"2023-09-28"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" stage.show();","lastModifiedDate":"2023-09-28"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-28"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-28"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-28"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":34}},{"path":"src/main/java/veneto/Veneto.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.command.Command;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.storage.Storage;","lastModifiedDate":"2023-09-14"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import veneto.ui.Ui;","lastModifiedDate":"2023-09-14"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"public class Veneto {","lastModifiedDate":"2023-09-14"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" private TaskList tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" private Storage storage;","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" private Ui ui;","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" private String storagePath \u003d \"./src/main/data/veneto.txt\";","lastModifiedDate":"2023-09-29"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" public Veneto() {","lastModifiedDate":"2023-09-28"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-09-12"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" storage \u003d new Storage(storagePath);","lastModifiedDate":"2023-09-29"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" tasks \u003d storage.load();","lastModifiedDate":"2023-09-12"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" } catch (VenetoException e) {","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" ui.showError(e);","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" tasks \u003d new TaskList();","lastModifiedDate":"2023-09-12"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" storage.init(tasks);","lastModifiedDate":"2023-09-12"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" * operate the user input and return responses","lastModifiedDate":"2023-09-28"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" * @return the responses","lastModifiedDate":"2023-09-28"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" public String getResponse(String input) {","lastModifiedDate":"2023-09-28"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" String response;","lastModifiedDate":"2023-09-28"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" Command command \u003d ui.getCommand(input);","lastModifiedDate":"2023-09-28"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" command.op(tasks);","lastModifiedDate":"2023-09-12"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" storage.checkChange(tasks);","lastModifiedDate":"2023-09-12"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" response \u003d ui.afterCommand(command, tasks);","lastModifiedDate":"2023-09-28"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" } catch (VenetoException e) {","lastModifiedDate":"2023-09-18"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" response \u003d ui.showError(e);","lastModifiedDate":"2023-09-28"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" return response;","lastModifiedDate":"2023-09-28"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-02"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-02"}],"authorContributionMap":{"Propene-Dan":47}},{"path":"src/main/java/veneto/command/AddCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoOperateException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.*;","lastModifiedDate":"2023-09-14"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"public class AddCommand extends Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"add\";","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" private String text;","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" private int id;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" private Task newTask;","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" public AddCommand(Task t) {","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-12"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" this.newTask \u003d t;","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * the AddCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList where the AddCommand put new task","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" tasks.add(newTask);","lastModifiedDate":"2023-09-12"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" tasks.storageChanged \u003d 1;","lastModifiedDate":"2023-09-12"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" } catch (IndexOutOfBoundsException e) {","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoOperateException(\"Add\");","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" * @return the String representation of the task added to the TaskList","lastModifiedDate":"2023-09-18"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-12"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" return newTask.toString();","lastModifiedDate":"2023-09-12"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":51}},{"path":"src/main/java/veneto/command/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"public abstract class Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" * the Command operates","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList that the Command operates on","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" public abstract void op(TaskList tasks);","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {return null;}","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":16}},{"path":"src/main/java/veneto/command/DeleteCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Task;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"public class DeleteCommand extends Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"delete\";","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" private int taskId;","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" private Task removedTask;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" public DeleteCommand(int taskId) {","lastModifiedDate":"2023-09-12"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-12"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" this.taskId \u003d taskId;","lastModifiedDate":"2023-09-12"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" * the DeleteCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList that the DeleteCommand operates on","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) {","lastModifiedDate":"2023-09-12"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" removedTask \u003d tasks.remove(taskId-1);","lastModifiedDate":"2023-09-12"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" tasks.storageChanged \u003d 1;","lastModifiedDate":"2023-09-12"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" * @return the String representation of the task removed to the TaskList","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-12"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" return removedTask.toString();","lastModifiedDate":"2023-09-12"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":44}},{"path":"src/main/java/veneto/command/ExitCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"exit\";","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" public ExitCommand() {","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" * the ExitCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList of Veneto","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) {}","lastModifiedDate":"2023-09-12"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-12"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":28}},{"path":"src/main/java/veneto/command/FindCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoOperateException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Task;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"public class FindCommand extends Command{","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"find\";","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" private String keyword;","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" private TaskList foundTasks;","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" * creates a find command","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" * @param keyword contained in the task which should be found","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" public FindCommand(String keyword) {","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" this.keyword \u003d keyword;","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" this.foundTasks \u003d new TaskList();","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" * the FindCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList where the Command search from","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoException","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" Task currTask;","lastModifiedDate":"2023-09-29"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" currTask \u003d tasks.get(i);","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" if (currTask.contains(keyword)) {","lastModifiedDate":"2023-09-18"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" foundTasks.add(currTask);","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" if (foundTasks.isEmpty()) {","lastModifiedDate":"2023-09-18"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoOperateException(\"Not Found\");","lastModifiedDate":"2023-09-18"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" * @return the tasks found","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-18"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" return foundTasks.toString();","lastModifiedDate":"2023-09-18"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-18"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":59}},{"path":"src/main/java/veneto/command/ListCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"public class ListCommand extends Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"list\";","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" public ListCommand() {","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" * the ListCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList that the ListCommand shows","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) {}","lastModifiedDate":"2023-09-12"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-12"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":28}},{"path":"src/main/java/veneto/command/MarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Task;","lastModifiedDate":"2023-09-14"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"public class MarkCommand extends Command {","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" public static final String type \u003d \"add\";","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" private int taskId;","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * This variable indicates if the function is \"mark()\" or \"unmark()\"","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" * funcId \u003d\u003d 1 -\u003e mark() ; funcId \u003d 0 -\u003e unmark()","lastModifiedDate":"2023-09-12"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-12"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" private int funcId;","lastModifiedDate":"2023-09-12"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" private Task currTask;","lastModifiedDate":"2023-09-12"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" /* Constructor */","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" public MarkCommand(int taskId, int funcId) {","lastModifiedDate":"2023-09-12"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" super();","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" this.taskId \u003d taskId;","lastModifiedDate":"2023-09-12"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" this.funcId \u003d funcId;","lastModifiedDate":"2023-09-12"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" * the MarkCommand operates","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList that the MarkCommand operates on","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" public void op(TaskList tasks) throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" currTask \u003d tasks.get(taskId - 1);","lastModifiedDate":"2023-09-12"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" currTask.mark(funcId);","lastModifiedDate":"2023-09-12"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" tasks.storageChanged \u003d 1;","lastModifiedDate":"2023-09-12"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-12"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" * @return the String representation of the task marked or unmarked","lastModifiedDate":"2023-09-18"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-12"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" return currTask.toString();","lastModifiedDate":"2023-09-12"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" * @return the type of the Command","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" public String getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" return type;","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":52}},{"path":"src/main/java/veneto/exceptions/VenetoException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.exceptions;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"public class VenetoException extends RuntimeException {","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":" * Exception that may occur when Veneto runs","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" * @param s the message of the exception","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" public VenetoException(String s) {","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" super(s);","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":11}},{"path":"src/main/java/veneto/exceptions/VenetoOperateException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.exceptions;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"public class VenetoOperateException extends VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":" * exception that may occur when a Command operates","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" * @param s the message of the exception","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" public VenetoOperateException(String s) {","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" super(s);","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":11}},{"path":"src/main/java/veneto/exceptions/VenetoStorageException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.exceptions;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"public class VenetoStorageException extends VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":" * exception that may occur when operate on the Storage","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" * @param s the message of the exception","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" public VenetoStorageException(String s) {","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" super(s);","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":11}},{"path":"src/main/java/veneto/parser/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.parser;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.command.*;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Deadline;","lastModifiedDate":"2023-09-14"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Event;","lastModifiedDate":"2023-09-14"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.Task;","lastModifiedDate":"2023-09-14"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.ToDo;","lastModifiedDate":"2023-09-14"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"public class Parser {","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" public static final int FIND_COMMAND_INDEX \u003d 5;","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" public static final int TODO_DESCRIPTION_INDEX \u003d 5;","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" public static final int DEADLINE_DESCRIPTION_INDEX \u003d 9;","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" public static final int DEADLINE_START_INDEX \u003d 3;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" public static final int EVENT_DESCRIPTION_INDEX \u003d 5;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" public static final int EVENT_START_INDEX \u003d 5;","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" public static final int EVENT_END_INDEX \u003d 3;","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" * translate user put to commands that need to operate","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * @param text the input from user","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" * @return the Command that the user wants to operate","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" public static Command translateCommand(String text) {","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" String[] texts \u003d text.split(\" \");","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" String command \u003d texts[0].toLowerCase();","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" switch (command) {","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" case \"bye\":","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" return new ExitCommand();","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" case \"list\":","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" return new ListCommand();","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" case \"mark\":","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" return new MarkCommand(Integer.parseInt(texts[1]), 1);","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" return new MarkCommand(Integer.parseInt(texts[1]), 0);","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" case \"todo\":","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" return prepareAdd(text, 1);","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" return prepareAdd(text, 2);","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" case \"event\":","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" return prepareAdd(text, 3);","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" case \"delete\":","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" return new DeleteCommand(Integer.parseInt(texts[1]));","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" case \"find\":","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" return prepareFind(text);","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" default:","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoException(\"Invalid Command\");","lastModifiedDate":"2023-09-18"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" * generate FindCommand according to the user input","lastModifiedDate":"2023-09-18"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" * @param text the details about the task","lastModifiedDate":"2023-09-18"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" * @return the command that the user want to operate","lastModifiedDate":"2023-09-18"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" private static Command prepareFind(String text) {","lastModifiedDate":"2023-09-18"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":" String keyword \u003d text.substring(FIND_COMMAND_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":" return new FindCommand(keyword);","lastModifiedDate":"2023-09-18"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":63,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":64,"author":{"gitId":"Propene-Dan"},"content":" * generate AddCommand according to the user input","lastModifiedDate":"2023-09-18"},{"lineNumber":65,"author":{"gitId":"Propene-Dan"},"content":" * @param text the details about the task","lastModifiedDate":"2023-09-18"},{"lineNumber":66,"author":{"gitId":"Propene-Dan"},"content":" * @param funcId indicates the type of task","lastModifiedDate":"2023-09-18"},{"lineNumber":67,"author":{"gitId":"Propene-Dan"},"content":" * @return the command that the user want to operate","lastModifiedDate":"2023-09-18"},{"lineNumber":68,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":69,"author":{"gitId":"Propene-Dan"},"content":" private static Command prepareAdd(String text, int funcId) {","lastModifiedDate":"2023-09-18"},{"lineNumber":70,"author":{"gitId":"Propene-Dan"},"content":" String[] texts \u003d text.split(\"/\");","lastModifiedDate":"2023-09-13"},{"lineNumber":71,"author":{"gitId":"Propene-Dan"},"content":" for (int i \u003d 0; i \u003c texts.length; i++) {","lastModifiedDate":"2023-09-13"},{"lineNumber":72,"author":{"gitId":"Propene-Dan"},"content":" texts[i] \u003d texts[i].trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":73,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":74,"author":{"gitId":"Propene-Dan"},"content":" Task newTask \u003d null;","lastModifiedDate":"2023-09-13"},{"lineNumber":75,"author":{"gitId":"Propene-Dan"},"content":" String description;","lastModifiedDate":"2023-09-13"},{"lineNumber":76,"author":{"gitId":"Propene-Dan"},"content":" switch (funcId) {","lastModifiedDate":"2023-09-18"},{"lineNumber":77,"author":{"gitId":"Propene-Dan"},"content":" case 1:","lastModifiedDate":"2023-09-13"},{"lineNumber":78,"author":{"gitId":"Propene-Dan"},"content":" description \u003d texts[0].substring(TODO_DESCRIPTION_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":79,"author":{"gitId":"Propene-Dan"},"content":" newTask \u003d new ToDo(description);","lastModifiedDate":"2023-09-13"},{"lineNumber":80,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":81,"author":{"gitId":"Propene-Dan"},"content":" case 2:","lastModifiedDate":"2023-09-13"},{"lineNumber":82,"author":{"gitId":"Propene-Dan"},"content":" description \u003d texts[0].substring(DEADLINE_DESCRIPTION_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":83,"author":{"gitId":"Propene-Dan"},"content":" String deadline \u003d texts[1].substring(DEADLINE_START_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":84,"author":{"gitId":"Propene-Dan"},"content":" newTask \u003d new Deadline(description, deadline);","lastModifiedDate":"2023-09-13"},{"lineNumber":85,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":86,"author":{"gitId":"Propene-Dan"},"content":" case 3:","lastModifiedDate":"2023-09-13"},{"lineNumber":87,"author":{"gitId":"Propene-Dan"},"content":" description \u003d texts[0].substring(EVENT_DESCRIPTION_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":88,"author":{"gitId":"Propene-Dan"},"content":" String start \u003d texts[1].substring(EVENT_START_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":89,"author":{"gitId":"Propene-Dan"},"content":" String end \u003d texts[2].substring(EVENT_END_INDEX);","lastModifiedDate":"2023-09-18"},{"lineNumber":90,"author":{"gitId":"Propene-Dan"},"content":" newTask \u003d new Event(description, start, end);","lastModifiedDate":"2023-09-13"},{"lineNumber":91,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":92,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":93,"author":{"gitId":"Propene-Dan"},"content":" return new AddCommand(newTask);","lastModifiedDate":"2023-09-13"},{"lineNumber":94,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":95,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":95}},{"path":"src/main/java/veneto/storage/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.storage;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoStorageException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.*;","lastModifiedDate":"2023-09-14"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import java.io.*;","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"public class Storage {","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" private String savePath;","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" private Writer writer;","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" private TaskList tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" * create a storage for Veneto","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" * @param savePath path where the data stored","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" public Storage(String savePath) {","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" this.savePath \u003d savePath;","lastModifiedDate":"2023-09-12"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" * initialize the storage environment","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoStorageException when it fails to create the directories","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" public void init(TaskList tasks) {","lastModifiedDate":"2023-09-12"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" new File(\"./src/main/data\").mkdir();","lastModifiedDate":"2023-09-28"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-12"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" new File(savePath).createNewFile();","lastModifiedDate":"2023-09-12"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-12"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" // but may not happen","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoStorageException(\"make path fail\");","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" * load the data in storage file if exist","lastModifiedDate":"2023-09-18"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" * @return TaskList containing the data stored","lastModifiedDate":"2023-09-18"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoException if the path is invalid","lastModifiedDate":"2023-09-18"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" public TaskList load() throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" tasks \u003d new TaskList(100);","lastModifiedDate":"2023-09-12"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" File f \u003d new File(savePath);","lastModifiedDate":"2023-09-12"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" if (!f.exists()) {","lastModifiedDate":"2023-09-28"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoStorageException(\"No Storage Found\");","lastModifiedDate":"2023-09-28"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" Scanner sc \u003d null;","lastModifiedDate":"2023-09-12"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-12"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" sc \u003d new Scanner(f);","lastModifiedDate":"2023-09-12"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" String text;","lastModifiedDate":"2023-09-12"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" while (sc.hasNext()) {","lastModifiedDate":"2023-09-12"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" text \u003d sc.nextLine();","lastModifiedDate":"2023-09-12"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":" addTask(text);","lastModifiedDate":"2023-09-12"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":" return tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-12"},{"lineNumber":63,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoStorageException(\"May not happen\");","lastModifiedDate":"2023-09-28"},{"lineNumber":64,"author":{"gitId":"Propene-Dan"},"content":" } finally {","lastModifiedDate":"2023-09-12"},{"lineNumber":65,"author":{"gitId":"Propene-Dan"},"content":" if (sc !\u003d null) {","lastModifiedDate":"2023-09-28"},{"lineNumber":66,"author":{"gitId":"Propene-Dan"},"content":" sc.close();","lastModifiedDate":"2023-09-12"},{"lineNumber":67,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":68,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":69,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":70,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":71,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":72,"author":{"gitId":"Propene-Dan"},"content":" * translate the text into a Task and add it to the TaskList","lastModifiedDate":"2023-09-18"},{"lineNumber":73,"author":{"gitId":"Propene-Dan"},"content":" * @param text a task stored in the file","lastModifiedDate":"2023-09-18"},{"lineNumber":74,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoStorageException if the storage file is destroyed","lastModifiedDate":"2023-09-18"},{"lineNumber":75,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":76,"author":{"gitId":"Propene-Dan"},"content":" public void addTask(String text) throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":77,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":78,"author":{"gitId":"Propene-Dan"},"content":" String[] task \u003d text.split(\",\");","lastModifiedDate":"2023-09-12"},{"lineNumber":79,"author":{"gitId":"Propene-Dan"},"content":" Task t \u003d null;","lastModifiedDate":"2023-09-12"},{"lineNumber":80,"author":{"gitId":"Propene-Dan"},"content":" int isDone \u003d Integer.parseInt(task[2]);","lastModifiedDate":"2023-09-12"},{"lineNumber":81,"author":{"gitId":"Propene-Dan"},"content":" switch (task[0]) {","lastModifiedDate":"2023-09-12"},{"lineNumber":82,"author":{"gitId":"Propene-Dan"},"content":" case \"toDo\":","lastModifiedDate":"2023-09-12"},{"lineNumber":83,"author":{"gitId":"Propene-Dan"},"content":" t \u003d new ToDo(task[1], isDone);","lastModifiedDate":"2023-09-13"},{"lineNumber":84,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":85,"author":{"gitId":"Propene-Dan"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-12"},{"lineNumber":86,"author":{"gitId":"Propene-Dan"},"content":" t \u003d new Deadline(task[1], isDone, task[3]);","lastModifiedDate":"2023-09-13"},{"lineNumber":87,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":88,"author":{"gitId":"Propene-Dan"},"content":" case \"event\":","lastModifiedDate":"2023-09-12"},{"lineNumber":89,"author":{"gitId":"Propene-Dan"},"content":" t \u003d new Event(task[1], isDone, task[3], task[4]);","lastModifiedDate":"2023-09-13"},{"lineNumber":90,"author":{"gitId":"Propene-Dan"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":91,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":92,"author":{"gitId":"Propene-Dan"},"content":" tasks.add(t);","lastModifiedDate":"2023-09-12"},{"lineNumber":93,"author":{"gitId":"Propene-Dan"},"content":" } catch (IndexOutOfBoundsException | NumberFormatException | NullPointerException e) {","lastModifiedDate":"2023-09-13"},{"lineNumber":94,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoStorageException(\"Storage File Destroyed\");","lastModifiedDate":"2023-09-18"},{"lineNumber":95,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":96,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":97,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":98,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":99,"author":{"gitId":"Propene-Dan"},"content":" * save the data if there\u0027s a change","lastModifiedDate":"2023-09-18"},{"lineNumber":100,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList that may be modified","lastModifiedDate":"2023-09-18"},{"lineNumber":101,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":102,"author":{"gitId":"Propene-Dan"},"content":" public void checkChange(TaskList tasks) {","lastModifiedDate":"2023-09-12"},{"lineNumber":103,"author":{"gitId":"Propene-Dan"},"content":" if (tasks.storageChanged \u003d\u003d 1) {","lastModifiedDate":"2023-09-12"},{"lineNumber":104,"author":{"gitId":"Propene-Dan"},"content":" save();","lastModifiedDate":"2023-09-12"},{"lineNumber":105,"author":{"gitId":"Propene-Dan"},"content":" tasks.storageChanged \u003d 0;","lastModifiedDate":"2023-09-12"},{"lineNumber":106,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":107,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":108,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":109,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":110,"author":{"gitId":"Propene-Dan"},"content":" * save the data","lastModifiedDate":"2023-09-18"},{"lineNumber":111,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoException when write fails or close fails","lastModifiedDate":"2023-09-18"},{"lineNumber":112,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":113,"author":{"gitId":"Propene-Dan"},"content":" private void save() {","lastModifiedDate":"2023-09-18"},{"lineNumber":114,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-12"},{"lineNumber":115,"author":{"gitId":"Propene-Dan"},"content":" new File(savePath).delete();","lastModifiedDate":"2023-09-12"},{"lineNumber":116,"author":{"gitId":"Propene-Dan"},"content":" new File(savePath).createNewFile();","lastModifiedDate":"2023-09-12"},{"lineNumber":117,"author":{"gitId":"Propene-Dan"},"content":" writer \u003d new BufferedWriter(new FileWriter(savePath));","lastModifiedDate":"2023-09-12"},{"lineNumber":118,"author":{"gitId":"Propene-Dan"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-12"},{"lineNumber":119,"author":{"gitId":"Propene-Dan"},"content":" writer.write(tasks.get(i).saveToString() + \"\\n\");","lastModifiedDate":"2023-09-12"},{"lineNumber":120,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":121,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-12"},{"lineNumber":122,"author":{"gitId":"Propene-Dan"},"content":" // may not happen","lastModifiedDate":"2023-09-18"},{"lineNumber":123,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoException(\"write fails\");","lastModifiedDate":"2023-09-18"},{"lineNumber":124,"author":{"gitId":"Propene-Dan"},"content":" } finally {","lastModifiedDate":"2023-09-12"},{"lineNumber":125,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-12"},{"lineNumber":126,"author":{"gitId":"Propene-Dan"},"content":" writer.close();","lastModifiedDate":"2023-09-12"},{"lineNumber":127,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-12"},{"lineNumber":128,"author":{"gitId":"Propene-Dan"},"content":" // may not happen","lastModifiedDate":"2023-09-18"},{"lineNumber":129,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoException(\"close fails\");","lastModifiedDate":"2023-09-18"},{"lineNumber":130,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":131,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":132,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":133,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":133}},{"path":"src/main/java/veneto/task/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" /* fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" protected LocalDate deadline;","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" * create a new Deadline Task","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" * @param deadline the deadline of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" public Deadline(String description, String deadline) {","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" super(description);","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" this.deadline \u003d LocalDate.parse(deadline);","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" * create a new Deadline task from storage file","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" * @param mark if the task is marked","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" * @param deadline the deadline of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" public Deadline(String description, int mark, String deadline) {","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" super(description, mark !\u003d 0);","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" this.deadline \u003d LocalDate.parse(deadline);","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" * explanation of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" * @return return task details","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" return \"[D]\" + super.toString() +","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" \" (by: \" + deadline.format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"))+ \")\";","lastModifiedDate":"2023-09-10"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" * generate texts for storage","lastModifiedDate":"2023-09-18"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" * @return String of the task data","lastModifiedDate":"2023-09-18"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-10"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" public String saveToString() {","lastModifiedDate":"2023-09-10"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" return \"deadline,\" + super.saveToString() + \",\" + deadline;","lastModifiedDate":"2023-09-10"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Propene-Dan":51}},{"path":"src/main/java/veneto/task/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"public class Event extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" /* fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" protected LocalDate start;","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" protected LocalDate end;","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * create a new Event Task","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" * @param start the start time of the event","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" * @param end the end time of the event","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" public Event(String description, String start, String end) {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" super(description);","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" this.start \u003d LocalDate.parse(start);","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" this.end \u003d LocalDate.parse(end);","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" * create a new Event task from storage file","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" * @param mark if the task is marked","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" * @param start the start time of the event","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" * @param end the end time of the event","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" public Event(String description, int mark, String start, String end) {","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" super(description, mark !\u003d 0);","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" this.start \u003d LocalDate.parse(start);","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" this.end \u003d LocalDate.parse(end);","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" * explanation of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" * @return return task details","lastModifiedDate":"2023-09-18"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" return \"[E]\" + super.toString() +","lastModifiedDate":"2023-09-10"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" \" (from: \" + start.format(DateTimeFormatter.ofPattern(\"MMM d yyyy\")) +","lastModifiedDate":"2023-09-10"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" \" to: \" + end.format(DateTimeFormatter.ofPattern(\"MMM d yyyy\")) + \")\";","lastModifiedDate":"2023-09-10"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" * generate texts for storage","lastModifiedDate":"2023-09-18"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" * @return String of the task data","lastModifiedDate":"2023-09-18"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-10"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" public String saveToString() {","lastModifiedDate":"2023-09-10"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" return \"event,\" + super.saveToString() + \",\" + start + \",\" + end;","lastModifiedDate":"2023-09-10"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Propene-Dan":57}},{"path":"src/main/java/veneto/task/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoOperateException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"public class Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" /* fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" protected String description;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" protected boolean isDone;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * create a new Task","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" public Task(String description) {","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" this.description \u003d description;","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" * create a new task from storage file","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" * @param isDone the status of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" public Task(String description, boolean isDone) {","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" this.description \u003d description;","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" this.isDone \u003d isDone;","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" * mark or unmark the task","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" * @param funcId the function id","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" * @throws VenetoException if the mark operation is done before","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" public void mark(int funcId) throws VenetoException {","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" if (funcId \u003d\u003d 1) { /* to mark task */","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" markTask();","lastModifiedDate":"2023-09-29"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" } else { /* to unmark task */","lastModifiedDate":"2023-09-12"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" unmarkTask();","lastModifiedDate":"2023-09-29"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-29"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-29"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-29"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" private void unmarkTask() {","lastModifiedDate":"2023-09-29"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" if (isDone \u003d\u003d true) {","lastModifiedDate":"2023-09-03"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" isDone \u003d false;","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" } else { /* if the task is already unmarked */","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoOperateException(\"Unmarked\");","lastModifiedDate":"2023-09-18"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-29"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" private void markTask() {","lastModifiedDate":"2023-09-29"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" if (isDone \u003d\u003d false) {","lastModifiedDate":"2023-09-29"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" isDone \u003d true;","lastModifiedDate":"2023-09-29"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" } else { /* if the task is already marked */","lastModifiedDate":"2023-09-29"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" throw new VenetoOperateException(\"Marked\");","lastModifiedDate":"2023-09-29"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-29"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":" * @param keyword the target keyword","lastModifiedDate":"2023-09-18"},{"lineNumber":63,"author":{"gitId":"Propene-Dan"},"content":" * @return if the description of the task contains the keyword","lastModifiedDate":"2023-09-18"},{"lineNumber":64,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":65,"author":{"gitId":"Propene-Dan"},"content":" public boolean contains(String keyword) {","lastModifiedDate":"2023-09-18"},{"lineNumber":66,"author":{"gitId":"Propene-Dan"},"content":" return description.contains(keyword);","lastModifiedDate":"2023-09-18"},{"lineNumber":67,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":68,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":69,"author":{"gitId":"Propene-Dan"},"content":" // toString","lastModifiedDate":"2023-09-03"},{"lineNumber":70,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":71,"author":{"gitId":"Propene-Dan"},"content":" * explanation of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":72,"author":{"gitId":"Propene-Dan"},"content":" * @return return task details","lastModifiedDate":"2023-09-18"},{"lineNumber":73,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":74,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":75,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":76,"author":{"gitId":"Propene-Dan"},"content":" return getStatusIcon() + this.description;","lastModifiedDate":"2023-09-03"},{"lineNumber":77,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":78,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":79,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":80,"author":{"gitId":"Propene-Dan"},"content":" * generate texts for storage","lastModifiedDate":"2023-09-18"},{"lineNumber":81,"author":{"gitId":"Propene-Dan"},"content":" * @return String of the task data","lastModifiedDate":"2023-09-18"},{"lineNumber":82,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":83,"author":{"gitId":"Propene-Dan"},"content":" public String saveToString() {","lastModifiedDate":"2023-09-10"},{"lineNumber":84,"author":{"gitId":"Propene-Dan"},"content":" return this.description + \",\" + (isDone ? 1 : 0);","lastModifiedDate":"2023-09-10"},{"lineNumber":85,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":86,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":87,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":88,"author":{"gitId":"Propene-Dan"},"content":" * return the status icon of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":89,"author":{"gitId":"Propene-Dan"},"content":" * @return the status icon of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":90,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":91,"author":{"gitId":"Propene-Dan"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-09-18"},{"lineNumber":92,"author":{"gitId":"Propene-Dan"},"content":" return (isDone ? \"[V] \" : \"[ ] \"); // mark done task with V","lastModifiedDate":"2023-09-18"},{"lineNumber":93,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":94,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Propene-Dan":94}},{"path":"src/main/java/veneto/task/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-02"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"public class TaskList extends ArrayList\u003cTask\u003e {","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" * indicates if the storage is changed after a command operates","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" * will be modified when command operates.","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" public int storageChanged \u003d 0;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" * creates a new TaskList","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" public TaskList() {}","lastModifiedDate":"2023-09-12"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" * creates a new TaskList","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" * @param initialCapacity the initial capacity of the list","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" public TaskList(int initialCapacity) {","lastModifiedDate":"2023-09-12"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" super(initialCapacity);","lastModifiedDate":"2023-09-02"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-02"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" * the string representation of the list","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" * @return all tasks in the list","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-02"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-02"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" StringBuffer rt \u003d new StringBuffer();","lastModifiedDate":"2023-09-02"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" for (int i \u003d 0; i \u003c this.size(); i++) {","lastModifiedDate":"2023-09-02"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" rt.append(\" \" + (i+1) + \". \" + this.get(i).toString() + \"\\n\");","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-02"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" return rt.toString();","lastModifiedDate":"2023-09-02"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-02"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-02"}],"authorContributionMap":{"Propene-Dan":40}},{"path":"src/main/java/veneto/task/ToDo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":" /* Constructors */","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":" * create a new ToDo task","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":" * @param description the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" public ToDo(String description) {","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" super(description);","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" * create a new ToDo task from storage file","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" * @param des the description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" * @param mark if the task is marked","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" public ToDo(String des, int mark) {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" super(des, mark !\u003d 0);","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" * explanation of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" * @return return task details","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" * generate texts for storage","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" * @return String of the task data","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" @Override","lastModifiedDate":"2023-09-10"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" public String saveToString() {","lastModifiedDate":"2023-09-10"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" return \"toDo,\" + super.saveToString();","lastModifiedDate":"2023-09-10"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Propene-Dan":40}},{"path":"src/main/java/veneto/ui/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.ui;","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-28"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-28"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-28"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-28"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-28"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-28"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-28"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-28"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-28"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-28"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-28"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":"/**","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-28"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-28"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-28"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-28"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-28"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" private Label dialog;","lastModifiedDate":"2023-09-28"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-28"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-28"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" try {","lastModifiedDate":"2023-09-28"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-28"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-28"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-28"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-28"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-28"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-28"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-28"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-28"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-28"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-28"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-28"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" private void flip() {","lastModifiedDate":"2023-09-28"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-28"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-28"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-28"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-28"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-28"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" return new DialogBox(text, img);","lastModifiedDate":"2023-09-28"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-28"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-28"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" db.flip();","lastModifiedDate":"2023-09-28"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":" return db;","lastModifiedDate":"2023-09-28"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-28"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":63,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":63}},{"path":"src/main/java/veneto/ui/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.ui;","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-28"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-28"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-28"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-28"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-28"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-28"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"import veneto.Veneto;","lastModifiedDate":"2023-09-28"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"/**","lastModifiedDate":"2023-09-28"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-28"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-28"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-28"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-28"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-28"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-28"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" private Veneto veneto;","lastModifiedDate":"2023-09-28"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/User.png\"));","lastModifiedDate":"2023-09-28"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Veneto.png\"));","lastModifiedDate":"2023-09-28"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" public void initialize() {","lastModifiedDate":"2023-09-28"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-28"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" public void setUi(Veneto v) {","lastModifiedDate":"2023-09-28"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" this.veneto \u003d v;","lastModifiedDate":"2023-09-28"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-28"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-28"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-28"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-28"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" @FXML","lastModifiedDate":"2023-09-28"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-28"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-28"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" String response \u003d veneto.getResponse(input);","lastModifiedDate":"2023-09-28"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" boolean shouldExit \u003d false;","lastModifiedDate":"2023-09-29"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":" if (response.endsWith(Ui.EXIT_SUFFIX)) {","lastModifiedDate":"2023-09-29"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" response \u003d response.substring(0, response.length()-1);","lastModifiedDate":"2023-09-29"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" shouldExit \u003d true;","lastModifiedDate":"2023-09-29"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-29"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-28"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-28"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-28"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":" );","lastModifiedDate":"2023-09-28"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" if (shouldExit) {","lastModifiedDate":"2023-09-29"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" System.exit(0);","lastModifiedDate":"2023-09-29"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-29"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":" userInput.clear();","lastModifiedDate":"2023-09-28"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-28"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-28"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":62}},{"path":"src/main/java/veneto/ui/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.ui;","lastModifiedDate":"2023-09-14"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import veneto.command.*;","lastModifiedDate":"2023-09-14"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoOperateException;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"import veneto.exceptions.VenetoStorageException;","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"import veneto.parser.Parser;","lastModifiedDate":"2023-09-14"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"import veneto.task.TaskList;","lastModifiedDate":"2023-09-14"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"import java.util.Arrays;","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"public class Ui {","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" /* Fields */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" public final static String EXIT_SUFFIX \u003d \"0\";","lastModifiedDate":"2023-09-29"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" private final static String GREETS \u003d \"\\nVeneto: \\n\";","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" private final static String COMMANDS \u003d","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" \" toDo [TASK],\\n\" +","lastModifiedDate":"2023-09-29"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" \" deadline [TASK] /by [DEADLINE(YYYY-MM-DD)],\\n\" +","lastModifiedDate":"2023-09-29"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" \" event [TASK] /from [START_TIME(YYYY-MM-DD)] /to [END_TIME(YYYY-MM-DD)],\\n\" +","lastModifiedDate":"2023-09-29"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" \" mark [TASK_ID], \" + \"unmark [TASK_ID],\\n\" +","lastModifiedDate":"2023-09-29"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" \" find [KEYWORDS],\\n\" +","lastModifiedDate":"2023-09-29"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" \" list, \" + \"bye\";","lastModifiedDate":"2023-09-29"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" private final static String LOGO \u003d","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" \" ___ ___ __________ ___ ___ __________ __________ __________\\n\" +","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" \" \\\\ \\\\ / /| _______|| \\\\ | || _______||___ ___|| ____ |\\n\" +","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" \" \\\\ \\\\ / / | |_______ | \\\\| || |_______ | | | | | |\\n\" +","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" \" \\\\ \\\\/ / | _______|| || _______| | | | | | |\\n\" +","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" \" \\\\ / | |_______ | |\\\\ || |_______ | | | |____| |\\n\" +","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" \" \\\\__/ |__________||___| \\\\___||__________| |__| |__________| ...starts\\n\\n\";","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" private final static String INCORRECT_ERROR \u003d GREETS + \" ???\\n\";","lastModifiedDate":"2023-09-29"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" /* Methods */","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" * shows which exception occurs and give hint to the user","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" * @param e the DanException","lastModifiedDate":"2023-09-18"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" public String showError(VenetoException e) {","lastModifiedDate":"2023-09-28"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" if (e instanceof VenetoOperateException) {","lastModifiedDate":"2023-09-18"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":" return showOperationError(e);","lastModifiedDate":"2023-09-29"},{"lineNumber":41,"author":{"gitId":"Propene-Dan"},"content":" } else if (e instanceof VenetoStorageException) {","lastModifiedDate":"2023-09-29"},{"lineNumber":42,"author":{"gitId":"Propene-Dan"},"content":" return showStorageError(e);","lastModifiedDate":"2023-09-29"},{"lineNumber":43,"author":{"gitId":"Propene-Dan"},"content":" } else if (e.getMessage().equals(\"Invalid Command\")) {","lastModifiedDate":"2023-09-29"},{"lineNumber":44,"author":{"gitId":"Propene-Dan"},"content":" return showInvalidCommandError();","lastModifiedDate":"2023-09-29"},{"lineNumber":45,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-29"},{"lineNumber":46,"author":{"gitId":"Propene-Dan"},"content":" return INCORRECT_ERROR;","lastModifiedDate":"2023-09-29"},{"lineNumber":47,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-29"},{"lineNumber":48,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-29"},{"lineNumber":49,"author":{"gitId":"Propene-Dan"},"content":" private String showStorageError(VenetoException e) {","lastModifiedDate":"2023-09-29"},{"lineNumber":50,"author":{"gitId":"Propene-Dan"},"content":" if (e.getMessage().equals(\"Storage File Destroyed\")) {","lastModifiedDate":"2023-09-29"},{"lineNumber":51,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 没找到内存哦 现在重新创建一个!\\n\";","lastModifiedDate":"2023-09-29"},{"lineNumber":52,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-29"},{"lineNumber":53,"author":{"gitId":"Propene-Dan"},"content":" return INCORRECT_ERROR;","lastModifiedDate":"2023-09-29"},{"lineNumber":54,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-29"},{"lineNumber":55,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-29"},{"lineNumber":56,"author":{"gitId":"Propene-Dan"},"content":" private String showOperationError(VenetoException e) {","lastModifiedDate":"2023-09-29"},{"lineNumber":57,"author":{"gitId":"Propene-Dan"},"content":" switch (e.getMessage()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Propene-Dan"},"content":" case \"Unmarked\":","lastModifiedDate":"2023-09-13"},{"lineNumber":59,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 这个没标记过哦!\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":60,"author":{"gitId":"Propene-Dan"},"content":" case \"Marked\":","lastModifiedDate":"2023-09-13"},{"lineNumber":61,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 这个已经做完了哦!\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":62,"author":{"gitId":"Propene-Dan"},"content":" case \"Add\":","lastModifiedDate":"2023-09-13"},{"lineNumber":63,"author":{"gitId":"Propene-Dan"},"content":" return showInvalidCommandError();","lastModifiedDate":"2023-09-29"},{"lineNumber":64,"author":{"gitId":"Propene-Dan"},"content":" case \"Not Found\":","lastModifiedDate":"2023-09-18"},{"lineNumber":65,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 好像没有这样的任务要做哦\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":66,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Propene-Dan"},"content":" return INCORRECT_ERROR;","lastModifiedDate":"2023-09-29"},{"lineNumber":68,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":69,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-29"},{"lineNumber":70,"author":{"gitId":"Propene-Dan"},"content":" private String showInvalidCommandError() {","lastModifiedDate":"2023-09-29"},{"lineNumber":71,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 输入格式不对!\" + \" 你可以跟我说:\\n\" + COMMANDS + \"\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":72,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":73,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":74,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":75,"author":{"gitId":"Propene-Dan"},"content":" * give responses to user after they call commands","lastModifiedDate":"2023-09-18"},{"lineNumber":76,"author":{"gitId":"Propene-Dan"},"content":" * @param command the Command operated just now","lastModifiedDate":"2023-09-18"},{"lineNumber":77,"author":{"gitId":"Propene-Dan"},"content":" * @param tasks the TaskList of Veneto","lastModifiedDate":"2023-09-18"},{"lineNumber":78,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":79,"author":{"gitId":"Propene-Dan"},"content":" public String afterCommand(Command command, TaskList tasks) {","lastModifiedDate":"2023-09-28"},{"lineNumber":80,"author":{"gitId":"Propene-Dan"},"content":" switch (command.getType()) {","lastModifiedDate":"2023-09-18"},{"lineNumber":81,"author":{"gitId":"Propene-Dan"},"content":" case \"exit\":","lastModifiedDate":"2023-09-13"},{"lineNumber":82,"author":{"gitId":"Propene-Dan"},"content":" return goodbye();","lastModifiedDate":"2023-09-28"},{"lineNumber":83,"author":{"gitId":"Propene-Dan"},"content":" case \"add\":","lastModifiedDate":"2023-09-12"},{"lineNumber":84,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 记下来了:\\n \" + command +","lastModifiedDate":"2023-09-28"},{"lineNumber":85,"author":{"gitId":"Propene-Dan"},"content":" \"!\\n 现在有\" + tasks.size() + \"项任务要做\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":86,"author":{"gitId":"Propene-Dan"},"content":" case \"list\":","lastModifiedDate":"2023-09-12"},{"lineNumber":87,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 还有这些要做哦!\\n\" + tasks.toString();","lastModifiedDate":"2023-09-28"},{"lineNumber":88,"author":{"gitId":"Propene-Dan"},"content":" case \"mark\":","lastModifiedDate":"2023-09-12"},{"lineNumber":89,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 我这就帮您标记好!\\n \" + command + \"\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":90,"author":{"gitId":"Propene-Dan"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-12"},{"lineNumber":91,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 啊 没关系 帮您擦掉标记了哦\" + \"\\n \" + command + \"\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":92,"author":{"gitId":"Propene-Dan"},"content":" case \"delete\":","lastModifiedDate":"2023-09-13"},{"lineNumber":93,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 好啦,帮你擦掉了一条任务哦:\\n \" + command +","lastModifiedDate":"2023-09-28"},{"lineNumber":94,"author":{"gitId":"Propene-Dan"},"content":" \"\\n 现在还剩下\" + tasks.size() + \"项任务\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":95,"author":{"gitId":"Propene-Dan"},"content":" case \"find\":","lastModifiedDate":"2023-09-18"},{"lineNumber":96,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 相关的任务都在这里了哦:\\n\" + command;","lastModifiedDate":"2023-09-28"},{"lineNumber":97,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":98,"author":{"gitId":"Propene-Dan"},"content":" return \"Parser error\";","lastModifiedDate":"2023-09-28"},{"lineNumber":99,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":100,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":101,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":102,"author":{"gitId":"Propene-Dan"},"content":" * get input from user","lastModifiedDate":"2023-09-18"},{"lineNumber":103,"author":{"gitId":"Propene-Dan"},"content":" * @return the command translated from user input","lastModifiedDate":"2023-09-18"},{"lineNumber":104,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":105,"author":{"gitId":"Propene-Dan"},"content":" public Command getCommand(String input) {","lastModifiedDate":"2023-09-28"},{"lineNumber":106,"author":{"gitId":"Propene-Dan"},"content":" return Parser.translateCommand(input);","lastModifiedDate":"2023-09-28"},{"lineNumber":107,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":108,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":109,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":110,"author":{"gitId":"Propene-Dan"},"content":" * greets when Veneto runs","lastModifiedDate":"2023-09-18"},{"lineNumber":111,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":112,"author":{"gitId":"Propene-Dan"},"content":" public String hello() {","lastModifiedDate":"2023-09-28"},{"lineNumber":113,"author":{"gitId":"Propene-Dan"},"content":" return LOGO + GREETS +","lastModifiedDate":"2023-09-29"},{"lineNumber":114,"author":{"gitId":"Propene-Dan"},"content":" \" Veneto为您服务哦\\n\" +","lastModifiedDate":"2023-09-28"},{"lineNumber":115,"author":{"gitId":"Propene-Dan"},"content":" \" 有什么可以要帮忙可以跟我说!\\n\";","lastModifiedDate":"2023-09-28"},{"lineNumber":116,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":117,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":118,"author":{"gitId":"Propene-Dan"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":119,"author":{"gitId":"Propene-Dan"},"content":" * says goodbye when session ends","lastModifiedDate":"2023-09-18"},{"lineNumber":120,"author":{"gitId":"Propene-Dan"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":121,"author":{"gitId":"Propene-Dan"},"content":" public String goodbye() {","lastModifiedDate":"2023-09-28"},{"lineNumber":122,"author":{"gitId":"Propene-Dan"},"content":" return GREETS + \" 拜拜啦 下次见\\n\" + EXIT_SUFFIX;","lastModifiedDate":"2023-09-29"},{"lineNumber":123,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":124,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-12"}],"authorContributionMap":{"Propene-Dan":124}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":16}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-28"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/20.0.1\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"veneto.ui.MainWindow\"\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"324.0\" AnchorPane.bottomAnchor\u003d\"1.0\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" \u003cButton fx:id\u003d\"sendButton\" alignment\u003d\"CENTER\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" style\u003d\"-fx-background-color: #b6ff8c;\" text\u003d\"Send\" textAlignment\u003d\"CENTER\"\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" \u003cFont size\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" \u003c/font\u003e\u003c/Button\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"552.0\" prefWidth\u003d\"388.0\" /\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-28"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-28"}],"authorContributionMap":{"Propene-Dan":23}},{"path":"src/test/java/veneto/VenetoTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"public class VenetoTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" public void dummyTest(){","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(2, 2);","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" public void anotherDummyTest(){","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(4, 4);","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":21}},{"path":"src/test/java/veneto/command/AddCommandTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class AddCommandTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void op() {","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void getType() {","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":20}},{"path":"src/test/java/veneto/command/DeleteCommandTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class DeleteCommandTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void op() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":20}},{"path":"src/test/java/veneto/command/FindCommandTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class FindCommandTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void op() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void getType() {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":20}},{"path":"src/test/java/veneto/command/MarkCommandTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.command;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class MarkCommandTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void op() {","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void getType() {","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":20}},{"path":"src/test/java/veneto/parser/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.parser;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class ParserTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void translateCommand() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":12}},{"path":"src/test/java/veneto/storage/StorageTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.storage;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class StorageTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void init() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void load() {","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void addTask() {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" void checkChange() {","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":24}},{"path":"src/test/java/veneto/task/DeadlineTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class DeadlineTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void saveToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":16}},{"path":"src/test/java/veneto/task/EventTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class EventTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void toString_toDoWithDescriptionOnly_unmarkedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" \"[E][ ] a (from: Sep 10 2019 to: Sep 11 2019)\",","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" new Event(\"a\", \"2019-09-10\", \"2019-09-11\").toString()","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" );","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void toString_toDoWithDescriptionAndStatus_markedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" \"[E][V] a (from: Sep 10 2019 to: Sep 11 2019)\",","lastModifiedDate":"2023-09-15"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" new Event(\"a\", 1, \"2019-09-10\", \"2019-09-11\").toString()","lastModifiedDate":"2023-09-15"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" );","lastModifiedDate":"2023-09-15"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" void saveToString_toDoWithDescriptionOnly_unmarkedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(","lastModifiedDate":"2023-09-15"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":" \"event,a,0,2019-09-10,2019-09-11\",","lastModifiedDate":"2023-09-15"},{"lineNumber":29,"author":{"gitId":"Propene-Dan"},"content":" new Event(\"a\", \"2019-09-10\", \"2019-09-11\").saveToString()","lastModifiedDate":"2023-09-15"},{"lineNumber":30,"author":{"gitId":"Propene-Dan"},"content":" );","lastModifiedDate":"2023-09-15"},{"lineNumber":31,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":32,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":33,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":34,"author":{"gitId":"Propene-Dan"},"content":" void saveToString_toDoWithDescriptionAndStatus_markedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":35,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(","lastModifiedDate":"2023-09-15"},{"lineNumber":36,"author":{"gitId":"Propene-Dan"},"content":" \"event,a,1,2019-09-10,2019-09-11\",","lastModifiedDate":"2023-09-15"},{"lineNumber":37,"author":{"gitId":"Propene-Dan"},"content":" new Event(\"a\", 1, \"2019-09-10\", \"2019-09-11\").saveToString()","lastModifiedDate":"2023-09-15"},{"lineNumber":38,"author":{"gitId":"Propene-Dan"},"content":" );","lastModifiedDate":"2023-09-15"},{"lineNumber":39,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":40,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":40}},{"path":"src/test/java/veneto/task/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class TaskListTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":12}},{"path":"src/test/java/veneto/task/TaskTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-18"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class TaskTest {","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void mark() {","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" void contains() {","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" void testToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" void saveToString() {","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" void getStatusIcon() {","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-18"}],"authorContributionMap":{"Propene-Dan":28}},{"path":"src/test/java/veneto/task/ToDoTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.task;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"class ToDoTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":" void toString_toDoWithDescriptionOnly_unmarkedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(\"[T][ ] a\", new ToDo(\"a\").toString());","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":" void toString_toDoWithDescriptionAndStatus_markedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(\"[T][V] a\", new ToDo(\"a\", 1).toString());","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" void saveToString_toDoWithDescriptionOnly_unmarkedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(\"toDo,a,0\", new ToDo(\"a\").saveToString());","lastModifiedDate":"2023-09-15"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":24,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":25,"author":{"gitId":"Propene-Dan"},"content":" void saveToString_toDoWithDescriptionAndStatus_markedToDo() {","lastModifiedDate":"2023-09-15"},{"lineNumber":26,"author":{"gitId":"Propene-Dan"},"content":" assertEquals(\"toDo,a,1\", new ToDo(\"a\", 1).saveToString());","lastModifiedDate":"2023-09-15"},{"lineNumber":27,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":28,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":28}},{"path":"src/test/java/veneto/ui/UiTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"package veneto.ui;","lastModifiedDate":"2023-09-15"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-15"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"class UiTest {","lastModifiedDate":"2023-09-15"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"// @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"// void showError_unmarkedOperateException_writtenCorrectly() {","lastModifiedDate":"2023-09-15"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"// assertEquals(\"\\nVeneto: \\n 这个没标记过哦!\\n\", Ui.showError(new DanOperateException(\"Unmarked\")));","lastModifiedDate":"2023-09-15"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"// }","lastModifiedDate":"2023-09-15"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":12,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":13,"author":{"gitId":"Propene-Dan"},"content":" void afterCommand() {","lastModifiedDate":"2023-09-15"},{"lineNumber":14,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":15,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":16,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":17,"author":{"gitId":"Propene-Dan"},"content":" void getCommand() {","lastModifiedDate":"2023-09-15"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":19,"author":{"gitId":"Propene-Dan"},"content":"","lastModifiedDate":"2023-09-15"},{"lineNumber":20,"author":{"gitId":"Propene-Dan"},"content":" @Test","lastModifiedDate":"2023-09-15"},{"lineNumber":21,"author":{"gitId":"Propene-Dan"},"content":" void goodbye() {","lastModifiedDate":"2023-09-15"},{"lineNumber":22,"author":{"gitId":"Propene-Dan"},"content":" }","lastModifiedDate":"2023-09-15"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":"}","lastModifiedDate":"2023-09-15"}],"authorContributionMap":{"Propene-Dan":23}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Propene-Dan"},"content":"todo borrow book","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Propene-Dan"},"content":"deadline return book /by 2019-08-10","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"Propene-Dan"},"content":"event project meeting /from 2020-05-09 /to 2020-05-10","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"Propene-Dan"},"content":"list","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"Propene-Dan"},"content":"mark 1","lastModifiedDate":"2023-09-08"},{"lineNumber":6,"author":{"gitId":"Propene-Dan"},"content":"mark 3","lastModifiedDate":"2023-09-08"},{"lineNumber":7,"author":{"gitId":"Propene-Dan"},"content":"unmark 3","lastModifiedDate":"2023-09-08"},{"lineNumber":8,"author":{"gitId":"Propene-Dan"},"content":"unmark 2","lastModifiedDate":"2023-09-08"},{"lineNumber":9,"author":{"gitId":"Propene-Dan"},"content":"list","lastModifiedDate":"2023-09-08"},{"lineNumber":10,"author":{"gitId":"Propene-Dan"},"content":"delete 3","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Propene-Dan"},"content":"Bye","lastModifiedDate":"2023-09-08"}],"authorContributionMap":{"Propene-Dan":11}},{"path":"text-ui-test/runtest.bat","fileType":"bat","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@ECHO OFF","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"REM create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if not exist ..\\bin mkdir ..\\bin","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"REM delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"if exist ACTUAL.TXT del ACTUAL.TXT","lastModifiedDate":"2020-08-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"REM compile the code into the bin folder","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"javac -cp ..\\src\\main\\java -Xlint:none -d ..\\bin ..\\src\\main\\java\\*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"IF ERRORLEVEL 1 (","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" echo ********** BUILD FAILURE **********","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" exit /b 1","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"REM no error here, errorlevel \u003d\u003d 0","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"REM run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"Propene-Dan"},"content":"java -classpath ..\\bin veneto.Veneto \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"REM compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"FC ACTUAL.TXT EXPECTED.TXT","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":20,"Propene-Dan":1}},{"path":"text-ui-test/runtest.sh","fileType":"sh","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"#!/usr/bin/env bash","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"# create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if [ ! -d \"../bin\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":" mkdir ../bin","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"# delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"if [ -e \"./ACTUAL.TXT\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" rm ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"# compile the code into the bin folder, terminates if error occurred","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"if ! javac -cp ../src/main/java -Xlint:none -d ../bin ../src/main/java/*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" echo \"********** BUILD FAILURE **********\"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"# run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"Propene-Dan"},"content":"java -classpath ../bin Dan \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-09-08"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":"# convert to UNIX format","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"cp EXPECTED.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":"dos2unix ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"# compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"diff ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"if [ $? -eq 0 ]","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" echo \"Test result: PASSED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" exit 0","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"else","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" echo \"Test result: FAILED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":37,"Propene-Dan":1}}] diff --git a/Propene-Dan_ip_master/commits.json b/Propene-Dan_ip_master/commits.json index 4beb7024..a4b2681e 100644 --- a/Propene-Dan_ip_master/commits.json +++ b/Propene-Dan_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"Propene-Dan":[{"date":"2023-09-02","commitResults":[{"hash":"d70a89cea2ae6cd8c2d8e68d5071177e1c2f009f","isMergeCommit":false,"messageTitle":"add level-0","messageBody":"","tags":["level-0"],"fileTypesAndContributionMap":{"java":{"insertions":21,"deletions":10},"bat":{"insertions":1,"deletions":1},"md":{"insertions":2,"deletions":2}}},{"hash":"fb563f92e23aec2088bb5857358079e46b57a680","isMergeCommit":false,"messageTitle":"added Level 1","messageBody":"","tags":["level-1"],"fileTypesAndContributionMap":{"java":{"insertions":12,"deletions":1}}},{"hash":"73ab9678b52ec2961c9a1df227f01896a18602a0","isMergeCommit":false,"messageTitle":"add MyList.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":0}}},{"hash":"6fabf95ece8ef533f7f1b4bea73421b5aa2bec49","isMergeCommit":false,"messageTitle":"added level 2","messageBody":"","tags":["level-2"],"fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":5}}}]},{"date":"2023-09-03","commitResults":[{"hash":"ab634e92011b91b83a27ece8d56811be7e2a669c","isMergeCommit":false,"messageTitle":"add Task.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":42,"deletions":0}}},{"hash":"0443851e1563e408f587b316d0b82320f6e5ea5e","isMergeCommit":false,"messageTitle":"changing MyList to a Task List","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":2}}},{"hash":"03e576de5bcce80a6071d2eb13b4d088969c3767","isMergeCommit":false,"messageTitle":"added level 3","messageBody":"","tags":["level-3"],"fileTypesAndContributionMap":{"java":{"insertions":44,"deletions":13}}},{"hash":"2dddc561c647b2025cd547e8481f9d398e978b3a","isMergeCommit":false,"messageTitle":"add Deadline.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":0}}},{"hash":"da7ab38b77a1cd7e010a0bda6264ac1351f8ca04","isMergeCommit":false,"messageTitle":"add Event.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":22,"deletions":0}}},{"hash":"0d3fb8f8b997afbb025276467a91e703dc246752","isMergeCommit":false,"messageTitle":"add toDo.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":16,"deletions":0}}},{"hash":"71a526c41b657acd720921d0a73c10a1dfcb16f8","isMergeCommit":false,"messageTitle":"add some comments to Task.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":14,"deletions":16}}},{"hash":"32d61ff9d6bde2f2f01acefd7f7d6fd8a6786d84","isMergeCommit":false,"messageTitle":"modified MyList.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"c2dd4b66755ab1f3a71a2466e3d89e1e72dab5cb","isMergeCommit":false,"messageTitle":"added level 4","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":38,"deletions":7}}}]},{"date":"2023-09-08","commitResults":[{"hash":"7bb853f6e593edb855607da70918ace4a66ec838","isMergeCommit":false,"messageTitle":"bug fixed","messageBody":"","tags":["level-4"],"fileTypesAndContributionMap":{"txt":{"insertions":21,"deletions":0},"java":{"insertions":74,"deletions":40},"sh":{"insertions":1,"deletions":1}}},{"hash":"946a4200edbc51b45fc7729893e3ee19570eaec3","isMergeCommit":false,"messageTitle":"added DanException","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":0}}},{"hash":"f3c38a1cbda21b8bf2d3f811bfcd64d778d9668d","isMergeCommit":false,"messageTitle":"add level 5","messageBody":"","tags":["level-5"],"fileTypesAndContributionMap":{"java":{"insertions":29,"deletions":12}}},{"hash":"af19be18d1bedc96756451c88f083c0bbb2c3c9f","isMergeCommit":false,"messageTitle":"added level 6","messageBody":"","tags":["level-6"],"fileTypesAndContributionMap":{"java":{"insertions":49,"deletions":37}}},{"hash":"6e02da2cdb4c5e26c8a00a0a480841df63c8038e","isMergeCommit":false,"messageTitle":"used enums","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":4}}}]},{"date":"2023-09-09","commitResults":[{"hash":"83987f897b0ac0fb3ea8b56671fac2f3f88fd324","isMergeCommit":false,"messageTitle":"bug fixed after using enums","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":3,"deletions":3}}},{"hash":"6940826138bd42f379e5d5c3aa4a83739327b41d","isMergeCommit":false,"messageTitle":"input.txt modified","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":11}}}]},{"date":"2023-09-10","commitResults":[{"hash":"fe6a5b7f7889c8292756de0b61e0cecad7580336","isMergeCommit":false,"messageTitle":"updated deadline.java with functions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":0}}},{"hash":"9de4371fe2efadab256d0479e36ef8e8d44cb776","isMergeCommit":false,"messageTitle":"updated event.java with funcs","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":0}}},{"hash":"610f3fe9de498517486c185a43429418bba727d0","isMergeCommit":false,"messageTitle":"updated task.java with funcs","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":0}}},{"hash":"31194bfddb30f9c6607813a73be886c49ed61168","isMergeCommit":false,"messageTitle":"updated todo.java with functions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":0}}},{"hash":"12dd5152bf596efb21ede76e30a1debddabe7586","isMergeCommit":false,"messageTitle":"updated test-ui-test","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1}}},{"hash":"886b3f96bddba35372feb80d5ab237f803d3f594","isMergeCommit":false,"messageTitle":"add level 7","messageBody":"","tags":["level-7"],"fileTypesAndContributionMap":{"java":{"insertions":109,"deletions":43}}},{"hash":"a2d3388f94e1cb683016dcd2851ca424c8986ca5","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-7\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"41fec5f86c3e37de696f5ca7edeb00221d14c553","isMergeCommit":false,"messageTitle":"change field deadline into type \"LocalDate\"","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":5}}},{"hash":"5e9ba09916b4149d5de0368d9c96b9f5072b1b89","isMergeCommit":false,"messageTitle":"change field \"start\", \"end\" into type \"LocalDate\"","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":7}}},{"hash":"9f6fd7614ae8a37074d8c007cd0fbfc638c8c6a6","isMergeCommit":false,"messageTitle":"added level-8","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":5}}},{"hash":"cf1d3ca8b015d593a2d09b86deb174fad876fb36","isMergeCommit":false,"messageTitle":"bugs fixed","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":5,"deletions":4}}},{"hash":"27ad786c4bb396d58761a4c8ab03dda117481335","isMergeCommit":false,"messageTitle":"updated input.txt","messageBody":"","tags":["level-8"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":3}}},{"hash":"1006fc69ff1d6c499643de4dda899be17f9643f5","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-8\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-12","commitResults":[{"hash":"d31bda62c34bb481f52db8cdaaa9883f99182172","isMergeCommit":false,"messageTitle":"added AddCommand.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":52,"deletions":0}}},{"hash":"7758e659cfa4852714e57457783d9f3896836873","isMergeCommit":false,"messageTitle":"renamed MyTask.java -\u003e TaskList.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":3}}},{"hash":"f898eca9f5a7e38b9bd8bdcab8035c00e718da13","isMergeCommit":false,"messageTitle":"added ListCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":22,"deletions":0}}},{"hash":"4cb7eeb55af2b7898c2e4386186be0999e790a57","isMergeCommit":false,"messageTitle":"added ExitCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":22,"deletions":0}}},{"hash":"39bad219c667eb1c3f28d252efffc286e8aa306d","isMergeCommit":false,"messageTitle":"added Command.java as abstract class","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":0}}},{"hash":"e244086e2d691bc2d950e0bb20580d3b518dc9d6","isMergeCommit":false,"messageTitle":"make package dan/task","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":4}}},{"hash":"4b37e32aa1642debc8eda85e1189819785529933","isMergeCommit":false,"messageTitle":"mk package dan.exception","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":0}}},{"hash":"972ffc3fb1066760e62723834a48a381953fa23b","isMergeCommit":false,"messageTitle":"added toString() to AddCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":2}}},{"hash":"a0857e9878dbbd84eb2ea1471a6ccb284ffa40fc","isMergeCommit":false,"messageTitle":"added toString to DeleteCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":37,"deletions":0}}},{"hash":"353e7faa6696a1de83a7ffb24501a5e3cb4640bc","isMergeCommit":false,"messageTitle":"added MarkCommand.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":45,"deletions":0}}},{"hash":"2df0253dc1a1d3b09dd55226a11ee9aed59dc4b6","isMergeCommit":false,"messageTitle":"fixed bugs after packaging DanException","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":7}}},{"hash":"61f1ef8cbf978a5cd0ef4c4853e52287245eead4","isMergeCommit":false,"messageTitle":"added Storage.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":88,"deletions":0}}},{"hash":"491f621b1bcbfdc208d6c76658b5dea438fd59b9","isMergeCommit":false,"messageTitle":"replaced DanException.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":0}}},{"hash":"e76b22563cd151d8f43d6c7b5ed63ecdf4593ef9","isMergeCommit":false,"messageTitle":"added Ui.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":107,"deletions":0}}},{"hash":"7bc4e608267bf244186ee692524b81dbec6692ea","isMergeCommit":false,"messageTitle":"added Parser.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":0}}},{"hash":"e13c03502215ee6ce4e560b0ad059861a8ab67fd","isMergeCommit":false,"messageTitle":"added A-OOP","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":31,"deletions":220}}}]},{"date":"2023-09-13","commitResults":[{"hash":"103664151ab3b36bb760f57546e85621764f785d","isMergeCommit":false,"messageTitle":"created DanOperateException","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":0}}},{"hash":"6a3d9e09d8e69437ec28fb136c0147d2c6385b01","isMergeCommit":false,"messageTitle":"created DanStorageException","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":0}}},{"hash":"3eca81e5c820e9ffce5f2210482e25cd10f79dc2","isMergeCommit":false,"messageTitle":"Fixed Bugs after adding more Exceptions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":18}}},{"hash":"40de3b011560eb9a512bba25bbbc07a0c4a307e9","isMergeCommit":false,"messageTitle":"fixed bugs in task.java after added more Exceptions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":3,"deletions":2}}},{"hash":"a75bed86dd7ee11673e9f8d47499734a956353bd","isMergeCommit":false,"messageTitle":"modified showError()","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":40,"deletions":14}}},{"hash":"a8b6457c21d018e2b3811898d8e95b99cd1f6706","isMergeCommit":false,"messageTitle":"fixed bugs in Add command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":30,"deletions":24}}},{"hash":"43420cbe953fcce6e62978001ea5e0fc0db4a825","isMergeCommit":false,"messageTitle":"added A-OOP","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{"java":{"insertions":12,"deletions":8}}},{"hash":"e49cf6a17c9a02aaa3456c0707e923e033667959","isMergeCommit":true,"messageTitle":"Merge tag \u0027A-MoreOOP\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"67e4213ef0b6b8dc741206b51e9f8895b91551a6","isMergeCommit":false,"messageTitle":"added A-Packages","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":0}}},{"hash":"86da9bb38d164ac78de59be36c3265bab1c77e66","isMergeCommit":true,"messageTitle":"Merge tag \u0027A-Packages\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"959ecd68127dfe033a5ad933cd9aad3090c01288","isMergeCommit":false,"messageTitle":"Added Parser.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":61,"deletions":0}}},{"hash":"4910fd1bbffb1fe5b4f126065f08d88848bbe477","isMergeCommit":false,"messageTitle":"apply parser in ui","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":22}}},{"hash":"d1467026a4b96fa56a12b9c46dd2f74086b2c091","isMergeCommit":false,"messageTitle":"modified AddCommand to apply Parser","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":29}}},{"hash":"5675ef8df81f349f5481520233c1384aac3e2cf2","isMergeCommit":false,"messageTitle":"modified Command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"fedbd573b0cba6f02b540c6c737b04ed7e701365","isMergeCommit":false,"messageTitle":"modified Delete","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":5}}},{"hash":"8abb3315455f39ebd876f56f77ca92f8b2fe6f59","isMergeCommit":false,"messageTitle":"modified Exit","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":2}}},{"hash":"cd198b99d9a7599edc1f457017ce846e9faad0e3","isMergeCommit":false,"messageTitle":"Modified List","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":2}}},{"hash":"467d5215dd5ce0dff41d352e8801ed2d8675db0b","isMergeCommit":false,"messageTitle":"Modified Mark","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":5}}},{"hash":"22c6628eca808097ff5ae9823331f11b76bde99b","isMergeCommit":false,"messageTitle":"added to package","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":0}}},{"hash":"4311adbc59daa23b35ea097042ffd4f2f3dd9a6e","isMergeCommit":false,"messageTitle":"bugs fixed After added packages","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":0}}},{"hash":"b38037f9d79f94b78c55ec3f42481c0deba2871c","isMergeCommit":true,"messageTitle":"Merge commit \u0027ed6d4d25bd4e34461919ffe785a6f10f4c087552\u0027","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-14","commitResults":[{"hash":"89fb8e762b83319147d9f00e8a9ee21ffe9a883a","isMergeCommit":false,"messageTitle":"renamed to Veneto","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":0}}},{"hash":"c57515b710ed038473709eca78bc5ddddf9ac9a1","isMergeCommit":false,"messageTitle":"Further renamed to Veneto","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":55,"deletions":66},"bat":{"insertions":1,"deletions":1},"md":{"insertions":9,"deletions":7}}}]},{"date":"2023-09-15","commitResults":[{"hash":"8e017d736db73d06eb9497f9b2e6e0c0f021040c","isMergeCommit":false,"messageTitle":"change showError static","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"e86be9c6d7ac84b012da44bc81d5472d21f66436","isMergeCommit":false,"messageTitle":"added ToDOTest","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":28,"deletions":0}}},{"hash":"ee5e6c421e2099f23aa1a9f20d8490221d785f8a","isMergeCommit":false,"messageTitle":"Added EventTest","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":40,"deletions":0}}},{"hash":"6de1fc4b232e61cc16ab797ad1d4bc136dd4094e","isMergeCommit":false,"messageTitle":"added UiTest","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":26,"deletions":0}}},{"hash":"6b974b9593ee275bc73899c2b50e9d0d33024fd6","isMergeCommit":false,"messageTitle":"Added AddCommandTest(Will be filled later)","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":0}}},{"hash":"c7aa0b622d25574c224dc6baa2b8f0fcf2e797f7","isMergeCommit":false,"messageTitle":"Added MarkCommandTest(Will be filled later)","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":0}}},{"hash":"ffc71e8666e9c7b147d509478335f608253b47ac","isMergeCommit":false,"messageTitle":"Added VenetoTest(Will be filled later)","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{"java":{"insertions":21,"deletions":0}}},{"hash":"34a9d61a9a1002d34501e452c04b2c25b132755d","isMergeCommit":true,"messageTitle":"Merge tag \u0027A-JUnit\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-16","commitResults":[{"hash":"d4ddabaa672458baee838715520f91323840f9b2","isMergeCommit":false,"messageTitle":"put Veneto.java to package veneto","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":4,"deletions":2},"java":{"insertions":2,"deletions":0},"bat":{"insertions":1,"deletions":1},"md":{"insertions":1,"deletions":1}}},{"hash":"c89265cf7922f3650156c35d1ee162b44fac4b0a","isMergeCommit":false,"messageTitle":"rename constants to ALL_CAPITAL","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{"java":{"insertions":21,"deletions":32}}},{"hash":"e220b59ec96986fdeeec2bd8ece2bb8307fd0915","isMergeCommit":true,"messageTitle":"Merge tag \u0027A-Jar\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-18","commitResults":[{"hash":"327b91a27af2ba643a51905a47c98cf4b383be9a","isMergeCommit":false,"messageTitle":"renamed DanException to VenetoException","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":33,"deletions":25}}},{"hash":"b49ec01fdb727a99852bd6c907d4bb4cfb474113","isMergeCommit":false,"messageTitle":"add JavaDoc to Veneto.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":9}}},{"hash":"b3cbbe2b2a4ad260737d1a610c7002520a1cf91e","isMergeCommit":false,"messageTitle":"add JavaDoc to AddCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":7}}},{"hash":"58e2c30ea6d4704edb80b8278d9791815d65d725","isMergeCommit":false,"messageTitle":"add JavaDoc to Command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":1}}},{"hash":"8275eb4611b02ac6a73a73733c2e0d40cf6b1267","isMergeCommit":false,"messageTitle":"add JavaDoc to DeleteCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":3}}},{"hash":"ff53235928fb61612babb360555f932dee2825dd","isMergeCommit":false,"messageTitle":"add JavaDoc to ExitCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":3}}},{"hash":"0e728ce0d8063fe80c15b0fd3fef87f0ee0b530c","isMergeCommit":false,"messageTitle":"add JavaDoc to ListCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":3}}},{"hash":"70b6d003d6440fe3848f9307ee7e7934ce073636","isMergeCommit":false,"messageTitle":"add JavaDoc to MarkCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":15,"deletions":5}}},{"hash":"f97962dd5948594ce45856733ae1ab849f1eefe1","isMergeCommit":false,"messageTitle":"add JavaDoc to Parser","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":16,"deletions":5}}},{"hash":"528051be9cd05cad6ead8fc4429292fbdc58e7d2","isMergeCommit":false,"messageTitle":"add JavaDoc to Storage","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":44,"deletions":13}}},{"hash":"235bcb678764e7de27e4e6bfb58484c653fb9738","isMergeCommit":false,"messageTitle":"add JavaDoc to Deadline","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":30,"deletions":12}}},{"hash":"2788070cfa345c767ec0cb97296ad4ded68960e2","isMergeCommit":false,"messageTitle":"add JavaDoc to Event","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":34,"deletions":14}}},{"hash":"7ba81c4c6f8017ff5c238aeb88dd07d032d325c4","isMergeCommit":false,"messageTitle":"add JavaDoc to Task","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":47,"deletions":19}}},{"hash":"2028dccc8b2256cb3f380a01aae951aba16ce1df","isMergeCommit":false,"messageTitle":"add JavaDoc to TaskList","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":19,"deletions":4}}},{"hash":"211d3cc868341dcc673a69297193dde0fb073656","isMergeCommit":false,"messageTitle":"add JavaDoc to ToDo","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":12}}},{"hash":"7a7758e84dd79176f21c2b871c35c4f8010dfbd3","isMergeCommit":false,"messageTitle":"add JavaDoc to Ui","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":43,"deletions":13}}},{"hash":"39eb73af692598c754ccc808690741feb9e11a14","isMergeCommit":false,"messageTitle":"Modified UiTest","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":3}}},{"hash":"1de9d9519f9f9a3422f53fe368ba5beaf4536ad1","isMergeCommit":false,"messageTitle":"fixed bugs after renameing DanExceptions to VenetoExceptions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":31,"deletions":31}}},{"hash":"17deebc6ea5840091ca42fae480c6192d4a1adbb","isMergeCommit":false,"messageTitle":"added FindCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":63,"deletions":0}}},{"hash":"a961434421c78d925db60caaaabf8ee9d84b674d","isMergeCommit":false,"messageTitle":"modified Task to support FindCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":0}}},{"hash":"b423a977f2ed8915e5503bb9677b905022526d58","isMergeCommit":false,"messageTitle":"modified Parser to support FindCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":0}}},{"hash":"f3d5e2c31be5c9a99b95d131d55871ecdf0b82ef","isMergeCommit":false,"messageTitle":"modified Ui to support FindCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":0}}},{"hash":"45c937e13fb7382ab6123d5e2d1cc8a39c0a9c9b","isMergeCommit":false,"messageTitle":"added test file(will be filled later)","messageBody":"","tags":["level-9"],"fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":0}}},{"hash":"83c7fc70e85431ff310d2361b0d8ba98560dd811","isMergeCommit":false,"messageTitle":"changed naming","messageBody":"","tags":["A-CodeStandard"],"fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":6}}},{"hash":"c73b59320576ed30f1a7f94144db5da396aa28d6","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JavaDoc\u0027","messageBody":"Conflicts resolved\n\n# Conflicts:\n#\tsrc/main/java/veneto/storage/Storage.java\n#\tsrc/main/java/veneto/task/Task.java\n#\tsrc/main/java/veneto/ui/Ui.java\n","fileTypesAndContributionMap":{}},{"hash":"320f1cc9cbdc74c32d71fa737dd56cac639307a4","isMergeCommit":true,"messageTitle":"Merge branch \u0027A-CodingStandard\u0027","messageBody":"Conflicts resolved\n\n# Conflicts:\n#\tsrc/main/java/veneto/ui/Ui.java\n","fileTypesAndContributionMap":{}},{"hash":"51de6f63f6f7ef3acc7482d074bb51ac8736003a","isMergeCommit":true,"messageTitle":"Merge tag \u0027level-9\u0027","messageBody":"Conflicts resolved\n\n# Conflicts:\n#\tsrc/main/java/veneto/parser/Parser.java\n#\tsrc/main/java/veneto/task/Task.java\n","fileTypesAndContributionMap":{}},{"hash":"e9ab2213764df2a9f5b36a9ea730b46c736a40ce","isMergeCommit":false,"messageTitle":"further resolved merge conflicts","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":27}}},{"hash":"194213f871bd151bf73eb56b0458c2a909e24adf","isMergeCommit":false,"messageTitle":"add Constants to avoid magic numbers","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":9}}},{"hash":"838daa406d244bcaaf49a12104a79090ea1cd519","isMergeCommit":false,"messageTitle":"make getType() non-static","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":7}}},{"hash":"81d83fc08eabc22bec83d7d6add6f86c604fd175","isMergeCommit":false,"messageTitle":"modified Ui","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":2}}},{"hash":"157b849a7282c77dff2317dec219c85bfc856184","isMergeCommit":false,"messageTitle":"added tests","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":0},"java":{"insertions":113,"deletions":1}}}]},{"date":"2023-09-25","commitResults":[{"hash":"7481b121ca0df405a3d105bfa47f52d43f002932","isMergeCommit":false,"messageTitle":"added JavaFX dependencies","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":15,"deletions":0}}},{"hash":"358f33726e99cc3128ef1e624c78a1e63d7edc22","isMergeCommit":false,"messageTitle":"added Launcher.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":0}}}]},{"date":"2023-09-28","commitResults":[{"hash":"9dfde0e946c9bf59f0f42fc29d006f2d024e774f","isMergeCommit":false,"messageTitle":"replace storage file","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":3},"java":{"insertions":8,"deletions":3}}},{"hash":"c0d5fa06b189c05071785c7309df3172e21bbd72","isMergeCommit":false,"messageTitle":"added MainWindow.fxml","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":23,"deletions":0}}},{"hash":"0b9286a6fe3ff4874cddb59c8b1448c672b8bd1f","isMergeCommit":false,"messageTitle":"added DialogBox.fxml","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":16,"deletions":0}}},{"hash":"be954808f3716fb94c1e3f2a72b41426544a31c7","isMergeCommit":false,"messageTitle":"added MainWindow.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":54,"deletions":0}}},{"hash":"e205416e851bee7feff3aa1239cbb16056ad7d64","isMergeCommit":false,"messageTitle":"added DialogBox.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":63,"deletions":0}}},{"hash":"52a9a051bd594a07e04167b1effea209f6c7d064","isMergeCommit":false,"messageTitle":"added Main.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":34,"deletions":0}}},{"hash":"2e835493a29617d1bb601e45cdcedffc48965cce","isMergeCommit":false,"messageTitle":"added Launcher","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"0805e767fc22acd71367d77596844885679e50fe","isMergeCommit":false,"messageTitle":"changed Veneto: chat() -\u003e getResponse()","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":15,"deletions":36}}},{"hash":"4ae78e214cb9b7288f8f338fa8913b73588b7e69","isMergeCommit":false,"messageTitle":"modified Ui","messageBody":"","tags":["level-10"],"fileTypesAndContributionMap":{"java":{"insertions":35,"deletions":67}}},{"hash":"3768770a56089a60a156645e63e4891ed59c488d","isMergeCommit":true,"messageTitle":"Merge branch \u0027level-10\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-29","commitResults":[{"hash":"6e0c6ee53eca71b1dbd9c44a68a23fadd9809ac6","isMergeCommit":false,"messageTitle":"added a new jar file","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":3,"deletions":2}}}]}]},"authorFileTypeContributionMap":{"Propene-Dan":{"java":1419,"md":9,"fxml":39,"sh":1,"bat":1,"gradle":20,"txt":14}},"authorContributionVariance":{"Propene-Dan":35771.254},"authorDisplayNameMap":{"Propene-Dan":"CS2103T-F12-3 SONG..NGXI"}} +{"authorDailyContributionsMap":{"Propene-Dan":[{"date":"2023-09-02","commitResults":[{"hash":"d70a89cea2ae6cd8c2d8e68d5071177e1c2f009f","isMergeCommit":false,"messageTitle":"add level-0","messageBody":"","tags":["level-0"],"fileTypesAndContributionMap":{"java":{"insertions":21,"deletions":10},"bat":{"insertions":1,"deletions":1},"md":{"insertions":2,"deletions":2}}},{"hash":"fb563f92e23aec2088bb5857358079e46b57a680","isMergeCommit":false,"messageTitle":"added Level 1","messageBody":"","tags":["level-1"],"fileTypesAndContributionMap":{"java":{"insertions":12,"deletions":1}}},{"hash":"73ab9678b52ec2961c9a1df227f01896a18602a0","isMergeCommit":false,"messageTitle":"add MyList.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":0}}},{"hash":"6fabf95ece8ef533f7f1b4bea73421b5aa2bec49","isMergeCommit":false,"messageTitle":"added level 2","messageBody":"","tags":["level-2"],"fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":5}}}]},{"date":"2023-09-03","commitResults":[{"hash":"ab634e92011b91b83a27ece8d56811be7e2a669c","isMergeCommit":false,"messageTitle":"add Task.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":42,"deletions":0}}},{"hash":"0443851e1563e408f587b316d0b82320f6e5ea5e","isMergeCommit":false,"messageTitle":"changing MyList to a Task List","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":2}}},{"hash":"03e576de5bcce80a6071d2eb13b4d088969c3767","isMergeCommit":false,"messageTitle":"added level 3","messageBody":"","tags":["level-3"],"fileTypesAndContributionMap":{"java":{"insertions":44,"deletions":13}}},{"hash":"2dddc561c647b2025cd547e8481f9d398e978b3a","isMergeCommit":false,"messageTitle":"add Deadline.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":0}}},{"hash":"da7ab38b77a1cd7e010a0bda6264ac1351f8ca04","isMergeCommit":false,"messageTitle":"add Event.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":22,"deletions":0}}},{"hash":"0d3fb8f8b997afbb025276467a91e703dc246752","isMergeCommit":false,"messageTitle":"add toDo.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":16,"deletions":0}}},{"hash":"71a526c41b657acd720921d0a73c10a1dfcb16f8","isMergeCommit":false,"messageTitle":"add some comments to Task.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":14,"deletions":16}}},{"hash":"32d61ff9d6bde2f2f01acefd7f7d6fd8a6786d84","isMergeCommit":false,"messageTitle":"modified MyList.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"c2dd4b66755ab1f3a71a2466e3d89e1e72dab5cb","isMergeCommit":false,"messageTitle":"added level 4","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":38,"deletions":7}}}]},{"date":"2023-09-08","commitResults":[{"hash":"7bb853f6e593edb855607da70918ace4a66ec838","isMergeCommit":false,"messageTitle":"bug fixed","messageBody":"","tags":["level-4"],"fileTypesAndContributionMap":{"txt":{"insertions":21,"deletions":0},"java":{"insertions":74,"deletions":40},"sh":{"insertions":1,"deletions":1}}},{"hash":"946a4200edbc51b45fc7729893e3ee19570eaec3","isMergeCommit":false,"messageTitle":"added DanException","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":0}}},{"hash":"f3c38a1cbda21b8bf2d3f811bfcd64d778d9668d","isMergeCommit":false,"messageTitle":"add level 5","messageBody":"","tags":["level-5"],"fileTypesAndContributionMap":{"java":{"insertions":29,"deletions":12}}},{"hash":"af19be18d1bedc96756451c88f083c0bbb2c3c9f","isMergeCommit":false,"messageTitle":"added level 6","messageBody":"","tags":["level-6"],"fileTypesAndContributionMap":{"java":{"insertions":49,"deletions":37}}},{"hash":"6e02da2cdb4c5e26c8a00a0a480841df63c8038e","isMergeCommit":false,"messageTitle":"used enums","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":4}}}]},{"date":"2023-09-09","commitResults":[{"hash":"83987f897b0ac0fb3ea8b56671fac2f3f88fd324","isMergeCommit":false,"messageTitle":"bug fixed after using enums","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":3,"deletions":3}}},{"hash":"6940826138bd42f379e5d5c3aa4a83739327b41d","isMergeCommit":false,"messageTitle":"input.txt modified","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":11}}}]},{"date":"2023-09-10","commitResults":[{"hash":"fe6a5b7f7889c8292756de0b61e0cecad7580336","isMergeCommit":false,"messageTitle":"updated deadline.java with functions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":0}}},{"hash":"9de4371fe2efadab256d0479e36ef8e8d44cb776","isMergeCommit":false,"messageTitle":"updated event.java with funcs","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":0}}},{"hash":"610f3fe9de498517486c185a43429418bba727d0","isMergeCommit":false,"messageTitle":"updated task.java with funcs","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":0}}},{"hash":"31194bfddb30f9c6607813a73be886c49ed61168","isMergeCommit":false,"messageTitle":"updated todo.java with functions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":0}}},{"hash":"12dd5152bf596efb21ede76e30a1debddabe7586","isMergeCommit":false,"messageTitle":"updated test-ui-test","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1}}},{"hash":"886b3f96bddba35372feb80d5ab237f803d3f594","isMergeCommit":false,"messageTitle":"add level 7","messageBody":"","tags":["level-7"],"fileTypesAndContributionMap":{"java":{"insertions":109,"deletions":43}}},{"hash":"a2d3388f94e1cb683016dcd2851ca424c8986ca5","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-7\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"41fec5f86c3e37de696f5ca7edeb00221d14c553","isMergeCommit":false,"messageTitle":"change field deadline into type \"LocalDate\"","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":5}}},{"hash":"5e9ba09916b4149d5de0368d9c96b9f5072b1b89","isMergeCommit":false,"messageTitle":"change field \"start\", \"end\" into type \"LocalDate\"","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":7}}},{"hash":"9f6fd7614ae8a37074d8c007cd0fbfc638c8c6a6","isMergeCommit":false,"messageTitle":"added level-8","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":5}}},{"hash":"cf1d3ca8b015d593a2d09b86deb174fad876fb36","isMergeCommit":false,"messageTitle":"bugs fixed","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":5,"deletions":4}}},{"hash":"27ad786c4bb396d58761a4c8ab03dda117481335","isMergeCommit":false,"messageTitle":"updated input.txt","messageBody":"","tags":["level-8"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":3}}},{"hash":"1006fc69ff1d6c499643de4dda899be17f9643f5","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-8\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-12","commitResults":[{"hash":"d31bda62c34bb481f52db8cdaaa9883f99182172","isMergeCommit":false,"messageTitle":"added AddCommand.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":52,"deletions":0}}},{"hash":"7758e659cfa4852714e57457783d9f3896836873","isMergeCommit":false,"messageTitle":"renamed MyTask.java -\u003e TaskList.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":3}}},{"hash":"f898eca9f5a7e38b9bd8bdcab8035c00e718da13","isMergeCommit":false,"messageTitle":"added ListCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":22,"deletions":0}}},{"hash":"4cb7eeb55af2b7898c2e4386186be0999e790a57","isMergeCommit":false,"messageTitle":"added ExitCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":22,"deletions":0}}},{"hash":"39bad219c667eb1c3f28d252efffc286e8aa306d","isMergeCommit":false,"messageTitle":"added Command.java as abstract class","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":0}}},{"hash":"e244086e2d691bc2d950e0bb20580d3b518dc9d6","isMergeCommit":false,"messageTitle":"make package dan/task","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":4}}},{"hash":"4b37e32aa1642debc8eda85e1189819785529933","isMergeCommit":false,"messageTitle":"mk package dan.exception","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":0}}},{"hash":"972ffc3fb1066760e62723834a48a381953fa23b","isMergeCommit":false,"messageTitle":"added toString() to AddCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":2}}},{"hash":"a0857e9878dbbd84eb2ea1471a6ccb284ffa40fc","isMergeCommit":false,"messageTitle":"added toString to DeleteCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":37,"deletions":0}}},{"hash":"353e7faa6696a1de83a7ffb24501a5e3cb4640bc","isMergeCommit":false,"messageTitle":"added MarkCommand.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":45,"deletions":0}}},{"hash":"2df0253dc1a1d3b09dd55226a11ee9aed59dc4b6","isMergeCommit":false,"messageTitle":"fixed bugs after packaging DanException","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":7}}},{"hash":"61f1ef8cbf978a5cd0ef4c4853e52287245eead4","isMergeCommit":false,"messageTitle":"added Storage.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":88,"deletions":0}}},{"hash":"491f621b1bcbfdc208d6c76658b5dea438fd59b9","isMergeCommit":false,"messageTitle":"replaced DanException.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":0}}},{"hash":"e76b22563cd151d8f43d6c7b5ed63ecdf4593ef9","isMergeCommit":false,"messageTitle":"added Ui.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":107,"deletions":0}}},{"hash":"7bc4e608267bf244186ee692524b81dbec6692ea","isMergeCommit":false,"messageTitle":"added Parser.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":0}}},{"hash":"e13c03502215ee6ce4e560b0ad059861a8ab67fd","isMergeCommit":false,"messageTitle":"added A-OOP","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":31,"deletions":220}}}]},{"date":"2023-09-13","commitResults":[{"hash":"103664151ab3b36bb760f57546e85621764f785d","isMergeCommit":false,"messageTitle":"created DanOperateException","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":0}}},{"hash":"6a3d9e09d8e69437ec28fb136c0147d2c6385b01","isMergeCommit":false,"messageTitle":"created DanStorageException","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":0}}},{"hash":"3eca81e5c820e9ffce5f2210482e25cd10f79dc2","isMergeCommit":false,"messageTitle":"Fixed Bugs after adding more Exceptions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":18}}},{"hash":"40de3b011560eb9a512bba25bbbc07a0c4a307e9","isMergeCommit":false,"messageTitle":"fixed bugs in task.java after added more Exceptions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":3,"deletions":2}}},{"hash":"a75bed86dd7ee11673e9f8d47499734a956353bd","isMergeCommit":false,"messageTitle":"modified showError()","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":40,"deletions":14}}},{"hash":"a8b6457c21d018e2b3811898d8e95b99cd1f6706","isMergeCommit":false,"messageTitle":"fixed bugs in Add command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":30,"deletions":24}}},{"hash":"43420cbe953fcce6e62978001ea5e0fc0db4a825","isMergeCommit":false,"messageTitle":"added A-OOP","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{"java":{"insertions":12,"deletions":8}}},{"hash":"e49cf6a17c9a02aaa3456c0707e923e033667959","isMergeCommit":true,"messageTitle":"Merge tag \u0027A-MoreOOP\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"67e4213ef0b6b8dc741206b51e9f8895b91551a6","isMergeCommit":false,"messageTitle":"added A-Packages","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":0}}},{"hash":"86da9bb38d164ac78de59be36c3265bab1c77e66","isMergeCommit":true,"messageTitle":"Merge tag \u0027A-Packages\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"959ecd68127dfe033a5ad933cd9aad3090c01288","isMergeCommit":false,"messageTitle":"Added Parser.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":61,"deletions":0}}},{"hash":"4910fd1bbffb1fe5b4f126065f08d88848bbe477","isMergeCommit":false,"messageTitle":"apply parser in ui","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":22}}},{"hash":"d1467026a4b96fa56a12b9c46dd2f74086b2c091","isMergeCommit":false,"messageTitle":"modified AddCommand to apply Parser","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":29}}},{"hash":"5675ef8df81f349f5481520233c1384aac3e2cf2","isMergeCommit":false,"messageTitle":"modified Command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"fedbd573b0cba6f02b540c6c737b04ed7e701365","isMergeCommit":false,"messageTitle":"modified Delete","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":5}}},{"hash":"8abb3315455f39ebd876f56f77ca92f8b2fe6f59","isMergeCommit":false,"messageTitle":"modified Exit","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":2}}},{"hash":"cd198b99d9a7599edc1f457017ce846e9faad0e3","isMergeCommit":false,"messageTitle":"Modified List","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":2}}},{"hash":"467d5215dd5ce0dff41d352e8801ed2d8675db0b","isMergeCommit":false,"messageTitle":"Modified Mark","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":5}}},{"hash":"22c6628eca808097ff5ae9823331f11b76bde99b","isMergeCommit":false,"messageTitle":"added to package","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":0}}},{"hash":"4311adbc59daa23b35ea097042ffd4f2f3dd9a6e","isMergeCommit":false,"messageTitle":"bugs fixed After added packages","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":0}}},{"hash":"b38037f9d79f94b78c55ec3f42481c0deba2871c","isMergeCommit":true,"messageTitle":"Merge commit \u0027ed6d4d25bd4e34461919ffe785a6f10f4c087552\u0027","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-14","commitResults":[{"hash":"89fb8e762b83319147d9f00e8a9ee21ffe9a883a","isMergeCommit":false,"messageTitle":"renamed to Veneto","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":0}}},{"hash":"c57515b710ed038473709eca78bc5ddddf9ac9a1","isMergeCommit":false,"messageTitle":"Further renamed to Veneto","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":55,"deletions":66},"bat":{"insertions":1,"deletions":1},"md":{"insertions":9,"deletions":7}}}]},{"date":"2023-09-15","commitResults":[{"hash":"8e017d736db73d06eb9497f9b2e6e0c0f021040c","isMergeCommit":false,"messageTitle":"change showError static","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"e86be9c6d7ac84b012da44bc81d5472d21f66436","isMergeCommit":false,"messageTitle":"added ToDOTest","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":28,"deletions":0}}},{"hash":"ee5e6c421e2099f23aa1a9f20d8490221d785f8a","isMergeCommit":false,"messageTitle":"Added EventTest","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":40,"deletions":0}}},{"hash":"6de1fc4b232e61cc16ab797ad1d4bc136dd4094e","isMergeCommit":false,"messageTitle":"added UiTest","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":26,"deletions":0}}},{"hash":"6b974b9593ee275bc73899c2b50e9d0d33024fd6","isMergeCommit":false,"messageTitle":"Added AddCommandTest(Will be filled later)","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":0}}},{"hash":"c7aa0b622d25574c224dc6baa2b8f0fcf2e797f7","isMergeCommit":false,"messageTitle":"Added MarkCommandTest(Will be filled later)","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":0}}},{"hash":"ffc71e8666e9c7b147d509478335f608253b47ac","isMergeCommit":false,"messageTitle":"Added VenetoTest(Will be filled later)","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{"java":{"insertions":21,"deletions":0}}},{"hash":"34a9d61a9a1002d34501e452c04b2c25b132755d","isMergeCommit":true,"messageTitle":"Merge tag \u0027A-JUnit\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-16","commitResults":[{"hash":"d4ddabaa672458baee838715520f91323840f9b2","isMergeCommit":false,"messageTitle":"put Veneto.java to package veneto","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":4,"deletions":2},"java":{"insertions":2,"deletions":0},"bat":{"insertions":1,"deletions":1},"md":{"insertions":1,"deletions":1}}},{"hash":"c89265cf7922f3650156c35d1ee162b44fac4b0a","isMergeCommit":false,"messageTitle":"rename constants to ALL_CAPITAL","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{"java":{"insertions":21,"deletions":32}}},{"hash":"e220b59ec96986fdeeec2bd8ece2bb8307fd0915","isMergeCommit":true,"messageTitle":"Merge tag \u0027A-Jar\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-18","commitResults":[{"hash":"327b91a27af2ba643a51905a47c98cf4b383be9a","isMergeCommit":false,"messageTitle":"renamed DanException to VenetoException","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":33,"deletions":25}}},{"hash":"b49ec01fdb727a99852bd6c907d4bb4cfb474113","isMergeCommit":false,"messageTitle":"add JavaDoc to Veneto.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":9}}},{"hash":"b3cbbe2b2a4ad260737d1a610c7002520a1cf91e","isMergeCommit":false,"messageTitle":"add JavaDoc to AddCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":7}}},{"hash":"58e2c30ea6d4704edb80b8278d9791815d65d725","isMergeCommit":false,"messageTitle":"add JavaDoc to Command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":1}}},{"hash":"8275eb4611b02ac6a73a73733c2e0d40cf6b1267","isMergeCommit":false,"messageTitle":"add JavaDoc to DeleteCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":3}}},{"hash":"ff53235928fb61612babb360555f932dee2825dd","isMergeCommit":false,"messageTitle":"add JavaDoc to ExitCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":3}}},{"hash":"0e728ce0d8063fe80c15b0fd3fef87f0ee0b530c","isMergeCommit":false,"messageTitle":"add JavaDoc to ListCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":3}}},{"hash":"70b6d003d6440fe3848f9307ee7e7934ce073636","isMergeCommit":false,"messageTitle":"add JavaDoc to MarkCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":15,"deletions":5}}},{"hash":"f97962dd5948594ce45856733ae1ab849f1eefe1","isMergeCommit":false,"messageTitle":"add JavaDoc to Parser","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":16,"deletions":5}}},{"hash":"528051be9cd05cad6ead8fc4429292fbdc58e7d2","isMergeCommit":false,"messageTitle":"add JavaDoc to Storage","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":44,"deletions":13}}},{"hash":"235bcb678764e7de27e4e6bfb58484c653fb9738","isMergeCommit":false,"messageTitle":"add JavaDoc to Deadline","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":30,"deletions":12}}},{"hash":"2788070cfa345c767ec0cb97296ad4ded68960e2","isMergeCommit":false,"messageTitle":"add JavaDoc to Event","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":34,"deletions":14}}},{"hash":"7ba81c4c6f8017ff5c238aeb88dd07d032d325c4","isMergeCommit":false,"messageTitle":"add JavaDoc to Task","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":47,"deletions":19}}},{"hash":"2028dccc8b2256cb3f380a01aae951aba16ce1df","isMergeCommit":false,"messageTitle":"add JavaDoc to TaskList","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":19,"deletions":4}}},{"hash":"211d3cc868341dcc673a69297193dde0fb073656","isMergeCommit":false,"messageTitle":"add JavaDoc to ToDo","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":12}}},{"hash":"7a7758e84dd79176f21c2b871c35c4f8010dfbd3","isMergeCommit":false,"messageTitle":"add JavaDoc to Ui","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":43,"deletions":13}}},{"hash":"39eb73af692598c754ccc808690741feb9e11a14","isMergeCommit":false,"messageTitle":"Modified UiTest","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":3}}},{"hash":"1de9d9519f9f9a3422f53fe368ba5beaf4536ad1","isMergeCommit":false,"messageTitle":"fixed bugs after renameing DanExceptions to VenetoExceptions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":31,"deletions":31}}},{"hash":"17deebc6ea5840091ca42fae480c6192d4a1adbb","isMergeCommit":false,"messageTitle":"added FindCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":63,"deletions":0}}},{"hash":"a961434421c78d925db60caaaabf8ee9d84b674d","isMergeCommit":false,"messageTitle":"modified Task to support FindCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":0}}},{"hash":"b423a977f2ed8915e5503bb9677b905022526d58","isMergeCommit":false,"messageTitle":"modified Parser to support FindCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":0}}},{"hash":"f3d5e2c31be5c9a99b95d131d55871ecdf0b82ef","isMergeCommit":false,"messageTitle":"modified Ui to support FindCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":0}}},{"hash":"45c937e13fb7382ab6123d5e2d1cc8a39c0a9c9b","isMergeCommit":false,"messageTitle":"added test file(will be filled later)","messageBody":"","tags":["level-9"],"fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":0}}},{"hash":"83c7fc70e85431ff310d2361b0d8ba98560dd811","isMergeCommit":false,"messageTitle":"changed naming","messageBody":"","tags":["A-CodeStandard"],"fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":6}}},{"hash":"c73b59320576ed30f1a7f94144db5da396aa28d6","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JavaDoc\u0027","messageBody":"Conflicts resolved\n\n# Conflicts:\n#\tsrc/main/java/veneto/storage/Storage.java\n#\tsrc/main/java/veneto/task/Task.java\n#\tsrc/main/java/veneto/ui/Ui.java\n","fileTypesAndContributionMap":{}},{"hash":"320f1cc9cbdc74c32d71fa737dd56cac639307a4","isMergeCommit":true,"messageTitle":"Merge branch \u0027A-CodingStandard\u0027","messageBody":"Conflicts resolved\n\n# Conflicts:\n#\tsrc/main/java/veneto/ui/Ui.java\n","fileTypesAndContributionMap":{}},{"hash":"51de6f63f6f7ef3acc7482d074bb51ac8736003a","isMergeCommit":true,"messageTitle":"Merge tag \u0027level-9\u0027","messageBody":"Conflicts resolved\n\n# Conflicts:\n#\tsrc/main/java/veneto/parser/Parser.java\n#\tsrc/main/java/veneto/task/Task.java\n","fileTypesAndContributionMap":{}},{"hash":"e9ab2213764df2a9f5b36a9ea730b46c736a40ce","isMergeCommit":false,"messageTitle":"further resolved merge conflicts","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":27}}},{"hash":"194213f871bd151bf73eb56b0458c2a909e24adf","isMergeCommit":false,"messageTitle":"add Constants to avoid magic numbers","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":9}}},{"hash":"838daa406d244bcaaf49a12104a79090ea1cd519","isMergeCommit":false,"messageTitle":"make getType() non-static","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":7}}},{"hash":"81d83fc08eabc22bec83d7d6add6f86c604fd175","isMergeCommit":false,"messageTitle":"modified Ui","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":2}}},{"hash":"157b849a7282c77dff2317dec219c85bfc856184","isMergeCommit":false,"messageTitle":"added tests","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":0},"java":{"insertions":113,"deletions":1}}}]},{"date":"2023-09-25","commitResults":[{"hash":"7481b121ca0df405a3d105bfa47f52d43f002932","isMergeCommit":false,"messageTitle":"added JavaFX dependencies","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":15,"deletions":0}}},{"hash":"358f33726e99cc3128ef1e624c78a1e63d7edc22","isMergeCommit":false,"messageTitle":"added Launcher.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":0}}}]},{"date":"2023-09-28","commitResults":[{"hash":"9dfde0e946c9bf59f0f42fc29d006f2d024e774f","isMergeCommit":false,"messageTitle":"replace storage file","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":3},"java":{"insertions":8,"deletions":3}}},{"hash":"c0d5fa06b189c05071785c7309df3172e21bbd72","isMergeCommit":false,"messageTitle":"added MainWindow.fxml","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":23,"deletions":0}}},{"hash":"0b9286a6fe3ff4874cddb59c8b1448c672b8bd1f","isMergeCommit":false,"messageTitle":"added DialogBox.fxml","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":16,"deletions":0}}},{"hash":"be954808f3716fb94c1e3f2a72b41426544a31c7","isMergeCommit":false,"messageTitle":"added MainWindow.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":54,"deletions":0}}},{"hash":"e205416e851bee7feff3aa1239cbb16056ad7d64","isMergeCommit":false,"messageTitle":"added DialogBox.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":63,"deletions":0}}},{"hash":"52a9a051bd594a07e04167b1effea209f6c7d064","isMergeCommit":false,"messageTitle":"added Main.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":34,"deletions":0}}},{"hash":"2e835493a29617d1bb601e45cdcedffc48965cce","isMergeCommit":false,"messageTitle":"added Launcher","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"0805e767fc22acd71367d77596844885679e50fe","isMergeCommit":false,"messageTitle":"changed Veneto: chat() -\u003e getResponse()","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":15,"deletions":36}}},{"hash":"4ae78e214cb9b7288f8f338fa8913b73588b7e69","isMergeCommit":false,"messageTitle":"modified Ui","messageBody":"","tags":["level-10"],"fileTypesAndContributionMap":{"java":{"insertions":35,"deletions":67}}},{"hash":"3768770a56089a60a156645e63e4891ed59c488d","isMergeCommit":true,"messageTitle":"Merge branch \u0027level-10\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-29","commitResults":[{"hash":"6e0c6ee53eca71b1dbd9c44a68a23fadd9809ac6","isMergeCommit":false,"messageTitle":"added a new jar file","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":3,"deletions":2}}},{"hash":"78e06a87a7fb807b68eacfcbb155feb86f24aaae","isMergeCommit":false,"messageTitle":"Renaming fields to improve code quality.","messageBody":"renaming filePath to storagePath in Veneto.\n","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":2}}},{"hash":"effae226fdc1417c88992857d63e05be17ea6645","isMergeCommit":false,"messageTitle":"removed redundant try-catch to improve readability","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":11}}},{"hash":"85b5fe14e4c5f090223838625106566b5d6524d2","isMergeCommit":false,"messageTitle":"modified mark() in Task.java","messageBody":"added markTask() and unmarkTask() to avoid deep nesting and\nimproved readability\n","fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":10}}},{"hash":"d632419981d8ac7fa58b33a10b228a5e233da518","isMergeCommit":false,"messageTitle":"added constants to avoid magic numbers","messageBody":"added EXIT_SUFFIX to show operated command is ExitCommand\nadded INCORRECT_ERROR to show unidentified error\nmodifed COMMAND and make it looks better\n\nadded three methods to improve readability\n\nadded showOperationError() to deal with VenetoOperationException\nadded showStorageError() to deal with VenetoStorageException\nadded showInvalidError() to deal with unexpected exceptions\n","tags":["A-FullCommitMessage"],"fileTypesAndContributionMap":{"java":{"insertions":41,"deletions":28}}},{"hash":"e9d938dced80ae11059a899c984366c96324def1","isMergeCommit":false,"messageTitle":"fixed bugs in MainWindow.java","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":0}}}]},{"date":"2023-09-30","commitResults":[{"hash":"d0b01b6affd4737fcbfcfe93d0140b5cf0357648","isMergeCommit":true,"messageTitle":"Merge pull request #2 from Propene-Dan/A-CodeQuality","messageBody":"merging A-codequality to master","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"Propene-Dan":{"java":1444,"md":9,"fxml":39,"sh":1,"bat":1,"gradle":20,"txt":14}},"authorContributionVariance":{"Propene-Dan":35029.36},"authorDisplayNameMap":{"Propene-Dan":"CS2103T-F12-3 SONG..NGXI"}} diff --git a/applepiofmyeye_ip_master/authorship.json b/applepiofmyeye_ip_master/authorship.json index 8e37cd27..b435b1ac 100644 --- a/applepiofmyeye_ip_master/authorship.json +++ b/applepiofmyeye_ip_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"# Barbie\u0027s world","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"This is an individual CS2103T brownfield Java project. It is forked from the project template Duke, which is named after the Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"1. Open Intellij (if you are not in the welcome screen, click `File` \u003e `Close Project` to close the existing project first)","lastModifiedDate":"2021-01-17"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":11,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":12,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":13,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"1. Configure the project to use **JDK 11** (not other versions) as explained in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).\u003cbr\u003e","lastModifiedDate":"2021-07-29"},{"lineNumber":15,"author":{"gitId":"-"},"content":" In the same dialog, set the **Project language level** field to the `SDK default` option.","lastModifiedDate":"2021-07-29"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"3. After that, locate the `src/main/java/Launcher.java` file, right-click it, and choose `Run Launcher.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something below as the window:","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" ","lastModifiedDate":"2023-08-25"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" \u003cimg src\u003d\"docs/Ui.png\"/\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":"For more information, refer to the [User Guide](https://applepiofmyeye.github.io/ip/).","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":8,"-":13}},{"path":"barbie.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"T,0,do, work,","lastModifiedDate":"2023-09-24"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"T,0,do, work,","lastModifiedDate":"2023-09-24"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"T,0,do, work,","lastModifiedDate":"2023-09-24"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"T,0,buy milk","lastModifiedDate":"2023-09-24"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"T,0,get umbrella","lastModifiedDate":"2023-09-24"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"T,1,buy bread","lastModifiedDate":"2023-09-24"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"T,1,buy bread","lastModifiedDate":"2023-09-24"}],"authorContributionMap":{"applepiofmyeye":7}},{"path":"barbie/barbie/com/sun/javafx/scene/control/skin/EmailBoard.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"#removed unsupported ymacron, yhook","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"[q|1|\\[ ][w|2|\\] ][e|3|{|egrave|eacute|ecirc|euml ][r|4|}|reg ][t|5|\u003c|tm ][y|6|\u003e|ygrave|yacute|ycirc|yuml ][u|7|laquo|ugrave|uacute|ucirc|uuml ][i|8|raquo|igrave|iacute|icirc|iuml ][o|9|`|ograve|oacute|ocirc|otilde|ouml|oslash|deg ][p|0|~|para|pi ]","lastModifiedDate":"2023-09-21"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" [a|#|agrave|aacute|acirc|atilde|auml|aring ][s|\\$|euro|pound|yen|scedil|scaron|szlig|sigma ][d|%|eth ][f|\u0026 ][g|*|sect ][h|(|middot ][j|)|deg ][k|_|neq ][l|\" ]","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"[$shift ][z|/|iexcl ][x|\\\\|iquest ][c|;|permil|ccedil|copy|cent ][v|:|reg ][b|\u003d|tm ][n|+|ntilde ][m|-|micro ][@|\u0027 ][$backspace ]","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"[$hide][$SymbolABC ][$space ][,|! ][.|? ][.com|.org|.net ][$enter ]","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":8}},{"path":"barbie/barbie/com/sun/javafx/scene/control/skin/NumericBoard.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"[1 ][2 ][3 ][/ ]","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"[4 ][5 ][6 ][- ]","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"[7 ][8 ][9 ][$backspace ]","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"[$hide][+][0 ][.|\u0027 ][$enter ]","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":9}},{"path":"barbie/barbie/com/sun/javafx/scene/control/skin/TextBoard.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"#removed unsupported ymacron, yhook","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"[q|1|\\[ ][w|2|\\] ][e|3|{|egrave|eacute|ecirc|euml ][r|4|}|reg ][t|5|\u003c|tm ][y|6|\u003e|ygrave|yacute|ycirc|yuml ][u|7|laquo|ugrave|uacute|ucirc|uuml ][i|8|raquo|igrave|iacute|icirc|iuml ][o|9|`|ograve|oacute|ocirc|otilde|ouml|oslash|deg ][p|0|~|para|pi ]","lastModifiedDate":"2023-09-21"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" [a|#|agrave|aacute|acirc|atilde|auml|aring ][s|\\$|euro|pound|yen|scedil|scaron|szlig|sigma ][d|%|eth ][f|\u0026 ][g|*|sect ][h|(|middot ][j|)|deg ][k|_|neq ][l|@ ]","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"[$shift ][z|/|iexcl ][x|\\\\|iquest ][c|;|permil|ccedil|copy|cent ][v|:|reg ][b|\u003d|tm ][n|+|ntilde ][m|-|micro ][\u0027|\" ][$backspace ]","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"[$hide][$SymbolABC ][$space ][,|! ][.|? ][$enter ]","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":8}},{"path":"barbie/barbie/com/sun/javafx/scene/control/skin/UrlBoard.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"#removed unsupported ymacron, yhook","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"[q|1|\\[ ][w|2|\\] ][e|3|{|egrave|eacute|ecirc|euml ][r|4|}|reg ][t|5|\u003c|tm ][y|6|\u003e|ygrave|yacute|ycirc|yuml ][u|7|laquo|ugrave|uacute|ucirc|uuml ][i|8|raquo|igrave|iacute|icirc|iuml ][o|9|`|ograve|oacute|ocirc|otilde|ouml|oslash|deg ][p|0|~|para|pi ]","lastModifiedDate":"2023-09-21"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" [a|#|agrave|aacute|acirc|atilde|auml|aring ][s|\\$|euro|pound|yen|scedil|scaron|szlig|sigma ][d|%|eth ][f|\u0026 ][g|*|sect ][h|(|middot ][j|)|deg ][k|\"|neq ][l|@ ]","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"[$shift ][z|iexcl ][x|iquest ][c|;|permil|ccedil|copy|cent ][v|:|reg ][b|\u003d|tm ][n|+|ntilde ][m|\u0027|micro ][-|_ ][$backspace ]","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"[$hide ][$SymbolABC ][www.|http:// ][.|, ][.com|.org|.net ][/|\\\\ ][$enter ]","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":9}},{"path":"barbie/barbie/view/Dialogbox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\"/\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets bottom\u003d\"10.0\" left\u003d\"10.0\" right\u003d\"10.0\" top\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":17}},{"path":"barbie/barbie/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"barbie.StageController\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"263.0\" AnchorPane.bottomAnchor\u003d\"1.0\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton fx:id\u003d\"viewButton\" layoutX\u003d\"263.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#switchToScene2\" prefHeight\u003d\"41.0\" prefWidth\u003d\"66.0\" text\u003d\"View\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"328.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"72.0\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefWidth\u003d\"388.0\" /\u003e","lastModifiedDate":"2023-09-24"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":20}},{"path":"barbie/barbie/view/ScheduleWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.GridPane?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.text.Text?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"barbie.StageController\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003cpadding\u003e\u003cInsets bottom\u003d\"10\" left\u003d\"25\" right\u003d\"25\" top\u003d\"25\" /\u003e\u003c/padding\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" \u003cHBox prefHeight\u003d\"35.0\" prefWidth\u003d\"388.0\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" \u003cText text\u003d\"Schedule\" wrappingWidth\u003d\"133.2509765625\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" \u003cFont size\u003d\"25.0\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/font\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Text\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton mnemonicParsing\u003d\"false\" onAction\u003d\"#switchToScene1\" text\u003d\"Back\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton mnemonicParsing\u003d\"false\" onAction\u003d\"#loadItems\" text\u003d\"Load\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" \u003cHBox.margin\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets left\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/HBox.margin\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Button\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets bottom\u003d\"10.0\" left\u003d\"10.0\" right\u003d\"10.0\" top\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/HBox\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\" GridPane.rowIndex\u003d\"1\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox fx:id\u003d\"scheduleContainer\" prefHeight\u003d\"500.0\" prefWidth\u003d\"388.0\"/\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":43}},{"path":"barbie/barbie/view/Schedulebox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/20.0.1\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox prefHeight\u003d\"200.0\" prefWidth\u003d\"398.0\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"desc\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003cFont name\u003d\"Arial Rounded MT Bold\" size\u003d\"19.0\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/font\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Label\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"type\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox.margin\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets top\u003d\"5.0\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox.margin\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Label\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"date\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox.margin\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets bottom\u003d\"10.0\" left\u003d\"10.0\" right\u003d\"10.0\" top\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox.margin\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":30}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":" id \u0027org.openjfx.javafxplugin\u0027 version \u00270.0.13\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":16,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027com.google.code.gson\u0027, name: \u0027gson\u0027, version: \u00272.10.1\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" // Used for loops to clean up the imports","lastModifiedDate":"2023-09-24"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" def platforms \u003d [\"win\", \"linux\", \"mac\"]","lastModifiedDate":"2023-09-24"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" def javafxDependency \u003d [\"javafx-graphics\", \"javafx-controls\", \"javafx-fxml\"]","lastModifiedDate":"2023-09-24"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" for (plt in platforms) {","lastModifiedDate":"2023-09-24"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" for (dep in javafxDependency) {","lastModifiedDate":"2023-09-24"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" runtimeOnly \"org.openjfx:$dep:$javafx.version:$plt\"","lastModifiedDate":"2023-09-24"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-24"},{"lineNumber":27,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-24"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"javafx {","lastModifiedDate":"2023-09-24"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" version \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" modules \u003d [\u0027javafx.base\u0027, \u0027javafx.controls\u0027, \u0027javafx.fxml\u0027, \u0027javafx.graphics\u0027]","lastModifiedDate":"2023-09-24"},{"lineNumber":35,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-24"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":"//dependencies {","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":"// testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":"// testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":"//","lastModifiedDate":"2023-09-24"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"// String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"//","lastModifiedDate":"2023-09-24"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":"// implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":"//}","lastModifiedDate":"2023-09-24"},{"lineNumber":56,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":58,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":60,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":61,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":62,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":63,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":64,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":65,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":66,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":67,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":68,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":69,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":70,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":71,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" mainClass.set(\"barbie.Barbie\")","lastModifiedDate":"2023-09-24"},{"lineNumber":73,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":74,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":75,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":" archiveBaseName \u003d \"barbie\"","lastModifiedDate":"2023-09-01"},{"lineNumber":77,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":78,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":79,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":80,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":81,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":82,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":83,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":"ext {","lastModifiedDate":"2023-09-04"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":" mainClassName \u003d \u0027barbie.Barbie\u0027","lastModifiedDate":"2023-09-24"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-04"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":"shadowJar {","lastModifiedDate":"2023-09-04"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":" archiveFileName \u003d \u0027barbie.jar\u0027","lastModifiedDate":"2023-09-04"},{"lineNumber":91,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-04"},{"lineNumber":92,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":93,"author":{"gitId":"applepiofmyeye"},"content":"checkstyle {","lastModifiedDate":"2023-09-07"},{"lineNumber":94,"author":{"gitId":"applepiofmyeye"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":95,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"applepiofmyeye":53,"-":42}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"# Barbie World User Guide","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"-"},"content":"## Features ","lastModifiedDate":"2019-07-29"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"### Add tasks and events","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"In Barbie world, you can add todos, deadlines, anddddd PARTIES! ","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"Some of the characteristics of these are as follows:","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"- Todo: only has a description","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"- Deadline: description + deadline","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"- Party: description + start + end","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"### Edit and update tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"When you\u0027ve completed a task, you can **mark** it as done! Other ways of editing your list of fabulous todos include","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"**deleting** and **unmarking** a task as done.","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"### Find tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"When things get *REALLY* busy in Barbieland, Barbies may lose track of their tasks! Which is why in Barbie World, ","lastModifiedDate":"2023-09-21"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"we want to help you get back on track! You may find tasks with a keyword, or list out all your tasks!","lastModifiedDate":"2023-09-21"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":20,"author":{"gitId":"-"},"content":"## Usage","lastModifiedDate":"2019-07-29"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":"- \"todo\" -- adds a new todo to your list of tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":"- \"deadline\" -- adds a new task with a deadline, indicate the deadline using a \"/\" in the format YYYY-MM-DD.","lastModifiedDate":"2023-09-21"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" - (e.g. deadline buy bread /2023-09-20)","lastModifiedDate":"2023-09-21"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":"- \"party\" -- adds a new party with a start and end date","lastModifiedDate":"2023-09-21"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" - (e.g. party barbie\u0027s birthday party /2023-09-20 /2023-09-21)","lastModifiedDate":"2023-09-21"},{"lineNumber":26,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"### `todo` - add todo","lastModifiedDate":"2023-09-21"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":"This command adds a todo to your task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":31,"author":{"gitId":"-"},"content":"Example of usage: ","lastModifiedDate":"2023-09-21"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":"`todo buy Barbie\u0027s present`","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":35,"author":{"gitId":"-"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":"Got you barbie! I\u0027ve added this task to your Barbie list: \u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":"### `deadline` - add deadline","lastModifiedDate":"2023-09-21"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":"This command adds a deadline to your task list, with the deadline indicated in the format ","lastModifiedDate":"2023-09-21"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":"YYYY-MM-DD","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":"`deadline buy Barbie\u0027s present /2023-09-29`","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":"Got you barbie! I\u0027ve added this task to your Barbie list: \u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":"### `party` - add party","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":"This command adds a party to your task list, with the start and end date indicated in the format","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":"YYYY-MM-DD","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":63,"author":{"gitId":"-"},"content":"Example of usage:","lastModifiedDate":"2019-07-29"},{"lineNumber":64,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":"`party Barbie\u0027s birthday party /2023-08-20 /2023-09-20`","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":67,"author":{"gitId":"-"},"content":"Expected outcome:","lastModifiedDate":"2019-07-29"},{"lineNumber":68,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":"Got you barbie! I\u0027ve added this task to your Barbie list: \u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":"### `mark` - mark task as done","lastModifiedDate":"2023-09-21"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":"This command marks a task in your task as done, using the item number ","lastModifiedDate":"2023-09-21"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":"of the task in that list.","lastModifiedDate":"2023-09-21"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":"`mark 2`","lastModifiedDate":"2023-09-21"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":"Nice! I\u0027ve marked this task as done:","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":"\u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":"### `unmark` - unmark task as done","lastModifiedDate":"2023-09-21"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":"This command unmarks a task as done, using that item number of the task","lastModifiedDate":"2023-09-21"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":"in that list","lastModifiedDate":"2023-09-21"},{"lineNumber":91,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":92,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":93,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":94,"author":{"gitId":"applepiofmyeye"},"content":"`unmark 2`","lastModifiedDate":"2023-09-21"},{"lineNumber":95,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":96,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":97,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":98,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":99,"author":{"gitId":"applepiofmyeye"},"content":"Alright! I\u0027ve marked this task as not done yet!","lastModifiedDate":"2023-09-21"},{"lineNumber":100,"author":{"gitId":"applepiofmyeye"},"content":"\u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":101,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":102,"author":{"gitId":"applepiofmyeye"},"content":"### `del` - delete task","lastModifiedDate":"2023-09-21"},{"lineNumber":103,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":104,"author":{"gitId":"applepiofmyeye"},"content":"This command deleted a task from the list, using that item number of the task","lastModifiedDate":"2023-09-21"},{"lineNumber":105,"author":{"gitId":"applepiofmyeye"},"content":"in that list","lastModifiedDate":"2023-09-21"},{"lineNumber":106,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":107,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":108,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":109,"author":{"gitId":"applepiofmyeye"},"content":"`del 2`","lastModifiedDate":"2023-09-21"},{"lineNumber":110,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":111,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":112,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":113,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":114,"author":{"gitId":"applepiofmyeye"},"content":"Deletion success! I\u0027ve deleted this task off your list.","lastModifiedDate":"2023-09-21"},{"lineNumber":115,"author":{"gitId":"applepiofmyeye"},"content":"\u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":116,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":117,"author":{"gitId":"applepiofmyeye"},"content":"### `find` - find tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":118,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":119,"author":{"gitId":"applepiofmyeye"},"content":"This command finds a task using a provided keyword.","lastModifiedDate":"2023-09-21"},{"lineNumber":120,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":121,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":122,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":123,"author":{"gitId":"applepiofmyeye"},"content":"`find milk`","lastModifiedDate":"2023-09-21"},{"lineNumber":124,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":125,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":126,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":127,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":128,"author":{"gitId":"applepiofmyeye"},"content":"These are your tasks with the keyword: milk","lastModifiedDate":"2023-09-21"},{"lineNumber":129,"author":{"gitId":"applepiofmyeye"},"content":"\u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":130,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":131,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":132,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":133,"author":{"gitId":"applepiofmyeye"},"content":"### `list` - list tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":134,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":135,"author":{"gitId":"applepiofmyeye"},"content":"This command lists all tasks in the task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":136,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":137,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":138,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":139,"author":{"gitId":"applepiofmyeye"},"content":"`list`","lastModifiedDate":"2023-09-21"},{"lineNumber":140,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":141,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":142,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":143,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":144,"author":{"gitId":"applepiofmyeye"},"content":"1. \u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":145,"author":{"gitId":"applepiofmyeye"},"content":"2. \u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":146,"author":{"gitId":"applepiofmyeye"},"content":"...","lastModifiedDate":"2023-09-21"},{"lineNumber":147,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":148,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":149,"author":{"gitId":"applepiofmyeye"},"content":"### `exit` - exit app","lastModifiedDate":"2023-09-21"},{"lineNumber":150,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":151,"author":{"gitId":"applepiofmyeye"},"content":"This command closes the application.","lastModifiedDate":"2023-09-21"},{"lineNumber":152,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":153,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":154,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":155,"author":{"gitId":"applepiofmyeye"},"content":"`exit`","lastModifiedDate":"2023-09-21"},{"lineNumber":156,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":157,"author":{"gitId":"applepiofmyeye"},"content":"### `view` - view schedule","lastModifiedDate":"2023-09-21"},{"lineNumber":158,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":159,"author":{"gitId":"applepiofmyeye"},"content":"This button opens a new tab to see your tasks for that day!","lastModifiedDate":"2023-09-21"},{"lineNumber":160,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":134,"-":26}},{"path":"src/main/java/barbie/Barbie.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.Command;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.ExitCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" * Implements the main Barbie chatbot logic.","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"public class Barbie {","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" private Parser parser;","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" private ArrayList\u003cTask\u003e taskList;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" private boolean doExit;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of Barbie.","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" public Barbie() {","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" this.parser \u003d new Parser();","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" this.taskList \u003d Storage.getLastList();","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" this.doExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * Gets the doExit variable -- to see if the application should exit or not.","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @return whether the application should exit","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" public boolean getDoExit() {","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" return this.doExit;","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * Gets barbie\u0027s response to the user input.","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" * @param input user input","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" * @return barbie\u0027s response","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" protected String getResponse(String input) {","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" String toPrint;","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" Command command \u003d parser.parse(input);","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" toPrint \u003d command.run(taskList);","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" if (command instanceof ExitCommand) {","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" this.doExit \u003d true;","lastModifiedDate":"2023-09-16"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" return e.getMessage();","lastModifiedDate":"2023-09-16"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" return toPrint;","lastModifiedDate":"2023-09-16"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" * Greets user in the beginning.","lastModifiedDate":"2023-09-18"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" * This will be added later on","lastModifiedDate":"2023-09-18"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user.","lastModifiedDate":"2023-09-18"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" protected String greet() {","lastModifiedDate":"2023-09-16"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.intro(taskList);","lastModifiedDate":"2023-09-16"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":67}},{"path":"src/main/java/barbie/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.geometry.Insets;","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.shape.Circle;","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.shape.Rectangle;","lastModifiedDate":"2023-09-24"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" private Label dialog;","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-24"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" private Rectangle roundedRectangle;","lastModifiedDate":"2023-09-24"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a DialogBox.","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" * @param text text of the DialogBox","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * @param img profile picture of the person","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" private DialogBox(String text, Image img, boolean isBarbie) {","lastModifiedDate":"2023-09-24"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" dialog.setPadding(new Insets(0, 10, 0, 10));","lastModifiedDate":"2023-09-16"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" Circle circle \u003d new Circle();","lastModifiedDate":"2023-09-16"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" circle.setRadius(50.0);","lastModifiedDate":"2023-09-16"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" circle.setCenterX(50.0);","lastModifiedDate":"2023-09-16"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" circle.setCenterY(50.0);","lastModifiedDate":"2023-09-16"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-16"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" displayPicture.setClip(circle);","lastModifiedDate":"2023-09-16"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-16"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" private void flip() {","lastModifiedDate":"2023-09-16"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-16"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-16"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-16"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-16"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":" * Gets the DialogBox for the user.","lastModifiedDate":"2023-09-16"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":" * @param text user\u0027s input","lastModifiedDate":"2023-09-16"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" * @param img user\u0027s profile picture","lastModifiedDate":"2023-09-16"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":" * @return DialogBox object for the user","lastModifiedDate":"2023-09-16"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-16"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":" return new DialogBox(text, img, false);","lastModifiedDate":"2023-09-24"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":" * Gets the DialogBox for Barbie.","lastModifiedDate":"2023-09-16"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":" * @param text Barbie\u0027s response","lastModifiedDate":"2023-09-16"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":" * @param img Barbie\u0027s profile picture","lastModifiedDate":"2023-09-16"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":" * @return DialogBox object for Barbie","lastModifiedDate":"2023-09-16"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":" public static DialogBox getDukeDialog(String text, Image img ) {","lastModifiedDate":"2023-09-16"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":" var db \u003d new DialogBox(text, img, true);","lastModifiedDate":"2023-09-24"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":" db.flip();","lastModifiedDate":"2023-09-16"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":" return db;","lastModifiedDate":"2023-09-16"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":90}},{"path":"src/main/java/barbie/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"public class Launcher {","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":12}},{"path":"src/main/java/barbie/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.*;","lastModifiedDate":"2023-09-24"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" private Barbie barbie;","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * The main entry point for all JavaFX applications.","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * The start method is called after the init method has returned, and after the system is","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" * ready for the application to begin running.","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" * NOTE: This method is called on the JavaFX Application Thread.","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" * @param stage the primary stage for this application, onto which the application scene can be set.","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * Applications may create other stages, if needed, but they will not be","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * primary stages.","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" stage.show();","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" stage.setTitle(\"Barbie\u0027s World\");","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" stage.setResizable(false);","lastModifiedDate":"2023-09-24"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":45}},{"path":"src/main/java/barbie/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.application.Platform;","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" private Button viewButton;","lastModifiedDate":"2023-09-19"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" private Barbie barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Mochi.png\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Barbie.png\"));","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" * Initialises the main window.","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" public void initialize() {","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" * Sets the barbie bot.","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" * @param b barbie instance","lastModifiedDate":"2023-09-16"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" public void setBarbie(Barbie b) {","lastModifiedDate":"2023-09-16"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" barbie \u003d b;","lastModifiedDate":"2023-09-16"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Barbie\u0027s reply.","lastModifiedDate":"2023-09-16"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-16"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-16"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" String response \u003d barbie.getResponse(input);","lastModifiedDate":"2023-09-16"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-16"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-16"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-16"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" );","lastModifiedDate":"2023-09-16"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":" userInput.clear();","lastModifiedDate":"2023-09-16"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":" if (barbie.getDoExit()) {","lastModifiedDate":"2023-09-16"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":" Platform.exit();","lastModifiedDate":"2023-09-16"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":74}},{"path":"src/main/java/barbie/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.Command;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.DeadlineCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.DeleteCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.ExitCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.FindCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.ListCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.MarkCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.PartyCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.TodoCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.UnmarkCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieDateTimeFormatException;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieNoDeadlineException;","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieNoDescException;","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieNoKeywordException;","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieNoSuchCommandException;","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieNoTimingException;","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieTaskNumberException;","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a class which parses input.","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":"public class Parser {","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for the Parser class.","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" public Parser() {","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * Parse input given to return the command used.","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" * @param input text input of the user","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" * @return command to be executed based on the text parsed","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" * @throws BarbieException thrown in the commands","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" public Command parse(String input) throws BarbieException {","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" String[] parts \u003d input.split(\" \", 2);","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" String inputCommand \u003d parts[0].toLowerCase();","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" switch (inputCommand) {","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" case \"mark\":","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-16"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" case \"del\":","lastModifiedDate":"2023-09-16"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" return parseEditTasks(parts);","lastModifiedDate":"2023-09-18"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" case \"todo\":","lastModifiedDate":"2023-09-18"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-18"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" case \"party\":","lastModifiedDate":"2023-09-18"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" return parseAddTasks(parts);","lastModifiedDate":"2023-09-18"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" case \"list\": return new ListCommand();","lastModifiedDate":"2023-09-18"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" case \"find\": return parseFindTask(parts);","lastModifiedDate":"2023-09-18"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" case \"bye\": return new ExitCommand();","lastModifiedDate":"2023-09-18"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" default:","lastModifiedDate":"2023-09-18"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieNoSuchCommandException();","lastModifiedDate":"2023-09-18"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-16"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-18"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieDateTimeFormatException();","lastModifiedDate":"2023-09-18"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":" * Abstracts the logic of parsing the commands that add tasks.","lastModifiedDate":"2023-09-18"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":" * For example: todo, deadline, party","lastModifiedDate":"2023-09-18"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":" * @param inputArr input after being split into an array","lastModifiedDate":"2023-09-18"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":" * @return Command to be executed","lastModifiedDate":"2023-09-18"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":" * @throws BarbieException exception when the formatting of the input is wrong","lastModifiedDate":"2023-09-18"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":" private Command parseAddTasks(String[] inputArr) throws BarbieException {","lastModifiedDate":"2023-09-18"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":" if (inputArr.length \u003c 2) {","lastModifiedDate":"2023-09-18"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieNoDescException();","lastModifiedDate":"2023-09-16"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":" String[] parts2 \u003d inputArr[1].split(\"/\");","lastModifiedDate":"2023-09-18"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":" String desc;","lastModifiedDate":"2023-09-16"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":" switch (inputArr[0].toLowerCase()) {","lastModifiedDate":"2023-09-18"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-16"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":" if (parts2.length \u003c 2) {","lastModifiedDate":"2023-09-16"},{"lineNumber":91,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieNoDeadlineException();","lastModifiedDate":"2023-09-16"},{"lineNumber":92,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":93,"author":{"gitId":"applepiofmyeye"},"content":" desc \u003d parts2[0];","lastModifiedDate":"2023-09-16"},{"lineNumber":94,"author":{"gitId":"applepiofmyeye"},"content":" LocalDate by \u003d LocalDate.parse(parts2[1].strip());","lastModifiedDate":"2023-09-21"},{"lineNumber":95,"author":{"gitId":"applepiofmyeye"},"content":" return new DeadlineCommand(desc, by);","lastModifiedDate":"2023-09-16"},{"lineNumber":96,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":97,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":98,"author":{"gitId":"applepiofmyeye"},"content":" case \"party\":","lastModifiedDate":"2023-09-16"},{"lineNumber":99,"author":{"gitId":"applepiofmyeye"},"content":" if (parts2.length \u003c 3) {","lastModifiedDate":"2023-09-16"},{"lineNumber":100,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieNoTimingException();","lastModifiedDate":"2023-09-16"},{"lineNumber":101,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":102,"author":{"gitId":"applepiofmyeye"},"content":" desc \u003d parts2[0];","lastModifiedDate":"2023-09-16"},{"lineNumber":103,"author":{"gitId":"applepiofmyeye"},"content":" LocalDate from \u003d LocalDate.parse(parts2[1].strip());","lastModifiedDate":"2023-09-16"},{"lineNumber":104,"author":{"gitId":"applepiofmyeye"},"content":" LocalDate to \u003d LocalDate.parse(parts2[2].strip());","lastModifiedDate":"2023-09-16"},{"lineNumber":105,"author":{"gitId":"applepiofmyeye"},"content":" return new PartyCommand(desc, from, to);","lastModifiedDate":"2023-09-16"},{"lineNumber":106,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":107,"author":{"gitId":"applepiofmyeye"},"content":" default:","lastModifiedDate":"2023-09-16"},{"lineNumber":108,"author":{"gitId":"applepiofmyeye"},"content":" desc \u003d inputArr[1];","lastModifiedDate":"2023-09-18"},{"lineNumber":109,"author":{"gitId":"applepiofmyeye"},"content":" return new TodoCommand(desc);","lastModifiedDate":"2023-09-16"},{"lineNumber":110,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":111,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":112,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":113,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":114,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":115,"author":{"gitId":"applepiofmyeye"},"content":" * Abstracts the logic of parsing the commands that edit tasks.","lastModifiedDate":"2023-09-18"},{"lineNumber":116,"author":{"gitId":"applepiofmyeye"},"content":" * For example: mark, unmark, del","lastModifiedDate":"2023-09-18"},{"lineNumber":117,"author":{"gitId":"applepiofmyeye"},"content":" * @param inputArr input after it has been split into an array","lastModifiedDate":"2023-09-18"},{"lineNumber":118,"author":{"gitId":"applepiofmyeye"},"content":" * @return Command to be executed","lastModifiedDate":"2023-09-18"},{"lineNumber":119,"author":{"gitId":"applepiofmyeye"},"content":" * @throws BarbieException exception when there is no task number","lastModifiedDate":"2023-09-18"},{"lineNumber":120,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":121,"author":{"gitId":"applepiofmyeye"},"content":" private Command parseEditTasks(String[] inputArr) throws BarbieException {","lastModifiedDate":"2023-09-18"},{"lineNumber":122,"author":{"gitId":"applepiofmyeye"},"content":" if (inputArr.length \u003c 2) {","lastModifiedDate":"2023-09-21"},{"lineNumber":123,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-16"},{"lineNumber":124,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":125,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":126,"author":{"gitId":"applepiofmyeye"},"content":" int taskNumber;","lastModifiedDate":"2023-09-21"},{"lineNumber":127,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-21"},{"lineNumber":128,"author":{"gitId":"applepiofmyeye"},"content":" taskNumber \u003d Integer.parseInt(inputArr[1]) - 1;","lastModifiedDate":"2023-09-21"},{"lineNumber":129,"author":{"gitId":"applepiofmyeye"},"content":" switch(inputArr[0].toLowerCase()) {","lastModifiedDate":"2023-09-18"},{"lineNumber":130,"author":{"gitId":"applepiofmyeye"},"content":" case \"mark\": return new MarkCommand(taskNumber);","lastModifiedDate":"2023-09-18"},{"lineNumber":131,"author":{"gitId":"applepiofmyeye"},"content":" case \"unmark\": return new UnmarkCommand(taskNumber);","lastModifiedDate":"2023-09-18"},{"lineNumber":132,"author":{"gitId":"applepiofmyeye"},"content":" default: return new DeleteCommand(taskNumber);","lastModifiedDate":"2023-09-18"},{"lineNumber":133,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":134,"author":{"gitId":"applepiofmyeye"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-09-21"},{"lineNumber":135,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-21"},{"lineNumber":136,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":137,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":138,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":139,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":140,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":141,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":142,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":143,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":144,"author":{"gitId":"applepiofmyeye"},"content":" * Abstracts the logic of parsing the find function.","lastModifiedDate":"2023-09-18"},{"lineNumber":145,"author":{"gitId":"applepiofmyeye"},"content":" * @param inputArr input after it has been split into an array","lastModifiedDate":"2023-09-18"},{"lineNumber":146,"author":{"gitId":"applepiofmyeye"},"content":" * @return Command to be executed","lastModifiedDate":"2023-09-18"},{"lineNumber":147,"author":{"gitId":"applepiofmyeye"},"content":" * @throws BarbieException exceptions that arise from no keyword","lastModifiedDate":"2023-09-18"},{"lineNumber":148,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":149,"author":{"gitId":"applepiofmyeye"},"content":" private Command parseFindTask(String[] inputArr) throws BarbieException {","lastModifiedDate":"2023-09-18"},{"lineNumber":150,"author":{"gitId":"applepiofmyeye"},"content":" if (inputArr.length \u003c 2) {","lastModifiedDate":"2023-09-18"},{"lineNumber":151,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieNoKeywordException();","lastModifiedDate":"2023-09-18"},{"lineNumber":152,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":153,"author":{"gitId":"applepiofmyeye"},"content":" String keyword \u003d inputArr[1];","lastModifiedDate":"2023-09-18"},{"lineNumber":154,"author":{"gitId":"applepiofmyeye"},"content":" return new FindCommand(keyword);","lastModifiedDate":"2023-09-18"},{"lineNumber":155,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":156,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":156}},{"path":"src/main/java/barbie/ScheduleBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-24"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Deadlines;","lastModifiedDate":"2023-09-19"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Party;","lastModifiedDate":"2023-09-19"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-24"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the HBox that consists of a task name, type and due date to be displayed on the schedule viewer.","lastModifiedDate":"2023-09-24"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"public class ScheduleBox extends HBox {","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" private Label desc \u003d new Label(\"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" private Label date \u003d new Label(\"No date\");","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" private Label type \u003d new Label(\"Todo\");","lastModifiedDate":"2023-09-24"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" private Task task;","lastModifiedDate":"2023-09-24"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a ScheduleBox.","lastModifiedDate":"2023-09-24"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @param task task to display","lastModifiedDate":"2023-09-24"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" public ScheduleBox(Task task) {","lastModifiedDate":"2023-09-19"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" this.task \u003d task;","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" loadFxml();","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" desc.setText(task.getDescription());","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" if (task instanceof Deadlines) {","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" Deadlines typedTask \u003d (Deadlines) task;","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" date.setText(typedTask.getDate().toString());","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" type.setText(\"Deadline\");","lastModifiedDate":"2023-09-24"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" } else if (task instanceof Party) {","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" Party typedTask \u003d (Party) task;","lastModifiedDate":"2023-09-19"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" date.setText(typedTask.getDate().toString());","lastModifiedDate":"2023-09-19"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" type.setText(\"Party\");","lastModifiedDate":"2023-09-24"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-24"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-24"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" * Loads the FXML file of the ScheduleBox.","lastModifiedDate":"2023-09-24"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" * @throws IOException exception thrown when loading FXMLLoader","lastModifiedDate":"2023-09-24"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" private void loadFxml() throws IOException {","lastModifiedDate":"2023-09-19"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/Schedulebox.fxml\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-19"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-19"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-19"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-19"}],"authorContributionMap":{"applepiofmyeye":63}},{"path":"src/main/java/barbie/StageController.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-24"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-24"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-24"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-24"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.application.Platform;","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.event.ActionEvent;","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.Parent;","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.*;","lastModifiedDate":"2023-09-24"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.paint.Color;","lastModifiedDate":"2023-09-24"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.paint.Paint;","lastModifiedDate":"2023-09-24"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-24"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the Controller for the chatbot stage: controls the scenes.","lastModifiedDate":"2023-09-24"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"public class StageController {","lastModifiedDate":"2023-09-19"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" private Stage stage;","lastModifiedDate":"2023-09-19"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" private Scene scene;","lastModifiedDate":"2023-09-19"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" private Parent root;","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" private Button viewButton;","lastModifiedDate":"2023-09-19"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" private VBox scheduleContainer;","lastModifiedDate":"2023-09-19"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" private Paint color \u003d Color.color(1, 230.0 / 255, 1, 1.0);","lastModifiedDate":"2023-09-24"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" private Barbie barbie \u003d new Barbie();","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Mochi.png\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Barbie.png\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" * Switches the scene to scene 1.","lastModifiedDate":"2023-09-24"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" * Scene 1 refers to the chat page.","lastModifiedDate":"2023-09-24"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" * @param event event to switch to","lastModifiedDate":"2023-09-24"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" * @throws IOException exception thrown when loading FXMLLoader","lastModifiedDate":"2023-09-24"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" public void switchToScene1(ActionEvent event) throws IOException {","lastModifiedDate":"2023-09-19"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" root \u003d FXMLLoader.load(Objects.requireNonNull(getClass().getResource(\"/view/MainWindow.fxml\")));","lastModifiedDate":"2023-09-19"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" stage \u003d (Stage) ((Node) event.getSource()).getScene().getWindow();","lastModifiedDate":"2023-09-19"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" scene \u003d new Scene(root);","lastModifiedDate":"2023-09-19"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-19"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":" stage.show();","lastModifiedDate":"2023-09-19"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":" * Switches the scene to scene 2.","lastModifiedDate":"2023-09-24"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" * Scene 2 refers to the schedule page which shows items for the day","lastModifiedDate":"2023-09-24"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":" * @param event event to switch to","lastModifiedDate":"2023-09-24"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":" * @throws IOException exception thrown when loading FXMLLoader","lastModifiedDate":"2023-09-24"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":" public void switchToScene2(ActionEvent event) throws IOException {","lastModifiedDate":"2023-09-19"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":" root \u003d FXMLLoader.load(Objects.requireNonNull(getClass().getResource(\"/view/ScheduleWindow.fxml\")));","lastModifiedDate":"2023-09-19"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":" stage \u003d (Stage) ((Node) event.getSource()).getScene().getWindow();","lastModifiedDate":"2023-09-19"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":" scene \u003d new Scene(root);","lastModifiedDate":"2023-09-19"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-19"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":" stage.show();","lastModifiedDate":"2023-09-19"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":" * Handles user input and loads the response onto the scene.","lastModifiedDate":"2023-09-24"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-19"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-19"},{"lineNumber":91,"author":{"gitId":"applepiofmyeye"},"content":" String response \u003d barbie.getResponse(input);","lastModifiedDate":"2023-09-19"},{"lineNumber":92,"author":{"gitId":"applepiofmyeye"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-19"},{"lineNumber":93,"author":{"gitId":"applepiofmyeye"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-19"},{"lineNumber":94,"author":{"gitId":"applepiofmyeye"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-19"},{"lineNumber":95,"author":{"gitId":"applepiofmyeye"},"content":" );","lastModifiedDate":"2023-09-19"},{"lineNumber":96,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":97,"author":{"gitId":"applepiofmyeye"},"content":" userInput.clear();","lastModifiedDate":"2023-09-19"},{"lineNumber":98,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":99,"author":{"gitId":"applepiofmyeye"},"content":" if (barbie.getDoExit()) {","lastModifiedDate":"2023-09-19"},{"lineNumber":100,"author":{"gitId":"applepiofmyeye"},"content":" Platform.exit();","lastModifiedDate":"2023-09-19"},{"lineNumber":101,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":102,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":103,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":104,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":105,"author":{"gitId":"applepiofmyeye"},"content":" * Loads items from the task list to the schedule viewer.","lastModifiedDate":"2023-09-24"},{"lineNumber":106,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":107,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":108,"author":{"gitId":"applepiofmyeye"},"content":" private void loadItems() {","lastModifiedDate":"2023-09-19"},{"lineNumber":109,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e currTaskList \u003d Storage.getLastList();","lastModifiedDate":"2023-09-19"},{"lineNumber":110,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e todaysList \u003d Utils.getDateList(LocalDate.now(), currTaskList);","lastModifiedDate":"2023-09-19"},{"lineNumber":111,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cScheduleBox\u003e boxList \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-19"},{"lineNumber":112,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":113,"author":{"gitId":"applepiofmyeye"},"content":" for (Task task : todaysList) {","lastModifiedDate":"2023-09-19"},{"lineNumber":114,"author":{"gitId":"applepiofmyeye"},"content":" ScheduleBox box \u003d new ScheduleBox(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":115,"author":{"gitId":"applepiofmyeye"},"content":" boxList.add(box);","lastModifiedDate":"2023-09-19"},{"lineNumber":116,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":117,"author":{"gitId":"applepiofmyeye"},"content":" if (todaysList.size() \u003d\u003d 0) {","lastModifiedDate":"2023-09-20"},{"lineNumber":118,"author":{"gitId":"applepiofmyeye"},"content":" scheduleContainer.getChildren().add(new Label(\"No tasks today!\"));","lastModifiedDate":"2023-09-20"},{"lineNumber":119,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":120,"author":{"gitId":"applepiofmyeye"},"content":" scheduleContainer.getChildren().addAll(boxList);","lastModifiedDate":"2023-09-19"},{"lineNumber":121,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":122,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":123,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":124,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":125,"author":{"gitId":"applepiofmyeye"},"content":" * Sets the local barbie to a specific instance of Barbie.","lastModifiedDate":"2023-09-24"},{"lineNumber":126,"author":{"gitId":"applepiofmyeye"},"content":" * @param b instance of Barbie","lastModifiedDate":"2023-09-24"},{"lineNumber":127,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":128,"author":{"gitId":"applepiofmyeye"},"content":" public void setBarbie(Barbie b) {","lastModifiedDate":"2023-09-20"},{"lineNumber":129,"author":{"gitId":"applepiofmyeye"},"content":" barbie \u003d b;","lastModifiedDate":"2023-09-20"},{"lineNumber":130,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":131,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":132,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-19"}],"authorContributionMap":{"applepiofmyeye":132}},{"path":"src/main/java/barbie/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Files;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Path;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Paths;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.StandardOpenOption;","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.List;","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.Objects;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Deadlines;","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Party;","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Todo;","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * This class deals with all file reading and writing.","lastModifiedDate":"2023-09-04"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"public class Storage {","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" private static final Path path \u003d Paths.get(\"barbie.txt\");","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * Writes to the file given, in the format of [type][status] [desc].","lastModifiedDate":"2023-09-04"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * Eg. [T][ ] read book","lastModifiedDate":"2023-09-04"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * The status is always 0 when creating a new Task, so this method assumes","lastModifiedDate":"2023-09-04"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * that the task is marked as undone in this method.","lastModifiedDate":"2023-09-04"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" * The type is also always Todo, as it takes in the \"desc\" parameter only.","lastModifiedDate":"2023-09-04"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc the description of the Task","lastModifiedDate":"2023-09-04"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" public static void addToList(String desc) {","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" String line \u003d \"T\" + \",\" + 0 + \",\" + desc + \"\\n\";","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" Files.write(path, line.getBytes(), StandardOpenOption.APPEND);","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-04"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" * Writes to the file given, in the format of [type][status] [desc].","lastModifiedDate":"2023-09-04"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" * Eg. [T][ ] read book","lastModifiedDate":"2023-09-04"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" * The status is always 0 when creating a new Task, so this method assumes","lastModifiedDate":"2023-09-04"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" * that the task is marked as undone in this method.","lastModifiedDate":"2023-09-04"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" * The type is also always Deadline, as it takes in the \"desc\" and \"deadline\" parameter only.","lastModifiedDate":"2023-09-04"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc the description of the Task","lastModifiedDate":"2023-09-04"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" * @param deadline the deadline the task has to be completed by","lastModifiedDate":"2023-09-04"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" public static void addToList(String desc, LocalDate deadline) {","lastModifiedDate":"2023-09-16"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" assert Objects.equals(desc.split(\" \", 2)[0], \"D\") : \"Item added should be a D class\";","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" String line \u003d \"D\" + \",\" + 0 + \",\" + desc + \",\" + deadline + \"\\n\";","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" Files.write(path, line.getBytes(), StandardOpenOption.APPEND);","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-04"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":" * Writes to the file given, in the format of [type][status] [desc].","lastModifiedDate":"2023-09-04"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":" * Eg. [T][ ] read book","lastModifiedDate":"2023-09-04"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":" * The status is always 0 when creating a new Task, so this method assumes","lastModifiedDate":"2023-09-04"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" * that the task is marked as undone in this method.","lastModifiedDate":"2023-09-04"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":" * The type is also always Party, as it takes in the \"desc\", \"from\" and \"to\" parameter.","lastModifiedDate":"2023-09-04"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc the description of the Task","lastModifiedDate":"2023-09-04"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":" * @param from the start time of the event","lastModifiedDate":"2023-09-04"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":" * @param to the end time of the event","lastModifiedDate":"2023-09-04"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":" public static void addToList(String desc, LocalDate from, LocalDate to) {","lastModifiedDate":"2023-09-16"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":" assert Objects.equals(desc.split(\" \", 2)[0], \"P\") : \"Item added should be a P class\";","lastModifiedDate":"2023-09-16"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":" String line \u003d \"P\" + \",\" + 0 + \",\" + desc + \",\" + from + \",\" + to + \"\\n\";","lastModifiedDate":"2023-09-04"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":" Files.write(path, line.getBytes(), StandardOpenOption.APPEND);","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-04"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":91,"author":{"gitId":"applepiofmyeye"},"content":" * Returns the latest list from the storage file upon starting up.","lastModifiedDate":"2023-09-04"},{"lineNumber":92,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":93,"author":{"gitId":"applepiofmyeye"},"content":" * @return the last list loaded from the storage file","lastModifiedDate":"2023-09-04"},{"lineNumber":94,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":95,"author":{"gitId":"applepiofmyeye"},"content":" protected static ArrayList\u003cTask\u003e getLastList() {","lastModifiedDate":"2023-09-04"},{"lineNumber":96,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e finalList \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":99,"author":{"gitId":"applepiofmyeye"},"content":" Path path \u003d Paths.get(\"barbie.txt\");","lastModifiedDate":"2023-08-30"},{"lineNumber":100,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":101,"author":{"gitId":"applepiofmyeye"},"content":" if (!Files.exists(path)) {","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"applepiofmyeye"},"content":" Files.createFile(path);","lastModifiedDate":"2023-08-30"},{"lineNumber":103,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(\"[A new list created for current user]\");","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"applepiofmyeye"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(\"-------------------------------------------------\");","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(\"[A current list is being used for current user]\");","lastModifiedDate":"2023-08-30"},{"lineNumber":107,"author":{"gitId":"applepiofmyeye"},"content":" Files.readAllLines(path).forEach(x -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"applepiofmyeye"},"content":" Task task \u003d stringToTask(x);","lastModifiedDate":"2023-09-18"},{"lineNumber":109,"author":{"gitId":"applepiofmyeye"},"content":" finalList.add(task);","lastModifiedDate":"2023-09-18"},{"lineNumber":110,"author":{"gitId":"applepiofmyeye"},"content":" });","lastModifiedDate":"2023-09-18"},{"lineNumber":111,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(finalList);","lastModifiedDate":"2023-09-18"},{"lineNumber":112,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":113,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":114,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":115,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-18"},{"lineNumber":116,"author":{"gitId":"applepiofmyeye"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-18"},{"lineNumber":117,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":118,"author":{"gitId":"applepiofmyeye"},"content":" return finalList;","lastModifiedDate":"2023-09-18"},{"lineNumber":119,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":121,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":122,"author":{"gitId":"applepiofmyeye"},"content":" private static Task stringToTask(String taskInString) {","lastModifiedDate":"2023-09-18"},{"lineNumber":123,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":124,"author":{"gitId":"applepiofmyeye"},"content":" String[] taskParts \u003d taskInString.split(\",\");","lastModifiedDate":"2023-09-18"},{"lineNumber":125,"author":{"gitId":"applepiofmyeye"},"content":" String taskType \u003d taskParts[0];","lastModifiedDate":"2023-08-30"},{"lineNumber":126,"author":{"gitId":"applepiofmyeye"},"content":" String taskStatus \u003d taskParts[1];","lastModifiedDate":"2023-08-30"},{"lineNumber":127,"author":{"gitId":"applepiofmyeye"},"content":" String desc \u003d taskParts[2];","lastModifiedDate":"2023-08-30"},{"lineNumber":128,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":129,"author":{"gitId":"applepiofmyeye"},"content":" Task task;","lastModifiedDate":"2023-08-30"},{"lineNumber":130,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":131,"author":{"gitId":"applepiofmyeye"},"content":" if (Objects.equals(taskType, \"T\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":132,"author":{"gitId":"applepiofmyeye"},"content":" task \u003d new Todo(desc);","lastModifiedDate":"2023-08-30"},{"lineNumber":133,"author":{"gitId":"applepiofmyeye"},"content":" } else if (Objects.equals(taskType, \"D\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"applepiofmyeye"},"content":" task \u003d new Deadlines(desc, LocalDate.parse(taskParts[3]));","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"applepiofmyeye"},"content":" } else if (Objects.equals(taskType, \"P\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"applepiofmyeye"},"content":" task \u003d new Party(desc, LocalDate.parse(taskParts[3]), LocalDate.parse(taskParts[4]));","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"applepiofmyeye"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":138,"author":{"gitId":"applepiofmyeye"},"content":" task \u003d new Task(desc);","lastModifiedDate":"2023-08-30"},{"lineNumber":139,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":140,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":141,"author":{"gitId":"applepiofmyeye"},"content":" if (Integer.parseInt(taskStatus) \u003d\u003d 1) {","lastModifiedDate":"2023-09-07"},{"lineNumber":142,"author":{"gitId":"applepiofmyeye"},"content":" task.mark();","lastModifiedDate":"2023-09-07"},{"lineNumber":143,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":144,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":145,"author":{"gitId":"applepiofmyeye"},"content":" return task;","lastModifiedDate":"2023-09-18"},{"lineNumber":146,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":147,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":148,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":149,"author":{"gitId":"applepiofmyeye"},"content":" * Changes the status of a Task in the storage file.","lastModifiedDate":"2023-09-04"},{"lineNumber":150,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":151,"author":{"gitId":"applepiofmyeye"},"content":" * @param status status to change the current Task to","lastModifiedDate":"2023-09-04"},{"lineNumber":152,"author":{"gitId":"applepiofmyeye"},"content":" * @param lineToChange the Task number to change","lastModifiedDate":"2023-09-04"},{"lineNumber":153,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":154,"author":{"gitId":"applepiofmyeye"},"content":" public static void changeLineStatus(String status, int lineToChange) {","lastModifiedDate":"2023-09-16"},{"lineNumber":155,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":156,"author":{"gitId":"applepiofmyeye"},"content":" List\u003cString\u003e lines \u003d Files.readAllLines(path);","lastModifiedDate":"2023-08-30"},{"lineNumber":157,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":158,"author":{"gitId":"applepiofmyeye"},"content":" if (lineToChange \u003e\u003d 0 \u0026\u0026 lineToChange \u003c lines.size()) {","lastModifiedDate":"2023-08-30"},{"lineNumber":159,"author":{"gitId":"applepiofmyeye"},"content":" String[] newContent \u003d lines.get(lineToChange).split(\",\");","lastModifiedDate":"2023-08-30"},{"lineNumber":160,"author":{"gitId":"applepiofmyeye"},"content":" newContent[1] \u003d status;","lastModifiedDate":"2023-08-30"},{"lineNumber":161,"author":{"gitId":"applepiofmyeye"},"content":" lines.set(lineToChange, arrayToString(newContent));","lastModifiedDate":"2023-09-21"},{"lineNumber":162,"author":{"gitId":"applepiofmyeye"},"content":" Files.write(path, lines);","lastModifiedDate":"2023-08-30"},{"lineNumber":163,"author":{"gitId":"applepiofmyeye"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":164,"author":{"gitId":"applepiofmyeye"},"content":" throw new IllegalArgumentException(\"Invalid line number to change.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":165,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":166,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":167,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-04"},{"lineNumber":168,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":169,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":170,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":171,"author":{"gitId":"applepiofmyeye"},"content":" private static String arrayToString(String[] arr) {","lastModifiedDate":"2023-09-21"},{"lineNumber":172,"author":{"gitId":"applepiofmyeye"},"content":" StringBuilder result \u003d new StringBuilder();","lastModifiedDate":"2023-09-21"},{"lineNumber":173,"author":{"gitId":"applepiofmyeye"},"content":" for (int i \u003d 0; i \u003c arr.length; i++) {","lastModifiedDate":"2023-09-21"},{"lineNumber":174,"author":{"gitId":"applepiofmyeye"},"content":" result.append(arr[i]);","lastModifiedDate":"2023-09-21"},{"lineNumber":175,"author":{"gitId":"applepiofmyeye"},"content":" if (i \u003c arr.length - 1) {","lastModifiedDate":"2023-09-21"},{"lineNumber":176,"author":{"gitId":"applepiofmyeye"},"content":" result.append(\",\");","lastModifiedDate":"2023-09-21"},{"lineNumber":177,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":178,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":179,"author":{"gitId":"applepiofmyeye"},"content":" return result.toString();","lastModifiedDate":"2023-09-21"},{"lineNumber":180,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":181,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":182,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":183,"author":{"gitId":"applepiofmyeye"},"content":" * Deletes the line of the task from the list, and shifts the rest accordingly.","lastModifiedDate":"2023-09-04"},{"lineNumber":184,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":185,"author":{"gitId":"applepiofmyeye"},"content":" * @param lineToDelete the Task number to delete","lastModifiedDate":"2023-09-04"},{"lineNumber":186,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":187,"author":{"gitId":"applepiofmyeye"},"content":" public static void deleteLine(int lineToDelete) {","lastModifiedDate":"2023-09-16"},{"lineNumber":188,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":189,"author":{"gitId":"applepiofmyeye"},"content":" List\u003cString\u003e lines \u003d Files.readAllLines(path);","lastModifiedDate":"2023-08-30"},{"lineNumber":190,"author":{"gitId":"applepiofmyeye"},"content":" assert lines.size() \u003e 0 : \"Current task list should not be empty\";","lastModifiedDate":"2023-09-16"},{"lineNumber":191,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":192,"author":{"gitId":"applepiofmyeye"},"content":" if (lineToDelete \u003e\u003d 0 \u0026\u0026 lineToDelete \u003c lines.size()) {","lastModifiedDate":"2023-08-30"},{"lineNumber":193,"author":{"gitId":"applepiofmyeye"},"content":" lines.remove(lineToDelete);","lastModifiedDate":"2023-08-30"},{"lineNumber":194,"author":{"gitId":"applepiofmyeye"},"content":" if (lines.size() \u003e 0) {","lastModifiedDate":"2023-09-16"},{"lineNumber":195,"author":{"gitId":"applepiofmyeye"},"content":" Files.write(path, lines);","lastModifiedDate":"2023-08-30"},{"lineNumber":196,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":197,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":198,"author":{"gitId":"applepiofmyeye"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":199,"author":{"gitId":"applepiofmyeye"},"content":" throw new IllegalArgumentException(\"Invalid line number to delete.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":200,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":201,"author":{"gitId":"applepiofmyeye"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":202,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":203,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":204,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":205,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"applepiofmyeye":205}},{"path":"src/main/java/barbie/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieListEmptyException;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Takes care of the UI related messages that will be displayed.","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"public class Ui {","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" * Introduces the chatbot to the user.","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * @param list list of Tasks that should be done today","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" protected static String intro(ArrayList\u003cTask\u003e list) {","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Hi Barbie! Hi Ken!\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" + \"I\u0027m Barbie!\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" + \"This is the list of things you have today!\\n\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" + Storage.getLastList().stream().map(x -\u003e x + \"\\n\")","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\nWhat can I do for you?\");","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * Greets the user before ending the chat.","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" public static String exit() {","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Bye Barbie! Bye Ken!\");","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" * Prints that the Task has been successfully added.","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" * @param task Task that was added to the list","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" public static String taskAdded(Task task) {","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Got you barbie! I\u0027ve added this task to your Barbie list:\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" + \" \" + task);","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" * Prints that the Task has been successfully marked as done.","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" * @param task Task that was marked as done","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" public static String mark(Task task) {","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Nice! I\u0027ve marked this task as done:\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" + task + \"\\n\");","lastModifiedDate":"2023-09-16"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" * Prints that the Task has been successfully marked as undone.","lastModifiedDate":"2023-09-16"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" * @param task Task that was marked as undone.","lastModifiedDate":"2023-09-16"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" public static String unmark(Task task) {","lastModifiedDate":"2023-09-16"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Alright! I\u0027ve marked this task as not done yet:\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" + task + \"\\n\");","lastModifiedDate":"2023-09-16"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" * Prints that the Task has been successfully deleted.","lastModifiedDate":"2023-09-16"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":" public static String del() {","lastModifiedDate":"2023-09-16"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":" return (\" Deletion success! I\u0027ve deleted this task off your list.\");","lastModifiedDate":"2023-09-16"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" * Prints the Task in numerical order, or that there is no Task in the list.","lastModifiedDate":"2023-09-16"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":" * @param list list of tasks","lastModifiedDate":"2023-09-16"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":" public static String listTasks(ArrayList\u003cTask\u003e list) throws BarbieListEmptyException {","lastModifiedDate":"2023-09-16"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":" if (list.size() \u003d\u003d 0) {","lastModifiedDate":"2023-09-16"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieListEmptyException();","lastModifiedDate":"2023-09-16"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":" String listInString \u003d \"\";","lastModifiedDate":"2023-09-16"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":" // \"list\" command","lastModifiedDate":"2023-09-16"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":" for (int i \u003d 0; i \u003c list.size(); i++) {","lastModifiedDate":"2023-09-16"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":" int itemNumber \u003d i + 1;","lastModifiedDate":"2023-09-16"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":" listInString +\u003d (\"\\n\" + itemNumber + \". \" + list.get(i));","lastModifiedDate":"2023-09-16"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":" return listInString;","lastModifiedDate":"2023-09-16"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":91,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":92,"author":{"gitId":"applepiofmyeye"},"content":" * Finds tasks with the given keyword.","lastModifiedDate":"2023-09-16"},{"lineNumber":93,"author":{"gitId":"applepiofmyeye"},"content":" * @param list list of tasks","lastModifiedDate":"2023-09-16"},{"lineNumber":94,"author":{"gitId":"applepiofmyeye"},"content":" * @param keyword keyword to compare against","lastModifiedDate":"2023-09-16"},{"lineNumber":95,"author":{"gitId":"applepiofmyeye"},"content":" * @return string of items listed","lastModifiedDate":"2023-09-16"},{"lineNumber":96,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":97,"author":{"gitId":"applepiofmyeye"},"content":" public static String findTasks(ArrayList\u003cTask\u003e list, String keyword) {","lastModifiedDate":"2023-09-16"},{"lineNumber":98,"author":{"gitId":"applepiofmyeye"},"content":" if (list.size() \u003d\u003d 0) {","lastModifiedDate":"2023-09-16"},{"lineNumber":99,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Hmm.. your list looks empty. To add items, use the \u0027todo\u0027, \"","lastModifiedDate":"2023-09-16"},{"lineNumber":100,"author":{"gitId":"applepiofmyeye"},"content":" + \"\u0027deadline\u0027 or \u0027party\u0027 commands!\");","lastModifiedDate":"2023-09-16"},{"lineNumber":101,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":102,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":103,"author":{"gitId":"applepiofmyeye"},"content":" String toPrint \u003d (\"These are your tasks with the keyword: \" + keyword);","lastModifiedDate":"2023-09-16"},{"lineNumber":104,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":105,"author":{"gitId":"applepiofmyeye"},"content":" int itemNumber \u003d 1;","lastModifiedDate":"2023-09-16"},{"lineNumber":106,"author":{"gitId":"applepiofmyeye"},"content":" for (int i \u003d 0; i \u003c list.size(); i++) {","lastModifiedDate":"2023-09-16"},{"lineNumber":107,"author":{"gitId":"applepiofmyeye"},"content":" String taskDesc \u003d list.get(i).toString();","lastModifiedDate":"2023-09-16"},{"lineNumber":108,"author":{"gitId":"applepiofmyeye"},"content":" int index \u003d taskDesc.indexOf(keyword);","lastModifiedDate":"2023-09-16"},{"lineNumber":109,"author":{"gitId":"applepiofmyeye"},"content":" if (index \u003e\u003d 0) {","lastModifiedDate":"2023-09-16"},{"lineNumber":110,"author":{"gitId":"applepiofmyeye"},"content":" toPrint +\u003d (\"\\n\" + itemNumber + \". \" + list.get(i));","lastModifiedDate":"2023-09-16"},{"lineNumber":111,"author":{"gitId":"applepiofmyeye"},"content":" itemNumber++;","lastModifiedDate":"2023-09-16"},{"lineNumber":112,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":113,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":114,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":115,"author":{"gitId":"applepiofmyeye"},"content":" if (itemNumber \u003d\u003d 1) {","lastModifiedDate":"2023-09-16"},{"lineNumber":116,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Hmm.. There doesn\u0027t seem to be any matching tasks!\");","lastModifiedDate":"2023-09-16"},{"lineNumber":117,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":118,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":119,"author":{"gitId":"applepiofmyeye"},"content":" return toPrint;","lastModifiedDate":"2023-09-16"},{"lineNumber":120,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":121,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":122,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":123,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":124,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":125,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":125}},{"path":"src/main/java/barbie/Utils.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Deadlines;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Party;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * Abstracts any helper functions that will be used in the main function.","lastModifiedDate":"2023-09-04"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class Utils {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * Retrieves the list of Tasks that should be done today.","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * @param date date of the Tasks to retrieve","lastModifiedDate":"2023-09-04"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * @param lastList latest list of Tasks","lastModifiedDate":"2023-09-04"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * @return the list of Tasks that should be done today","lastModifiedDate":"2023-09-04"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" public static ArrayList\u003cTask\u003e getDateList(LocalDate date, ArrayList\u003cTask\u003e lastList) {","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e thisDatesList \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" lastList.forEach(x -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" if (x instanceof Deadlines) {","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" Deadlines y \u003d (Deadlines) x;","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" if (y.isToday(date)) {","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" thisDatesList.add(y);","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" } else if (x instanceof Party) {","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" Party y \u003d (Party) x;","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" if (y.isToday(date)) {","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" thisDatesList.add(y);","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" return thisDatesList;","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"applepiofmyeye":40}},{"path":"src/main/java/barbie/commands/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Represents all the command abstractly.","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" * All commands will inherit from this class.","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"public abstract class Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" protected boolean isExit;","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * @return barbie\u0027s output in a String format","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" public abstract String run(ArrayList\u003cTask\u003e taskList) throws BarbieException;","lastModifiedDate":"2023-09-21"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":23}},{"path":"src/main/java/barbie/commands/DeadlineCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Deadlines;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"deadline\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class DeadlineCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" private String desc;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" private LocalDate by;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a DeadlineCommand, and saves the description and by date.","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc description of the task to complete","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * @param by the deadline for the task to be completed","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" public DeadlineCommand(String desc, LocalDate by) {","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" this.desc \u003d desc;","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" this.by \u003d by;","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to return to user","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" Deadlines deadline \u003d new Deadlines(this.desc, this.by);","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" taskList.add(deadline);","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" Storage.addToList(desc, by);","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.taskAdded(deadline);","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":45}},{"path":"src/main/java/barbie/commands/DeleteCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieListEmptyException;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieTaskNumberException;","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"del\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"public class DeleteCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" private final int taskNumber;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a DeleteCommand, and saves the taskNumber to delete.","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskNumber the task number to be deleted.","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" public DeleteCommand(int taskNumber) {","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to return to user","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) throws BarbieException {","lastModifiedDate":"2023-09-21"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" if (taskList.size() \u003c taskNumber) {","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" if (taskList.size() \u003d\u003d 0) {","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieListEmptyException();","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" String taskToDel \u003d taskList.get(taskNumber).toString();","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" taskList.remove(this.taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" Storage.deleteLine(taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.del() + \"\\n\" + taskToDel;","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":47}},{"path":"src/main/java/barbie/commands/ExitCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Reoresents the command when a \"bye\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of the ExitCommand.","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * Sets the isExit variable to true.","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" public ExitCommand() {","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d true;","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to the user","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.exit();","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":32}},{"path":"src/main/java/barbie/commands/FindCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"find\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"public class FindCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" private String keyword;","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of the FindCommand and saves the keyword to search.","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" * @param keyword the keyword to match with","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" public FindCommand(String keyword) {","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" this.keyword \u003d keyword;","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * @return","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.findTasks(taskList, this.keyword);","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":34}},{"path":"src/main/java/barbie/commands/ListCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"list\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"public class ListCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a ListCommand.","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" public ListCommand() {","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.listTasks(taskList);","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" return e.getMessage();","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":37}},{"path":"src/main/java/barbie/commands/MarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieTaskNumberException;","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"mark\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class MarkCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" private int taskNumber;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an inctsnace of a MarkCommand.","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * Saves the taskNumber to mark","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskNumber the task to mark","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" public MarkCommand(int taskNumber) {","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) throws BarbieException {","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" if (taskList.size() \u003c taskNumber) {","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" Task task \u003d taskList.get(taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" task.mark();","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" Storage.changeLineStatus(\"1\", taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.mark(task);","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":44}},{"path":"src/main/java/barbie/commands/PartyCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Party;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"party\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class PartyCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" private String desc;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" private LocalDate from;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" private LocalDate to;","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a PartyCommand, saves the from and to dates.","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc description of the party","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * @param from the start time of the party","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" * @param to the end time of the party","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" public PartyCommand(String desc, LocalDate from, LocalDate to) {","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" this.desc \u003d desc;","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" this.from \u003d from;","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" this.to \u003d to;","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" Party party \u003d new Party(this.desc, this.from, this.to);","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" taskList.add(party);","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" Storage.addToList(this.desc, this.from, this.to);","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.taskAdded(party);","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":48}},{"path":"src/main/java/barbie/commands/TodoCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Todo;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a command when a \"todo\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"public class TodoCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" private String desc;","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of the TodoCommand and saves the description.","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" public TodoCommand(String desc) {","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" this.desc \u003d desc;","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" Todo todo \u003d new Todo(this.desc);","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" taskList.add(todo);","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" Storage.addToList(this.desc);","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.taskAdded(todo);","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":41}},{"path":"src/main/java/barbie/commands/UnmarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieTaskNumberException;","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a command when a \"unmark\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class UnmarkCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" private int taskNumber;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instanceof a UnmarkCommand, saves the taskNumber.","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskNumber task to be unmarked","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" public UnmarkCommand(int taskNumber) {","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) throws BarbieException {","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" if (taskList.size() \u003c taskNumber) {","lastModifiedDate":"2023-09-21"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" Task task \u003d taskList.get(taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" task.unmark();","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" Storage.changeLineStatus(\"0\", taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.unmark(task);","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":42}},{"path":"src/main/java/barbie/exceptions/BarbieDateTimeFormatException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Throws an exception when the date and time format given is incorrect.","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieDateTimeFormatException extends BarbieException {","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for BarbieDateTimeFormatException.","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieDateTimeFormatException() {","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Remember to put your deadlines or event timings in the format YYYY-MM-DD alright!\");","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":14}},{"path":"src/main/java/barbie/exceptions/BarbieException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Parent class for all Barbie-related Exceptions.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieException extends Exception {","lastModifiedDate":"2023-08-28"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for a BarbieException for child classes to implement.","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" * @param message to print","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieException(String message) {","lastModifiedDate":"2023-08-28"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Barbie Error!!\\n\" + message);","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-28"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-28"}],"authorContributionMap":{"applepiofmyeye":15}},{"path":"src/main/java/barbie/exceptions/BarbieListEmptyException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the exception when there is an empty list accessed.","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieListEmptyException extends BarbieException {","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a BarbieListEmptyException.","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieListEmptyException() {","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Hmm.. your list looks empty. To add items, use the \u0027todo\u0027, \"","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" + \"\u0027deadline\u0027 or \u0027party\u0027 commands!\");","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":14}},{"path":"src/main/java/barbie/exceptions/BarbieNoDeadlineException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Throws an exception for a Deadline initiated with no deadline.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieNoDeadlineException extends BarbieException {","lastModifiedDate":"2023-08-28"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for BarbieNoDeadlineException.","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieNoDeadlineException() {","lastModifiedDate":"2023-08-28"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Barbie your deadline has no deadline!\\n\"","lastModifiedDate":"2023-08-28"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" + \"Remember to add a deadline after the description denoted by a \u0027/\u0027 luv\");","lastModifiedDate":"2023-08-28"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-28"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-28"}],"authorContributionMap":{"applepiofmyeye":15}},{"path":"src/main/java/barbie/exceptions/BarbieNoDescException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Throws an exception for any Task initiated with no description.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieNoDescException extends BarbieException {","lastModifiedDate":"2023-08-28"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for BarbieNoDescException.","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieNoDescException() {","lastModifiedDate":"2023-08-28"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Barbie your item has no description!\\n\"","lastModifiedDate":"2023-08-28"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" + \"Remember to add a description after the command \u0027todo/deadline/party\u0027.\");","lastModifiedDate":"2023-08-28"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-28"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-28"}],"authorContributionMap":{"applepiofmyeye":16}},{"path":"src/main/java/barbie/exceptions/BarbieNoKeywordException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a missing keyword error","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieNoKeywordException extends BarbieException {","lastModifiedDate":"2023-09-04"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a Barbie exception when there is no keyword associated with the \u0027find\u0027 command.","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieNoKeywordException() {","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Hmm.. there didn\u0027t seem to be a keyword with that \u0027find\u0027 command, \\nmake sure to find by typing \"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" + \"\u0027find \u003ckeyword\u003e\u0027!\");","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-04"}],"authorContributionMap":{"applepiofmyeye":14}},{"path":"src/main/java/barbie/exceptions/BarbieNoSuchCommandException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a \"no such command\" error.","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieNoSuchCommandException extends BarbieException {","lastModifiedDate":"2023-09-04"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" * Represents an exception that is thrown when there is no clear command the user is asking.","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieNoSuchCommandException() {","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" super(\"There seems to be no matching command for what you\u0027re asking.. these are the following commands \"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" + \"you can use!\\n\\n\"","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t1. todo \u003ctask\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t2. deadline \u003ctask\u003e /\u003cdeadline\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t3. party \u003cparty name\u003e /\u003cstart\u003e /\u003cend\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t4. mark \u003cnumber\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t5. unmark \u003cnumber\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t6. list\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t7. find \u003ckeyword\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t8. del \u003cnumber\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t9. bye\"","lastModifiedDate":"2023-09-04"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" );","lastModifiedDate":"2023-09-04"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-04"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-04"}],"authorContributionMap":{"applepiofmyeye":24}},{"path":"src/main/java/barbie/exceptions/BarbieNoTimingException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Throws an exception when no timing is given when initiating a Deadline or a Party.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieNoTimingException extends BarbieException {","lastModifiedDate":"2023-08-28"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for BarbieNoTimingException.","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieNoTimingException() {","lastModifiedDate":"2023-08-28"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Barbie your party has the incorrect number of timings!\\n\"","lastModifiedDate":"2023-08-28"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" + \"Remember to add a \u0027start\u0027 time and an \u0027end\u0027 time\"","lastModifiedDate":"2023-08-28"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" + \" after the description! denote it by a \u0027/\u0027 luv\");","lastModifiedDate":"2023-08-28"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-28"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-28"}],"authorContributionMap":{"applepiofmyeye":16}},{"path":"src/main/java/barbie/exceptions/BarbieTaskNumberException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Throws an exception when changing the status or deleting a Task.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieTaskNumberException extends BarbieException {","lastModifiedDate":"2023-08-28"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for BarbieTaskNumberException.","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieTaskNumberException() {","lastModifiedDate":"2023-08-28"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Task to mark or unmark or del is not provided as a digit or not provided at all!\\n\"","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\n\" + \"Use the list command to see the digit of your task and make sure to give \\n\"","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" + \"the digit of the task you want to mark/unmark/del. (e.g. mark 2)\");","lastModifiedDate":"2023-08-28"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-28"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-28"}],"authorContributionMap":{"applepiofmyeye":16}},{"path":"src/main/java/barbie/types/Deadlines.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.types;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.Objects;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the subset of Tasks that have to be done by a certain deadline.","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"public class Deadlines extends Task {","lastModifiedDate":"2023-08-25"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" private final LocalDate by;","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" * Initialises an instance of a Deadline.","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * @param description description of the Task to be completed","lastModifiedDate":"2023-09-04"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" * @param by the deadline to complete the Task by in the format YYYY-MM-DD","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" public Deadlines(String description, LocalDate by) {","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" super(description);","lastModifiedDate":"2023-08-25"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" this.by \u003d by;","lastModifiedDate":"2023-08-25"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" * Checks if the Deadline is due on the specified date.","lastModifiedDate":"2023-09-04"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" * @param date the date to compare the Deadline\u0027s deadline to in the format YYYY-MM-DD","lastModifiedDate":"2023-09-04"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * @return whether the Task is due on the given date or not","lastModifiedDate":"2023-09-04"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" public boolean isToday(LocalDate date) {","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" return (Objects.equals(this.by, date));","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" * Retrieves the deadline of the task.","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" * @returns deadline of the Deadlines object","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" public LocalDate getDate() {","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" return this.by;","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" * Overrides the toString() method to return a customised String for each Deadline.","lastModifiedDate":"2023-09-04"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" * @return String with \"D\" type and with a \"[BY: xxx]\" tag","lastModifiedDate":"2023-09-04"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-08-25"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" public String toString() {","lastModifiedDate":"2023-08-25"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" return \"[D]\" + super.toString() + \"[BY: \" + this.by + \"]\";","lastModifiedDate":"2023-08-25"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"applepiofmyeye":53}},{"path":"src/main/java/barbie/types/Party.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.types;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.Objects;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the subset of Tasks that are events and have a start and end.","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"public class Party extends Task {","lastModifiedDate":"2023-08-25"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" protected LocalDate from;","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" protected LocalDate to;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" * Initialises an instance of a Party.","lastModifiedDate":"2023-09-04"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" * @param description description of the Party","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * @param from the start date of the Party","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * @param to the end date of the Party","lastModifiedDate":"2023-09-04"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" public Party(String description, LocalDate from, LocalDate to) {","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" super(description);","lastModifiedDate":"2023-08-25"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" this.from \u003d from;","lastModifiedDate":"2023-08-25"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" this.to \u003d to;","lastModifiedDate":"2023-08-25"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * Checks if the Party is due on the specified date.","lastModifiedDate":"2023-09-04"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * @param date the date to compare the Party\u0027s deadline to in the format YYYY-MM-DD","lastModifiedDate":"2023-09-04"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @return whether the Party is held on the given date or not","lastModifiedDate":"2023-09-04"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" public boolean isToday(LocalDate date) {","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" return (Objects.equals(this.from, date));","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * Retrieves the deadline of the task.","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" * @returns deadline of the Deadlines object","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" public LocalDate getDate() {","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" return this.from;","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" * Overrides the toString() method to return a customised String for each Todo.","lastModifiedDate":"2023-09-04"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" * @return String with \"P\" type and with the \"(from:xx, to:xx)\" tag.","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-08-25"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" public String toString() {","lastModifiedDate":"2023-08-25"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" return \"[P]\" + super.toString() + \"(from: \" + this.from + \", to: \" + this.to + \")\";","lastModifiedDate":"2023-09-16"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"applepiofmyeye":54}},{"path":"src/main/java/barbie/types/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.types;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Represents all Tasks that can be added into the list of Tasks saved by Barbie.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class Task {","lastModifiedDate":"2023-08-25"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" protected boolean isCompleted;","lastModifiedDate":"2023-08-25"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" protected String description;","lastModifiedDate":"2023-08-25"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" * Initialises a Task, that has not yet been completed.","lastModifiedDate":"2023-09-04"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" * @param description description of the Task to be completed","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" public Task(String description) {","lastModifiedDate":"2023-08-25"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-25"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" this.isCompleted \u003d false;","lastModifiedDate":"2023-08-25"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * Retrieves the description of the Task.","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" return this.description;","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * Retrieves the status of the Task: done or undone.","lastModifiedDate":"2023-09-04"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @return a String of [X] or [ ], [X] for done and [ ] for undone.","lastModifiedDate":"2023-09-04"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" public String getStatus() {","lastModifiedDate":"2023-08-25"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" return (isCompleted ? \"[X]\" : \"[ ]\");","lastModifiedDate":"2023-08-25"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * Unmarks a Task as done.","lastModifiedDate":"2023-09-04"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" * Meaning that the Task is marked as undone","lastModifiedDate":"2023-09-04"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" public void unmark() {","lastModifiedDate":"2023-08-25"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" isCompleted \u003d false;","lastModifiedDate":"2023-08-25"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" * Marks the Task as done.","lastModifiedDate":"2023-09-04"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" public void mark() {","lastModifiedDate":"2023-08-25"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" isCompleted \u003d true;","lastModifiedDate":"2023-08-25"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" * Overrides the toString() method to return a customised String with the status of the Task.","lastModifiedDate":"2023-09-04"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" * @return customised String including the status and description of the Task","lastModifiedDate":"2023-09-04"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-08-25"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" public String toString() {","lastModifiedDate":"2023-08-25"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" return this.getStatus() + \" \" + description;","lastModifiedDate":"2023-08-25"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"applepiofmyeye":61}},{"path":"src/main/java/barbie/types/Todo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.types;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the subset of Tasks that only have a description.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class Todo extends Task {","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" * Initialises an instance of a Todo.","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" * @param description description of the Task to be completed","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" public Todo(String description) {","lastModifiedDate":"2023-08-25"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" super(description);","lastModifiedDate":"2023-08-25"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * Overrides the toString() method to return a customised String for each Todo.","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * @return String with \"T\" type","lastModifiedDate":"2023-09-04"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-08-25"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" public String toString() {","lastModifiedDate":"2023-08-25"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-08-25"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"applepiofmyeye":25}},{"path":"src/main/resources/view/Dialogbox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.shape.Rectangle?\u003e","lastModifiedDate":"2023-09-24"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\"/\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets bottom\u003d\"10.0\" left\u003d\"10.0\" right\u003d\"10.0\" top\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":18}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"barbie.StageController\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"263.0\" AnchorPane.bottomAnchor\u003d\"1.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton fx:id\u003d\"viewButton\" layoutX\u003d\"263.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#switchToScene2\" prefHeight\u003d\"41.0\" prefWidth\u003d\"66.0\" text\u003d\"View\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"328.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"72.0\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefWidth\u003d\"388.0\" /\u003e","lastModifiedDate":"2023-09-24"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":20}},{"path":"src/main/resources/view/ScheduleWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.GridPane?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.text.Text?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"barbie.StageController\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003cpadding\u003e\u003cInsets bottom\u003d\"10\" left\u003d\"25\" right\u003d\"25\" top\u003d\"25\" /\u003e\u003c/padding\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" \u003cHBox prefHeight\u003d\"35.0\" prefWidth\u003d\"388.0\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" \u003cText text\u003d\"Schedule\" wrappingWidth\u003d\"133.2509765625\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" \u003cFont size\u003d\"25.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/font\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Text\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton mnemonicParsing\u003d\"false\" onAction\u003d\"#switchToScene1\" text\u003d\"Back\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton mnemonicParsing\u003d\"false\" onAction\u003d\"#loadItems\" text\u003d\"Load\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" \u003cHBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets left\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/HBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Button\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets bottom\u003d\"10.0\" left\u003d\"10.0\" right\u003d\"10.0\" top\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/HBox\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\" GridPane.rowIndex\u003d\"1\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox fx:id\u003d\"scheduleContainer\" prefHeight\u003d\"500.0\" prefWidth\u003d\"388.0\"/\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-19"}],"authorContributionMap":{"applepiofmyeye":43}},{"path":"src/main/resources/view/Schedulebox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/20.0.1\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox prefHeight\u003d\"200.0\" prefWidth\u003d\"398.0\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"desc\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003cFont name\u003d\"Arial Rounded MT Bold\" size\u003d\"19.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/font\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Label\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"type\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets top\u003d\"5.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Label\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"date\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets bottom\u003d\"10.0\" left\u003d\"10.0\" right\u003d\"10.0\" top\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-19"}],"authorContributionMap":{"applepiofmyeye":30}},{"path":"src/test/java/barbie/TestStorage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Files;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Path;","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Paths;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.List;","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * Tests the Storage class.","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"public class TestStorage {","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * Tests if the Storage::addToList is able to add a description with commas.","lastModifiedDate":"2023-09-04"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" @Test","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" public void testAddToListCommas() {","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" Path path \u003d Paths.get(\"barbie.txt\");","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" Storage.addToList(\"do, work,\");","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" List\u003cString\u003e list \u003d Files.readAllLines(path);","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" String actual \u003d list.get(list.size() - 1);","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" assertEquals(\"T,0,do, work,\", actual);","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-03"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-03"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" * Tests if the Storage::getLastList is able to return a task of description \"do\" for an incorrect","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" * input of do, work.","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" @Test","lastModifiedDate":"2023-09-03"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" public void testGetListWithCommas() {","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e oldList \u003d Storage.getLastList();","lastModifiedDate":"2023-09-03"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" String actual \u003d oldList.get(oldList.size() - 1).toString();","lastModifiedDate":"2023-09-03"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" assertEquals(\"[T][ ] do\", actual);","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"applepiofmyeye":50}},{"path":"src/test/java/barbie/TestUi.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" * NO LONGER USABLE after Level 10 iteration.","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * Tests the Ui class.","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"public class TestUi {","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * Tests if an empty file list will print the prompt to add Tasks.","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" @Test","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" public void testEmptyFileList() {","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" String actual;","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" Ui.listTasks(new ArrayList\u003c\u003e());","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" } catch (BarbieException e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" actual \u003d e.getMessage();","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" String expected \u003d \"Barbie Error!!\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" + \"Hmm.. your list looks empty. To add items, use the \u0027todo\u0027, \"","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" + \"\u0027deadline\u0027 or \u0027party\u0027 commands!\";","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" assertEquals(expected, actual);","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":37}},{"path":"src/test/java/barbie/TestUtils.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" * Tests the Utils class.","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"public class TestUtils {","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * Tests if Utils::getDateList is able to return an empty list when the current list is empty.","lastModifiedDate":"2023-09-04"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" @Test","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" public void testEmptyList() {","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e list \u003d Utils.getDateList(LocalDate.parse(\"2023-08-20\"), new ArrayList\u003c\u003e());","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" assertEquals(list.size(), 0);","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"applepiofmyeye":27}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"todo read book","lastModifiedDate":"2023-08-25"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"todo help do chores","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"del 1","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"del 2","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"list","lastModifiedDate":"2023-08-25"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"bye","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"applepiofmyeye":6}},{"path":"text-ui-test/runtest.bat","fileType":"bat","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@ECHO OFF","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"REM create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if not exist ..\\bin mkdir ..\\bin","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"REM delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"if exist ACTUAL.TXT del ACTUAL.TXT","lastModifiedDate":"2020-08-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"REM compile the code into the bin folder","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"javac -cp ..\\src\\main\\java -Xlint:none -d ..\\bin ..\\src\\main\\java\\*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"IF ERRORLEVEL 1 (","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" echo ********** BUILD FAILURE **********","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" exit /b 1","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"REM no error here, errorlevel \u003d\u003d 0","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"REM run the program, feed types from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"-"},"content":"java -classpath ..\\bin Duke \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"REM compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"FC ACTUAL.TXT EXPECTED.TXT","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"applepiofmyeye":1,"-":20}},{"path":"text-ui-test/runtest.sh","fileType":"sh","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"#!/usr/bin/env bash","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"# create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if [ ! -d \"../bin\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":" mkdir ../bin","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"# delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"if [ -e \"./ACTUAL.TXT\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" rm ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"# compile the code into the bin folder, terminates if error occurred","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"if ! javac -cp ../src/main/java -Xlint:none -d ../bin ../src/main/java/*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" echo \"********** BUILD FAILURE **********\"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"# run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"java -classpath ../bin Barbie \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-08-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":"# convert to UNIX format","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"cp EXPECTED.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":"dos2unix ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"# compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"diff ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"if [ $? -eq 0 ]","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" echo \"Test result: PASSED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" exit 0","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"else","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" echo \"Test result: FAILED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"applepiofmyeye":1,"-":37}}] +[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"# Barbie\u0027s world","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"This is an individual CS2103T brownfield Java project. It is forked from the project template Duke, which is named after the Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"1. Open Intellij (if you are not in the welcome screen, click `File` \u003e `Close Project` to close the existing project first)","lastModifiedDate":"2021-01-17"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":11,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":12,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":13,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"1. Configure the project to use **JDK 11** (not other versions) as explained in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).\u003cbr\u003e","lastModifiedDate":"2021-07-29"},{"lineNumber":15,"author":{"gitId":"-"},"content":" In the same dialog, set the **Project language level** field to the `SDK default` option.","lastModifiedDate":"2021-07-29"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"3. After that, locate the `src/main/java/Launcher.java` file, right-click it, and choose `Run Launcher.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something below as the window:","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" ","lastModifiedDate":"2023-08-25"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" \u003cimg src\u003d\"docs/Ui.png\"/\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":"For more information, refer to the [User Guide](https://applepiofmyeye.github.io/ip/).","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":8,"-":13}},{"path":"barbie.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"T,0,do, work,","lastModifiedDate":"2023-09-24"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"T,0,do, work,","lastModifiedDate":"2023-09-24"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"T,0,do, work,","lastModifiedDate":"2023-09-24"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"T,0,buy milk","lastModifiedDate":"2023-09-24"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"T,0,get umbrella","lastModifiedDate":"2023-09-24"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"T,1,buy bread","lastModifiedDate":"2023-09-24"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"T,1,buy bread","lastModifiedDate":"2023-09-24"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"T,0,do, work,","lastModifiedDate":"2023-09-30"}],"authorContributionMap":{"applepiofmyeye":8}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-30"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":30,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":32,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" mainClass.set(\"barbie.Launcher\")","lastModifiedDate":"2023-09-30"},{"lineNumber":48,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" archiveBaseName \u003d \"barbie\"","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" archiveFileName \u003d \u0027barbie.jar\u0027","lastModifiedDate":"2023-09-30"},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":58,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":"jar {","lastModifiedDate":"2023-09-30"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" manifest {","lastModifiedDate":"2023-09-30"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" attributes \u0027Main-Class\u0027: \u0027barbie.Launcher\u0027 // Entry point for the application when running `java -jar duke.jar`","lastModifiedDate":"2023-09-30"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-04"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-04"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":"checkstyle {","lastModifiedDate":"2023-09-07"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"applepiofmyeye":29,"-":40}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"# Barbie World User Guide","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"-"},"content":"## Features ","lastModifiedDate":"2019-07-29"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"### Add tasks and events","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"In Barbie world, you can add todos, deadlines, anddddd PARTIES! ","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"Some of the characteristics of these are as follows:","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"- Todo: only has a description","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"- Deadline: description + deadline","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"- Party: description + start + end","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"### Edit and update tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"When you\u0027ve completed a task, you can **mark** it as done! Other ways of editing your list of fabulous todos include","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"**deleting** and **unmarking** a task as done.","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"### Find tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"When things get *REALLY* busy in Barbieland, Barbies may lose track of their tasks! Which is why in Barbie World, ","lastModifiedDate":"2023-09-21"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"we want to help you get back on track! You may find tasks with a keyword, or list out all your tasks!","lastModifiedDate":"2023-09-21"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":20,"author":{"gitId":"-"},"content":"## Usage","lastModifiedDate":"2019-07-29"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":"- \"todo\" -- adds a new todo to your list of tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":"- \"deadline\" -- adds a new task with a deadline, indicate the deadline using a \"/\" in the format YYYY-MM-DD.","lastModifiedDate":"2023-09-21"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" - (e.g. deadline buy bread /2023-09-20)","lastModifiedDate":"2023-09-21"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":"- \"party\" -- adds a new party with a start and end date","lastModifiedDate":"2023-09-21"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" - (e.g. party barbie\u0027s birthday party /2023-09-20 /2023-09-21)","lastModifiedDate":"2023-09-21"},{"lineNumber":26,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"### `todo` - add todo","lastModifiedDate":"2023-09-21"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":"This command adds a todo to your task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":31,"author":{"gitId":"-"},"content":"Example of usage: ","lastModifiedDate":"2023-09-21"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":"`todo buy Barbie\u0027s present`","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":35,"author":{"gitId":"-"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":"Got you barbie! I\u0027ve added this task to your Barbie list: \u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":"### `deadline` - add deadline","lastModifiedDate":"2023-09-21"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":"This command adds a deadline to your task list, with the deadline indicated in the format ","lastModifiedDate":"2023-09-21"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":"YYYY-MM-DD","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":"`deadline buy Barbie\u0027s present /2023-09-29`","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":"Got you barbie! I\u0027ve added this task to your Barbie list: \u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":"### `party` - add party","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":"This command adds a party to your task list, with the start and end date indicated in the format","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":"YYYY-MM-DD","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":63,"author":{"gitId":"-"},"content":"Example of usage:","lastModifiedDate":"2019-07-29"},{"lineNumber":64,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":"`party Barbie\u0027s birthday party /2023-08-20 /2023-09-20`","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":67,"author":{"gitId":"-"},"content":"Expected outcome:","lastModifiedDate":"2019-07-29"},{"lineNumber":68,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":"Got you barbie! I\u0027ve added this task to your Barbie list: \u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":"### `mark` - mark task as done","lastModifiedDate":"2023-09-21"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":"This command marks a task in your task as done, using the item number ","lastModifiedDate":"2023-09-21"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":"of the task in that list.","lastModifiedDate":"2023-09-21"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":"`mark 2`","lastModifiedDate":"2023-09-21"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":"Nice! I\u0027ve marked this task as done:","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":"\u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":"### `unmark` - unmark task as done","lastModifiedDate":"2023-09-21"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":"This command unmarks a task as done, using that item number of the task","lastModifiedDate":"2023-09-21"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":"in that list","lastModifiedDate":"2023-09-21"},{"lineNumber":91,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":92,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":93,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":94,"author":{"gitId":"applepiofmyeye"},"content":"`unmark 2`","lastModifiedDate":"2023-09-21"},{"lineNumber":95,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":96,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":97,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":98,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":99,"author":{"gitId":"applepiofmyeye"},"content":"Alright! I\u0027ve marked this task as not done yet!","lastModifiedDate":"2023-09-21"},{"lineNumber":100,"author":{"gitId":"applepiofmyeye"},"content":"\u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":101,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":102,"author":{"gitId":"applepiofmyeye"},"content":"### `del` - delete task","lastModifiedDate":"2023-09-21"},{"lineNumber":103,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":104,"author":{"gitId":"applepiofmyeye"},"content":"This command deleted a task from the list, using that item number of the task","lastModifiedDate":"2023-09-21"},{"lineNumber":105,"author":{"gitId":"applepiofmyeye"},"content":"in that list","lastModifiedDate":"2023-09-21"},{"lineNumber":106,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":107,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":108,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":109,"author":{"gitId":"applepiofmyeye"},"content":"`del 2`","lastModifiedDate":"2023-09-21"},{"lineNumber":110,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":111,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":112,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":113,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":114,"author":{"gitId":"applepiofmyeye"},"content":"Deletion success! I\u0027ve deleted this task off your list.","lastModifiedDate":"2023-09-21"},{"lineNumber":115,"author":{"gitId":"applepiofmyeye"},"content":"\u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":116,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":117,"author":{"gitId":"applepiofmyeye"},"content":"### `find` - find tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":118,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":119,"author":{"gitId":"applepiofmyeye"},"content":"This command finds a task using a provided keyword.","lastModifiedDate":"2023-09-21"},{"lineNumber":120,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":121,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":122,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":123,"author":{"gitId":"applepiofmyeye"},"content":"`find milk`","lastModifiedDate":"2023-09-21"},{"lineNumber":124,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":125,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":126,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":127,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":128,"author":{"gitId":"applepiofmyeye"},"content":"These are your tasks with the keyword: milk","lastModifiedDate":"2023-09-21"},{"lineNumber":129,"author":{"gitId":"applepiofmyeye"},"content":"\u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":130,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":131,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":132,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":133,"author":{"gitId":"applepiofmyeye"},"content":"### `list` - list tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":134,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":135,"author":{"gitId":"applepiofmyeye"},"content":"This command lists all tasks in the task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":136,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":137,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":138,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":139,"author":{"gitId":"applepiofmyeye"},"content":"`list`","lastModifiedDate":"2023-09-21"},{"lineNumber":140,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":141,"author":{"gitId":"applepiofmyeye"},"content":"Expected outcome:","lastModifiedDate":"2023-09-21"},{"lineNumber":142,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":143,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":144,"author":{"gitId":"applepiofmyeye"},"content":"1. \u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":145,"author":{"gitId":"applepiofmyeye"},"content":"2. \u003ctask\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":146,"author":{"gitId":"applepiofmyeye"},"content":"...","lastModifiedDate":"2023-09-21"},{"lineNumber":147,"author":{"gitId":"applepiofmyeye"},"content":"```","lastModifiedDate":"2023-09-21"},{"lineNumber":148,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":149,"author":{"gitId":"applepiofmyeye"},"content":"### `exit` - exit app","lastModifiedDate":"2023-09-21"},{"lineNumber":150,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":151,"author":{"gitId":"applepiofmyeye"},"content":"This command closes the application.","lastModifiedDate":"2023-09-21"},{"lineNumber":152,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":153,"author":{"gitId":"applepiofmyeye"},"content":"Example of usage:","lastModifiedDate":"2023-09-21"},{"lineNumber":154,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":155,"author":{"gitId":"applepiofmyeye"},"content":"`exit`","lastModifiedDate":"2023-09-21"},{"lineNumber":156,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":157,"author":{"gitId":"applepiofmyeye"},"content":"### `view` - view schedule","lastModifiedDate":"2023-09-21"},{"lineNumber":158,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":159,"author":{"gitId":"applepiofmyeye"},"content":"This button opens a new tab to see your tasks for that day!","lastModifiedDate":"2023-09-21"},{"lineNumber":160,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"applepiofmyeye":134,"-":26}},{"path":"src/main/java/barbie/Barbie.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.Command;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.ExitCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" * Implements the main Barbie chatbot logic.","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"public class Barbie {","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" private Parser parser;","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" private ArrayList\u003cTask\u003e taskList;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" private boolean doExit;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of Barbie.","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" public Barbie() {","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" this.parser \u003d new Parser();","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" this.taskList \u003d Storage.getLastList();","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" this.doExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * Gets the doExit variable -- to see if the application should exit or not.","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @return whether the application should exit","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" public boolean getDoExit() {","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" return this.doExit;","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * Gets barbie\u0027s response to the user input.","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" * @param input user input","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" * @return barbie\u0027s response","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" protected String getResponse(String input) {","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" String toPrint;","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" Command command \u003d parser.parse(input);","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" toPrint \u003d command.run(taskList);","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" if (command instanceof ExitCommand) {","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" this.doExit \u003d true;","lastModifiedDate":"2023-09-16"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" return e.getMessage();","lastModifiedDate":"2023-09-16"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" return toPrint;","lastModifiedDate":"2023-09-16"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" * Greets user in the beginning.","lastModifiedDate":"2023-09-18"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" * This will be added later on","lastModifiedDate":"2023-09-18"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user.","lastModifiedDate":"2023-09-18"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" protected String greet() {","lastModifiedDate":"2023-09-16"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.intro(taskList);","lastModifiedDate":"2023-09-16"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":67}},{"path":"src/main/java/barbie/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.geometry.Insets;","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.shape.Circle;","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.shape.Rectangle;","lastModifiedDate":"2023-09-24"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" private Label dialog;","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-24"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" private Rectangle roundedRectangle;","lastModifiedDate":"2023-09-24"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a DialogBox.","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" * @param text text of the DialogBox","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * @param img profile picture of the person","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" private DialogBox(String text, Image img, boolean isBarbie) {","lastModifiedDate":"2023-09-24"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(StageController.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-30"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" dialog.setPadding(new Insets(0, 10, 0, 10));","lastModifiedDate":"2023-09-16"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" Circle circle \u003d new Circle();","lastModifiedDate":"2023-09-16"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" circle.setRadius(50.0);","lastModifiedDate":"2023-09-16"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" circle.setCenterX(50.0);","lastModifiedDate":"2023-09-16"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" circle.setCenterY(50.0);","lastModifiedDate":"2023-09-16"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-16"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" displayPicture.setClip(circle);","lastModifiedDate":"2023-09-16"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-16"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" private void flip() {","lastModifiedDate":"2023-09-16"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-16"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-16"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-16"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-16"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":" * Gets the DialogBox for the user.","lastModifiedDate":"2023-09-16"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":" * @param text user\u0027s input","lastModifiedDate":"2023-09-16"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" * @param img user\u0027s profile picture","lastModifiedDate":"2023-09-16"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":" * @return DialogBox object for the user","lastModifiedDate":"2023-09-16"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-16"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":" return new DialogBox(text, img, false);","lastModifiedDate":"2023-09-24"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":" * Gets the DialogBox for Barbie.","lastModifiedDate":"2023-09-16"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":" * @param text Barbie\u0027s response","lastModifiedDate":"2023-09-16"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":" * @param img Barbie\u0027s profile picture","lastModifiedDate":"2023-09-16"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":" * @return DialogBox object for Barbie","lastModifiedDate":"2023-09-16"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":" public static DialogBox getDukeDialog(String text, Image img ) {","lastModifiedDate":"2023-09-16"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":" var db \u003d new DialogBox(text, img, true);","lastModifiedDate":"2023-09-24"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":" db.flip();","lastModifiedDate":"2023-09-16"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":" return db;","lastModifiedDate":"2023-09-16"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":90}},{"path":"src/main/java/barbie/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"public class Launcher {","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":12}},{"path":"src/main/java/barbie/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.*;","lastModifiedDate":"2023-09-24"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" private Barbie barbie;","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * The main entry point for all JavaFX applications.","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * The start method is called after the init method has returned, and after the system is","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" * ready for the application to begin running.","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" * NOTE: This method is called on the JavaFX Application Thread.","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" * @param stage the primary stage for this application, onto which the application scene can be set.","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * Applications may create other stages, if needed, but they will not be","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * primary stages.","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" stage.show();","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" stage.setTitle(\"Barbie\u0027s World\");","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" stage.setResizable(false);","lastModifiedDate":"2023-09-24"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":45}},{"path":"src/main/java/barbie/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.application.Platform;","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" private Button viewButton;","lastModifiedDate":"2023-09-19"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" private Barbie barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Mochi.png\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Barbie.png\"));","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" * Initialises the main window.","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" public void initialize() {","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" * Sets the barbie bot.","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" * @param b barbie instance","lastModifiedDate":"2023-09-16"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" public void setBarbie(Barbie b) {","lastModifiedDate":"2023-09-16"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" barbie \u003d b;","lastModifiedDate":"2023-09-16"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Barbie\u0027s reply.","lastModifiedDate":"2023-09-16"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-16"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-16"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-16"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" String response \u003d barbie.getResponse(input);","lastModifiedDate":"2023-09-16"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-16"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-16"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-16"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" );","lastModifiedDate":"2023-09-16"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":" userInput.clear();","lastModifiedDate":"2023-09-16"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":" if (barbie.getDoExit()) {","lastModifiedDate":"2023-09-16"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":" Platform.exit();","lastModifiedDate":"2023-09-16"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":74}},{"path":"src/main/java/barbie/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.Command;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.DeadlineCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.DeleteCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.ExitCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.FindCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.ListCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.MarkCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.PartyCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.TodoCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.commands.UnmarkCommand;","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieDateTimeFormatException;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieNoDeadlineException;","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieNoDescException;","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieNoKeywordException;","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieNoSuchCommandException;","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieNoTimingException;","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieTaskNumberException;","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a class which parses input.","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":"public class Parser {","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for the Parser class.","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" public Parser() {","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * Parse input given to return the command used.","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" * @param input text input of the user","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" * @return command to be executed based on the text parsed","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" * @throws BarbieException thrown in the commands","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" public Command parse(String input) throws BarbieException {","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" String[] parts \u003d input.split(\" \", 2);","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" String inputCommand \u003d parts[0].toLowerCase();","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" switch (inputCommand) {","lastModifiedDate":"2023-09-18"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" case \"mark\":","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-16"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" case \"del\":","lastModifiedDate":"2023-09-16"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" return parseEditTasks(parts);","lastModifiedDate":"2023-09-18"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" case \"todo\":","lastModifiedDate":"2023-09-18"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-18"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" case \"party\":","lastModifiedDate":"2023-09-18"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" return parseAddTasks(parts);","lastModifiedDate":"2023-09-18"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" case \"list\": return new ListCommand();","lastModifiedDate":"2023-09-18"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" case \"find\": return parseFindTask(parts);","lastModifiedDate":"2023-09-18"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" case \"bye\": return new ExitCommand();","lastModifiedDate":"2023-09-18"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" default:","lastModifiedDate":"2023-09-18"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieNoSuchCommandException();","lastModifiedDate":"2023-09-18"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-16"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-18"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieDateTimeFormatException();","lastModifiedDate":"2023-09-18"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":" * Abstracts the logic of parsing the commands that add tasks.","lastModifiedDate":"2023-09-18"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":" * For example: todo, deadline, party","lastModifiedDate":"2023-09-18"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":" * @param inputArr input after being split into an array","lastModifiedDate":"2023-09-18"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":" * @return Command to be executed","lastModifiedDate":"2023-09-18"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":" * @throws BarbieException exception when the formatting of the input is wrong","lastModifiedDate":"2023-09-18"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":" private Command parseAddTasks(String[] inputArr) throws BarbieException {","lastModifiedDate":"2023-09-18"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":" if (inputArr.length \u003c 2) {","lastModifiedDate":"2023-09-18"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieNoDescException();","lastModifiedDate":"2023-09-16"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":" String[] parts2 \u003d inputArr[1].split(\"/\");","lastModifiedDate":"2023-09-18"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":" String desc;","lastModifiedDate":"2023-09-16"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":" switch (inputArr[0].toLowerCase()) {","lastModifiedDate":"2023-09-18"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-16"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":" if (parts2.length \u003c 2) {","lastModifiedDate":"2023-09-16"},{"lineNumber":91,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieNoDeadlineException();","lastModifiedDate":"2023-09-16"},{"lineNumber":92,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":93,"author":{"gitId":"applepiofmyeye"},"content":" desc \u003d parts2[0];","lastModifiedDate":"2023-09-16"},{"lineNumber":94,"author":{"gitId":"applepiofmyeye"},"content":" LocalDate by \u003d LocalDate.parse(parts2[1].strip());","lastModifiedDate":"2023-09-21"},{"lineNumber":95,"author":{"gitId":"applepiofmyeye"},"content":" return new DeadlineCommand(desc, by);","lastModifiedDate":"2023-09-16"},{"lineNumber":96,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":97,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":98,"author":{"gitId":"applepiofmyeye"},"content":" case \"party\":","lastModifiedDate":"2023-09-16"},{"lineNumber":99,"author":{"gitId":"applepiofmyeye"},"content":" if (parts2.length \u003c 3) {","lastModifiedDate":"2023-09-16"},{"lineNumber":100,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieNoTimingException();","lastModifiedDate":"2023-09-16"},{"lineNumber":101,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":102,"author":{"gitId":"applepiofmyeye"},"content":" desc \u003d parts2[0];","lastModifiedDate":"2023-09-16"},{"lineNumber":103,"author":{"gitId":"applepiofmyeye"},"content":" LocalDate from \u003d LocalDate.parse(parts2[1].strip());","lastModifiedDate":"2023-09-16"},{"lineNumber":104,"author":{"gitId":"applepiofmyeye"},"content":" LocalDate to \u003d LocalDate.parse(parts2[2].strip());","lastModifiedDate":"2023-09-16"},{"lineNumber":105,"author":{"gitId":"applepiofmyeye"},"content":" return new PartyCommand(desc, from, to);","lastModifiedDate":"2023-09-16"},{"lineNumber":106,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":107,"author":{"gitId":"applepiofmyeye"},"content":" default:","lastModifiedDate":"2023-09-16"},{"lineNumber":108,"author":{"gitId":"applepiofmyeye"},"content":" desc \u003d inputArr[1];","lastModifiedDate":"2023-09-18"},{"lineNumber":109,"author":{"gitId":"applepiofmyeye"},"content":" return new TodoCommand(desc);","lastModifiedDate":"2023-09-16"},{"lineNumber":110,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":111,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":112,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":113,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":114,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":115,"author":{"gitId":"applepiofmyeye"},"content":" * Abstracts the logic of parsing the commands that edit tasks.","lastModifiedDate":"2023-09-18"},{"lineNumber":116,"author":{"gitId":"applepiofmyeye"},"content":" * For example: mark, unmark, del","lastModifiedDate":"2023-09-18"},{"lineNumber":117,"author":{"gitId":"applepiofmyeye"},"content":" * @param inputArr input after it has been split into an array","lastModifiedDate":"2023-09-18"},{"lineNumber":118,"author":{"gitId":"applepiofmyeye"},"content":" * @return Command to be executed","lastModifiedDate":"2023-09-18"},{"lineNumber":119,"author":{"gitId":"applepiofmyeye"},"content":" * @throws BarbieException exception when there is no task number","lastModifiedDate":"2023-09-18"},{"lineNumber":120,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":121,"author":{"gitId":"applepiofmyeye"},"content":" private Command parseEditTasks(String[] inputArr) throws BarbieException {","lastModifiedDate":"2023-09-18"},{"lineNumber":122,"author":{"gitId":"applepiofmyeye"},"content":" if (inputArr.length \u003c 2) {","lastModifiedDate":"2023-09-21"},{"lineNumber":123,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-16"},{"lineNumber":124,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":125,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":126,"author":{"gitId":"applepiofmyeye"},"content":" int taskNumber;","lastModifiedDate":"2023-09-21"},{"lineNumber":127,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-21"},{"lineNumber":128,"author":{"gitId":"applepiofmyeye"},"content":" taskNumber \u003d Integer.parseInt(inputArr[1]) - 1;","lastModifiedDate":"2023-09-21"},{"lineNumber":129,"author":{"gitId":"applepiofmyeye"},"content":" switch(inputArr[0].toLowerCase()) {","lastModifiedDate":"2023-09-18"},{"lineNumber":130,"author":{"gitId":"applepiofmyeye"},"content":" case \"mark\": return new MarkCommand(taskNumber);","lastModifiedDate":"2023-09-18"},{"lineNumber":131,"author":{"gitId":"applepiofmyeye"},"content":" case \"unmark\": return new UnmarkCommand(taskNumber);","lastModifiedDate":"2023-09-18"},{"lineNumber":132,"author":{"gitId":"applepiofmyeye"},"content":" default: return new DeleteCommand(taskNumber);","lastModifiedDate":"2023-09-18"},{"lineNumber":133,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":134,"author":{"gitId":"applepiofmyeye"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-09-21"},{"lineNumber":135,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-21"},{"lineNumber":136,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":137,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":138,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":139,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":140,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":141,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":142,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":143,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":144,"author":{"gitId":"applepiofmyeye"},"content":" * Abstracts the logic of parsing the find function.","lastModifiedDate":"2023-09-18"},{"lineNumber":145,"author":{"gitId":"applepiofmyeye"},"content":" * @param inputArr input after it has been split into an array","lastModifiedDate":"2023-09-18"},{"lineNumber":146,"author":{"gitId":"applepiofmyeye"},"content":" * @return Command to be executed","lastModifiedDate":"2023-09-18"},{"lineNumber":147,"author":{"gitId":"applepiofmyeye"},"content":" * @throws BarbieException exceptions that arise from no keyword","lastModifiedDate":"2023-09-18"},{"lineNumber":148,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":149,"author":{"gitId":"applepiofmyeye"},"content":" private Command parseFindTask(String[] inputArr) throws BarbieException {","lastModifiedDate":"2023-09-18"},{"lineNumber":150,"author":{"gitId":"applepiofmyeye"},"content":" if (inputArr.length \u003c 2) {","lastModifiedDate":"2023-09-18"},{"lineNumber":151,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieNoKeywordException();","lastModifiedDate":"2023-09-18"},{"lineNumber":152,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":153,"author":{"gitId":"applepiofmyeye"},"content":" String keyword \u003d inputArr[1];","lastModifiedDate":"2023-09-18"},{"lineNumber":154,"author":{"gitId":"applepiofmyeye"},"content":" return new FindCommand(keyword);","lastModifiedDate":"2023-09-18"},{"lineNumber":155,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":156,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":156}},{"path":"src/main/java/barbie/ScheduleBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-24"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Deadlines;","lastModifiedDate":"2023-09-19"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Party;","lastModifiedDate":"2023-09-19"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-24"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the HBox that consists of a task name, type and due date to be displayed on the schedule viewer.","lastModifiedDate":"2023-09-24"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"public class ScheduleBox extends HBox {","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" private Label desc \u003d new Label(\"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" private Label date \u003d new Label(\"No date\");","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" private Label type \u003d new Label(\"Todo\");","lastModifiedDate":"2023-09-24"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" private Task task;","lastModifiedDate":"2023-09-24"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a ScheduleBox.","lastModifiedDate":"2023-09-24"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @param task task to display","lastModifiedDate":"2023-09-24"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" public ScheduleBox(Task task) {","lastModifiedDate":"2023-09-19"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" this.task \u003d task;","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" loadFxml();","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" desc.setText(task.getDescription());","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" if (task instanceof Deadlines) {","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" Deadlines typedTask \u003d (Deadlines) task;","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" date.setText(typedTask.getDate().toString());","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" type.setText(\"Deadline\");","lastModifiedDate":"2023-09-24"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" } else if (task instanceof Party) {","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" Party typedTask \u003d (Party) task;","lastModifiedDate":"2023-09-19"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" date.setText(typedTask.getDate().toString());","lastModifiedDate":"2023-09-19"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" type.setText(\"Party\");","lastModifiedDate":"2023-09-24"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-24"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-24"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" * Loads the FXML file of the ScheduleBox.","lastModifiedDate":"2023-09-24"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" * @throws IOException exception thrown when loading FXMLLoader","lastModifiedDate":"2023-09-24"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" private void loadFxml() throws IOException {","lastModifiedDate":"2023-09-19"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/Schedulebox.fxml\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-19"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-19"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-19"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-19"}],"authorContributionMap":{"applepiofmyeye":63}},{"path":"src/main/java/barbie/StageController.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-24"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-24"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-24"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-24"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.application.Platform;","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.event.ActionEvent;","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.Parent;","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.layout.*;","lastModifiedDate":"2023-09-24"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.paint.Color;","lastModifiedDate":"2023-09-24"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.scene.paint.Paint;","lastModifiedDate":"2023-09-24"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-24"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the Controller for the chatbot stage: controls the scenes.","lastModifiedDate":"2023-09-24"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"public class StageController {","lastModifiedDate":"2023-09-19"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" private Stage stage;","lastModifiedDate":"2023-09-19"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" private Scene scene;","lastModifiedDate":"2023-09-19"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" private Parent root;","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" private Button viewButton;","lastModifiedDate":"2023-09-19"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" private VBox scheduleContainer;","lastModifiedDate":"2023-09-19"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" private Paint color \u003d Color.color(1, 230.0 / 255, 1, 1.0);","lastModifiedDate":"2023-09-24"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-24"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" private Barbie barbie \u003d new Barbie();","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Mochi.png\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Barbie.png\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" * Switches the scene to scene 1.","lastModifiedDate":"2023-09-24"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" * Scene 1 refers to the chat page.","lastModifiedDate":"2023-09-24"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" * @param event event to switch to","lastModifiedDate":"2023-09-24"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" * @throws IOException exception thrown when loading FXMLLoader","lastModifiedDate":"2023-09-24"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" public void switchToScene1(ActionEvent event) throws IOException {","lastModifiedDate":"2023-09-19"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" root \u003d FXMLLoader.load(Objects.requireNonNull(getClass().getResource(\"/view/MainWindow.fxml\")));","lastModifiedDate":"2023-09-19"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" stage \u003d (Stage) ((Node) event.getSource()).getScene().getWindow();","lastModifiedDate":"2023-09-19"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" scene \u003d new Scene(root);","lastModifiedDate":"2023-09-19"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-19"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":" stage.show();","lastModifiedDate":"2023-09-19"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":" * Switches the scene to scene 2.","lastModifiedDate":"2023-09-24"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" * Scene 2 refers to the schedule page which shows items for the day","lastModifiedDate":"2023-09-24"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":" * @param event event to switch to","lastModifiedDate":"2023-09-24"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":" * @throws IOException exception thrown when loading FXMLLoader","lastModifiedDate":"2023-09-24"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":" public void switchToScene2(ActionEvent event) throws IOException {","lastModifiedDate":"2023-09-19"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":" root \u003d FXMLLoader.load(Objects.requireNonNull(getClass().getResource(\"/view/ScheduleWindow.fxml\")));","lastModifiedDate":"2023-09-19"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":" stage \u003d (Stage) ((Node) event.getSource()).getScene().getWindow();","lastModifiedDate":"2023-09-19"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":" scene \u003d new Scene(root);","lastModifiedDate":"2023-09-19"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-19"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":" stage.show();","lastModifiedDate":"2023-09-19"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":" * Handles user input and loads the response onto the scene.","lastModifiedDate":"2023-09-24"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-19"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-19"},{"lineNumber":91,"author":{"gitId":"applepiofmyeye"},"content":" String response \u003d barbie.getResponse(input);","lastModifiedDate":"2023-09-19"},{"lineNumber":92,"author":{"gitId":"applepiofmyeye"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-19"},{"lineNumber":93,"author":{"gitId":"applepiofmyeye"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-19"},{"lineNumber":94,"author":{"gitId":"applepiofmyeye"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-19"},{"lineNumber":95,"author":{"gitId":"applepiofmyeye"},"content":" );","lastModifiedDate":"2023-09-19"},{"lineNumber":96,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":97,"author":{"gitId":"applepiofmyeye"},"content":" userInput.clear();","lastModifiedDate":"2023-09-19"},{"lineNumber":98,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":99,"author":{"gitId":"applepiofmyeye"},"content":" if (barbie.getDoExit()) {","lastModifiedDate":"2023-09-19"},{"lineNumber":100,"author":{"gitId":"applepiofmyeye"},"content":" Platform.exit();","lastModifiedDate":"2023-09-19"},{"lineNumber":101,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":102,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":103,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":104,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":105,"author":{"gitId":"applepiofmyeye"},"content":" * Loads items from the task list to the schedule viewer.","lastModifiedDate":"2023-09-24"},{"lineNumber":106,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":107,"author":{"gitId":"applepiofmyeye"},"content":" @FXML","lastModifiedDate":"2023-09-19"},{"lineNumber":108,"author":{"gitId":"applepiofmyeye"},"content":" private void loadItems() {","lastModifiedDate":"2023-09-19"},{"lineNumber":109,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e currTaskList \u003d Storage.getLastList();","lastModifiedDate":"2023-09-19"},{"lineNumber":110,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e todaysList \u003d Utils.getDateList(LocalDate.now(), currTaskList);","lastModifiedDate":"2023-09-19"},{"lineNumber":111,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cScheduleBox\u003e boxList \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-19"},{"lineNumber":112,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":113,"author":{"gitId":"applepiofmyeye"},"content":" for (Task task : todaysList) {","lastModifiedDate":"2023-09-19"},{"lineNumber":114,"author":{"gitId":"applepiofmyeye"},"content":" ScheduleBox box \u003d new ScheduleBox(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":115,"author":{"gitId":"applepiofmyeye"},"content":" boxList.add(box);","lastModifiedDate":"2023-09-19"},{"lineNumber":116,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":117,"author":{"gitId":"applepiofmyeye"},"content":" if (todaysList.size() \u003d\u003d 0) {","lastModifiedDate":"2023-09-20"},{"lineNumber":118,"author":{"gitId":"applepiofmyeye"},"content":" scheduleContainer.getChildren().add(new Label(\"No tasks today!\"));","lastModifiedDate":"2023-09-20"},{"lineNumber":119,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":120,"author":{"gitId":"applepiofmyeye"},"content":" scheduleContainer.getChildren().addAll(boxList);","lastModifiedDate":"2023-09-19"},{"lineNumber":121,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":122,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":123,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":124,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-24"},{"lineNumber":125,"author":{"gitId":"applepiofmyeye"},"content":" * Sets the local barbie to a specific instance of Barbie.","lastModifiedDate":"2023-09-24"},{"lineNumber":126,"author":{"gitId":"applepiofmyeye"},"content":" * @param b instance of Barbie","lastModifiedDate":"2023-09-24"},{"lineNumber":127,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-24"},{"lineNumber":128,"author":{"gitId":"applepiofmyeye"},"content":" public void setBarbie(Barbie b) {","lastModifiedDate":"2023-09-20"},{"lineNumber":129,"author":{"gitId":"applepiofmyeye"},"content":" barbie \u003d b;","lastModifiedDate":"2023-09-20"},{"lineNumber":130,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":131,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":132,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-19"}],"authorContributionMap":{"applepiofmyeye":132}},{"path":"src/main/java/barbie/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Files;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Path;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Paths;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.StandardOpenOption;","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.List;","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.Objects;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Deadlines;","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Party;","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Todo;","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * This class deals with all file reading and writing.","lastModifiedDate":"2023-09-04"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"public class Storage {","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" private static final Path path \u003d Paths.get(\"barbie.txt\");","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * Writes to the file given, in the format of [type][status] [desc].","lastModifiedDate":"2023-09-04"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * Eg. [T][ ] read book","lastModifiedDate":"2023-09-04"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * The status is always 0 when creating a new Task, so this method assumes","lastModifiedDate":"2023-09-04"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * that the task is marked as undone in this method.","lastModifiedDate":"2023-09-04"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" * The type is also always Todo, as it takes in the \"desc\" parameter only.","lastModifiedDate":"2023-09-04"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc the description of the Task","lastModifiedDate":"2023-09-04"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" public static void addToList(String desc) {","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" String line \u003d \"T\" + \",\" + 0 + \",\" + desc + \"\\n\";","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" Files.write(path, line.getBytes(), StandardOpenOption.APPEND);","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-04"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" * Writes to the file given, in the format of [type][status] [desc].","lastModifiedDate":"2023-09-04"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" * Eg. [T][ ] read book","lastModifiedDate":"2023-09-04"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" * The status is always 0 when creating a new Task, so this method assumes","lastModifiedDate":"2023-09-04"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" * that the task is marked as undone in this method.","lastModifiedDate":"2023-09-04"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" * The type is also always Deadline, as it takes in the \"desc\" and \"deadline\" parameter only.","lastModifiedDate":"2023-09-04"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc the description of the Task","lastModifiedDate":"2023-09-04"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" * @param deadline the deadline the task has to be completed by","lastModifiedDate":"2023-09-04"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" public static void addToList(String desc, LocalDate deadline) {","lastModifiedDate":"2023-09-16"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" assert Objects.equals(desc.split(\" \", 2)[0], \"D\") : \"Item added should be a D class\";","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" String line \u003d \"D\" + \",\" + 0 + \",\" + desc + \",\" + deadline + \"\\n\";","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" Files.write(path, line.getBytes(), StandardOpenOption.APPEND);","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-04"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":" * Writes to the file given, in the format of [type][status] [desc].","lastModifiedDate":"2023-09-04"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":" * Eg. [T][ ] read book","lastModifiedDate":"2023-09-04"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":" * The status is always 0 when creating a new Task, so this method assumes","lastModifiedDate":"2023-09-04"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" * that the task is marked as undone in this method.","lastModifiedDate":"2023-09-04"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":" * The type is also always Party, as it takes in the \"desc\", \"from\" and \"to\" parameter.","lastModifiedDate":"2023-09-04"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc the description of the Task","lastModifiedDate":"2023-09-04"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":" * @param from the start time of the event","lastModifiedDate":"2023-09-04"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":" * @param to the end time of the event","lastModifiedDate":"2023-09-04"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":" public static void addToList(String desc, LocalDate from, LocalDate to) {","lastModifiedDate":"2023-09-16"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":" assert Objects.equals(desc.split(\" \", 2)[0], \"P\") : \"Item added should be a P class\";","lastModifiedDate":"2023-09-16"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":" String line \u003d \"P\" + \",\" + 0 + \",\" + desc + \",\" + from + \",\" + to + \"\\n\";","lastModifiedDate":"2023-09-04"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":" Files.write(path, line.getBytes(), StandardOpenOption.APPEND);","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-04"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":91,"author":{"gitId":"applepiofmyeye"},"content":" * Returns the latest list from the storage file upon starting up.","lastModifiedDate":"2023-09-04"},{"lineNumber":92,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":93,"author":{"gitId":"applepiofmyeye"},"content":" * @return the last list loaded from the storage file","lastModifiedDate":"2023-09-04"},{"lineNumber":94,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":95,"author":{"gitId":"applepiofmyeye"},"content":" protected static ArrayList\u003cTask\u003e getLastList() {","lastModifiedDate":"2023-09-04"},{"lineNumber":96,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e finalList \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":99,"author":{"gitId":"applepiofmyeye"},"content":" Path path \u003d Paths.get(\"barbie.txt\");","lastModifiedDate":"2023-08-30"},{"lineNumber":100,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":101,"author":{"gitId":"applepiofmyeye"},"content":" if (!Files.exists(path)) {","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"applepiofmyeye"},"content":" Files.createFile(path);","lastModifiedDate":"2023-08-30"},{"lineNumber":103,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(\"[A new list created for current user]\");","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"applepiofmyeye"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(\"-------------------------------------------------\");","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(\"[A current list is being used for current user]\");","lastModifiedDate":"2023-08-30"},{"lineNumber":107,"author":{"gitId":"applepiofmyeye"},"content":" Files.readAllLines(path).forEach(x -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"applepiofmyeye"},"content":" Task task \u003d stringToTask(x);","lastModifiedDate":"2023-09-18"},{"lineNumber":109,"author":{"gitId":"applepiofmyeye"},"content":" finalList.add(task);","lastModifiedDate":"2023-09-18"},{"lineNumber":110,"author":{"gitId":"applepiofmyeye"},"content":" });","lastModifiedDate":"2023-09-18"},{"lineNumber":111,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(finalList);","lastModifiedDate":"2023-09-18"},{"lineNumber":112,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":113,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":114,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":115,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-18"},{"lineNumber":116,"author":{"gitId":"applepiofmyeye"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-18"},{"lineNumber":117,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":118,"author":{"gitId":"applepiofmyeye"},"content":" return finalList;","lastModifiedDate":"2023-09-18"},{"lineNumber":119,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-18"},{"lineNumber":121,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":122,"author":{"gitId":"applepiofmyeye"},"content":" private static Task stringToTask(String taskInString) {","lastModifiedDate":"2023-09-18"},{"lineNumber":123,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":124,"author":{"gitId":"applepiofmyeye"},"content":" String[] taskParts \u003d taskInString.split(\",\");","lastModifiedDate":"2023-09-18"},{"lineNumber":125,"author":{"gitId":"applepiofmyeye"},"content":" String taskType \u003d taskParts[0];","lastModifiedDate":"2023-08-30"},{"lineNumber":126,"author":{"gitId":"applepiofmyeye"},"content":" String taskStatus \u003d taskParts[1];","lastModifiedDate":"2023-08-30"},{"lineNumber":127,"author":{"gitId":"applepiofmyeye"},"content":" String desc \u003d taskParts[2];","lastModifiedDate":"2023-08-30"},{"lineNumber":128,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":129,"author":{"gitId":"applepiofmyeye"},"content":" Task task;","lastModifiedDate":"2023-08-30"},{"lineNumber":130,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":131,"author":{"gitId":"applepiofmyeye"},"content":" if (Objects.equals(taskType, \"T\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":132,"author":{"gitId":"applepiofmyeye"},"content":" task \u003d new Todo(desc);","lastModifiedDate":"2023-08-30"},{"lineNumber":133,"author":{"gitId":"applepiofmyeye"},"content":" } else if (Objects.equals(taskType, \"D\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"applepiofmyeye"},"content":" task \u003d new Deadlines(desc, LocalDate.parse(taskParts[3]));","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"applepiofmyeye"},"content":" } else if (Objects.equals(taskType, \"P\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"applepiofmyeye"},"content":" task \u003d new Party(desc, LocalDate.parse(taskParts[3]), LocalDate.parse(taskParts[4]));","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"applepiofmyeye"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":138,"author":{"gitId":"applepiofmyeye"},"content":" task \u003d new Task(desc);","lastModifiedDate":"2023-08-30"},{"lineNumber":139,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":140,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":141,"author":{"gitId":"applepiofmyeye"},"content":" if (Integer.parseInt(taskStatus) \u003d\u003d 1) {","lastModifiedDate":"2023-09-07"},{"lineNumber":142,"author":{"gitId":"applepiofmyeye"},"content":" task.mark();","lastModifiedDate":"2023-09-07"},{"lineNumber":143,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":144,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":145,"author":{"gitId":"applepiofmyeye"},"content":" return task;","lastModifiedDate":"2023-09-18"},{"lineNumber":146,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":147,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":148,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":149,"author":{"gitId":"applepiofmyeye"},"content":" * Changes the status of a Task in the storage file.","lastModifiedDate":"2023-09-04"},{"lineNumber":150,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":151,"author":{"gitId":"applepiofmyeye"},"content":" * @param status status to change the current Task to","lastModifiedDate":"2023-09-04"},{"lineNumber":152,"author":{"gitId":"applepiofmyeye"},"content":" * @param lineToChange the Task number to change","lastModifiedDate":"2023-09-04"},{"lineNumber":153,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":154,"author":{"gitId":"applepiofmyeye"},"content":" public static void changeLineStatus(String status, int lineToChange) {","lastModifiedDate":"2023-09-16"},{"lineNumber":155,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":156,"author":{"gitId":"applepiofmyeye"},"content":" List\u003cString\u003e lines \u003d Files.readAllLines(path);","lastModifiedDate":"2023-08-30"},{"lineNumber":157,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":158,"author":{"gitId":"applepiofmyeye"},"content":" if (lineToChange \u003e\u003d 0 \u0026\u0026 lineToChange \u003c lines.size()) {","lastModifiedDate":"2023-08-30"},{"lineNumber":159,"author":{"gitId":"applepiofmyeye"},"content":" String[] newContent \u003d lines.get(lineToChange).split(\",\");","lastModifiedDate":"2023-08-30"},{"lineNumber":160,"author":{"gitId":"applepiofmyeye"},"content":" newContent[1] \u003d status;","lastModifiedDate":"2023-08-30"},{"lineNumber":161,"author":{"gitId":"applepiofmyeye"},"content":" lines.set(lineToChange, arrayToString(newContent));","lastModifiedDate":"2023-09-21"},{"lineNumber":162,"author":{"gitId":"applepiofmyeye"},"content":" Files.write(path, lines);","lastModifiedDate":"2023-08-30"},{"lineNumber":163,"author":{"gitId":"applepiofmyeye"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":164,"author":{"gitId":"applepiofmyeye"},"content":" throw new IllegalArgumentException(\"Invalid line number to change.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":165,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":166,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":167,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-04"},{"lineNumber":168,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":169,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":170,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":171,"author":{"gitId":"applepiofmyeye"},"content":" private static String arrayToString(String[] arr) {","lastModifiedDate":"2023-09-21"},{"lineNumber":172,"author":{"gitId":"applepiofmyeye"},"content":" StringBuilder result \u003d new StringBuilder();","lastModifiedDate":"2023-09-21"},{"lineNumber":173,"author":{"gitId":"applepiofmyeye"},"content":" for (int i \u003d 0; i \u003c arr.length; i++) {","lastModifiedDate":"2023-09-21"},{"lineNumber":174,"author":{"gitId":"applepiofmyeye"},"content":" result.append(arr[i]);","lastModifiedDate":"2023-09-21"},{"lineNumber":175,"author":{"gitId":"applepiofmyeye"},"content":" if (i \u003c arr.length - 1) {","lastModifiedDate":"2023-09-21"},{"lineNumber":176,"author":{"gitId":"applepiofmyeye"},"content":" result.append(\",\");","lastModifiedDate":"2023-09-21"},{"lineNumber":177,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":178,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":179,"author":{"gitId":"applepiofmyeye"},"content":" return result.toString();","lastModifiedDate":"2023-09-21"},{"lineNumber":180,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":181,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":182,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":183,"author":{"gitId":"applepiofmyeye"},"content":" * Deletes the line of the task from the list, and shifts the rest accordingly.","lastModifiedDate":"2023-09-04"},{"lineNumber":184,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":185,"author":{"gitId":"applepiofmyeye"},"content":" * @param lineToDelete the Task number to delete","lastModifiedDate":"2023-09-04"},{"lineNumber":186,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":187,"author":{"gitId":"applepiofmyeye"},"content":" public static void deleteLine(int lineToDelete) {","lastModifiedDate":"2023-09-16"},{"lineNumber":188,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":189,"author":{"gitId":"applepiofmyeye"},"content":" List\u003cString\u003e lines \u003d Files.readAllLines(path);","lastModifiedDate":"2023-08-30"},{"lineNumber":190,"author":{"gitId":"applepiofmyeye"},"content":" assert lines.size() \u003e 0 : \"Current task list should not be empty\";","lastModifiedDate":"2023-09-16"},{"lineNumber":191,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":192,"author":{"gitId":"applepiofmyeye"},"content":" if (lineToDelete \u003e\u003d 0 \u0026\u0026 lineToDelete \u003c lines.size()) {","lastModifiedDate":"2023-08-30"},{"lineNumber":193,"author":{"gitId":"applepiofmyeye"},"content":" lines.remove(lineToDelete);","lastModifiedDate":"2023-08-30"},{"lineNumber":194,"author":{"gitId":"applepiofmyeye"},"content":" if (lines.size() \u003e 0) {","lastModifiedDate":"2023-09-16"},{"lineNumber":195,"author":{"gitId":"applepiofmyeye"},"content":" Files.write(path, lines);","lastModifiedDate":"2023-08-30"},{"lineNumber":196,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":197,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":198,"author":{"gitId":"applepiofmyeye"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":199,"author":{"gitId":"applepiofmyeye"},"content":" throw new IllegalArgumentException(\"Invalid line number to delete.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":200,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":201,"author":{"gitId":"applepiofmyeye"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":202,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":203,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":204,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":205,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"applepiofmyeye":205}},{"path":"src/main/java/barbie/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieListEmptyException;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Takes care of the UI related messages that will be displayed.","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"public class Ui {","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" * Introduces the chatbot to the user.","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * @param list list of Tasks that should be done today","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" protected static String intro(ArrayList\u003cTask\u003e list) {","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Hi Barbie! Hi Ken!\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" + \"I\u0027m Barbie!\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" + \"This is the list of things you have today!\\n\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" + Storage.getLastList().stream().map(x -\u003e x + \"\\n\")","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\nWhat can I do for you?\");","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * Greets the user before ending the chat.","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" public static String exit() {","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Bye Barbie! Bye Ken!\");","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" * Prints that the Task has been successfully added.","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" * @param task Task that was added to the list","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" public static String taskAdded(Task task) {","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Got you barbie! I\u0027ve added this task to your Barbie list:\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" + \" \" + task);","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" * Prints that the Task has been successfully marked as done.","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" * @param task Task that was marked as done","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" public static String mark(Task task) {","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Nice! I\u0027ve marked this task as done:\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" + task + \"\\n\");","lastModifiedDate":"2023-09-16"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" * Prints that the Task has been successfully marked as undone.","lastModifiedDate":"2023-09-16"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" * @param task Task that was marked as undone.","lastModifiedDate":"2023-09-16"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" public static String unmark(Task task) {","lastModifiedDate":"2023-09-16"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Alright! I\u0027ve marked this task as not done yet:\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":" + task + \"\\n\");","lastModifiedDate":"2023-09-16"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":62,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":63,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":64,"author":{"gitId":"applepiofmyeye"},"content":" * Prints that the Task has been successfully deleted.","lastModifiedDate":"2023-09-16"},{"lineNumber":65,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":66,"author":{"gitId":"applepiofmyeye"},"content":" public static String del() {","lastModifiedDate":"2023-09-16"},{"lineNumber":67,"author":{"gitId":"applepiofmyeye"},"content":" return (\" Deletion success! I\u0027ve deleted this task off your list.\");","lastModifiedDate":"2023-09-16"},{"lineNumber":68,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":69,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":70,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":71,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":72,"author":{"gitId":"applepiofmyeye"},"content":" * Prints the Task in numerical order, or that there is no Task in the list.","lastModifiedDate":"2023-09-16"},{"lineNumber":73,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-16"},{"lineNumber":74,"author":{"gitId":"applepiofmyeye"},"content":" * @param list list of tasks","lastModifiedDate":"2023-09-16"},{"lineNumber":75,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":76,"author":{"gitId":"applepiofmyeye"},"content":" public static String listTasks(ArrayList\u003cTask\u003e list) throws BarbieListEmptyException {","lastModifiedDate":"2023-09-16"},{"lineNumber":77,"author":{"gitId":"applepiofmyeye"},"content":" if (list.size() \u003d\u003d 0) {","lastModifiedDate":"2023-09-16"},{"lineNumber":78,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieListEmptyException();","lastModifiedDate":"2023-09-16"},{"lineNumber":79,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":80,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":81,"author":{"gitId":"applepiofmyeye"},"content":" String listInString \u003d \"\";","lastModifiedDate":"2023-09-16"},{"lineNumber":82,"author":{"gitId":"applepiofmyeye"},"content":" // \"list\" command","lastModifiedDate":"2023-09-16"},{"lineNumber":83,"author":{"gitId":"applepiofmyeye"},"content":" for (int i \u003d 0; i \u003c list.size(); i++) {","lastModifiedDate":"2023-09-16"},{"lineNumber":84,"author":{"gitId":"applepiofmyeye"},"content":" int itemNumber \u003d i + 1;","lastModifiedDate":"2023-09-16"},{"lineNumber":85,"author":{"gitId":"applepiofmyeye"},"content":" listInString +\u003d (\"\\n\" + itemNumber + \". \" + list.get(i));","lastModifiedDate":"2023-09-16"},{"lineNumber":86,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":87,"author":{"gitId":"applepiofmyeye"},"content":" return listInString;","lastModifiedDate":"2023-09-16"},{"lineNumber":88,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":89,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":90,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":91,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":92,"author":{"gitId":"applepiofmyeye"},"content":" * Finds tasks with the given keyword.","lastModifiedDate":"2023-09-16"},{"lineNumber":93,"author":{"gitId":"applepiofmyeye"},"content":" * @param list list of tasks","lastModifiedDate":"2023-09-16"},{"lineNumber":94,"author":{"gitId":"applepiofmyeye"},"content":" * @param keyword keyword to compare against","lastModifiedDate":"2023-09-16"},{"lineNumber":95,"author":{"gitId":"applepiofmyeye"},"content":" * @return string of items listed","lastModifiedDate":"2023-09-16"},{"lineNumber":96,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":97,"author":{"gitId":"applepiofmyeye"},"content":" public static String findTasks(ArrayList\u003cTask\u003e list, String keyword) {","lastModifiedDate":"2023-09-16"},{"lineNumber":98,"author":{"gitId":"applepiofmyeye"},"content":" if (list.size() \u003d\u003d 0) {","lastModifiedDate":"2023-09-16"},{"lineNumber":99,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Hmm.. your list looks empty. To add items, use the \u0027todo\u0027, \"","lastModifiedDate":"2023-09-16"},{"lineNumber":100,"author":{"gitId":"applepiofmyeye"},"content":" + \"\u0027deadline\u0027 or \u0027party\u0027 commands!\");","lastModifiedDate":"2023-09-16"},{"lineNumber":101,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":102,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":103,"author":{"gitId":"applepiofmyeye"},"content":" String toPrint \u003d (\"These are your tasks with the keyword: \" + keyword);","lastModifiedDate":"2023-09-16"},{"lineNumber":104,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":105,"author":{"gitId":"applepiofmyeye"},"content":" int itemNumber \u003d 1;","lastModifiedDate":"2023-09-16"},{"lineNumber":106,"author":{"gitId":"applepiofmyeye"},"content":" for (int i \u003d 0; i \u003c list.size(); i++) {","lastModifiedDate":"2023-09-16"},{"lineNumber":107,"author":{"gitId":"applepiofmyeye"},"content":" String taskDesc \u003d list.get(i).toString();","lastModifiedDate":"2023-09-16"},{"lineNumber":108,"author":{"gitId":"applepiofmyeye"},"content":" int index \u003d taskDesc.indexOf(keyword);","lastModifiedDate":"2023-09-16"},{"lineNumber":109,"author":{"gitId":"applepiofmyeye"},"content":" if (index \u003e\u003d 0) {","lastModifiedDate":"2023-09-16"},{"lineNumber":110,"author":{"gitId":"applepiofmyeye"},"content":" toPrint +\u003d (\"\\n\" + itemNumber + \". \" + list.get(i));","lastModifiedDate":"2023-09-16"},{"lineNumber":111,"author":{"gitId":"applepiofmyeye"},"content":" itemNumber++;","lastModifiedDate":"2023-09-16"},{"lineNumber":112,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":113,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":114,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":115,"author":{"gitId":"applepiofmyeye"},"content":" if (itemNumber \u003d\u003d 1) {","lastModifiedDate":"2023-09-16"},{"lineNumber":116,"author":{"gitId":"applepiofmyeye"},"content":" return (\"Hmm.. There doesn\u0027t seem to be any matching tasks!\");","lastModifiedDate":"2023-09-16"},{"lineNumber":117,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":118,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":119,"author":{"gitId":"applepiofmyeye"},"content":" return toPrint;","lastModifiedDate":"2023-09-16"},{"lineNumber":120,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":121,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":122,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":123,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":124,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":125,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":125}},{"path":"src/main/java/barbie/Utils.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Deadlines;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Party;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * Abstracts any helper functions that will be used in the main function.","lastModifiedDate":"2023-09-04"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class Utils {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * Retrieves the list of Tasks that should be done today.","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * @param date date of the Tasks to retrieve","lastModifiedDate":"2023-09-04"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * @param lastList latest list of Tasks","lastModifiedDate":"2023-09-04"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * @return the list of Tasks that should be done today","lastModifiedDate":"2023-09-04"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" public static ArrayList\u003cTask\u003e getDateList(LocalDate date, ArrayList\u003cTask\u003e lastList) {","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e thisDatesList \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" lastList.forEach(x -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" if (x instanceof Deadlines) {","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" Deadlines y \u003d (Deadlines) x;","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" if (y.isToday(date)) {","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" thisDatesList.add(y);","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" } else if (x instanceof Party) {","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" Party y \u003d (Party) x;","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" if (y.isToday(date)) {","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" thisDatesList.add(y);","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" return thisDatesList;","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"applepiofmyeye":40}},{"path":"src/main/java/barbie/commands/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Represents all the command abstractly.","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" * All commands will inherit from this class.","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"public abstract class Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" protected boolean isExit;","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * @return barbie\u0027s output in a String format","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" public abstract String run(ArrayList\u003cTask\u003e taskList) throws BarbieException;","lastModifiedDate":"2023-09-21"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":23}},{"path":"src/main/java/barbie/commands/DeadlineCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Deadlines;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"deadline\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class DeadlineCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" private String desc;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" private LocalDate by;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a DeadlineCommand, and saves the description and by date.","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc description of the task to complete","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * @param by the deadline for the task to be completed","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" public DeadlineCommand(String desc, LocalDate by) {","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" this.desc \u003d desc;","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" this.by \u003d by;","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to return to user","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" Deadlines deadline \u003d new Deadlines(this.desc, this.by);","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" taskList.add(deadline);","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" Storage.addToList(desc, by);","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.taskAdded(deadline);","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":45}},{"path":"src/main/java/barbie/commands/DeleteCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieListEmptyException;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieTaskNumberException;","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"del\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"public class DeleteCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" private final int taskNumber;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a DeleteCommand, and saves the taskNumber to delete.","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskNumber the task number to be deleted.","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" public DeleteCommand(int taskNumber) {","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to return to user","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) throws BarbieException {","lastModifiedDate":"2023-09-21"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" if (taskList.size() \u003c taskNumber) {","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" if (taskList.size() \u003d\u003d 0) {","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieListEmptyException();","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" String taskToDel \u003d taskList.get(taskNumber).toString();","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" taskList.remove(this.taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" Storage.deleteLine(taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.del() + \"\\n\" + taskToDel;","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":47}},{"path":"src/main/java/barbie/commands/ExitCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Reoresents the command when a \"bye\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of the ExitCommand.","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * Sets the isExit variable to true.","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" public ExitCommand() {","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d true;","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to the user","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.exit();","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":32}},{"path":"src/main/java/barbie/commands/FindCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"find\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"public class FindCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" private String keyword;","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of the FindCommand and saves the keyword to search.","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" * @param keyword the keyword to match with","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" public FindCommand(String keyword) {","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" this.keyword \u003d keyword;","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * @return","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.findTasks(taskList, this.keyword);","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":34}},{"path":"src/main/java/barbie/commands/ListCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"list\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"public class ListCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a ListCommand.","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" public ListCommand() {","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user","lastModifiedDate":"2023-09-18"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.listTasks(taskList);","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" return e.getMessage();","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":37}},{"path":"src/main/java/barbie/commands/MarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieTaskNumberException;","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"mark\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class MarkCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" private int taskNumber;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an inctsnace of a MarkCommand.","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * Saves the taskNumber to mark","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskNumber the task to mark","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" public MarkCommand(int taskNumber) {","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application)","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) throws BarbieException {","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" if (taskList.size() \u003c taskNumber) {","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" Task task \u003d taskList.get(taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" task.mark();","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" Storage.changeLineStatus(\"1\", taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.mark(task);","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":44}},{"path":"src/main/java/barbie/commands/PartyCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Party;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the command when a \"party\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class PartyCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" private String desc;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" private LocalDate from;","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" private LocalDate to;","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a PartyCommand, saves the from and to dates.","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc description of the party","lastModifiedDate":"2023-09-18"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * @param from the start time of the party","lastModifiedDate":"2023-09-18"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" * @param to the end time of the party","lastModifiedDate":"2023-09-18"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" public PartyCommand(String desc, LocalDate from, LocalDate to) {","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" this.desc \u003d desc;","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" this.from \u003d from;","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" this.to \u003d to;","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application","lastModifiedDate":"2023-09-18"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user","lastModifiedDate":"2023-09-18"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" Party party \u003d new Party(this.desc, this.from, this.to);","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" taskList.add(party);","lastModifiedDate":"2023-09-16"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" Storage.addToList(this.desc, this.from, this.to);","lastModifiedDate":"2023-09-16"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.taskAdded(party);","lastModifiedDate":"2023-09-16"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":48}},{"path":"src/main/java/barbie/commands/TodoCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Todo;","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a command when a \"todo\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"public class TodoCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" private String desc;","lastModifiedDate":"2023-09-18"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of the TodoCommand and saves the description.","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * @param desc description of the task","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" public TodoCommand(String desc) {","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" this.desc \u003d desc;","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" Todo todo \u003d new Todo(this.desc);","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" taskList.add(todo);","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" Storage.addToList(this.desc);","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.taskAdded(todo);","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":41}},{"path":"src/main/java/barbie/commands/UnmarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.commands;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Storage;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.Ui;","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieTaskNumberException;","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a command when a \"unmark\" is called by the user.","lastModifiedDate":"2023-09-18"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"public class UnmarkCommand extends Command {","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" private int taskNumber;","lastModifiedDate":"2023-09-18"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instanceof a UnmarkCommand, saves the taskNumber.","lastModifiedDate":"2023-09-18"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskNumber task to be unmarked","lastModifiedDate":"2023-09-18"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" public UnmarkCommand(int taskNumber) {","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" this.isExit \u003d false;","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * Runs the command of this instance of Command.","lastModifiedDate":"2023-09-18"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * (eg ExitCommand will contain the logic of exiting the application","lastModifiedDate":"2023-09-18"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * @param taskList current list of tasks","lastModifiedDate":"2023-09-18"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @return String to be returned to user","lastModifiedDate":"2023-09-18"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" public String run(ArrayList\u003cTask\u003e taskList) throws BarbieException {","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" if (taskList.size() \u003c taskNumber) {","lastModifiedDate":"2023-09-21"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" throw new BarbieTaskNumberException();","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" Task task \u003d taskList.get(taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" task.unmark();","lastModifiedDate":"2023-09-16"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" Storage.changeLineStatus(\"0\", taskNumber);","lastModifiedDate":"2023-09-16"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" return Ui.unmark(task);","lastModifiedDate":"2023-09-16"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":42}},{"path":"src/main/java/barbie/exceptions/BarbieDateTimeFormatException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Throws an exception when the date and time format given is incorrect.","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieDateTimeFormatException extends BarbieException {","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for BarbieDateTimeFormatException.","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieDateTimeFormatException() {","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Remember to put your deadlines or event timings in the format YYYY-MM-DD alright!\");","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":14}},{"path":"src/main/java/barbie/exceptions/BarbieException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Parent class for all Barbie-related Exceptions.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieException extends Exception {","lastModifiedDate":"2023-08-28"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for a BarbieException for child classes to implement.","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" * @param message to print","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieException(String message) {","lastModifiedDate":"2023-08-28"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Barbie Error!!\\n\" + message);","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-28"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-28"}],"authorContributionMap":{"applepiofmyeye":15}},{"path":"src/main/java/barbie/exceptions/BarbieListEmptyException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-18"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the exception when there is an empty list accessed.","lastModifiedDate":"2023-09-18"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieListEmptyException extends BarbieException {","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-18"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" * Constructs an instance of a BarbieListEmptyException.","lastModifiedDate":"2023-09-18"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-18"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieListEmptyException() {","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Hmm.. your list looks empty. To add items, use the \u0027todo\u0027, \"","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" + \"\u0027deadline\u0027 or \u0027party\u0027 commands!\");","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":14}},{"path":"src/main/java/barbie/exceptions/BarbieNoDeadlineException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Throws an exception for a Deadline initiated with no deadline.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieNoDeadlineException extends BarbieException {","lastModifiedDate":"2023-08-28"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for BarbieNoDeadlineException.","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieNoDeadlineException() {","lastModifiedDate":"2023-08-28"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Barbie your deadline has no deadline!\\n\"","lastModifiedDate":"2023-08-28"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" + \"Remember to add a deadline after the description denoted by a \u0027/\u0027 luv\");","lastModifiedDate":"2023-08-28"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-28"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-28"}],"authorContributionMap":{"applepiofmyeye":15}},{"path":"src/main/java/barbie/exceptions/BarbieNoDescException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Throws an exception for any Task initiated with no description.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieNoDescException extends BarbieException {","lastModifiedDate":"2023-08-28"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for BarbieNoDescException.","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieNoDescException() {","lastModifiedDate":"2023-08-28"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Barbie your item has no description!\\n\"","lastModifiedDate":"2023-08-28"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" + \"Remember to add a description after the command \u0027todo/deadline/party\u0027.\");","lastModifiedDate":"2023-08-28"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-28"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-28"}],"authorContributionMap":{"applepiofmyeye":16}},{"path":"src/main/java/barbie/exceptions/BarbieNoKeywordException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a missing keyword error","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieNoKeywordException extends BarbieException {","lastModifiedDate":"2023-09-04"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a Barbie exception when there is no keyword associated with the \u0027find\u0027 command.","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieNoKeywordException() {","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Hmm.. there didn\u0027t seem to be a keyword with that \u0027find\u0027 command, \\nmake sure to find by typing \"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" + \"\u0027find \u003ckeyword\u003e\u0027!\");","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-04"}],"authorContributionMap":{"applepiofmyeye":14}},{"path":"src/main/java/barbie/exceptions/BarbieNoSuchCommandException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Represents a \"no such command\" error.","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieNoSuchCommandException extends BarbieException {","lastModifiedDate":"2023-09-04"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" * Represents an exception that is thrown when there is no clear command the user is asking.","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieNoSuchCommandException() {","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" super(\"There seems to be no matching command for what you\u0027re asking.. these are the following commands \"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" + \"you can use!\\n\\n\"","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t1. todo \u003ctask\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t2. deadline \u003ctask\u003e /\u003cdeadline\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t3. party \u003cparty name\u003e /\u003cstart\u003e /\u003cend\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t4. mark \u003cnumber\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t5. unmark \u003cnumber\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t6. list\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t7. find \u003ckeyword\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t8. del \u003cnumber\u003e\\n\"","lastModifiedDate":"2023-09-04"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\t9. bye\"","lastModifiedDate":"2023-09-04"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" );","lastModifiedDate":"2023-09-04"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-04"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-04"}],"authorContributionMap":{"applepiofmyeye":24}},{"path":"src/main/java/barbie/exceptions/BarbieNoTimingException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Throws an exception when no timing is given when initiating a Deadline or a Party.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieNoTimingException extends BarbieException {","lastModifiedDate":"2023-08-28"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for BarbieNoTimingException.","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieNoTimingException() {","lastModifiedDate":"2023-08-28"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Barbie your party has the incorrect number of timings!\\n\"","lastModifiedDate":"2023-08-28"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" + \"Remember to add a \u0027start\u0027 time and an \u0027end\u0027 time\"","lastModifiedDate":"2023-08-28"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" + \" after the description! denote it by a \u0027/\u0027 luv\");","lastModifiedDate":"2023-08-28"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-28"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-28"}],"authorContributionMap":{"applepiofmyeye":16}},{"path":"src/main/java/barbie/exceptions/BarbieTaskNumberException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.exceptions;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Throws an exception when changing the status or deleting a Task.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class BarbieTaskNumberException extends BarbieException {","lastModifiedDate":"2023-08-28"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" * Constructor for BarbieTaskNumberException.","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" public BarbieTaskNumberException() {","lastModifiedDate":"2023-08-28"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" super(\"Task to mark or unmark or del is not provided as a digit or not provided at all!\\n\"","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" + \"\\n\" + \"Use the list command to see the digit of your task and make sure to give \\n\"","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" + \"the digit of the task you want to mark/unmark/del. (e.g. mark 2)\");","lastModifiedDate":"2023-08-28"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-28"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-28"}],"authorContributionMap":{"applepiofmyeye":16}},{"path":"src/main/java/barbie/types/Deadlines.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.types;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.Objects;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the subset of Tasks that have to be done by a certain deadline.","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"public class Deadlines extends Task {","lastModifiedDate":"2023-08-25"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" private final LocalDate by;","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" * Initialises an instance of a Deadline.","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * @param description description of the Task to be completed","lastModifiedDate":"2023-09-04"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" * @param by the deadline to complete the Task by in the format YYYY-MM-DD","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" public Deadlines(String description, LocalDate by) {","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" super(description);","lastModifiedDate":"2023-08-25"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" this.by \u003d by;","lastModifiedDate":"2023-08-25"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" * Checks if the Deadline is due on the specified date.","lastModifiedDate":"2023-09-04"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" * @param date the date to compare the Deadline\u0027s deadline to in the format YYYY-MM-DD","lastModifiedDate":"2023-09-04"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * @return whether the Task is due on the given date or not","lastModifiedDate":"2023-09-04"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" public boolean isToday(LocalDate date) {","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" return (Objects.equals(this.by, date));","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" * Retrieves the deadline of the task.","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" * @returns deadline of the Deadlines object","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" public LocalDate getDate() {","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" return this.by;","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" * Overrides the toString() method to return a customised String for each Deadline.","lastModifiedDate":"2023-09-04"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" * @return String with \"D\" type and with a \"[BY: xxx]\" tag","lastModifiedDate":"2023-09-04"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-08-25"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" public String toString() {","lastModifiedDate":"2023-08-25"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" return \"[D]\" + super.toString() + \"[BY: \" + this.by + \"]\";","lastModifiedDate":"2023-08-25"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"applepiofmyeye":53}},{"path":"src/main/java/barbie/types/Party.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.types;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.Objects;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the subset of Tasks that are events and have a start and end.","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"public class Party extends Task {","lastModifiedDate":"2023-08-25"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" protected LocalDate from;","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" protected LocalDate to;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" * Initialises an instance of a Party.","lastModifiedDate":"2023-09-04"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" * @param description description of the Party","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * @param from the start date of the Party","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * @param to the end date of the Party","lastModifiedDate":"2023-09-04"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" public Party(String description, LocalDate from, LocalDate to) {","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" super(description);","lastModifiedDate":"2023-08-25"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" this.from \u003d from;","lastModifiedDate":"2023-08-25"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" this.to \u003d to;","lastModifiedDate":"2023-08-25"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" * Checks if the Party is due on the specified date.","lastModifiedDate":"2023-09-04"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" * @param date the date to compare the Party\u0027s deadline to in the format YYYY-MM-DD","lastModifiedDate":"2023-09-04"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @return whether the Party is held on the given date or not","lastModifiedDate":"2023-09-04"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" public boolean isToday(LocalDate date) {","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" return (Objects.equals(this.from, date));","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * Retrieves the deadline of the task.","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" * @returns deadline of the Deadlines object","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" public LocalDate getDate() {","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" return this.from;","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" * Overrides the toString() method to return a customised String for each Todo.","lastModifiedDate":"2023-09-04"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" * @return String with \"P\" type and with the \"(from:xx, to:xx)\" tag.","lastModifiedDate":"2023-09-16"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-08-25"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" public String toString() {","lastModifiedDate":"2023-08-25"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" return \"[P]\" + super.toString() + \"(from: \" + this.from + \", to: \" + this.to + \")\";","lastModifiedDate":"2023-09-16"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"applepiofmyeye":54}},{"path":"src/main/java/barbie/types/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.types;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Represents all Tasks that can be added into the list of Tasks saved by Barbie.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class Task {","lastModifiedDate":"2023-08-25"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" protected boolean isCompleted;","lastModifiedDate":"2023-08-25"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" protected String description;","lastModifiedDate":"2023-08-25"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" * Initialises a Task, that has not yet been completed.","lastModifiedDate":"2023-09-04"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" * @param description description of the Task to be completed","lastModifiedDate":"2023-09-04"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" public Task(String description) {","lastModifiedDate":"2023-08-25"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-25"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" this.isCompleted \u003d false;","lastModifiedDate":"2023-08-25"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" * Retrieves the description of the Task.","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" return this.description;","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" * Retrieves the status of the Task: done or undone.","lastModifiedDate":"2023-09-04"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" * @return a String of [X] or [ ], [X] for done and [ ] for undone.","lastModifiedDate":"2023-09-04"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" public String getStatus() {","lastModifiedDate":"2023-08-25"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" return (isCompleted ? \"[X]\" : \"[ ]\");","lastModifiedDate":"2023-08-25"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" * Unmarks a Task as done.","lastModifiedDate":"2023-09-04"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" * Meaning that the Task is marked as undone","lastModifiedDate":"2023-09-04"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" public void unmark() {","lastModifiedDate":"2023-08-25"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" isCompleted \u003d false;","lastModifiedDate":"2023-08-25"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" * Marks the Task as done.","lastModifiedDate":"2023-09-04"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" public void mark() {","lastModifiedDate":"2023-08-25"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":" isCompleted \u003d true;","lastModifiedDate":"2023-08-25"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":51,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":52,"author":{"gitId":"applepiofmyeye"},"content":" * Overrides the toString() method to return a customised String with the status of the Task.","lastModifiedDate":"2023-09-04"},{"lineNumber":53,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":54,"author":{"gitId":"applepiofmyeye"},"content":" * @return customised String including the status and description of the Task","lastModifiedDate":"2023-09-04"},{"lineNumber":55,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":56,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-08-25"},{"lineNumber":57,"author":{"gitId":"applepiofmyeye"},"content":" public String toString() {","lastModifiedDate":"2023-08-25"},{"lineNumber":58,"author":{"gitId":"applepiofmyeye"},"content":" return this.getStatus() + \" \" + description;","lastModifiedDate":"2023-08-25"},{"lineNumber":59,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":60,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":61,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"applepiofmyeye":61}},{"path":"src/main/java/barbie/types/Todo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie.types;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-04"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":" * Represents the subset of Tasks that only have a description.","lastModifiedDate":"2023-09-04"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"public class Todo extends Task {","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":" * Initialises an instance of a Todo.","lastModifiedDate":"2023-09-04"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" * @param description description of the Task to be completed","lastModifiedDate":"2023-09-04"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" public Todo(String description) {","lastModifiedDate":"2023-08-25"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" super(description);","lastModifiedDate":"2023-08-25"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-08-25"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * Overrides the toString() method to return a customised String for each Todo.","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" *","lastModifiedDate":"2023-09-04"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" * @return String with \"T\" type","lastModifiedDate":"2023-09-04"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" @Override","lastModifiedDate":"2023-08-25"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" public String toString() {","lastModifiedDate":"2023-08-25"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-08-25"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-08-25"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"applepiofmyeye":25}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.shape.Rectangle?\u003e","lastModifiedDate":"2023-09-24"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\"/\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets bottom\u003d\"10.0\" left\u003d\"10.0\" right\u003d\"10.0\" top\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":18}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"barbie.StageController\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"263.0\" AnchorPane.bottomAnchor\u003d\"1.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton fx:id\u003d\"viewButton\" layoutX\u003d\"263.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#switchToScene2\" prefHeight\u003d\"41.0\" prefWidth\u003d\"66.0\" text\u003d\"View\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"328.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"72.0\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefWidth\u003d\"388.0\" /\u003e","lastModifiedDate":"2023-09-24"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":20}},{"path":"src/main/resources/view/ScheduleWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.GridPane?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.text.Text?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"barbie.StageController\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003cpadding\u003e\u003cInsets bottom\u003d\"10\" left\u003d\"25\" right\u003d\"25\" top\u003d\"25\" /\u003e\u003c/padding\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" \u003cHBox prefHeight\u003d\"35.0\" prefWidth\u003d\"388.0\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" \u003cText text\u003d\"Schedule\" wrappingWidth\u003d\"133.2509765625\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" \u003cFont size\u003d\"25.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/font\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Text\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton mnemonicParsing\u003d\"false\" onAction\u003d\"#switchToScene1\" text\u003d\"Back\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" \u003cButton mnemonicParsing\u003d\"false\" onAction\u003d\"#loadItems\" text\u003d\"Load\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" \u003cHBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets left\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/HBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Button\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets bottom\u003d\"10.0\" left\u003d\"10.0\" right\u003d\"10.0\" top\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/HBox\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\" GridPane.rowIndex\u003d\"1\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox fx:id\u003d\"scheduleContainer\" prefHeight\u003d\"500.0\" prefWidth\u003d\"388.0\"/\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-19"}],"authorContributionMap":{"applepiofmyeye":43}},{"path":"src/main/resources/view/Schedulebox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/20.0.1\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox prefHeight\u003d\"200.0\" prefWidth\u003d\"398.0\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"desc\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" \u003cFont name\u003d\"Arial Rounded MT Bold\" size\u003d\"19.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/font\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Label\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"type\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets top\u003d\"5.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/Label\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" \u003cLabel fx:id\u003d\"date\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" \u003cVBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" \u003cInsets bottom\u003d\"10.0\" left\u003d\"10.0\" right\u003d\"10.0\" top\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/VBox\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-19"}],"authorContributionMap":{"applepiofmyeye":30}},{"path":"src/test/java/barbie/TestStorage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Files;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Path;","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import java.nio.file.Paths;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.List;","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" * Tests the Storage class.","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":"public class TestStorage {","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" * Tests if the Storage::addToList is able to add a description with commas.","lastModifiedDate":"2023-09-04"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" @Test","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" public void testAddToListCommas() {","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" Path path \u003d Paths.get(\"barbie.txt\");","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" Storage.addToList(\"do, work,\");","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" List\u003cString\u003e list \u003d Files.readAllLines(path);","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" String actual \u003d list.get(list.size() - 1);","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" assertEquals(\"T,0,do, work,\", actual);","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-03"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-03"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":38,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":39,"author":{"gitId":"applepiofmyeye"},"content":" * Tests if the Storage::getLastList is able to return a task of description \"do\" for an incorrect","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"applepiofmyeye"},"content":" * input of do, work.","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":42,"author":{"gitId":"applepiofmyeye"},"content":" @Test","lastModifiedDate":"2023-09-03"},{"lineNumber":43,"author":{"gitId":"applepiofmyeye"},"content":" public void testGetListWithCommas() {","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e oldList \u003d Storage.getLastList();","lastModifiedDate":"2023-09-03"},{"lineNumber":45,"author":{"gitId":"applepiofmyeye"},"content":" String actual \u003d oldList.get(oldList.size() - 1).toString();","lastModifiedDate":"2023-09-03"},{"lineNumber":46,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":47,"author":{"gitId":"applepiofmyeye"},"content":" assertEquals(\"[T][ ] do\", actual);","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":50,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"applepiofmyeye":50}},{"path":"src/test/java/barbie/TestUi.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-16"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-16"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-16"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.exceptions.BarbieException;","lastModifiedDate":"2023-09-16"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-16"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" * NO LONGER USABLE after Level 10 iteration.","lastModifiedDate":"2023-09-16"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":" * Tests the Ui class.","lastModifiedDate":"2023-09-16"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"public class TestUi {","lastModifiedDate":"2023-09-16"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-16"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" * Tests if an empty file list will print the prompt to add Tasks.","lastModifiedDate":"2023-09-16"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-16"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" @Test","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":" public void testEmptyFileList() {","lastModifiedDate":"2023-09-16"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" String actual;","lastModifiedDate":"2023-09-16"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":" try {","lastModifiedDate":"2023-09-16"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" Ui.listTasks(new ArrayList\u003c\u003e());","lastModifiedDate":"2023-09-16"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":" } catch (BarbieException e) {","lastModifiedDate":"2023-09-16"},{"lineNumber":28,"author":{"gitId":"applepiofmyeye"},"content":" actual \u003d e.getMessage();","lastModifiedDate":"2023-09-16"},{"lineNumber":29,"author":{"gitId":"applepiofmyeye"},"content":" String expected \u003d \"Barbie Error!!\\n\"","lastModifiedDate":"2023-09-16"},{"lineNumber":30,"author":{"gitId":"applepiofmyeye"},"content":" + \"Hmm.. your list looks empty. To add items, use the \u0027todo\u0027, \"","lastModifiedDate":"2023-09-16"},{"lineNumber":31,"author":{"gitId":"applepiofmyeye"},"content":" + \"\u0027deadline\u0027 or \u0027party\u0027 commands!\";","lastModifiedDate":"2023-09-16"},{"lineNumber":32,"author":{"gitId":"applepiofmyeye"},"content":" assertEquals(expected, actual);","lastModifiedDate":"2023-09-16"},{"lineNumber":33,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":34,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":35,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-16"},{"lineNumber":36,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":37,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-16"}],"authorContributionMap":{"applepiofmyeye":37}},{"path":"src/test/java/barbie/TestUtils.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"package barbie;","lastModifiedDate":"2023-09-16"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-16"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"applepiofmyeye"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"applepiofmyeye"},"content":"import barbie.types.Task;","lastModifiedDate":"2023-09-16"},{"lineNumber":11,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"applepiofmyeye"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"applepiofmyeye"},"content":" * Tests the Utils class.","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"applepiofmyeye"},"content":"public class TestUtils {","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-04"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":" /**","lastModifiedDate":"2023-09-04"},{"lineNumber":18,"author":{"gitId":"applepiofmyeye"},"content":" * Tests if Utils::getDateList is able to return an empty list when the current list is empty.","lastModifiedDate":"2023-09-04"},{"lineNumber":19,"author":{"gitId":"applepiofmyeye"},"content":" */","lastModifiedDate":"2023-09-04"},{"lineNumber":20,"author":{"gitId":"applepiofmyeye"},"content":" @Test","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"applepiofmyeye"},"content":" public void testEmptyList() {","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"applepiofmyeye"},"content":" ArrayList\u003cTask\u003e list \u003d Utils.getDateList(LocalDate.parse(\"2023-08-20\"), new ArrayList\u003c\u003e());","lastModifiedDate":"2023-09-16"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"applepiofmyeye"},"content":" assertEquals(list.size(), 0);","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"applepiofmyeye"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"applepiofmyeye"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"applepiofmyeye"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"applepiofmyeye":27}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"applepiofmyeye"},"content":"todo read book","lastModifiedDate":"2023-08-25"},{"lineNumber":2,"author":{"gitId":"applepiofmyeye"},"content":"todo help do chores","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"applepiofmyeye"},"content":"del 1","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"applepiofmyeye"},"content":"del 2","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"applepiofmyeye"},"content":"list","lastModifiedDate":"2023-08-25"},{"lineNumber":6,"author":{"gitId":"applepiofmyeye"},"content":"bye","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"applepiofmyeye":6}},{"path":"text-ui-test/runtest.bat","fileType":"bat","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@ECHO OFF","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"REM create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if not exist ..\\bin mkdir ..\\bin","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"REM delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"if exist ACTUAL.TXT del ACTUAL.TXT","lastModifiedDate":"2020-08-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"REM compile the code into the bin folder","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"javac -cp ..\\src\\main\\java -Xlint:none -d ..\\bin ..\\src\\main\\java\\*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"IF ERRORLEVEL 1 (","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" echo ********** BUILD FAILURE **********","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" exit /b 1","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"REM no error here, errorlevel \u003d\u003d 0","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"applepiofmyeye"},"content":"REM run the program, feed types from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"-"},"content":"java -classpath ..\\bin Duke \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"REM compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"FC ACTUAL.TXT EXPECTED.TXT","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"applepiofmyeye":1,"-":20}},{"path":"text-ui-test/runtest.sh","fileType":"sh","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"#!/usr/bin/env bash","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"# create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if [ ! -d \"../bin\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":" mkdir ../bin","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"# delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"if [ -e \"./ACTUAL.TXT\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" rm ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"# compile the code into the bin folder, terminates if error occurred","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"if ! javac -cp ../src/main/java -Xlint:none -d ../bin ../src/main/java/*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" echo \"********** BUILD FAILURE **********\"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"# run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"applepiofmyeye"},"content":"java -classpath ../bin Barbie \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-08-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":"# convert to UNIX format","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"cp EXPECTED.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":"dos2unix ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"# compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"diff ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"if [ $? -eq 0 ]","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" echo \"Test result: PASSED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" exit 0","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"else","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" echo \"Test result: FAILED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"applepiofmyeye":1,"-":37}}] diff --git a/applepiofmyeye_ip_master/commits.json b/applepiofmyeye_ip_master/commits.json index 33b13ddd..8937662d 100644 --- a/applepiofmyeye_ip_master/commits.json +++ b/applepiofmyeye_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"applepiofmyeye":[{"date":"2023-08-23","commitResults":[{"hash":"caaeced440ab911e6e4ac4e39e4f55de5f63d954","isMergeCommit":false,"messageTitle":"Level 0","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":6}}},{"hash":"d63db97a9f9a47182b396f29f77e3db592049cbc","isMergeCommit":false,"messageTitle":"Commit message for Tag-1","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":50,"deletions":1}}},{"hash":"fd1e6897eefb156971a6fd3dd791f98d94339d5f","isMergeCommit":false,"messageTitle":"Code recovery","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":50}}},{"hash":"124fa157e977274158057958aba242ae78c2d134","isMergeCommit":false,"messageTitle":"Level-2: Add, List","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":50,"deletions":1}}},{"hash":"b4c7fedf690650dd0a2dc917749e378d4afade52","isMergeCommit":false,"messageTitle":"Level-1: Echo","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":16}}}]},{"date":"2023-08-25","commitResults":[{"hash":"f1e3964c29d583dbfd7d3e27df05db309e90a294","isMergeCommit":false,"messageTitle":"Level-3: Mark as done, created new class Task","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":116,"deletions":14}}},{"hash":"a15899d075831bb22eddafd40e1eee63941b0afc","isMergeCommit":false,"messageTitle":"Level-4: Todos, deadlines and barbie parties hehe","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":91,"deletions":5},"md":{"insertions":18,"deletions":9}}},{"hash":"24d5936476f5e096bdfd7a217bc856c2e110e563","isMergeCommit":false,"messageTitle":"automated UI Testing","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":8,"deletions":0},"java":{"insertions":5,"deletions":5},"sh":{"insertions":1,"deletions":1}}},{"hash":"e6154f2a556be6f79600c99ae7edbcf9e9cbf660","isMergeCommit":false,"messageTitle":"Level-5 Handle errors","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":144,"deletions":120}}},{"hash":"9101f3402c76ad537d2248b52a28542ca3dfa433","isMergeCommit":false,"messageTitle":"not the best.. but Level-6 v1","messageBody":"","tags":["Level-6.1"],"fileTypesAndContributionMap":{"java":{"insertions":37,"deletions":24}}}]},{"date":"2023-08-28","commitResults":[{"hash":"45012ece5238ff3a80843036763844ab9792b040","isMergeCommit":false,"messageTitle":"A-Enums, using enums for commands, to inc readability","messageBody":"","tags":["A-Enums"],"fileTypesAndContributionMap":{"java":{"insertions":118,"deletions":103}}},{"hash":"e1fde22d23e7ec65f0c152c371d006fb35bc8557","isMergeCommit":false,"messageTitle":"Level-7 v1 -- manually saving, but also saving many different lists (but not being able to edit)","messageBody":"","tags":["Level-7.1"],"fileTypesAndContributionMap":{"java":{"insertions":55,"deletions":3}}}]},{"date":"2023-08-29","commitResults":[{"hash":"64092ee74984de9cf4b8e1a52b01acb2ed9933ad","isMergeCommit":false,"messageTitle":"Level-7","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":125,"deletions":60}}}]},{"date":"2023-08-30","commitResults":[{"hash":"63ba5deb617d56ac8348432565f860ed922e97c2","isMergeCommit":false,"messageTitle":"Level-8: change to LocalDate and added to today\u0027s list at intro","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":1},"java":{"insertions":58,"deletions":15}}},{"hash":"877ee0a6c9cdf674326f8c3654662d0d5f200a46","isMergeCommit":false,"messageTitle":"A-More-OOP: Adding more abstraction through types, storage, ui and utils class","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{"java":{"insertions":280,"deletions":184},"bat":{"insertions":1,"deletions":1}}},{"hash":"d2f84241af629451cb67b1f31be8798deeae210f","isMergeCommit":false,"messageTitle":"NOTE: working codegit add .! from Level-7 onwards may be a bit buggy until here","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":3},"java":{"insertions":7,"deletions":8}}}]},{"date":"2023-09-01","commitResults":[{"hash":"a988b982cb5e31dd054d3f2d1e8293f423173b11","isMergeCommit":false,"messageTitle":"A-Gradle: add gradle","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":2}}},{"hash":"c257b57eedd3efb94673e9dcc92bacf26a8aed47","isMergeCommit":true,"messageTitle":"Merge pull request #1 from applepiofmyeye/branch-org-packages","messageBody":"Merge A-packages with add-gradle-support","fileTypesAndContributionMap":{}},{"hash":"301ec2a3017fbbc002f4ce8862eca39e123759b0","isMergeCommit":true,"messageTitle":"Merge pull request #2 from applepiofmyeye/branch-Level-7","messageBody":"Branch level 7","fileTypesAndContributionMap":{}},{"hash":"6a703ff2a77978c246d11cbcf4451ecde1d92e9b","isMergeCommit":true,"messageTitle":"Merge pull request #3 from applepiofmyeye/branch-Level-8","messageBody":"Level-8: change to LocalDate and added to today\u0027s list at intro","fileTypesAndContributionMap":{}},{"hash":"623230ec2192cf632c1afa5f44c306b24c085cff","isMergeCommit":true,"messageTitle":"Merge pull request #4 from applepiofmyeye/branch-more-OOP","messageBody":"A-More-OOP: Adding more abstraction through types, storage, ui and ut…","fileTypesAndContributionMap":{}},{"hash":"76681a791f5b2d5abab5cc50f58253bf1b37e463","isMergeCommit":true,"messageTitle":"Merge pull request #5 from applepiofmyeye/branch-org-packages","messageBody":"NOTE: working codegit add .! from Level-7 onwards may be a bit buggy …","fileTypesAndContributionMap":{}}]},{"date":"2023-09-03","commitResults":[{"hash":"9ed77eaf03bd92e4f46f13a93a420095e882232d","isMergeCommit":false,"messageTitle":"A-JUnit: Add JUnit Tests","messageBody":"","tags":["A-Jar","A-JUnit"],"fileTypesAndContributionMap":{"txt":{"insertions":12,"deletions":7},"java":{"insertions":133,"deletions":0}}},{"hash":"890c152d8f9b3aba5f33893544973bcf062ece45","isMergeCommit":true,"messageTitle":"Merge pull request #6 from applepiofmyeye/branch-A-JUnit","messageBody":"A-JUnit increment","fileTypesAndContributionMap":{}}]},{"date":"2023-09-04","commitResults":[{"hash":"af461c99e734a7060cd2201a11d576bf5e73676d","isMergeCommit":false,"messageTitle":"A-JavaDoc: add JavaDoc","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"gradle":{"insertions":8,"deletions":0},"txt":{"insertions":0,"deletions":9},"java":{"insertions":272,"deletions":51}}},{"hash":"05719eb674d293e5446c43b592f48b7b2e80722f","isMergeCommit":false,"messageTitle":"A-CodingStandard: follow coding standards","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"java":{"insertions":92,"deletions":96}}},{"hash":"2de91fed7392866b0a0c24f7a9e48f1ca594eea6","isMergeCommit":false,"messageTitle":"Level-9","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"java":{"insertions":49,"deletions":0}}}]},{"date":"2023-09-05","commitResults":[{"hash":"c89903cf35a701ffc430dec84876f3e3cb860666","isMergeCommit":true,"messageTitle":"Merge pull request #7 from applepiofmyeye/branch-A-JavaDoc","messageBody":"A-JavaDoc: add JavaDoc","fileTypesAndContributionMap":{}},{"hash":"c14477229467086d7517ec31b07c9482c083d3ec","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/applepiofmyeye/ip into branch-Level-9","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"db66db2891fbfc33b3bfc84d2cf41cd7ef55b90e","isMergeCommit":true,"messageTitle":"Merge changes from JavaDoc and CodingStandard branch","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"e3e23d826b76e1dff6ec7ba7c9f53c799fb7e50b","isMergeCommit":false,"messageTitle":"Different todo list","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0}}},{"hash":"70b2993190598afa5d4e442540588ed7d151ad41","isMergeCommit":true,"messageTitle":"Merge pull request #8 from applepiofmyeye/branch-A-CodingStandard","messageBody":"A-CodingStandard: follow coding standards","fileTypesAndContributionMap":{}},{"hash":"cb514e89badd6dd4fb70579705af32bd08f2ee91","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into branch-Level-9","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"614302530948319122479b275c7ca1eca40ff223","isMergeCommit":false,"messageTitle":"Merge Javadoc and CodingStandards","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":90,"deletions":90}}},{"hash":"410a1e910148356a2c04f96a53ebe5b3aeafca27","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/applepiofmyeye/ip","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"931e65fcd2b1ad58b23270275ac0c37b354942b2","isMergeCommit":true,"messageTitle":"Merge Level-9 with master","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"02f1996327b4fbb3708c3377b324394540b1130c","isMergeCommit":true,"messageTitle":"Merge pull request #9 from applepiofmyeye/branch-Level-9","messageBody":"Level-9","fileTypesAndContributionMap":{}},{"hash":"49bd14d3e21dffe71cadfc99e27d5ee5e4c62da9","isMergeCommit":false,"messageTitle":"Fixed FIND command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":11}}},{"hash":"f7a5bf4a9ccd0fdcf578b2ddb9e2356c30160a6c","isMergeCommit":true,"messageTitle":"Merge pull request #10 from applepiofmyeye/branch-Level-9","messageBody":"Fixed FIND command","fileTypesAndContributionMap":{}}]},{"date":"2023-09-07","commitResults":[{"hash":"4865227b6adb3528e412d03ed7d9389814c61a7b","isMergeCommit":false,"messageTitle":"Comply to checkstyle","messageBody":"","tags":["A-CheckStyle"],"fileTypesAndContributionMap":{"gradle":{"insertions":5,"deletions":0},"txt":{"insertions":15,"deletions":0},"java":{"insertions":100,"deletions":81}}}]},{"date":"2023-09-13","commitResults":[{"hash":"2b08a4953aa07acc9db3ba765343847d5116bf49","isMergeCommit":true,"messageTitle":"Merge pull request #11 from applepiofmyeye/branch-A-Checkstyle","messageBody":"Comply to checkstyle","fileTypesAndContributionMap":{}},{"hash":"8a909e095233309b0d046855a3622f21fa234287","isMergeCommit":false,"messageTitle":"Change exception handling format, add findTasks logic","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":4,"deletions":5}}}]},{"date":"2023-09-16","commitResults":[{"hash":"e4234a2c58ecb653da0ec130e7e417851661a7c3","isMergeCommit":false,"messageTitle":"Add greater abstraction, add GUI functionality","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{"gradle":{"insertions":15,"deletions":0},"txt":{"insertions":0,"deletions":19},"fxml":{"insertions":36,"deletions":0},"java":{"insertions":829,"deletions":359}}},{"hash":"1871c3bc6e87eeea8342c40d199d5b904f756151","isMergeCommit":true,"messageTitle":"Merge pull request #13 from applepiofmyeye/branch-Level-10","messageBody":"Add greater abstraction, add GUI functionality","fileTypesAndContributionMap":{}},{"hash":"3b2c947f4d179eff0174314408f2316b74130b64","isMergeCommit":false,"messageTitle":"Add assertions for error handling","messageBody":"","tags":["A-FullCommitMessage","A-Assertions"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":15,"deletions":3}}},{"hash":"65e628921c6d69a86772e4efe66f6a600a33d542","isMergeCommit":false,"messageTitle":"Add javadocs, change long methods, checkstyle","messageBody":"Some long methods were used for parsing user input for example.\n\nThis causes low readability and makes it difficult to debug when the\nproject continues to scale up.\n\nLet\u0027s split longer methods into helper functions, Javadocs can be\nadded, and style should be ensured for maximal readability.\n\nIn maximising readability using a universal style, others will be able\nto read and understand the functionality of our code.\n","fileTypesAndContributionMap":{"java":{"insertions":43,"deletions":62}}}]},{"date":"2023-09-18","commitResults":[{"hash":"1881228b75a4d7803071d9d215dd1fad52d4c3eb","isMergeCommit":true,"messageTitle":"Merge pull request #14 from applepiofmyeye/branch-A-Assertions","messageBody":"Add assertions for error handling","fileTypesAndContributionMap":{}},{"hash":"a0314a8c40c999eb46b73a71e9d70cd75264c985","isMergeCommit":true,"messageTitle":"Merge pull request #15 from applepiofmyeye/branch-A-CodeQuality","messageBody":"Add javadocs, change long methods, checkstyle","fileTypesAndContributionMap":{}},{"hash":"aaeab2e9284751fb8e7ddbcf2d32f38300e32634","isMergeCommit":false,"messageTitle":"Shorten longer methods","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":11,"deletions":0},"java":{"insertions":304,"deletions":137}}}]},{"date":"2023-09-19","commitResults":[{"hash":"66ca9e51b824e1947438eb2b998066ebe868c675","isMergeCommit":false,"messageTitle":"Add basic \u0027View Schedules\u0027 tab","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":14,"deletions":0},"fxml":{"insertions":77,"deletions":3},"java":{"insertions":227,"deletions":5}}},{"hash":"1cb5aa9f8ad1f432553bf5ed15093f6c684acdc7","isMergeCommit":false,"messageTitle":"Remove ScheduleWindow java file","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":0,"deletions":42}}},{"hash":"3b60d3fad97be8274bd20d611c788137cf84b496","isMergeCommit":false,"messageTitle":"Schedule shows today\u0027s tasks","messageBody":"","tags":["BCD-Extension"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":4,"deletions":2}}},{"hash":"79d8b12bb7dd7b9e964a3fad68ff8136fbc26514","isMergeCommit":true,"messageTitle":"Resolve merge conflicts in txt file","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"c2f5fc55577d12514c45a7f876a25b46765ef86c","isMergeCommit":true,"messageTitle":"Resolve merge conflicts A-CodeQuality branch","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"a8d0865d229da1fb4a2746760577b81d4ba41cc2","isMergeCommit":false,"messageTitle":"Resolve merge conflicts with barbie.txt","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0}}},{"hash":"91a29e7eca785ac880cd06b801ad0a128fdd05bc","isMergeCommit":true,"messageTitle":"Merge pull request #16 from applepiofmyeye/branch-A-CodeQuality","messageBody":"Shorten longer methods","fileTypesAndContributionMap":{}},{"hash":"9340c4e3fbcfaa8d68a2b4666a3276c4b2f9fafa","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-BCD-Extension\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"76a87f45bd29fe87cca69526bacb2dd48edd4d5c","isMergeCommit":true,"messageTitle":"Merge branch-BCD-Extension with master","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-20","commitResults":[{"hash":"f7b5760fef522879ddb09a22f7dd3148c8ae9349","isMergeCommit":false,"messageTitle":"Delete duplicate code","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":1}}},{"hash":"465232230be0fb798b44f063718a2b277f19e233","isMergeCommit":false,"messageTitle":"Fix bug with launching JavaFX application","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1},"java":{"insertions":11,"deletions":2}}},{"hash":"0370b6685e22688c60a182285b298999f3ad85d5","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into branch-BCD-Extension","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"f3e91fd06a232539e8967742e2c0cd9a04f6401c","isMergeCommit":false,"messageTitle":"Get task before accessing string: prevent duplicate getting","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}}]},{"date":"2023-09-21","commitResults":[{"hash":"887bd7abe8137b8f56962b942097397f7f05c115","isMergeCommit":false,"messageTitle":"Add user guide and UI image","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"txt":{"insertions":6,"deletions":16},"java":{"insertions":52,"deletions":19},"md":{"insertions":150,"deletions":10}}},{"hash":"2a558ef5ff2378793134d464a4eac8fe3c627a91","isMergeCommit":false,"messageTitle":"Edit some typos and add view feature in readme","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":12,"deletions":21}}},{"hash":"5100b418cbcc37d5f88670aa0e0181119c95d221","isMergeCommit":false,"messageTitle":"Add chatbot name to user guide","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}},{"hash":"a5ca10ffb50418497275db9d67059131d326f775","isMergeCommit":false,"messageTitle":"Update main README.md and set up information","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":7,"deletions":19}}},{"hash":"132a757cf48be84804e1a3e1093b900bd51e5a9a","isMergeCommit":false,"messageTitle":"Upload .jar file","messageBody":"","tags":["A-Release"],"fileTypesAndContributionMap":{"txt":{"insertions":34,"deletions":0},"fxml":{"insertions":110,"deletions":0}}}]},{"date":"2023-09-24","commitResults":[{"hash":"4a031a8f0c92563b0a0fe5182cb3789167732f82","isMergeCommit":false,"messageTitle":"Add javadocs, remove one assertion","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":2},"txt":{"insertions":11,"deletions":0},"fxml":{"insertions":3,"deletions":2},"java":{"insertions":73,"deletions":25}}},{"hash":"63815256ab1414ac4b577a4a89f556ef82df14b0","isMergeCommit":false,"messageTitle":"Add configurations for other OSes","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":39,"deletions":14},"txt":{"insertions":0,"deletions":10}}}]}]},"authorFileTypeContributionMap":{"applepiofmyeye":{"java":1853,"md":142,"fxml":221,"sh":1,"bat":1,"gradle":53,"txt":47}},"authorContributionVariance":{"applepiofmyeye":75376.75},"authorDisplayNameMap":{"applepiofmyeye":"CS2103T-W12-2 JOEY..LEYI"}} +{"authorDailyContributionsMap":{"applepiofmyeye":[{"date":"2023-08-23","commitResults":[{"hash":"caaeced440ab911e6e4ac4e39e4f55de5f63d954","isMergeCommit":false,"messageTitle":"Level 0","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":6}}},{"hash":"d63db97a9f9a47182b396f29f77e3db592049cbc","isMergeCommit":false,"messageTitle":"Commit message for Tag-1","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":50,"deletions":1}}},{"hash":"fd1e6897eefb156971a6fd3dd791f98d94339d5f","isMergeCommit":false,"messageTitle":"Code recovery","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":50}}},{"hash":"124fa157e977274158057958aba242ae78c2d134","isMergeCommit":false,"messageTitle":"Level-2: Add, List","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":50,"deletions":1}}},{"hash":"b4c7fedf690650dd0a2dc917749e378d4afade52","isMergeCommit":false,"messageTitle":"Level-1: Echo","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":16}}}]},{"date":"2023-08-25","commitResults":[{"hash":"f1e3964c29d583dbfd7d3e27df05db309e90a294","isMergeCommit":false,"messageTitle":"Level-3: Mark as done, created new class Task","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":116,"deletions":14}}},{"hash":"a15899d075831bb22eddafd40e1eee63941b0afc","isMergeCommit":false,"messageTitle":"Level-4: Todos, deadlines and barbie parties hehe","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":91,"deletions":5},"md":{"insertions":18,"deletions":9}}},{"hash":"24d5936476f5e096bdfd7a217bc856c2e110e563","isMergeCommit":false,"messageTitle":"automated UI Testing","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":8,"deletions":0},"java":{"insertions":5,"deletions":5},"sh":{"insertions":1,"deletions":1}}},{"hash":"e6154f2a556be6f79600c99ae7edbcf9e9cbf660","isMergeCommit":false,"messageTitle":"Level-5 Handle errors","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":144,"deletions":120}}},{"hash":"9101f3402c76ad537d2248b52a28542ca3dfa433","isMergeCommit":false,"messageTitle":"not the best.. but Level-6 v1","messageBody":"","tags":["Level-6.1"],"fileTypesAndContributionMap":{"java":{"insertions":37,"deletions":24}}}]},{"date":"2023-08-28","commitResults":[{"hash":"45012ece5238ff3a80843036763844ab9792b040","isMergeCommit":false,"messageTitle":"A-Enums, using enums for commands, to inc readability","messageBody":"","tags":["A-Enums"],"fileTypesAndContributionMap":{"java":{"insertions":118,"deletions":103}}},{"hash":"e1fde22d23e7ec65f0c152c371d006fb35bc8557","isMergeCommit":false,"messageTitle":"Level-7 v1 -- manually saving, but also saving many different lists (but not being able to edit)","messageBody":"","tags":["Level-7.1"],"fileTypesAndContributionMap":{"java":{"insertions":55,"deletions":3}}}]},{"date":"2023-08-29","commitResults":[{"hash":"64092ee74984de9cf4b8e1a52b01acb2ed9933ad","isMergeCommit":false,"messageTitle":"Level-7","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":125,"deletions":60}}}]},{"date":"2023-08-30","commitResults":[{"hash":"63ba5deb617d56ac8348432565f860ed922e97c2","isMergeCommit":false,"messageTitle":"Level-8: change to LocalDate and added to today\u0027s list at intro","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":1},"java":{"insertions":58,"deletions":15}}},{"hash":"877ee0a6c9cdf674326f8c3654662d0d5f200a46","isMergeCommit":false,"messageTitle":"A-More-OOP: Adding more abstraction through types, storage, ui and utils class","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{"java":{"insertions":280,"deletions":184},"bat":{"insertions":1,"deletions":1}}},{"hash":"d2f84241af629451cb67b1f31be8798deeae210f","isMergeCommit":false,"messageTitle":"NOTE: working codegit add .! from Level-7 onwards may be a bit buggy until here","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":3},"java":{"insertions":7,"deletions":8}}}]},{"date":"2023-09-01","commitResults":[{"hash":"a988b982cb5e31dd054d3f2d1e8293f423173b11","isMergeCommit":false,"messageTitle":"A-Gradle: add gradle","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":2}}},{"hash":"c257b57eedd3efb94673e9dcc92bacf26a8aed47","isMergeCommit":true,"messageTitle":"Merge pull request #1 from applepiofmyeye/branch-org-packages","messageBody":"Merge A-packages with add-gradle-support","fileTypesAndContributionMap":{}},{"hash":"301ec2a3017fbbc002f4ce8862eca39e123759b0","isMergeCommit":true,"messageTitle":"Merge pull request #2 from applepiofmyeye/branch-Level-7","messageBody":"Branch level 7","fileTypesAndContributionMap":{}},{"hash":"6a703ff2a77978c246d11cbcf4451ecde1d92e9b","isMergeCommit":true,"messageTitle":"Merge pull request #3 from applepiofmyeye/branch-Level-8","messageBody":"Level-8: change to LocalDate and added to today\u0027s list at intro","fileTypesAndContributionMap":{}},{"hash":"623230ec2192cf632c1afa5f44c306b24c085cff","isMergeCommit":true,"messageTitle":"Merge pull request #4 from applepiofmyeye/branch-more-OOP","messageBody":"A-More-OOP: Adding more abstraction through types, storage, ui and ut…","fileTypesAndContributionMap":{}},{"hash":"76681a791f5b2d5abab5cc50f58253bf1b37e463","isMergeCommit":true,"messageTitle":"Merge pull request #5 from applepiofmyeye/branch-org-packages","messageBody":"NOTE: working codegit add .! from Level-7 onwards may be a bit buggy …","fileTypesAndContributionMap":{}}]},{"date":"2023-09-03","commitResults":[{"hash":"9ed77eaf03bd92e4f46f13a93a420095e882232d","isMergeCommit":false,"messageTitle":"A-JUnit: Add JUnit Tests","messageBody":"","tags":["A-Jar","A-JUnit"],"fileTypesAndContributionMap":{"txt":{"insertions":12,"deletions":7},"java":{"insertions":133,"deletions":0}}},{"hash":"890c152d8f9b3aba5f33893544973bcf062ece45","isMergeCommit":true,"messageTitle":"Merge pull request #6 from applepiofmyeye/branch-A-JUnit","messageBody":"A-JUnit increment","fileTypesAndContributionMap":{}}]},{"date":"2023-09-04","commitResults":[{"hash":"af461c99e734a7060cd2201a11d576bf5e73676d","isMergeCommit":false,"messageTitle":"A-JavaDoc: add JavaDoc","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"gradle":{"insertions":8,"deletions":0},"txt":{"insertions":0,"deletions":9},"java":{"insertions":272,"deletions":51}}},{"hash":"05719eb674d293e5446c43b592f48b7b2e80722f","isMergeCommit":false,"messageTitle":"A-CodingStandard: follow coding standards","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"java":{"insertions":92,"deletions":96}}},{"hash":"2de91fed7392866b0a0c24f7a9e48f1ca594eea6","isMergeCommit":false,"messageTitle":"Level-9","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"java":{"insertions":49,"deletions":0}}}]},{"date":"2023-09-05","commitResults":[{"hash":"c89903cf35a701ffc430dec84876f3e3cb860666","isMergeCommit":true,"messageTitle":"Merge pull request #7 from applepiofmyeye/branch-A-JavaDoc","messageBody":"A-JavaDoc: add JavaDoc","fileTypesAndContributionMap":{}},{"hash":"c14477229467086d7517ec31b07c9482c083d3ec","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/applepiofmyeye/ip into branch-Level-9","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"db66db2891fbfc33b3bfc84d2cf41cd7ef55b90e","isMergeCommit":true,"messageTitle":"Merge changes from JavaDoc and CodingStandard branch","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"e3e23d826b76e1dff6ec7ba7c9f53c799fb7e50b","isMergeCommit":false,"messageTitle":"Different todo list","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0}}},{"hash":"70b2993190598afa5d4e442540588ed7d151ad41","isMergeCommit":true,"messageTitle":"Merge pull request #8 from applepiofmyeye/branch-A-CodingStandard","messageBody":"A-CodingStandard: follow coding standards","fileTypesAndContributionMap":{}},{"hash":"cb514e89badd6dd4fb70579705af32bd08f2ee91","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into branch-Level-9","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"614302530948319122479b275c7ca1eca40ff223","isMergeCommit":false,"messageTitle":"Merge Javadoc and CodingStandards","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":90,"deletions":90}}},{"hash":"410a1e910148356a2c04f96a53ebe5b3aeafca27","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/applepiofmyeye/ip","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"931e65fcd2b1ad58b23270275ac0c37b354942b2","isMergeCommit":true,"messageTitle":"Merge Level-9 with master","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"02f1996327b4fbb3708c3377b324394540b1130c","isMergeCommit":true,"messageTitle":"Merge pull request #9 from applepiofmyeye/branch-Level-9","messageBody":"Level-9","fileTypesAndContributionMap":{}},{"hash":"49bd14d3e21dffe71cadfc99e27d5ee5e4c62da9","isMergeCommit":false,"messageTitle":"Fixed FIND command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":11}}},{"hash":"f7a5bf4a9ccd0fdcf578b2ddb9e2356c30160a6c","isMergeCommit":true,"messageTitle":"Merge pull request #10 from applepiofmyeye/branch-Level-9","messageBody":"Fixed FIND command","fileTypesAndContributionMap":{}}]},{"date":"2023-09-07","commitResults":[{"hash":"4865227b6adb3528e412d03ed7d9389814c61a7b","isMergeCommit":false,"messageTitle":"Comply to checkstyle","messageBody":"","tags":["A-CheckStyle"],"fileTypesAndContributionMap":{"gradle":{"insertions":5,"deletions":0},"txt":{"insertions":15,"deletions":0},"java":{"insertions":100,"deletions":81}}}]},{"date":"2023-09-13","commitResults":[{"hash":"2b08a4953aa07acc9db3ba765343847d5116bf49","isMergeCommit":true,"messageTitle":"Merge pull request #11 from applepiofmyeye/branch-A-Checkstyle","messageBody":"Comply to checkstyle","fileTypesAndContributionMap":{}},{"hash":"8a909e095233309b0d046855a3622f21fa234287","isMergeCommit":false,"messageTitle":"Change exception handling format, add findTasks logic","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":4,"deletions":5}}}]},{"date":"2023-09-16","commitResults":[{"hash":"e4234a2c58ecb653da0ec130e7e417851661a7c3","isMergeCommit":false,"messageTitle":"Add greater abstraction, add GUI functionality","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{"gradle":{"insertions":15,"deletions":0},"txt":{"insertions":0,"deletions":19},"fxml":{"insertions":36,"deletions":0},"java":{"insertions":829,"deletions":359}}},{"hash":"1871c3bc6e87eeea8342c40d199d5b904f756151","isMergeCommit":true,"messageTitle":"Merge pull request #13 from applepiofmyeye/branch-Level-10","messageBody":"Add greater abstraction, add GUI functionality","fileTypesAndContributionMap":{}},{"hash":"3b2c947f4d179eff0174314408f2316b74130b64","isMergeCommit":false,"messageTitle":"Add assertions for error handling","messageBody":"","tags":["A-FullCommitMessage","A-Assertions"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":15,"deletions":3}}},{"hash":"65e628921c6d69a86772e4efe66f6a600a33d542","isMergeCommit":false,"messageTitle":"Add javadocs, change long methods, checkstyle","messageBody":"Some long methods were used for parsing user input for example.\n\nThis causes low readability and makes it difficult to debug when the\nproject continues to scale up.\n\nLet\u0027s split longer methods into helper functions, Javadocs can be\nadded, and style should be ensured for maximal readability.\n\nIn maximising readability using a universal style, others will be able\nto read and understand the functionality of our code.\n","fileTypesAndContributionMap":{"java":{"insertions":43,"deletions":62}}}]},{"date":"2023-09-18","commitResults":[{"hash":"1881228b75a4d7803071d9d215dd1fad52d4c3eb","isMergeCommit":true,"messageTitle":"Merge pull request #14 from applepiofmyeye/branch-A-Assertions","messageBody":"Add assertions for error handling","fileTypesAndContributionMap":{}},{"hash":"a0314a8c40c999eb46b73a71e9d70cd75264c985","isMergeCommit":true,"messageTitle":"Merge pull request #15 from applepiofmyeye/branch-A-CodeQuality","messageBody":"Add javadocs, change long methods, checkstyle","fileTypesAndContributionMap":{}},{"hash":"aaeab2e9284751fb8e7ddbcf2d32f38300e32634","isMergeCommit":false,"messageTitle":"Shorten longer methods","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":11,"deletions":0},"java":{"insertions":304,"deletions":137}}}]},{"date":"2023-09-19","commitResults":[{"hash":"66ca9e51b824e1947438eb2b998066ebe868c675","isMergeCommit":false,"messageTitle":"Add basic \u0027View Schedules\u0027 tab","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":14,"deletions":0},"fxml":{"insertions":77,"deletions":3},"java":{"insertions":227,"deletions":5}}},{"hash":"1cb5aa9f8ad1f432553bf5ed15093f6c684acdc7","isMergeCommit":false,"messageTitle":"Remove ScheduleWindow java file","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":0,"deletions":42}}},{"hash":"3b60d3fad97be8274bd20d611c788137cf84b496","isMergeCommit":false,"messageTitle":"Schedule shows today\u0027s tasks","messageBody":"","tags":["BCD-Extension"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":4,"deletions":2}}},{"hash":"79d8b12bb7dd7b9e964a3fad68ff8136fbc26514","isMergeCommit":true,"messageTitle":"Resolve merge conflicts in txt file","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"c2f5fc55577d12514c45a7f876a25b46765ef86c","isMergeCommit":true,"messageTitle":"Resolve merge conflicts A-CodeQuality branch","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"a8d0865d229da1fb4a2746760577b81d4ba41cc2","isMergeCommit":false,"messageTitle":"Resolve merge conflicts with barbie.txt","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0}}},{"hash":"91a29e7eca785ac880cd06b801ad0a128fdd05bc","isMergeCommit":true,"messageTitle":"Merge pull request #16 from applepiofmyeye/branch-A-CodeQuality","messageBody":"Shorten longer methods","fileTypesAndContributionMap":{}},{"hash":"9340c4e3fbcfaa8d68a2b4666a3276c4b2f9fafa","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-BCD-Extension\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"76a87f45bd29fe87cca69526bacb2dd48edd4d5c","isMergeCommit":true,"messageTitle":"Merge branch-BCD-Extension with master","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-20","commitResults":[{"hash":"f7b5760fef522879ddb09a22f7dd3148c8ae9349","isMergeCommit":false,"messageTitle":"Delete duplicate code","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":1}}},{"hash":"465232230be0fb798b44f063718a2b277f19e233","isMergeCommit":false,"messageTitle":"Fix bug with launching JavaFX application","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1},"java":{"insertions":11,"deletions":2}}},{"hash":"0370b6685e22688c60a182285b298999f3ad85d5","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into branch-BCD-Extension","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"f3e91fd06a232539e8967742e2c0cd9a04f6401c","isMergeCommit":false,"messageTitle":"Get task before accessing string: prevent duplicate getting","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}}]},{"date":"2023-09-21","commitResults":[{"hash":"887bd7abe8137b8f56962b942097397f7f05c115","isMergeCommit":false,"messageTitle":"Add user guide and UI image","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"txt":{"insertions":6,"deletions":16},"java":{"insertions":52,"deletions":19},"md":{"insertions":150,"deletions":10}}},{"hash":"2a558ef5ff2378793134d464a4eac8fe3c627a91","isMergeCommit":false,"messageTitle":"Edit some typos and add view feature in readme","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":12,"deletions":21}}},{"hash":"5100b418cbcc37d5f88670aa0e0181119c95d221","isMergeCommit":false,"messageTitle":"Add chatbot name to user guide","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}},{"hash":"a5ca10ffb50418497275db9d67059131d326f775","isMergeCommit":false,"messageTitle":"Update main README.md and set up information","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":7,"deletions":19}}},{"hash":"132a757cf48be84804e1a3e1093b900bd51e5a9a","isMergeCommit":false,"messageTitle":"Upload .jar file","messageBody":"","tags":["A-Release"],"fileTypesAndContributionMap":{"txt":{"insertions":34,"deletions":0},"fxml":{"insertions":110,"deletions":0}}}]},{"date":"2023-09-24","commitResults":[{"hash":"4a031a8f0c92563b0a0fe5182cb3789167732f82","isMergeCommit":false,"messageTitle":"Add javadocs, remove one assertion","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":2},"txt":{"insertions":11,"deletions":0},"fxml":{"insertions":3,"deletions":2},"java":{"insertions":73,"deletions":25}}},{"hash":"63815256ab1414ac4b577a4a89f556ef82df14b0","isMergeCommit":false,"messageTitle":"Add configurations for other OSes","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":39,"deletions":14},"txt":{"insertions":0,"deletions":10}}}]},{"date":"2023-09-30","commitResults":[{"hash":"3e2ab646ee7a433e0fa32c8c2baf7983525a10ff","isMergeCommit":false,"messageTitle":"Resolve jar issues, change entry point for the application","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":20,"deletions":46},"txt":{"insertions":1,"deletions":34},"fxml":{"insertions":0,"deletions":110},"java":{"insertions":1,"deletions":1}}}]}]},"authorFileTypeContributionMap":{"applepiofmyeye":{"java":1853,"md":142,"fxml":111,"sh":1,"bat":1,"gradle":29,"txt":14}},"authorContributionVariance":{"applepiofmyeye":67593.53},"authorDisplayNameMap":{"applepiofmyeye":"CS2103T-W12-2 JOEY..LEYI"}} diff --git a/archive.zip b/archive.zip index 4e0b2e30efb97f330664f69b9565c4064493756c..72a41c8d82e6ebf59674826134318750eb5acf1a 100644 GIT binary patch delta 103525 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�{0qFu*ayl>7mYW*GXAtmi5>z%%3r+n%bR_L zauP-@@-`l*g&YB#oq6HlYQsfVmng@e9nLvYpbwAQx-@&0n_?it(}KR9x8viPZeLix zf_J#)g;ALkWIY-Bwokzc5UM<~u3(ePOE|Z0UhTI|RI|#2Es$82Soe&`al$!oT)1aU4S8S~KW8@;rDn9^ z$vQ#kSh%X{dT8xOlu^JbnFB8EaYUdms|?NL$=;Wh@p=-i^?pW>2H8n{Hw(Y-#`E1k zS1=&BST~s-M1{RBQi?>MusCKxv{D1RQ|?o$&Zx0M>n_|zAT!)wD!c8mU49xjxRrKf z0{@qT^Mg159kGpE6oiprXBxS8-0#K=dV8Pm4BfTL6iVn9t%ME5pEUrZDc8iS>oNN| zsA>=XCUWnX*8>aq_E*9dGw9xCp(jr8?N!1xc+lgO?pau({g4KK8lOC=(^L>9NJaFY zlp(`ucV^&*5F+aEYNHxEs?hsMB=$1?rYW#KVTw$JXQ$PsSeVcKV5~&CMh?D)Zk))w z!Rl3SK8Yme(E7OptMGuw8RIbD-bv(V62hgH9zXtg+{pway-8#*CXJpbli3vl<^`YL z=Wfxv2*3RVohHdT95VlNlsX>i_&aFL81M$vI%hHv{H;G4ne$;O*upUob>7goRMe?j z1&w;(>79zw%j{}Gp_J0R#%*~dmqmC9Ogao_DXewL&`hLEBAI|u>RDFhDJXKO=*lrJ z`n%3RoQf`rAhl;rQ!C=XF6|j9EDijpZHbW^CEh=>@CPS|6vJ~Saj-4Yo4kFfUWl>FCQF~7LKhDI;(TVuR(Fy z$d4V!o$4}_>z-0!-es%eILFf>Ru)h0iu~Ta*3`v@SuXXUs2?5Ai~>QiC6g;`>t{4FH_zH_@-v!W0#(e3M#&Yd4S zDY9gDqo5pHR*|>PK}}@dMMFLX&cN!K&JV|=LS4Ijg^$P`!LcB#@CqIZf+yzr7Uba2 zOpdyWfuNX$%FAwYpZa(;kR#^e!*#?5tv)T3MKfUl~yTJ&@mGN)v$S>HU_5lwQZSWem#{}+)VShvH^4P z?cNN#5OYi^_Dq9Sps1OeW`jQ`X1{sHWzn78a#u6}{z}^DPhOIYI16aw&p;XIWMSz1 zcAJ6gnAnB#B*=Chy7fvX#?U+XSJFZlq!MG3#k3hjsgA8cQ_lQP`n(iAC;f-tRPt+V z@S)hOmKUi$-){PbH2v#X%tU@*b_VxTL*dO(6zQlmNss>! zZ7=2#T+2PDLLDEO=usvPt?<>!7wUY-W@ofNwmW~D9Tj_UavwS})6Fc?!%&?0 z1yHIe@od_`u{sgxQ%M;M=T2n~Uz(Xr1j9A(G*>3)E*~g5F(>@>LKl&1VKLtJV7niP z!uu@ej53(W1B#2ejkSI!@9!-HI^=`$98I46`%sKMLdfKx)1~<_s_Fl)%gVe!3TS#g# zMkWsN&EU~j#)Uo3%UOM5FdFcL%HbgYMQw6P(>IIqkJP_w@+a8IgzvUw>=R7XwzXhW zCVRu&6y@BE*}BdW5?LV@Iz#TLeg0y*7{+yfD^Q5|$Hl2XZmt=2jt`i9l1E~h3jl-= zfkOpq@!hX{li%lc9TY6r;3=2?va9CH3vqrv7Bb#wQ%w5fb=2=a-*xqf>w#IOq6$8QoVazT7PIi zb{@~%d&}O0kpdEZE{umnh7XS+9N-~WZKm#gxr=c#5t86NeRiG(NN0AsLhG$&rku{~ zl)@GL^h(T+8>qZpoPTi93_4r0g-zRKCT0K3hheY2(ppB6o5;N#`sDfpE9yl;xp3{lO z^{DA~ROr-AlHH(l$V95(pD`&EYtOfg#){5RUpxbgg%$C8tNlK7=-X{ZiLiPgcAWa@0QeQl!C=OFt~K8 z{IVHbC;p;8&J}_A<(l)TMu;b0WRnYF=qwpE()e#X~rv_$}WR#dwXIy2eD-%W>ObUYx|TL!IB3r8qkPuYr-J??c}S zP3g&cp`Dw>%Mj;rBQg1M()f%zxAkgHJ4b$ME9o1x$~Z>fPOP}Kn>KC-rDgX(q+u0K z{lNhkn~5$-JSI5loAUjLro1*(8t?4ZR_kcDz;}ou@2*y;Bzp5mf}STbatL8dh!bYc ze-CsUJP}+&_~zaij?z5}IM6>jkL2h#2aI~Iuw>Q9IGIGe5}#s>@p1X(uWsd8(lR}F zfPG`PX@|WT>Z>h4Yz~lhN2deT;2fA-{fGlpj=&>o zRat`i5`Lu?xK`M3+zWFEGoGfB|Kp%^oU2=%o%B5Z>niJbPJ#&vK>avXiTG%)?(6rw zF;i>3EPFSf5}{FZMya|pxDP0Cf^EAZJ z65W>OP(L7~qfq3MW+?_T;x!n*th zx0QM9$>8g7mHy12W=sScNwudtaGp`&GFhn&H|jjqXo)jOHz|^H9!0p=Hf?%cL}rI( zp0GBWV>W|e3s4xTKersXmVqiS&PdsqFR|FGA}F5C=ceC43EE*}8j>+NedfnYM>8g!CfrE;k_bjrc(wGT;ztfVx zBZHhrnf)no=9U~X7BceRYg^GAK~g7)UU>ES;Y1Lgh2dw5I^*9v@9o;rN)`=vl<@bf-`X8 z>!F^;Nr2Y{daZJdIj+@w9zmBnT?EF*H+O zm=~uUN%+Z9soJ33X7z7z(`!#wf}&JW~Ua%R|2Y zmdWPHaH^M+!W-jnb_W~{+{;pH>??_-7QEY{hTln>H)AS#;b#!tI^b}*b5{(_bylhM z)LN}?oO)ojxzKJ)vZjT+ROqMVKH!aOY~{x3y4QaHmnv?jUgeZ#GbsAKP#F^5RK@Ek zz6oG_ssIqda)e!ntohQ(`BlUgWHjntJjn;3*Wk{uVYfF_UNqlM;zl-m#kB8Lut=8b z!tgw#f_WKI01%3(#{drO<&Tw0U9gitu!ly@} zq6Jo{b+#(=2PP4wq*GK|_0?g_B;vbiaektR&J1pb>O- zYQBcsoG`Z^otCs#zC)oiAqjDJoRv>hR8)LFvc~hKQJ$OHm(^+nr^v3=6%UlzG*?A6 z?TQHE=X7*Qo8vp~Rya!s)APL(`K5nNDI(W1>CQQc%@_fZ?rcD9DvF2J7)#u<6)PdD)F* z8CI4{c7GIKM@=U-dumO9nR9>cICndN59n}nTxRSm%{hW;ZTqcDaX6XYT4@HlVf+q)9{+_>3uH|W;J(bISi>-$ z2S(+&AP(_dDG(RVAx67gp*a-d2x-B3NPv0MrFbG7sye_J8?63agdZDA2QTfWhd1Fe zUPG|aW<^$1G^(Q^T|MDPX+t{UBgrmz>3S|voZ2I$8=h8PU&GQScFu`O!(mXMG6oeE zgN!*}bX3ElWHN0P?Dj8xz#q{l9PM#ZJLoi(>U=KxaFi`}^EeGNbcH##gO61GmqoP& zntECM@6R4{!tGe9d1!L6@2#>|!%E7b2-jnpd6;A4OF8stg?N{&664zTj9!CBD#Gc# zX*rRTRGx(mmS*f+Pdk=435pJtmPgeA=7sG6Vsc~tzwGljxhl$=0rGAuWn6Jt#pA~H zMR`mZs(rt#IFQc3x|M8EsdB=b_jSIjcsH%Ev=NWA>vlE|3PIubdC&!aq~w6#;(c*^ z$m{6W?^p7OdZw3vdQe>V(?)pJ;C548bQ9j_EBqoL*@6bYjSOw%XY|+@^%4f_sXV@R z%N48~6#}~eU)WCJ0pQ+sT_e0u9VO>gg%OsD`mu0$Iz@hjVEYvR^z+fW;BE7Z zk-WpF;5&KLB>;{=Q}AcKYG2u0)%T%luUv`>Y^S9a#GBxgiD2#z?=ktt3ue04Sr3Ai zIkU;hpcYEP_3kRADr7Lr#rxDQ;wp5US~_zR%&{D8Rk*oXWQ+FD%Egc**;1;*z`-QT zW4u)xLFK^Jk$W(VFS&7QS8-Y=ezj;b6H>ix^#I1Z*8yD?AWud{qNue z0ryU%Okd6-_(-AaNRQ4~#fDL0{uZxQlL~e9p;FVHbl_8r5wzbyXCfue^F!MrZqMQy zUjHUFws-hW6w%gPrz1LHqfvy^xen7L5Sv7lT5KD2lII7u-CR48=m6bWQ~ku_+LhtW z5~LP*_Xpr~%7aNxlclPg{jUb%ryR>+Yli-)*+W7T^BR@RNT zV6)yz@Q5yC0c57USqcxtQep^YRkGRQ2u&8d1OI3t*z^V_yS)VVIanUbW!31Y8O#+n zk{6zbU6S>u9u_1kgaU0LUI%PVl}1AL>bem{Y8IejYAF*BE2eF!KbE58slv{@U|)51 zxs^g*&CiKzt%*oz8D;?Q4+v*K>z#xA+U`7UXE%+ecQUM7LrrTJy^Zz~qUrrrad?=j zh;A3%%IE`M*LESh8*1Q<(RqWb6V>ic^}|#mE@d6Oo)@?3MNI`v_FoxFji%WA(oA^a zuV?@+tR<1zmfUS84?$r$(9Y|x>s~NVqNf)PQhG)PbkS^GD7XA=ci5B&d#PW_YP;6U z3%lK-m%$EBb9YG_`Dom-R+$>#><7T*AXI)NHH3E7rr3u&v zrVfkwmp&tp`K7ex%fA!(^G(wR11G$X@Y<;wo7J$} zIE{xo#HG3Nv%F#{UHRfRPq@;R5ZF#C0P)n2UqD8r-~Ec2Oz=eH6_1x#or7TO)`a9| z<~;a`DIMK-%@~j{LZAj6go7rC{l|*|bb9aQwT>Ypu$WrSt9(=*(cZk!i1FV1l#R!t+2y;FW!cUh;cXnt7Z<-(kJ^3PGT7jI=&?zaNSFK_( z-wWV1oKGVY6nwkYgYNtM69y22d;9?dMEnaR>5!OkE?sh>ozLO`%(F?x0GwLa=Xydb zWGvq;Q@#y{i&I2-`nlgWD`M$?dp-E~iPQj!o?ALi^FUt`INHKTW3X&kgU4S0k*qF$?RzlY3 zm`H9^p5{T}ZuaQq6oX490uoAqvrGhB$Q$R{cCUvTakOI3e`(!Y`GfvSI~|)Xej-DF z*3Fiyn9bX+SNrWPi0VT^`1k59))qt%04lzNLZhpI*cu4yEeV9>Ga}>-#H&aiLR8#3 z+LHFxen&HzmbOhgfb&}yEV#|1BLe8E_L+9yfIQz8ffj=Hm-Zp$@pJ8IU z1!|5y2sAeboe!eR6gX7i$kwbeVZ!%kok9co+1Z$PRXnM+fPd#50jQnNmwEx05CIoo zlAK#FzKD8+!;<|HHY~@Wnk?Nk(d_P=HPAeUdWyqAL$hzfNnJ+_gIUhMQp+{EPyq|a z`;mb(z`7tv@Nk~`+(KzYf9`AYuF!7s{t@}PDg5rA|K0&|c|j?(4gq@qWhg;Xbg#gny@V`|m3)304!*x!r=) zTAaYVKn#V0Fj4qQHB2bDtr35tNBLNScH7-b=V6eIW|{HXgB_iL7GIJh9?bw>q?N8UC*Rcp$g z-eN>Y-Ji{YFoc=~ zG4gJBUH~r5b!HHQ_8Txuy3lxIM0@0d!;jAt@|W#&fN33y#22L&>1in<8n|%DFGe#B zlw`<|6wkt6peh@Kjp7ich{&$&J7&J%fi4^5Ltr(kE=vlAVi<0JrD_5hNan}T?q&X_ zWhqSUqFAoa)wmO;3|NLOIb!6?6dxS3ESR2Qm$QO0+ z;+8QPT)^`rx?4@#-3>R`te1ZiPzAfVE2Zbq?^#Wu*vG~)6&4VbH$lRe0yi;L0C)Lw zfuposF|$NGGwv8P-)>okueTnd>0o$LFP}5jy6>XUO@%XfShVVZCnCwbY1BT)`*{-b z24H(q1ohl&V&i=rTR80fx0gx0Tlb%=?k3@57Hu6Bx-G^TkDfW*o-mae7plz=K5mJn^Eo_%Xhdyg}jDueSV$~&6zxwCM>xcKk8_<+08 zDDvKo^DPKNg0|*>Q=x&AB!5$YG%C}LbvISbh5c#%#O`Ev@cNR?;xvcdUd(rD*#lPk zT4y5g`Eo7^ynkIchL{dtFP*#`?2p#iB9)M`3~GBSGMaCDbzC?#t&!bhIsg8gyfnt3 z&B9aFw*h2N|1vQv9c#oYJ@%?WJOuo}FQ$VQ{V(X@B1uJ#!1~KSB*Jl9nMd0+e6V^N z`L4U8OG;sNW<{LeC!7rpi>zwaN?n>^Y3_Apa_gH~3u}z026JiNpnvU8x6gVxZ5QV!M01KlVUrP?MCxi&0zJKE zOCWzpI$JbuRYC5}^P+F_DuE{1pf{Q*gS4xEf9N^|X+HP$ct>)1UnU>92iz}9JR__> zn;zEweK|=0xGcYIY7m;o&BVY7ZS-Uh$oATqs8{q=i}wV}uLtHcl_t{4Jbo{qD@ zT{OY%7To3O@!g#xLjUF)b8+6yu532V(zRN$y~z`@{d!p_ROO(JcEwrcDVWe>M6rFs zdz-SHHo@VL&}u)%Ph7&7y|gfizUhlYZiG5+H;=>tH6I_|D>M=uZU}IBZt{VC@p|Fp z1Gld4r;@!v7la$Ph0i%)c^cU|* zQcK!GPod6clh1n@ryl@cJgG$}xw46KAVo0ND?!a&M{8U}B7E;~hvZ?i)?>cAt(f*r ziUCgVsI7Z;=xHL@n5Ph~O_$`0HG`E>?R;@N!Vuwca}ulwga2e}oMrs(O~c*t(aL#DcwdYtqXXsZmikFA$2b#4GI{YRB0EtBVy6z?pE zi8>WnyVyTayWVL@<=#2qE}MH=KY!SClYz62@Mc+c3_lMr7v9KBdXw~QS}AAa^e$uh zuq`#qz0^Ze9@f;~&1*tZ1?u*ux7+CQ5j0jqei_8pL^1!~Na-42;&2+4maV^gdaU`| z{o@BU#+w~RM&xgR5JraIAIxctRbtb8{88U#-rcj0g!L5b){i7{ND`|x8bPh@8o#a^ z3HpzH|Bz8g!>#5H54-p+Zr^anhZ?xli;evbj!lQ&<4QD(tEZ$5^+hT}nb3rxY}JM< z&I3qw49nt8LIHJgOx0`DSBBbN3vVQ&&1f$(M8#)e$+CJt**}~@NNml3+Nb*?DUM{_ z_IWe^t@aqYd{vBJ<7VjObDAOagUuwO(Qo)R3}O6!r5!i59Y4fI@2k78P8T<#-kgiR zUCI>6R7DI|E!1oL4GsFZK#v5Ldk9T&L6Z!6mNLTuT~)q7ukljT+zgdODShu3Z?2nv z_QXKt3kmffz?F=Lq9~V|cV<;*1Jn~l-d^{5#nfx>5gMUCb+bV)NofbCF z3hlj)I`q?Yc$vo*b%iD4P-_yx?p^)7ceF(#9Z93)2BbMh{*Bk=F0<%^SQeOOl51@k zEaCeu{^L?r(x(`*b-o%sBkWEyGD1ctdD(i+?`*K}Fd~xL~oMHUt8ZGBt za7Z$SX=$+akl&p|L5qmbb{GpB8U_aUV^k(~WH>m}lpp2y|DiP*P7`CfTQTO=9}sE_V6`%KIaVBx+N}G3zqO-@VMo z+z?d#sOjHKe*r?-YSFsFt|1tHEk$+updrP%=t2=aFTt@yKsgKIU}}1_4R^{>tNu)Y zT$)$nROl@(i=AjfV;IzYdhq45Bh~Ibu`S?*!^db8ymL1@?H6ydLg^0io=tMj_5LA1 zz(hks!{B&hdm=|#@oa^b7Kzwusa!O5_NV6&$$SNe>Ec}z)GR@}3|oCWV~>nNQj^v% zcKbI~hA!U@HkxC#OQ<`FebRT58QD^R>V?v~`YEZ+%Cb?3t*=Bpf$I%+Ir20wU>1d;G`I1oA#yXBR`?#heaV=zyJ9)SSqfS^jc$O!z!q_S%IV z6ZEi9j}++1s{zN43+OB5eE0WQeHx~5kXt;2zi(DfN~3>}4tA*13mR1=6kw@KW@IVD zW>l{lCLJp>pvdx(%)Q58?^DJ~i>m;5y3yCs7}hPsA;{b4(`VN^@GdqGjQ7?nK3%Vf z{|>|}u&CxL0`1n&4M{e?5p#p#PitpIiV6B{`SCbqY;qO%dAbh;CfO4m%1LUhhpYJw z=DavgWpAGPw^|ch@FBi>?RZv^!K5+s(m<>?& zqD3Lh7`t2b#R>%t6mz?|>cDunqX&4ZeQt-0?2FtCbSqgbN;bY35P;#^IDO=&H5d^) z;8_oPUkyk4&_eJzy|1bo?W z^Z&L65?6CK$1yfbjv93FqPyie?9o+Yinr{?q&g8_ff%0Lk4=ulkZkomrI7-OLG^+# zrQ=EO01&K?bwr}aEvycC6wMObPXIm8PftU@;iT+?QFSpHxUQGL2{{O0$k@bc%Xc5| zcVYub7bc^&LPqPh>jucuI#4)MNEFyUGSk@j(o#aPF)i&`~)Rzv^X$poKDm*S+ehS6Lvdw-n;M@0y z_6eWL?178<0h#R8cFHd7mU%;HLhF~!ABmw5HV6<$`L~S#D7Oa$$bBRKrMW+p7^`Um zNRT(ardURZ>b=!Vg0A6S^7$ZN(Aql|e<-reI@Xc((=+Ew@=&TlEhz8=9ld*t7T@%~AONQiw7l^;?vZcB3(79C;mw+HP++WXGMn_ZwQ{fe)Hphr4HIH7Q$d2><1{EAxP;fFwS@#TY^W4}o<@##4LOmtTF zN6s$i&BfMWiMUon_mzVoHDb-Y8S`5u7dI7e&htAK;A4;a&k|Y{;{|RBTP_5gz}rY^ zzXVUTSE&{MjZrIAj(ly7nU##5O+lk6!zMMv?Cdkr`|IVT!JACQ5MS#PZTyt^kc>OO z|ID| z6kd;QANe5b?h^#qzMSo(x zitEGjQg8^PrOu;{btI|>8K}WA2vX{IOau)nox3^XN2c8?-5KFa*Bik6x+UI&tJf0{ zQ^}V?0hB7uuJO>|w5eLa(ap3nQ`V z`3bpemgMQF{P)GA9$GD2a^I_>=&x_`op<+CF!STQ^e^sB|4MeAua)tN_jHtp1m%W$ zE&<_0$0ZoIRq<)Mv#<9&J5CP>R(sPQx$^>P=?$rd=d!PpeXCSBS;d`T%|-82SF?L?VqiujFx(vCx=@S4J>#kEbbPGuL0)+H{hDL}$>90sowMUKen{ z2h%dSA3Q)Qa5!gHDtj${($W6*#N>{I)Q;7WTk_w{TW|bW zonci2o7XrFv*)H%)o$ZU_Y{(TzuSI({MXnD$nO|cMGE_C&_LyC1QYV_rS*to+{RJ4`gkQEbva137?yBc1!r)FCWzI>bZ*7KWhq z_CF)%*@>a5OKddmMb3)M`38cab_XP(6bRpMjwn}s%evw3D>m>3tX5}pZq%R6X=z<+ z8~C0GyLocuXGkyx+Ctm>(g2Y`PHpT26~AEups=Q_ukx5hD6?D}!WLffWT*9(R$$Vd z3AD2y|6~SDU*G0oUh?=4X4ls&wn}w=T)OLyk^cqN)~h~+)GrYC3;j0#wrgb-J}VOH z!ExBi@(k}V#O8eGaNw>UoI0ZQzwMG_BlOUp_N!~q*evj4$1;}%XF-7KrOaRO#R$wk4eCgeE2RC=>8ReCeCZtNAUaJ+Y)^UL*6v3-ND#Q#;A zfbT0mSCTH@R{=e#DMT2+R$|iTi}03*^=$sb)a4++JF%2YN|1@x@@bK6N-p%uu~Ou5 z0VZWQR!q=kzb}W?%;eISC(mTWl9Lyt)SlVGje_iF7WnlExZrdFkvSo?baeRH2Ff#c zEVXW3oS;HZd+5)0W6!@MjcH}9DP0~un*;;hsSQ}0%Qf5UGD6&df)IiiE(F_(Fh=fn zd0jnTcHU*DxU3moB;MbXUX6MzaQzH$A>-zPtu?{(Lu;3p0XBXrc{RbALt9>85I=eA zARcA;xT$A;8)njJenUR&lQ4AbyDm@~yOQesS1!d$bHi*)Kdw__d`wxcwl=Ri%$d=^ z#*6#@Q?@|lr6U3skP{m$&gP$U$XBQ~_AAi$N#+jC0sFnr#3QC8v>(i4rZ|i;rqK1} z;I*=n`eF|3m(aR4+Hxdi5RcvZrOlAL;b7K}`ZkGuit#!@?ahL$-0149_e1%ed<>0(d8B?fUi6CfYwI4@rx!!RSo>r|) zE3P)JH%ePw8~q4FIsF5I)3hHKDSw)Iu+m5bAFrHLxIjR~6YZA~=$uchzZR7Q-k_h}q z^%(;VRX~OI8ALOOlmadf9E`(Q;5XJqDB}!s?A)JvH;_jV=VQo9*k4CeFgWg3xqn9> zTTwzqvdFqM#QU(8%LD#63%=-;l^~9xE@dVVpx@>HwQMlHMaUlhv$jgEcY@w5x2`O{ zF+qLC!n`?^A?+ocHf`hKx*T+2uFl_*@sUN8G6P_@+a90Quy&Ab=odzpp*dfkejQOXM{UY$Z&+qg6me$kxG$H`-e!E`N zpaXEBQwDVHWAd4Q2a`A?KAPE^RzUCIQGe$?0iS=S)?YRU_beyt2Az*4Ugbn@@(}s` zJ)nuwbh<#VTD_!}N#oI1NtadG7H!i5dx-fvbnLoRG#xr2RlWDh)SSOUpptiQcYhWJ ze#|#iddA^>+6;h*MoKf}nHAq)jZqD#3?;yp(%lj2#}W6?EDU`PN9%fjVTeIZ=Hgh9 z{V(E=r~nG%(5aeZRD5J@R6=?E$dbiPaEtIesiW-CS`1(9e|4r&GLAER^%`2K=7KMd zzFBx+B{69YYzu17wbzfH6CXeJNh1{*Ck{#tUQzk5~mJ#w8>Mhcssn;T!WM$Qt!p_RTF5Pci4x-BejS;Qd$s@3F@t z&BlAvi+|gmhno!7@M<@NmGQeu2)wlz<1OQe30RYFq(7O&#x_;#k(j*hk_kUBnrIFh zT4L^stjL1nsS*Hj)lpS0=Mi)*`Z^gyGIf?l$_;*ECT_WSM z+b(mnS$CG`rB7k*jVG_V<2YlGi_n&CS-NDEI8k*^rnas~7!=BvjV0H29gFH^%5)%f--b7%g8nz z+(E}#^0nep?Rd&VrRz8JJY=%`nJz1McG-B3VUvuJUHrRd%oGJ%Z=c)B=)B@@6$_g8D51^KaUM8Yfb;5OM?vr9AYN(* zXU21&f;mG$G*V-k=6{zd8H6M$slQ~h_nx^dW?$wIN2WT_tI z-nnwI^8tT0df@}85?LrS?lTRunMw13?gpF;!Zk_yFoqqlwMsoQDKj#>3s)vo`-tz( zb9pqPeVZ~zMc+Uri@yhb7*%iYSG-Qs70XK{<&ZD!^b*raNh(8p3?iPZ;(SZNc-IJf z<9$ETG9U>qXEgooWjqt0`1Ohpgzbu z9c2>d&Aut|`a}KT_tGtPth~bOR0%iHVv*?wd?vE@QqM=WzE*m$l;67gLBPy;3;JVA zXzzHM(`AgG=iBjoWm@mKDI&s#JMW4p|3T|av-riKQ};$_!)<2ADo4p#R3S*TDeDci#u-1W4<8{$k@j%pQkyWe@Jm?P;^_H!F zSld7Z>wa@lDWvnuRH*UuWb#5jvUBch}Yh`f!hyk zFZ3Aq63FKzg!eya^)3~>7hr!oEAcXcx@foJCF*>(_ZJnv1qfYUMuC6n^GVApz-I&M zGGB);3DgDu79R?T*i8ve@W=L(56+1|0*KD78c09^w3Xj90WZ)79XkY0o}YY-I)sy$ zpQU$a!Z5GTQp6cy9#97DGa@He5&t5EDhA9BAWQ&6Mnp<_<*XyohC7>$O-sXiOnyF-ne94^+XtAMJFlFXU2k%Z6kECPU1V0b*9s1m(a{DKJ@3nB z<7t3r1H}&nD$-u_XLK|K5D-d!p+5PN{VA%HKTD#s6skZCGPWopfXM6QtdvK<9w7@; zwgP=NUPt)_{jHs)*w`8b_cs^-ip;Vwit)fz?(t-1U;+%>OI4;y) zsR)2_-4&?mffg#!p%yaztb5!;O#tjA>@+o{!Y7T5fQA$(Lz{{w4LGK5f@tP|w9!}^ z2;kh9ou$D9ws*QgV<7ukSB{4E@RODnco2)$@{NzsvnAL{IvAi>j21d2;Id>5 zN52j{u$U^_!0Ut;F8fYPyaLPlh4tS!2oE2IRHbT@Fz{Z zkKqeYuFg2aFJKSI(HV8fKc5EkF!FYMmilfP&w%aKfin4j_MnAXf$4wd)6im40Gg^i zn~4Y5-a#o-DR9|L_{+2hTwXmOnEwJTVrjrU4s-cRrkD2N_T^FcS|?Y-QC^YaOjkdLw6(H z-2zh5rAQ-P3L>C?erG=)-s|;)*S==YteLsjJ+tO)J!k8SxD!FHraVNPfqVrPM8p8S zz+I75N61|*Wzkt678+wwZ)b=s|Fh@<5R2QoXdzJMSlnXN09JgWVpKpK83l;N0{eTM zBsOV|^;)I6Q2);#QgGOd7%n)m0SUEp=UOZUs5#FUF&W^P?voaW1F#v@5Pu8o`(B}V z3&1yUjrdQ1ze$hcdq6y%2okBlk&F-_(E!N0QY4hiA#o$}N-6{S>AjbPlZ41jVqH)1KJyKX;v@{gdPEeWD4nP-+9w|-$f-GF= zKpw$YlfZ z1uMy&0n~6Dl;Z^2M$xjIC~)%ZaLDrjTR|Wqj}DX;Lx%hu5X)nQyplM?huo2TCZM-- zD{lZyjUrqM{(!7oRACCBT2!(^F5s7{P=VS3utik-FSigPMNt=sY%oS~0kBQaP*eqQ zIXqWP259R0M#*&xqIa^ZR0iahe5C{j_|0Nd&H!*`6;u`kTBk#Z@-F}@i!|k;5Qr@t zmI@Cb6QWT`2Xb2oRH+4W3rSQV1loPhjmk45=Jsq=A|Sjr7u7r<4UJ$`7@#V3w^hpl z)4x}$!N33(qN$ekAADwNX8;87&1z`?U2-SXh&3UhbP}sa0(zqK>Q|-^8ApsdHNa3E zuzDR}3-?1E8qh=hsUFM*(Tkbvp8LEqVYd`6n%70Qwq4Z7|UN zq%^g?fokbB)~*FQm|eN{XTUFSt9H37#K%`E9a$g`I(8j>pmM`QbR+@46UjO=0G+cQ zb+CZ=YEgBwBO$i$Q+4%#+=@$dJpfz08(nQ+J?9tQVSwVC_Iij25DQ^9Jug2BnB#g z-WHpIwhqJxca%XOK-1EV4D(V^b?T9BpTrF+l+$ zg}yM!0or*1w5b_nvpO72oq^Wl7Hm4;1X-B#)U+6oEkB!b0DM4@GQ$V(p)fLAaD(Xm zoG}Xou=Ut5iw1c3Bxc?L*tThy7wbdxbU&Kg1A9N(XP#&ak!jLcXahjj@mhQY!ZS#- zu*ZPh{ZwLc2(;gZdy8RUJr5*HQeVj3v`|YNV7=-TOASwm>;={;7g#SB&#E2RKMhB# z1i*GD*yU;A?w*@SrY*8h1FPl0vvhxXMG6h zeMhx<1K9qswwVEBogOy%fDfH%n?k_H!-fqAXh;5{wuc0emCbc*=YihC-DUgV)WP=2 zR#Fpk*OSPO0m5r=lS2hAIEKg$8*B_3!vJ$g1-EHp~uR17a(> zWXBBP=d@=x0mS@H!2ZA5ZjiD^1qjxkVJ{EV4pOQ89zev)D|JuGI6&gdV+ULy7I-d49>A}#gyWM6L{Biqkr>d^&2vOmg2-%+9Yr8m zfnPt=;CA-hIaaDcZdgh?odAHTYC8Ql`oh;cNdYp&UZ+VQNPHw`S3nj^;7kF?>a3i( zfb(z1-}wq4(&DPKJ3tVbW9KyB^WYYf%MB3F{5uz2U@T?KaX|nYA9tC{1OU#L!e{SV~ax{kfDNtpeI_?~R^GXZ%T!0Z$9q#{~DE6P+bAiM1%^Qzu zphdhczXpJqVCJC(B)I43QQ`;zHhRsY3P_M+&m##)aG2ZkEdb7rlxLqCM6amL6BUp( zjCqOx)pJSYwFtyF%IM_+u$U*w>lV;sEb=M?^yYth!9ikfU-jOGxBzpi*5Gu0*6;=f zgbpk3I|xx;vIPIuJebNk0NCL2ERU_!s(Px z_jw1j`S2T`Uy$8s5AYoTPC6kIUmXD740qoeV1vXz``!U~yj%4xRD$HWM&L-Ypw{U?B-FK*pm z2bf#;Gy~wVAa_r#0`36GW7L0NahW)2UdBK3=#v51CiVy1b{`dl|frT1hlZh zDuB!fBX}2Jk%4OP8Gw+SVX!)6i#qcwg7JVp(AFL72=o;y)DS%Yp;EKNb=SWd6JoLg56-h+GnMPYt;uv;oxs2#xK6>VWk;u0i9#rV6Tt0%vWf zpiyWe2x4)*6}kfW7`qCE19F>|2^$1rPSglf0?zoa;IMxH2HO>3lm`E^ZHEc}?|Gg8 zdiWy%+UrL^oK89Ga6h1OMqR>7fVs=IBm6(63x5jl0a*P=5`h8uL7|Tr1Mph3iHHOk zpzj;;3&2%*tdHgV99O$`;!jU6DJQ@m-|2?8g$&Hi;Y`@ktGd+((T{L$K)-ie?9}IZ=sb0ooa1b96c2V{kb7 z9KfrADCQ721G89S&VXu*{1DRu57sKlYkr`>kHUsNnTE^x8 z{PD@cyN1>B}>#&i4!^I1HbFC@Hsi-cxCuhu1j0Vv3o&IAuY zrZAe&0&L|!!Vmv_$ev{W5DUPf8S%jlD9BHVAKn6bhkGA10a^;(e312n_=vJk)CHjb z?vuy?Y!UW)q7$I^`kZSWC}tyuBq~5Jj5jGy6k<#6m4pwBviyNbZy=4TN@6_;*fr_1 zB;x{zT6t`;A3k7El&lD_%K0f7ml7h2e4By}OjeoUDgUwWZF&kE(D$gXQz8L2*FL6X z0-;C>rT%xAvMHoyK$rpf?Ay8VG4(SZWYNlzR6S?N6*Nbh2at=8Xxc77O9OCPD}W7V zY1%P>*Pq8USwK%3G2K%gV%wvi{sd5_%RZeO2>fz9ofXg{TTYKthUnE&W_Sa8LdBYa z17OV`p1}wYxoZ`Zfek$3@=wmd0@h0`%-~go+#Ns3I0xw4_M8z996}Q2nUai%Xa3Y&we%h|hl`OC2cJS$6O~Fj2QEf@^_& zHyZ;5J#FZ1y2Bo>RAQ5hY%TWP~mq#MvzdL1oZjp zH%0G(q_44y&Uhhu+j2#~w9t8|RYYJ2k^O5dQUj_&W3*^c4I;zEE&gvxh@&iCc818z zl8Z-ynCS|N?SNQPuZvv(TNt2hE|?#x;%=K%DkNGkq& zEO$j$F#xRh`q7{au+{Oe&;poPKUeYJ+T2O_JLt)>OK#iDw3 z77(*zR&@kGnwyepLddfwFzQ}4FKEk!M7ASX%v8e8ge%l~?In#bnG}PoY5(m+4w9QN z;d$+*wI@|7ahit{+~Y%Qd2!)_>CQ2eepknfP3`BGNH$&aql9A~k*8-T zQA5_s6A#{k`K-ntdk0(JRYQzs*!@0L&D;CjUi^Cr(Xbn*|6a&Y^0OwkN)l8cEI4&{ zcXx7%#?C&kGyO}O-0l%t7muA`Y^FTcn2oXydp*h`3cMJYrLRqCF@BZJW_q(HB4+rn zHrdf< z_rkdB@9+I&*)3bmbnhOSaRnS(T1mO7H)ri=BeL(<^i|nnq35Hg53D0ZQ%yqzZzrp$ zSD-JAl}t3_Uw?WUkK#SOCyjos#sD%=DK$~P8V}sk!OAgs>G1UCkI5xS+#5Br2|?mq z!YxxHF^e0aLFeqWPKl1w-#J4mOOAGq4xM}YPmby`c(yc&cUqJVMd_bYHTtNwZxl0a z6`Cw;=Wi=OSTWwvl?SD zGSo|ZJLRxEz^90PIe+m2-T(cJL|^w9xf)A%v6YJHO^Z~r5um$Xi7JHXA(#K&Jxwqt zJOj%d?V>>J6Ui@dzdHFz;-_*frAjV#af^MCbm8t|IDt_cj zqA|*-^3oDY`rGDLF>Ih1w~X-Vph-04iWMd2)*2%~u}?996P3^_uw~S!nDpT^yrX&5 z{5;YcqA8)W?mP?I;E)tq4EvG`1`j0cxuboF2d z1g<>xDV=4Im&f~DgP^YaEYcz#^b}eg!fSSvlDv^pca3Y+S_DYbJ7(k_8XuS|2OBM- z8{$tik##y-uz3lBoKs6uiKR23qq!Nt`4N{F;U~8*^h9?JVo2{#GEiRYwZKQU@CG(o3`H!?a2c=@g2r?)?w}`Au0*W|>|6!X zsJ)tpYg^IfuI0`tK$O~1tr9VNB5K1GyjPI7E|9i1<>%2fFDsg29<*n+H=1Y=n?;NpNc0Wk6=wmiab?~4B%PMK8tDG5mR4-f2$jGTm1pH%$)9$g z{+GMb{@|Pp<4vJQ=bk?tHQ?61?hSV*LZL-V7AKys$#}Yw^19-*s4O+4Yf!s(N^hjd zP!l?(f4^DM^Rs&W&+Qr%NnN|~m}%Q^VCyC;ioa#4l(e^>!P{sb9L4J#@dZT5zC+6@ z5-HbK(6E9WX3!64+5L643xqi|7+vK%3JkO;Q~J}R`BUyk@~~Sl zMG4d@atqJ}tYrIfM$sEZ&@6e`g_JVuSOg;$kdVl5c}L{O;M(Vryb%w1{SfBXp8gJB zW<5AgQM+t!mo^EpieMlwF)1hr_E@+#reWTIGE%0Hr*z~iR(;1pe08?ddf08--O9-> zi>oyd5$5CYD(zRe1j~j|p%}(0OM;vmmz%i^_(jXUP096wkJ^lUnOmc04USi8(rA?V^Zh^ zn&K8IjB-vKd2;jKn5nF4Xivea>!hF!%coGtxW}KDQ3$zV?f0rKH6lrtrQp+&#NAI$ z>g(dgzk=6pgZDNb-F`RPD;&y#Pmit*l&@ycfS;k89wal}Sn8)o^uukUwu?biht>ev zJU1hhid9gbUoWY`cSE4c)ZatmQMd0MBTwLB`TQu$*Gn)(I*+6@mb@))ybbyXVP|~> zzx)rPdUY1d{Zfa|YsQ4h{s#?~U}dTU@u(PD#vNysCQXx*Vl=L|_My!^X^XI1pyRqn z)vo4^C)dAUS9x8yenouw5>Z%&xax^2`ue6&8-7MQ`#u`5r^c`rjjMVL3(FOhgIi%| z=aDK10@x8B@G*P0iOiNXj6h5C%BJo(GP7zJU;2GX(}t#)x})=%Mv7Q6pmfuR zv3X$4t~v0f%Fxs|#P63J28I$WH|f3VC9)anG_eKI#1-;zVTgXsZKO~fBWAXZNY`{m z8(xnS9Y(ZgsOuK=eopk2XFT&_Tl|d8M9BMvW_sLyt|GT1O$Q-q?OB)1_G zU}sTG&NL$D&QMHt&YJJ^!Dk?W@N#HN7paVe(92N2a2h)>e7wDS{gionifnPWf`h52 zGv2O>M9ZuMQuL=eC+64Re<|*og_BnoVN!L4|6^h7``1I$cPF#{NB%s4@CFP?f>zy2 z8q;XV9DbC#LWQ)Rd%RVJLR^M2qxG)56>Kw!JLl{PKWqSCq@KF(|1A86$iYd z5H^s$=#M58ZP6FE5K%94;9sYC^`HxS(y0eW#pR(Q;os{?q!&Ei^~nYB9GJ-OR3P#UteeR;!Z7l z_2Ha^+Nn`+4%xT|H&um`l0V)_DoM=~b#JO#%s?QIVd`9@S19xs4`}39f3i6|KkV;v z6pcrXyoi(vn3p0&8YTnju-Y2QtM>USjIpJ!yW*?R4+QO#85FG6)_F>qpOI{twZsvJ zBQw^2|E+ILNNAnMv_g|sR0c00=x?Y!d6&vXoFl!r*YL_@+0(1YMnjIN9cV8~`%HCz z#JVNuzBHznY|}XG%mVsJajG%?GR}LkqMBN~G}=V$KWz*Q;pzvUDe%{m(bN*wWtvhm`w~+Xv%Y|a{7ywZLzUw2HWb{h zIu7g3p2*!}B-dW3TN0u^u#DT_SLjeDbi_+ReP=*E|FV@PePwcZ|JRWDocVWhxPwP6 zYYQBf^v`yKJwnVe106<6Ld{)5ga?Dhya`i@SrS&-cE&Be>h`F1YZz>Et@?2-ZSOGO z?(NZJKIVz^Dxp81z0!z~4<8V5rR+>CZ<=M&gCQ zUZ4PtPLwy3tc{3{o0B=lDvMn5&m`w;MVbG{cmGdykGgtupvhH3`*d)4g1EV~JJycP z0c=pmP7!g9GwwO-Pj-Sj47cf+5sQb4e$NS4sKm~mCEuRV3omFHP6m_Sv_7^G_xLyd zOmy(}2-pd=tnjryR}J$v(YAHX^wW6tm5CH$|eCqAkg1G7w(#YzDE@eg?O#j;F3$dIKsL`>9p%AhT*YaeS}ZV zsPbmRoUl*%o;>=zGU(sMG10bJMk@?D@z-bz_el&I395J(#Zf1ga<)?Th(I|sgaOB! z65C#@;A0RqMq+n^hSugeN&Z56#ZpSFfZa96HH|v;m*TDjo$NokS9>1b)_uxCPtosG zMac{ozPqmL`GWQeja_5%fBxwC-Yvi-edyF6%B1FrP}RidXh_ovH_u&(z4-dl<`Z#O zTZRMOUY(+WpvOjARnYU_izTqBTZqAj{XYSw_$?YBs&;fEFU~H5Y$C=Uaoc8votBX` zs?xXb1iO!)+6Xu9g!lqFX64k=Zk?kO#Wf~BGq4a9Sx&BqH`}@84GRbPqWz7YOzKCi z!q9QQr*-3MN>9Oi#{O-Ail5~nfNZ+yWY-`!C4)}PmH&+9dlOXXN+GiI>DjNC)KkHY z>wR=Q$OFcqOwL2YihUE`SAvULA8nVf*G{G=FRk-|@~Vvxw(cW5&T_3QS~u>dI==H( zO){69VLoff7mYc#Z1>d2r1F@+j{M?QYwY+I>hB$t{`IXE&?7l@iW+EwlNJP%QXfE5 z4c`*l4KjpCwqW|wRj3%t%L|%TSF7=E3t(~>K@soXTkyDK^YwkJ zRON)Er4VrjUh3s$Wv3m?-)XayVL@s1=5n|VeTlbB50`~+i;29u4|ckeBKqZ+5Sa~O zi$REaHT;#>#nOrKzdI|_QZIstytXINQ|geinrXZqklqpZa0`(4ad%n&POT>M27>){|nO zPBP8KeiWhzeTH~q>` zlN|@c>r2wkcmDW^X50AtyK|a;B!kjjgOT7;(EK^T#73zwy^370S&}XKeu1u`-r>m- zVRZAlEe3wITm9pyMIIr1M5}w3>MVHxOAuoNixl-s{!mYCJ< zfXiAz3g<6T`2iEJG=t(vHMwyOYZ`6}tGij~Ni2`xuRVO;V(HsBXH$c&2yL7K7OT#t zZTE#zg-(N3VDiE-_>8zPbY@@xAYGF_*=Jy`aAss{qU)=H(#`Sll0DIwT!zb z5SNn7a*ng=-Ei)3;g*1AeV)#c0;AA39^P-m_Qr=f zMRb*k<|!C{Af{u>`JwOBOMd0`U8n;E;~imy`f+bPTG^_!4`QGNNWMjadG8>%qoKW3 zS}5LXA;h3hvm}E^N|YM-pnv95YYFS`5yIQ<8TDx16W}oToyjuqYXgH_&4sGsilfRZ zt+~@A6eAV0)M(pU>$fPPKm0{7AmaX_qp9;-;TwxK|JsI1zb_@2GrRE)umo@#Z{<6> zv2LMgyGSiikiYf%bsBG9`LA5w3@i~IO=Soj_MPPGTB}(3HRO!pSjNamVWMNpYfdW|zulFI+#^m=L25})b)8*Ij z^T_kJKdW=bd)HE}*Hj#wrB*hXCpc|5tns=Od_IfsVGe}md4x@)N8F{csdG z`EK7gN4ucsU_Ol1E!wfPUJI&DDbXKaOq!Lb*NX1v>-Rid89122!!W@45#weboU9m= zL?(qlu7k}s1ttGQbYKJ_0h|6B6LTOwQ>g}3g!LE?`Btph_h?Y0p=fSC399#R^XT~! zZSVVdCVr1h?|Qn>bv!jIt3tSzw=H)}@EHSPRfD2MiyO}`rbk7e#uh;S_r6=-R?&Uy zHx+d?dGujYB@LVr3K(q@DOvA^xUGFqxsGn$SHdDny&gs#)KYq_ji}}_46`YPjPmp> zr^NAFLji72PFpv=;ExEEWt&HYuExKiD)G&^L2^ zZVkK`ref_n$<{y9a-V{{-cbtXJ#lZo{1m|lUFca6Na)?8Gnv--kPR%)5nMTYK@We^ zL8CTQj|qMr_Zhg{LK-j)yD%<_hW{JW;uc1-yKsL(wyfLVc!$=EG1*R6l|57}=?u@O zg{*$MEGkG(Gw<@-rl_~(`!M~{+ov$eKW2qNMRStk@K^Bq^pZ3ndO3sR4~O?ibfGIr zreVk5yvO`Z3xb26_U9C9=2~mFta>avoYTd|GFWP$qA3aFPU0tHC8R&Y%J$oH?SH5H zS2^B%u;Ze!);>Y{m+mdR>Odt$kVgt>cgI&JXQ5U+r3p;+tL%W$ypW9})Y*2r{6bTf zBl5guR^i8a+5%-=P!aien9i=pVeY@FI^?UyOK7?VAfW=|WP@L7w-MebxBSf-4OuLS zKLsKY>CA(LI^Z)3Dr_A>wu&wa=JP(Ax^?H{P3})Q+&uCuF@e^D=}=sb6;!vV{W0ws zF+OEDg=<%sr#s_0mzqim3RzdUAx-h)!z9GqdDD#5Y z=-Yj}$()bL`a4YIJ9rE8ZU^+R>FwDDGQEvpi-|wO!*aR8zYj>NGE+INKH1kAE))L;gIDCtQK_Cq`o)UDF?rtgs zV~!oCKL%1PtsFRs{__@)?=!e5{dLlS`xpa%caZ=3`2R_Lz_#eDZi~bfJ!6=9Q1G$z zMa^7rE5ErP=_1du0sPh%H2RB@?cv|^E+>1h*vrc~wT3FF`>u-J_W30I?vK;`g~jn^ zze~U~JKOx+yR49Q&gJH!pKeXxe(q4j>Xo7=rov0GR5Udge9E=t*p!HScg&LVP4?qG z6+gKQ)K?RZzPjSmIaN#sDx{pZ?W_eR5qlN6%(BLjJX9M-Q61YkLZuB6bVfr~Zj=9v zI^gTXYUGV)K=brMMZbSrwR+qQ=H+^w*|(uPD~hYC8lLpj8qK=T*>@XoZ?of|2*=eW z7YDg}Uyx#WUr8}E7IDJWZOm*>$m+sqOw3j-Pu2|wKl>Zs7zTQMBev6&T667w(g9VC z3q@>Oceq<>vYSeNPAM^jIwm3Zij{Z^SJNfVS`Us#w4K6Bk=HMuHXVe=wjE*+WYVe#*e>`u`QkB zS7GFfAgjasR@e90N%FXQ$&Q2q}E@$VQ>Qm4C4mqw?Lu1*d0-wn=8 zERz|RzI|CRX4cGm`tqy&*O?>9nk`w6{(i~RL#zt2sTAH8HUgCYD8J}oGDsKa&*iU2`{hLKXiscM72lmf}0EL5YN23znB%7iN<#E3Q0em>rt(!LB` z4bqTrTTm9ELK|-Cb7&$M$ISvDbpFM38|2 zNu(rfsCFb2L3AtA9=E6woBgd7bH{^sWUAmKBhiM)fl|}#C|?ReVfv{1%=aB9G+BGl zNcPFYiCl|dam+Tq9L^o=Qa!9&5HwZvitK)NR;3K|*-G85lWD(#K~SS?xVm?2I&)C^ z7w+hn50|0jk+wl*^M(`lf(kCaf>l*j7s+-3n62zI&OX9|6Fh|8&(OaFr*^EL_(|Vf z(eN0PB(I7R_w_B}AD4qLr|&!#n4IcC&R=s$JxQOf>zbJPLPlIDJCOP)1Py3Epxqp; z)SddJ4WT4|+Qy=V7Ab+wgYmCo)Oxx`$|GtQCQq}=FhO+m6j-(RZFFPas(e|kxTL5n zkNHbr2iYgB>pM}4|7FnF<>Fji3fHE_y4_u;D2-8}K5a9|E5Bi?|FX*Am|XTPC`vR) z7+wC6{Sn7dR}{B+V(MoZv{Y@_yb2l^8ruiSbJ9Xl$U>E#C#fv^Vuwf6HnynTgatG4 z-{Ix`T&C0A-PDn<>BwJ>BU?9Z3Z}r#Y-Kme4FbZ9%86%J*nbsoOVZ%5Zxne{WcR&9 zx#Vk3KAi`xb#JeuKVFYw%&Hm{fP~^jp6XD|s68fCdIgX!5_x@lIV=vw69^)$#QG*p z9}za@#~*mb@}{dc9e+sb1d2R@Bn8hwjdCjgR+xV={(I0qiI`%zeR%Yp+2BpzmrpgF zW3|1|e&^b_JVDg^i17SN0ln;Jqd@Ow!j**&-e9;Pmq_oacCL}{R|nS#WRMHJp}CEV z=~OaXp&>6^sNuz|{y3}U!+1gxg{T0p1!y3xXv$QaB_lX`1TY$%Nd~de^pG8N2$f zZJq6O*Ve7XQ*s_s{)+KpN1dym7=?;xZcd@hF}@`Dp4nq;7DSp(e@<)_k3NWVSt5$q?60?=oSN*T`8CPSDC&D=AF+Q+$>{TKPm!~WyBnKf;2D?XMN|)z zd@xNAru+SblJ0wYb(C7LM~YNqGWw!XZ;)n$l~eNkkU30l%?rol-5!Hn?$@?Zl_xrc zcvmBFl8|)R_RYSd+O`)pjQMDZGLkhTSdeB!+j`qk+DIO8`ARg17f0+X>K((q%tXkb zep@h(2d1c6LgEvh6=hJdPM$BP!sU@<#@AUv1-7+is6(ID1`i>XA8UnN+L!7(6*20< zaHuGGukX0Kt6FWhxFPBxCna?+K+UesWs|!pr9Xd&{HY`3w6rMUYMuF#-}h6t>>MmL zkMVo{D2Qb&pk03n6ijFGRiMlBlkoC&Ga>Eplkm}pZad=<^!7^q=4nLq==~JX)oW4M zo<{vT2m+xKY&1IO2BhT-gjdiUJvMBC?lJ$2Lt;8`aytT;K}>IV2KdmQCU`FEXC^%T z9M0?XpJI>H z{$h8g_x-h&B_Lme9LDYf74v7|TDR>5J)x71wJnm1jTg3%7dxzdh9*7cYf_* z;G-Ld6MX}pvuQpf>FufopSA$Zad$5T^wJ-Prvc;LT_FAWSuyZVXaMZrwK`7a33rA# zA6>rH-cEihui2BloWGGC&AGB(=!}QWesyPc8^jIYKZ8Dw&b*&CHaJ$k;362o7RuqF zgu$6cY1npe-lL|YySrAF|Cw;~`Jcs$jZNJNhOBx%wmq6X!Pv-s!PNYbrBM^#^30e3 zF?my}91aM5>V6WQYF4=RNTabd-|b1OC|~-ocx*B2NpA3c{!lhlB2yG58i@+^5YIdx*h8inG@=RCdec=c7KB~|LgXooOsPa#4Vg^A;m{Qn=2aX;f?2w{b za+E-a+o*8b?6Oc z=o(v`y>(?`;hhGJcV|R@8Djsy)ZtWa;n1I0U~IFVS&=Cb#P%`%l`LOZ%!i2@G6TAK z7r5}Q*LK8fkK;X^IQd6)5$L1H8Fze&7CX`<)SscyU8}TbTfB|hxrE4%tKiYeVt2c) zuTZ%YQZjEUuzr>8enCOF=)L`3+dON-lzWlLbt4==qds-@I_De9zCjw7O_OQXk{=&D zN{1q%;zIZU?sK|o{rB}DeL0`UDmoifJ*pb)nZ{P};%&GjDIcNPqdcBiMU+;e9cBtw zPl`=QB- z8V|uBeHos-g+o*FIw=oQubuCafMy`G_N~e{DyARs%`T3KYQ1^Jb1l!hxKf6ouhto% z{R<_f>FPZ zM*X`XLi4d>Z#FAG*bLh((Awr-tjslD@jM-8PxzmSwtu&m%>-P~NH(wpYb_VLdU)y# z{DuU)@^$6-u03YBN=}~4Y$ux9Uy!&ki@b2c<6MsTdPEN^(!MOez@mP6i^2S+vti@b zW=A(d+t2Py{GUP)^yPhI_i9+kd{MJ-}zd>Ej9;+9wsXwLp!GK&g92 zbIE}oyVmv_g}j2fG)i9&o7>R*^9QD#qQg-mhvt@xTomd?R7|qW(RI!spCqKIsE88})X`?m$mx z&d)>=ZyW2;W_BhHeiK`Yqw(Z7wyzi}5`Ln3(p=QG@@b~2_?E{(#t~gf`?m5Enavws zWx|RJ7P-)IqGk%pH-~j2Dw`w2#$3I(q~j(bQsOxhMX@FM z9vfACYyVQcV%R-uz47_b!*Zj+J<~qg6+Qmwp`rw9>-iC7^#g`%-`MYkA4KmE zA4^KT#mQ^Qv9X%<2FV3G)6}IGQ(C;?<4rPfZvFeq<@K+{%BxS6uRoc0j>~H+`=%m2 z070HO@I{NL)qR>5yVD+h15pQmfv8gm%HZg|4Z?P*>NH{8(VCNo?WY))k8U0I15-zY zu=p+weB_SYl{^%aLD1NUW{s{xlAsc}H2Il*ir*G16%NkRz94@`U)SY<_D*|o&7Qtq z((m79j}rCcQBmG?XBR}IZS}SZk@^kHy81BB^L<3q4je$Ru)#d;TuQO28t}f{KQi zvc%t}jwq~Mj66XGB{B~|p3cLItcg|{P%idE)U@8Cx7yKxl_fLr#7w1yV$$l7Mh`>r zdHd;6j>J05N8OdPC74PVOkbVe+bL|`Mr4iEw7YmtnI!d(p-jRpVd^)n!|{J(eU1hT zpv=s;R{M0eA7g&Tfc0oIEBPFCj5&$P>?emTZgD6Ar!fi&<%g-_eJm&s=_gw2#ktx& z9;eX5o=^L*W0!>}Qs(jE z|Lk!YVC|cMn6c6(JySDdr;@o`Hu7<3%AxgEqqN65=1*!YQDIQARU&YB<_Bl|MH}$m zGJHqi&=*8iv7^eIP#bo)pny{eCmQS0a(m~ps^fO~xNFT8*tD)9E;t<>72e7cXhsmc zSM7;e>auzI9wlj*p(ZbiTBzP7ca*&xb$64l0YSSCly_c6Y)z1l|EL|*SAJZjjvAU{ zO$0|-M|%5qkCs^FNZ7?qLH?S)qfWZUR_675j*&RR7zTYq z-IC=XXeMtfIRaXs*aOu69yx0y9VWix^8{gEhw2Und)!v6%_$J;nT3`hF8WYXd=mO^ENdA&+ql!y(w*6Hk%673I;hm z(6h+fOG*ufKE3g|%tWq}A9pGuXI*uhM4JRCn{YWyk4KjOOwGAv6m}NlbuhphmDx>? zGSEKoSE-%gx1lx(l+and>x3uang90{*9kKmwQ|mQTN14+0}9tBG=hv5UmG=IIRM|R z8Wb{97L9bAi03Vh@6&g4TGX>Wuj>FDQF7(##d0*-X8}oDe>@;;EBR|F!F{I9n(gSqHFW6(g$zj!L2z2CP5fZO^9roO<1{&_u&j8R+!b~zS)4JK-YqJEDpHLWQ04F zLUDpr1LyLN{JC0vd%I_6;xQ})S$YkGs6mI08b3q*5*b;+#vCe$|NBQz=Eia3kIeKC zP5cQIthP`$cDNkWgykEw86S-Fm+~I*ur7}BYX(e$HS3h=(cRBw zD6LjMSd4r+?u(b2niF9?wCT8<*ys2avn=!c9)=~9UmNa)ZWLQ^^@|X_deJu{;T2Xb zPsu%Zy9QVb^D__Y6!&r zf-xZIcILOk7Tv0M;pdO|yyP#S2y*j*n_I%kvux{++QXLO>BlS;d13=8mcNra&FSl< zH3JPmKgG4xvO;h1nyIRuV>gYWR?27SpN-+NN(2rUi}d4xi(ejLoI5;mh<(Z8K*aEN z@{ec}4i17LdT`9OznAV;Y@Whp%FAy9{>qKI{yW-m^dXA4kkQ z1qJUO(zEY5f?NZy#_#9Sdy{?1FRm^{+K$m&;&?~5?q44|KlNhx9^Lt(>|o64=FERj ze-TQ4n9g^G$scZqwc+3L2Z4@v2ez!e)1QRQRk&>t4P64bRM$6iL<=V+1;-TJ#&X){k_lc~XNzE6>=JLQ=sy zvLnN|-csV2tH1tV?6`Gtx)EXxMm|f4)*U!aTN`tn9C$}9(l4QvpmiI!=(?@&7>BRo zbd$t7)`3~IC+;|NLcZW@k6R0}l$I`j7xW(`eCQfxuIrRXUNt)wi96q}$55UnDwV`D z!-t{FC@3DVWnOZ{{&5j7iCB;$$9OgGhp%19-iXtwDgAUR`IpxUFR)PMi~*Y)5R!s< zML}HU&y*m*y}FX|`t1#6%y;;RHcol`HF;Tvwj-FW#_nKYB28yDhZDZCZ&*av4DEsBn(!u|g?{ekht1 z%m!O-bX(A9$&35B_0Bx`ySeSl%g@KwTkZe)W^LSK_0T#ww6~0+w?}a8Q@7_`CM|M7 z{OB-d<=OA*RVG8}Ue+7&63QtPPbPD0hxU~Am|E24dXM5y@EcI?bj=HGpSf{rl*yN& z<&+G49De@%bWjgMF1x7KCWLpRbKRqp`zsh*qf7Luq9i_#Y}{mn<2y5-JH^LA-6Mnz zsHelq0&6Y=9D7PO&u=Rp#)#AszsG06p7*}^`1)V>>mFlMzPZ>QO8fR!Y8%&A5);r-wf;8%TSSpbDFsYbz7R#bXmuo=9V#xL{1;8 zDLpWeqqt$aZU__&rTaN@Dj)JheynZ3Mk-=>VQqgq$iXdE8ln|+42w^zj6FcR9$aP0!}sCf$7S+-0z zvAI|w3g}T2VEQ-mJa}D)6B+-<(^ZDW(FAGSCAd35g1fsrB)B_);4Xnhg1fuBySuvt zmmt9x4eoIJ!QK7YeV>}{>8|RUo@$wX4e$h&uMaNOdl<0`_X$jzSkf;nA?IK(Jzr!> zAvlz6@YobaMq&ZJpq}PbvC8slt*qIxP~hk2V)ra{ORg5i#P^J$gOT~2{mq~E519)| z>2G8LSmzWA%`ENznx!`}y4uz|MOg^G(`~D7D+Uurm34Yl8&99G>&Wdf~Bnpgn|!uaAFhU7+1f5jpHc~BII ziB98IrL&nNN~IZ4KNBD+OZY|_RLNN48iz zpzFPp88_;NXEyG3UO=?yHm+IFt5$58&G1GVy-?^rcA)8z+HpG&xrRVzWRq^9FCJtmMUx>)$5maHcbDV+C;;GV?t1ax3xsLc}}1L=zz`9ox5cD`a8=&?i#1FaOs^1TzJpFKT>DQ|$!#2RL=k_g9lBfw>?_9oQ&<2uv&^PKB)M#bFd;xL;Ro2yfv|n< zlmx;PF*MZ}q;Mg>9?NmM-S7~6a>4FK*24$xlI>g8QS*2kS=j@I(LQmz;Vy&!ny8)7 zm1T~o=W#fHw!1>1N1_ave;!k;hS|TgpVn z(lrC}l9}7PCOvwuSHh8pWkczI{DDVhlixWcoN{0T5qwn>7 z;$>}^Q+|?JRH*efW&xTv2H7Y=61T8Zqu5&&_i2hxg(qa2@}-HJO()415(=)lqsWI# zSbHZyk%v?ZNfj`SGe31Sjk`v!GU6Y(l3f9|-6tqDLskw24b>9cA1e!|v>PqSMsccSfSUGkLFu`~jo8=-qtl5_vb*?$!yQnu@I1;WsSWQvk z%fbfs*(vu^t}%=Qn4h`!pqpQl@Ej?^CkbUs+mZk{J4{QcFMTXwp*6hY2H>}!+9|-& zutzZ8Q|2>9f6_Up$m+&`AwvW%AM&*D<`R+`XYG=)7XZ z+SicCh|%zUKWEMCTq^%7FwYW7>9N&J8gooW!{c<|+AEIg5bI(MsoE}GABMEcSmLGK zVn!-Z7v4}!>Z-WQIGfss^3P8k4KV5VOJG>91}E?s!_b1#*#QAt1H6UQ(1^M>j||#3 z*boQdR~*k7nd-#9NwW(W$@V%=$ZiR~)Y0zWtH`wT*)x`ZVHEm;e(!_>Z%Ty?55|wIp?mb zes}oTG1r!^mHAq4(pdX6g)a#x(p|ZidAj?EM|I8t=A7W|zrqRc%^}iBA^Ry|yADAI zx?{C?Gej&5ele*___yn}07v*`BOLcLf_&*i3}LB3#j+)pI{dkNYWuv!adcH&DXV`> zB3yi)S-4~TWs+@}_@_i`K0N>r3oIXA;ar(s@QlnJ+|@QPCXJm z-=$J||Ejg>)g|~IS&MV+(c<@*^&}ZajR#RdndrhG!Mg70`i7y8NcaL0!dgJbXsc`m zW^r_oH&Re}Yy@VMRhR_vz)q6lDPwMrdx6%TUql8K%GS#5$1muMe74nCmKu7GP^?(I z=%$;p@6<=y(aF}J)i*ertCt74SUI&}51K;_sUd~UTr4Lw^;UoXrML(f`R?`47iomY z>qfmw_it4xT_;wL@NNfyB*wfK2~j>ps2h*6-%4`##n{p^$4*9sm;b;F`4eQ<@^ zf05%l7|H95XDhPTdbC{kREQ#9&>?iutW!tU;8x9O) z*s>U@lQA@{z0eq$YR+!A8R;6XZ$%mDdO9K8H*{TfW*;y}iI#@07Ulifx2YWtJj8S< zYz6Fm?I2lI(*v;1JRo(6Pz3BkU<bWBA za7ALSAvLfR8M))oHl&yO0HzdD`A<9hpz5Uy4J*XM&C^oj)&!Z@7 z#iYiX7EHA>`&J$e+83QQrWT6YNm?3F;z3ZC{-@<~L)mqXwbT;jn-v?KffBFciKZpY z6xj6UpnVhXXLR9Iv1GW79(pR|js^7CKitn?27~?=0OWsvwI08uq4j>^T2lkAha0n^ z3@W)N#USewMfJZ{Im2F&m>nQF-EpUsIy<~c@ra1BVVzT%_9)GQ3q%-SweMdRv0{af zUb2M8IXM~;Hl2YzZCtk1S;bGN#xbnjuBa$bw0;-m7p6k3ei#6Tt(DaAEizDV2%^;d zV%2i-1mG7@Q}S&z77erkY-76$kd(%ZS4FMhQuC>W2aqTyv+YoP3mr=a8_TR+ipZi{ z_wN5Pj#6tCXSnM!)B`iVxu5bnG0bc{nA^t`=Z$puT8afYHCj6>d(^GFU)C)-JG5I~ z*_1b5sye`6wLm`YrFqGLGm!`n6iNv@-GiO$0e~kunLlgFPdnn7P>2VDCEAB)e;+KH z_~`gm+LkN6LQ8e;_by$8<(ozZyyfiIF0nMlNXGGsPBm)jU9R|dA_%wZh_{NTt?eJJ z%X#|X4?;Hj?NFqd+ofLltsEuH=@aGgaPs!OOhohA{qnDs`-d1&6@5s(D}XOTTUN{xmE^1+Rx`UTZpDDHeP~eqdjz zZs45pq`h9yoam{o-+tx(r(eNy5XhE9L30q^R){10wt3WjLUrR^)qPxSeEd7xfwRkMiqF(AfKB#&Gt}ffW7;%Py5u6O6*MC$xN)+d7AlLKDO!&% z^+03h#q!#E9}02mH6d{|rRInlrDuD1CT2@0M0oFgdq`O?Y<6Mglh?L~65=+}{@bH~ z1UXorTbT@YUU&4@*}yj;xG--=fSKHgrT*$ZTI}SXaAE64UReIIUcGqrVl`eDh42k& zI1jc&=^9TtR#JA_ff%Q2EAk}#G+Ay&Y686E6<=Eo#3mdtziH(OW>Y5n28kGSsrZmT zGfLh}EypY}qe|0*pK~@SUQQGWeW59tdniXkmg;BNgA0MLp>!1Qrv zVP)sU`)ac72J7Jc2ZiKQFwqpU3|~`H+7x&Wo}&B|s*}06C2-ypWwX3Ll7Crh<=N-W zq=x*1&Bxrq{H9!9P(bV6y{yFeN4SsDVRh5&shFJGcV92^$E0P5q%;rZB-|`j0!DLM z8=_b`G^H|{BsLdC%9}+)0Cm@0Yl*ElHV;9DDlX}Yeu{IpWq3ySD3W3p#G?(&hKBtu zsDR%of)g{D5BsuepwdtDnL*N4ywGMc~;D%Ki6dSQLU-jvSat06ujhL#h5>>LJZ}ArM83hVO=9?&y5*DRhxb z@dy|*kHFs!k}PMvp}2S$E-bDF`3M zNi%%0y=$u^GX_lOB3qd!dq0jVOO8mf@(N@lB6;;o7{ES+)fxJ3acx~vFow=*@`EG? zHB5+X;&=J@<4Mq5WckPj%O$Ywn#BN$35Ze#pYR^q%M`JQ22Ta^q zoA(|_xu`{D-uLGpePy>bo>>luR{~?99Fgy&sw4kf2jb)Sl*0ZXdJHaBXLtXXl-DM_ ze`?2;cn&~`KkU7FROzg^EJ*vk-bB` z`r8bYuS@0xJOeI;NP1Ss);-mRMbGl~VaNn|PzYepE0~SUzID(6k9mXJjp;C?#hK|a zs~hajKMHAAzXj)>0_ztu+G;!tr2qADyzzs0iQ#1z0u#ca(HB!EGOBVelea@|4xHFn zDlgv@YaQFGm`T-0M=$(7T;jw@Bi4ar0(sRS3tmFAJD*XXrKrp9@i{Rat>x2o6CvCI zc549H62E3?{fLgd5{+HgSc(*G&%YXW+bC%_f3Q6;q?;}Fmwfw?4O@Y*xZBr_e4IPC zvr|ZVFc;2AvfnjBMGse#WGbbV9Z*nD7J1Ee3*KX#9Y6bXCBak=cbWE-ck=GVm10i} zHAs~!Ff`Ahy}tN)!6U@vV3rz38S{a)@lXQCtn`FIV2&?##ga10ZJnaEG$2y^;re? z>?>rtDt4D%a0(s!9ORg06-T%6Nm`#T-~Y}Y$E*qPFgI6W3go!O{kQLq?CuvrEFI9E z@2eLkv5~$qVsz8453`R1-%zZ|()MC+`PNOd%Sv;EUOIzXX=?ud5{jXXi?`==UDlJDyq0&;_|9uGT`xVB-@D z01XA_CCj3=JyUsvCcFq!_0>V*0QDI(tGSqh-+7rUR^OrD?1YA~9JzAz={Z`qOT>Y5 zDug$deLD)^!RHWVo2?EZCQC?LJ&Ybn(JM!=*OpW!CW_|thmsFUyJKJejRtx%numNs zANUq#^f$gDPlq+Ek23jJf`eq3z;=9+VJi=l>tZl1Pt;Ja;lYHG!lUBRD!^{L)1`jJ z(y8D+D4V!B>+v)b)%DJR-^25K;|x|K$2G_O$0%@N>_Kh_wocsOhque6t#CiZ&{bk1 z*K<(R^)WHxJrs4I(>zsKU`xQT_(m-)B*TkJ?b37L9PJM_0#=_)RHcsmeB~ z#l@i)LGZSS_XI+ZMX&BkJPEPZ5Z2L(&Q(%A&{TAU;v)J1#*c6{5HOp0S`pXEW0|b3 ztd|Jjc4?p4F8X4p<1~BGVIy+~nkO#T(+@vu&h_e&P@69nRGufcYBc)I23x{W0^@NQ ztRFM@^$SsZ4zu~AvYlCHvoT{3ILgt)Yp%%&U9_9)ZMMAo(Tym)X>(`^nqK3TZHu$@ zF>c3y%UGGgYk1)b0Qc58^FR%M_efd#*r#|#|9+uh59gs$85ls{Z?s0pQx%n`( zv2#j|ZN0?_Jq2@K6*E2A%Og=UPM)a?i+p$2Ri}Z7O{iv-F)G6CM){O zPx`}`M39k)10;&N2?KBk!f}XtXLb|9yx+b&slIA!2ak3a-mRT-_Lp-j-1{Dle6=IoXYlxyNFTtlWsB=)Q~?HNgyD)6?)S&1 zq$z8OJ?JrW5ZlNfQzgvQrN;EwCg-xkFi5`iQsr9suiqLwug@5pk z6}wZn_k}OtRAp3}2>Bcc2Pecg>EY|B{mEd zOFQ;y#y9~az`3B%okZLRk?|>=H;@!`PD!&F8TWC_X?CEpN#rM(rcm!D1#)Ei0?4Wx zfag)2q?R}8uKgHH|6q5k8icRxrA*W8VU3N_Fqy)zcyvZgjkJARl@KFllqs^>n*AKw zqBZJK>b{eIC!bD9$#Dkyf*YRF%Wmi87o||%J^KRma@b{d4m0woQIK+JPP+4a?}0+k zyL0C+$H(Wd&o?A5e~;g;lB)s#zFnpZy*(V0ysX=GUs+_oHfMLgo*8t%?lB2I+}{a3 z+yh?Ls=JWK;tZK#wth5y;WzYV#8I{r78|ha1fRTe2zUOgs~8Gnt4L*TD6QzNl2QJX zx4aNgq;-di%hqe)9X;$`$&YNNlSBNpoWff*Kh5);{qh)mqU!{Af8i$hv@$L9bmO-C zQ0+C5IiMr2Fb(PMh}6$)r8IR6cnscrzI>|ge$l7~+!kj)Z%3c(!{X2`JpaKnj5omn z?CUGH`^iOGQ4vehw&Fzg<6q@!!Tr(Zx2OknysiN}USKy5sDVqETs$Fdnjlkl@~~3E zvp2Fe$|-^D2fXwi3q7xaP75es>VABsCV5*q?tZgC37GW~7ko%2>3)6P1YC}HznlQF zU!RIMU#hcTUf!OX4PFvipA-qZJhF{*n1Auur`f$RBsUtf!%SD2pG51#yr`t$)R(OP zTEmrC44cr9i3alYualB~(VpyxUP+4ltD=InFXcidO&MtjdHI`LMg})Ct=@EwRo%7h z0LhHyD`m4_s?)4|{xU<$w+er%T7r21L_=Mma(F#&DjW+}Na{7!vV{8RofggK=?)%} z1@sFJ{w>FXIC*z*PV$2Ffx>=>?<5kxx3&n&Uc4}p(HCYqdAEV|tQ!q-qBD9LLQfAM zRY!{fSIzRK$!@VoE+a7oU;c=)@wk$k+#Xf_^kbt?pqE$2)D4B4Q#7q&KX?N)3q2g< zoxp9Rab46vG-mNjLuo7XqZ@AczdkY*n!b!Oz4GFeuqn`I_pPquy40Iht~pH-r!gFO z3gGnly!0;#y>(X$y{;6$J)9S~POD<_7=4oh#~HWPI(}lMK}>DXnYwvd0$dFL!GC;2 zeY@a#yO+x|KZ6x|xt{K(K2QQ!y~*yo@J240`+*~WmyMM>NWvKJX`p(>Ir;udn=Vp> zJA!BGbT>NO{RZ587Vk^rZf8_}NLrs{37^8SHxIdb^m>b5C&&5}$;j)IT_SPd_bcRL z2iu2XLhEw#`DXZe-V`Q!^R>4-!lp#3E_J zkJFhc`^}ec$-+iK>tNtczLN9nXS`oO`Duu%hdz;a;2{(NtHksm>#}-uJtjETmJ#EH z59@h^;)Hz5p&OuPX8qW{ur9<>YtY%$Y081C5Vaqx6MJ}=uRXAuTIU9$w;fLjT(7e2 z&q`E(uJKJ{ZR<2mnNB1EY^Tg7NKO7`rklr(7IWHBU1F|86l4w3(ha1@pBiRC_J=ET znB}Nc))pis=X_g#UgVli1;6YZi%Zr1t0edeojeY>w)h%Rkt~p#j>6}iMW-e7xIx|h z{G#;w&^~rM*)SUoxJ@h7n=7)P*IR~m><9bABL5EpE(K8)Hw4TRaIF^SejsDc5w9Hg zZ&jXO5}d`^E%px`lw8be!DsqWhCsM9Um0ayox$wqkeBGvh+jG#W7~^ zl1fN-6O zwqBVG)W}cP6Mt210cUeBUO%|J=nUc*QX|~93azAah6Ibn?rl?;S)hqZR$gZv^MGrS zjwY@@^m`^%QEd`P>Ip6(d=Oq5RP?d`{GK_%P81X1Zzqyck?p7mP}q&xlJ~Czid|WFZ32 zowphn5@mRaIFHRrWol)Y(8#`oI_Hj@@bqOO_NK{s=FrCX?tg+zXG0rjIUOcL9-~hM zX4{x=gZn8FtpG702D>$#<^gPz^W>&1Pp{oOgR{W%i^Ub$(FCk1Tpc z(&uvORIW_ldnV)3lKShVmv$pDPT)d0E;=1o_Aqc!>a3EQ8EJk`qMZ=TE(@e|e9sDC;W?wF}#LEx(dTiorct@{Yy=Zqh} zj%O`=+0eA>M8pONmRSXjTtEA9G5L-Kk~&BOsBt{2HZkR}0^P)&4o_a(ipp|-aP>4+`Mhv( zRfVEbJvA~wvpz^Zj0FzTO(2p{%QoVFnVc;+|FmNzIoa8MWe+%T5cDIFk9L{rKoR4O z5bd5`_lIs3Ri$$iIMv}Ac#`oX-c7q${qF;-B>=z!)5*oGk_1}iXL^T|{m#FC=5OKO zc>iFG?FbL(xa~)FYvt-QEE!=gCdr=`{$sWA3H?M|wIj;_7GTcGBan@76SP`K%BD#Z zL8*7hsUax+@MN79h1zkif_eXPb+Qx8cOD+#Ouu@R&}-;gZ_wT4a`D-T^$FLRm41vv z<}ewMox6ML&-EEGk0EPFyMKXQCD><*(r!ZJGM%fEvt8jq*sQ-M?OP34PM*NZ7R>{f zSsTl>CT(8)(`qZ8p-EAwi)?&@DwwY4-rdTYf;xEhmrfV&T-nb33uX9!G=f$DcJnyi zr}Ggd%Rjf0KIzki5BIvauyg#xWfzrYiNIih2er|59DU3ZkPAXm`b=kw|#D@h0oQBS0bH9Z$DYVbjZ{c+d>roU~-wyU*GMOrwU3=dwH z%E>8Dv#8?`s!sHb?X?1$rWj(%(*_)1p<~Kw;D~2YOGeS=xi~q--6TRj6b-0njk0M8 zzSu#-v)DHzZM4DWs~8O7Q6x7x4(CxcMwmFBZN+lRxL@xbw3M81*k*-Evg{qHA!Qj3 zU7A-03BGU`kPRD0#Wq)Tr8rHaGPRRg(C*R)W)uZxl$z9HIwX-#eI3vW;|9o~9XQc! z|NHuytUI9fSeDdPR^+YrZP*xCq0L*KG*wnuZw0J)B;+ZV%+ofM!bY~%ZHb*v-cK)l z*sn{qqk=WIY-Q=K|v5WvdI&K{Je;-{C8)Zd9 ztFA44a?r6}8o6Tm_QOr`dRM@hcWs`)K8XN_pXa7dh;r)v5 zeX2Y4btU4dy;W-}ElpXspxZJNu&{$Kxff#G(61-}`f{!Y2?M~~#f^pEEuDXQNZ{ky zp%CwL5`BNWj2Li*Q+Go{bW%T^9!8T=id%aK2g!PKRLQ^Q@fyKTO>B7~>C`-m!ArjG zQdhgtIk+$XvVqlY0A#tvhf|^H67~Gz=3U;r&GHywG8IPJBzWW14BB2ZbJ-k93i~Sh zuyuVk3LKw3%jvi|6K?>EC<+*3*90vCOLtvgp@!`` zKI^eF9=8N)N9?3_RN4Etnd#NHd+)*Ma&dsT!<($;7JZTx zrOA(5^H>^?HI57Sa|LL!)hNb7 z{~DwgZ5Uk+BKt(5AhV8zH9Wfo9gilao$Qu5KRzlbzCI=uBw9_^pW4@)Y&gvL5f=_K zh_Yu5ca3~DiOx1$Yu)`xD);7)eZ^@JbPoPMG6aYL`?>v%b&3JMSUCJ_g2LwV`U~ir z2tsTkp*g{1m!651G6U>x)2l#q-xWD{SZQVIGebTHrJF5|oVUqkD~0Ny?ds%iF!s+( zi5m;RE#V)ouAe`LHVpp;DiTUL_;{U1exEoz&A2J;S;Z-?&8`#bAQ)shE$-!kYA}b0 zGF1)$G<53I=)iAMok(4-R0Hluhu@CpK!3$TuTvJFc-o@-b?TVp`Fhjm#^x4pc%#^d zkHjDxl8u60fd6);*lJf^*q2h7EmbxOIYwkMrUJeaS=D`Fvail@hzzpok)t=G#JPtx z6y&VfgrOEv~vgt^~Xz6;Wdvk7Ok}WoC6_3 zT!E9lqAA?vWaF9V;6RlQLJ7HKdc^i21(i+=St0GWIO*U6a~3Mj#ihk+Hr|4G$p=6+ zn38!9$-Nr2!#d}F2qIy@5BUM4C+JuO6LRwwra?*H2)rpeR)QhZi5OySPcd+N(nlQi zspXRu&IGVczTyS3QWCS3%VUWWZ`$w;2ICuVvCzveCULRmH_L&tdG$fSfT{MPBLo zd&Z}xrwE`GnXN0z-t#(W+TnWY<@Oc!DI>bC8Yi~1l%hP4e~o7zBEwcgvL6k=mj*gk z;^YAQv(E^l+AF~(VXz9bp%UBYs^Bi#qd$U6)TWg}=KPdEwbxxI9C?d-5Z%^AIm(HB_;zfFOoG$T;((t@{}a=zU(HdP z7S#f)%$Zz-X-NpK+YJ86SLW<83Jp*W_BHd^Q@ZeARh~EgKoi%b)i)*^U}PqlOvTqK z_|iu@K+t%f;Qtbt7S?f^23)w~NjVx+WxKn!9>5M{$oaXJ5y%_ja&CL!xcad5dush9 z^VAd3Cw8lusyK)KO)U&C>Y(+A(Y@2R$!BmF5#Q3^q!JuNz1tH%{q!@$?_3v!>>u6( zME6%Ox>L^Vkqrcou1~$ufKzuTvI>+xm*rpLb@)P-wPC$cy?2JYSY*zK4(jX~&=gM! zImX<+T0rp3_>_GP7a=HXy2nDTJR9N#13M|z_FpjGEpxN7ge|8myqH17oBSn~irJs% z10ZChHD$TPrnrJ8$AT*ra&~tI(}3so+{>kK3BFw7E!j|p6|Cvh2Ed9qs^vC+71KHd zPtQl$-97Setx}eYfryf20FFGDy8PS89RFNG@F-&r?c$)nd{o|UKMCA{nT|Dv8A@1vGXKi0-U?3dV<5#U! zukS4QiCy;#*Ab7w!2nx}ZwByk)cP;OOf2xnZlk=U-+**Rtu4jZ95wr!-^f4F6^(LB z+r>+{W$~}9z?^;d7OC*Ki)$^FGMKhHdSI8{=TqJnY^_qyPiOKeHn~!RWuQNE@J6HE zBCf9C{pTRBLzMLv{D%79Q8dT`K@X=AU|{IfkpD+@4g&`V2BP+9ZWJu__~5w!@l5G{ zuo}dal=6RYX-s#N#wxxu6PO^D4SsOO&=Hl9fAGU7o0o-uuo`SQmEB6er(5bMQ~QuH zjg_T+usBS>l{aKi`Cv7W4lc*F{wU+BeE*%|qEWtL@S_M!*^0)G zVkdMe%03u!JgO=HAA}809Ti0%v?B!=mBt_G;6GQ2e56xwt0eniu5bvdgfx9G!tJP1 z<%3{h{JL`PgOwwfzse2w{VIW46}IC$Vjr&3c~>KuamWIvxpcm2^}{wnjMYi+^-lhM zRfmy0H#LBsY?Drjmi!hOfz)ioTfO_gY@lA%lOHXkQTs&xo+g2*X4W|r-`X9^P?{6p>;=R<~by^=ZA=x{1Odq}g(rx>L z^`c3*e&oGPn*9{&*JL3_Kt5xTQV$}<`47nz*GH+nqd(8}^O*0b9<9Mf?j2F+HC&>- zBV4!>V~#>p$5C!<^YbGt5U~+xce7kDDgaw47nTXA2T)S=N0=Mj0(2HnIOI2`Fy~ z;Cn~V2Q46Sn*U^vS1qI;$`C2G!hOhSv|GUy->=e_wE82zquRz+ap8A#f71$LV*W4h zE^M2%#yk3E(1!KDmHg2LZ}l#7TWBNuXn^#cwsWC(StLcf^M`Su7~4-j@?HnF-yptU zJ&A4qq418hH`_yT-_ibEyH&zF`WDgQj`5DBvO9)#-cia^2Z(L>zq(|@cY1ypn^3p& z@uQ*e>^dcF-me<}>3sW0XL{WE$K_onX4J*|p_{L57wdD7e&l6b>>>$#Pp7QY zZS|pBr$x7g$h(ZXv|H%oewNMMEN1VrOv0YXkNYuv=~4P<4}edP`bXa7u$~_I_jKt? zJsThCe(v?4e3To>+ne}dgU^z^L?4bM5!I{q(QcWUy-gpwssHO;|7deg@IJI3@As3n z?(>F!M`JF1lX~wcZLUw`Bk#s`-`0n%dIkG?KFa+i->cIeBluVPU-Ug+XiPoY``5J{B1|K15sJS0KgtK0nUT6PXSGi^j(2dE*@J|YR;XlE z)x6?ujNEVjmV_r*oHi*orV8CXz{>vM1?qCi`+xYf<+?yFt^R3Nh z_pS16GvHwdFjb6d)ynR<@YZUvj>iDdyJ>kMaVbo5y#J+6ujHo5kDG z?Ki=Yow+jaH;ZqTf$DB&Y=pUQqhlw(X0iEv_WQfvF6>p{JLw<0S3}!k7r<0+x-c^( zAV%LJV%~^NSIsv$-&pr#)v0@g7G9N}v;c1u!x{A9wznrM^`=fy!d$SF)9Fsab*)0G zzr*ZC7bUsZQ<4FEc0Yc_DlnjkR^O$YYG5lhV?j+n)p6I=wtX*DyyNHtHg){*(4dI0 zKB`+dzRR}grQiu!iG$+zEuB1qjfsTxsq=& z!yx+m3Pm8!+Mc?skY0|=d9MA_D5sLUbNwC3R>vL&e`i0yQe4fYP#Z^K2n@FtcYQjP zdlpfIeZ`)3PmkGH_Z4T60L5yj-#9P8NF_PdnZQ}Gc=iyii;4_T<~o%myi4jfgw_fpulO?h`%#5wiW zOyyADK_&!%{^f~hMQ%ap+au0AI_~BSY3NT0h8Szbkg>!4TgH_PiW!iiSNnu9*0x$S zzZ=`$60WHbxShjm|9K>XjUT$(MhccJNLtSpi^mKA-N`L0cHj-`v>MllCz{4RO8rE+ z@JF+n@p2+O&Z_LN@G_$)?9H3>(bH$6Kn>Bzz64l$v9sWmYr>&%4v0PR2nUzt^vHi~ zj5;e;27FFO!fYFrzU>$VD`YBD$aPu5tXnjuv$(o0yn&Cc?df`h8)1F=CCvF&#(sJ< zdhPJ|XOZpDHTTdXn|Rc{y)E86op|37YHIB|Zdr%WFJfWzm2}|*cx^c}JD|dSj7}QP zAPXQ&uy)kUaP7~d>MTb7zv4cp|I{npBY9C;irxnrNJ!@q2*e87Vfh2gV_)(MGw3Ic zjM}cT;7M83Ki9I?v4R`ct=Kp%DKHg9$4Bx)tW$#AV+Q0NkFXi^tFoWdouJxyNIf<( zAmb+0^2!k%aQ(A@IflyEc1ncJO&AFmZo&axDkW-aU}vRFK>{73%S48%sh z$R+G49$qg5QOs0=T5p3e=3+6)yw+OHX4Xrw=WhpSnYU9Ux)Am3D`3<4u{l6~vjPco z2n^LMmTW@|NHy7HH5Yu3HpP6f`^iKKSKv>}pU|Qa+!Z1}G;^dl>5$(LK%K*C!LFzK zr-N&Q?68|=C?yEZeK%Sfd21pA+%t8NWY?*B3 z^gVS>ZD6E(oM1i-fO05-H%W4T9&BRt^1eLLWvNytNbMz2$rdcu|qOR8H={~0gJT6Uy1Y?3kQY*2nU0KmWSw-MR*q6>)2=x5cp;_qw zXv0TOdnbojVj2ECyklXypbBtU%#|6P-_wShosYb&aqZr9fZ7lVF841!8{dBwNp%k9 zz8P;8O-mE`*xX9Qk<) zm)}iWyS5as@Tf6`hHFPBO@2NO0VMNO;dFGVJR+y4fs%2Kr=FD#A@&8@eFb(Ic=Bc! zOPN3fUU25p11<#x5_}^5rZ5&$YZs7IfD^V&YU1+DeyTCee;T!UbaMootJEsJ%7Xc{ zGJ!+8N!R(xlo(43#qIn9^aKWj$!!K`hLt5uj@MBe2(xzvCnhfA zSZQ!2CMdM+VG!qMciw?XYY^<<$(0f09=|Gi7iap&1E`H1u+?k1o0=fL*Zs94D0~9M zRciCEn||WAo8HD13!A6QZDdcso(D*8BYlZw=PZL_78uvuNc+kTtk;yvNr#G)PO62D zo8)lR0)5V)Mb&iX08{y&S=5isbq%4zUhTz+R!RR_J&^7 zR#v%b27saj85>tRs~PBP>XdCD=*6qFNkjbC*+l=WqY_PWQ#w&pDG9jJ{N6LiPR^l8 zao&CnD_cvy4sH8??-o=&R9i|R7Z^K)i^wIHCKn5Yo;|2MVp3}aO0m;tu_)d6k32gM z{N7xhnpc?W*@BB`#-@yIHut**kk+=*XQA2+AzvZmtw@5 zf0BD|FhR}XjJ||@JG$ZRGkhBzVrTwX+Z^gw2 zvUnv}ABPmBI~tF`Z-Yy4UQ6Dh#%2-l_W_eYFCZm~h%6u4@X`C0& z_95cBq2P3slVD95PJr)joX` zG3OupaGA&6FtjN+TwWeZZTDX+#*F2aw46Y^^{AfEHg_5N6IKWwi?oJ{G=;~aE{mB{ z5tVE9xsU?t-)9?0SoT@`GSkeU?sZTado=$>*|SfyoJvCR0!|8$LjdxiGJlW9bzjLOh5fH z^yDwn*QG%;hS#$YM->RLMGMPvJB+;!b)|M)%9EWo zaf2EX=aVMKumKgq9kC6e5Bvj7lIVrmP&~U*ANkhdk7-9t336<8qXfaA`UW8rq9Mi_KNdEyqnHF%9 z&5TPW7&F{@^|tsLP(Sy z2Fbn=FC+B?3K=3w2VW`$`0^to*3k~QRFInD& zi!jrO5y#fU9tp2Mx*=nmWVsD>^xX(d$>Bfs~YC2gnol#3O_s6%fUedT~lOzVIkzXGqbvO@4FOU4#xXpSL^_ zDm0kpPd&gqyCZB{(ZnrZIjqh2yyWmTBe4WgrXmn0L2^l-SibvCQdQ3q1#o3Kx z9{re74564g1((_72c4yJb%f&B!b~MlXge@h2`xeyYdhe;2*h(OcFNn0>eXa~RJqQ| zLX%-qoGEJ;HFHVx6K%#F1&{|K@F#SwDw}JKUDri`oWKm^1c5Buhbu(pDom5IRjUyY z>7YKq2F~KhIzAQiB;l_!Y|6UQ4GrhC}=RY zqtNmGqLfLd+35cbClWE;lpjTavzS*85}pkUXooO*k zUAjjkygL)izUK5X6}WY*_{tFs|IBhtW6`J@p(GR7rH%PEDPpqROg6&3Q@iwQ+}j#S zLv~jqKqH3eL~S|-*+yBV1Q^1$Ud{Us8Q(&K%{=jXEMOuwsJCZ^Bj;*~;C?L2Wl+

(}o`S3y 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 delta 105587 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 z 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