diff --git a/Vanessamae23_ip_master/authorship.json b/Vanessamae23_ip_master/authorship.json index f54babd8..ebc17d73 100644 --- a/Vanessamae23_ip_master/authorship.json +++ b/Vanessamae23_ip_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"# Duke Project Pro","lastModifiedDate":"2023-09-02"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"\u003e “Your mind is for having ideas, not holding them.” – David Allen","lastModifiedDate":"2023-09-02"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"DukePro frees your mind of having to remember things you need to do. It\u0027s,","lastModifiedDate":"2023-09-02"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"- Text-based","lastModifiedDate":"2023-09-02"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"- Best way to learn","lastModifiedDate":"2023-09-02"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"- Easy and Simple to use","lastModifiedDate":"2023-09-02"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"All you need to do is,","lastModifiedDate":"2023-09-02"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"1. Download from [link](https://nus-cs2103-ay2324s1.github.io/website/schedule/week4/project.html)","lastModifiedDate":"2023-09-02"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"2. Double click it","lastModifiedDate":"2023-09-02"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"3. Add your tasks","lastModifiedDate":"2023-09-02"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"4. Let it manage your task for you :blush:","lastModifiedDate":"2023-09-02"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"It is also *Emphasize* Free","lastModifiedDate":"2023-09-02"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"## User Guide","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"\u003e Words in `UPPER_CASE` are the parameters to be supplied by the user. For example, if users type in `task TASK`, the `TASK` is a parameter which can be used as the name of the task user wants to fill it in ","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":"### Adding a task : `task`","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":"Adds a task to remind users what to do","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":"Format : `task TASK` ","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":"| `task Study CS2103T` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":"| `task Revise CS2103T with John Doe` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":"### Adding an event : `event`","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":"Adds an event to remind users of a one-time activity","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":"Format : `event NAME /from DAY TIME /to DAY TIME` where `TIME` is in this format `[NUMBER][am/pm]` ","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":"| `event Supernova /from Mon 2pm /to Tue 2pm` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"| `event CS2103T /from Mon 2pm /to Sun 2pm` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":"### Adding an event : `deadline`","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":"Adds a deadline to remind users to do something before the due date","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":"Format : `deadline NAME /by DD/MM/YYYY` ","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":"| `deadline return book /by 02/12/2019` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":"| `deadline CS2103T IP /by 13/09/2023` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":"___","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":"## Features","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":"- [ ] Managing tasks","lastModifiedDate":"2023-09-02"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":"- [ ] Managing deadlines (coming soon)","lastModifiedDate":"2023-09-02"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":"- [ ] Reminders (coming soon)","lastModifiedDate":"2023-09-02"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":"___","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":"If you Java programmer, you can use it to practice Java too. Here\u0027s the `main` method:","lastModifiedDate":"2023-09-02"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"```","lastModifiedDate":"2023-09-02"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":"public class Main {","lastModifiedDate":"2023-09-02"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-02"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" Application.launch(MainApp.class, args);","lastModifiedDate":"2023-09-02"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-02"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-02"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":"```","lastModifiedDate":"2023-09-02"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":71,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":72,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":73,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":74,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":75,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":76,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":77,"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":78,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":79,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":80,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":81,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":82,"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":83,"author":{"gitId":"-"},"content":" In the same dialog, set the **Project language level** field to the `SDK default` option.","lastModifiedDate":"2021-07-29"},{"lineNumber":84,"author":{"gitId":"-"},"content":"3. After that, locate the `src/main/java/Duke.java` file, right-click it, and choose `Run Duke.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":"2021-07-29"},{"lineNumber":85,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":86,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":87,"author":{"gitId":"-"},"content":" ____ _ ","lastModifiedDate":"2020-05-25"},{"lineNumber":88,"author":{"gitId":"-"},"content":" | _ \\ _ _| | _____ ","lastModifiedDate":"2020-05-25"},{"lineNumber":89,"author":{"gitId":"-"},"content":" | | | | | | | |/ / _ \\","lastModifiedDate":"2020-05-25"},{"lineNumber":90,"author":{"gitId":"-"},"content":" | |_| | |_| | \u003c __/","lastModifiedDate":"2020-05-25"},{"lineNumber":91,"author":{"gitId":"-"},"content":" |____/ \\__,_|_|\\_\\___|","lastModifiedDate":"2020-05-25"},{"lineNumber":92,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Vanessamae23":70,"-":22}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2023-09-02"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":" id \u0027org.openjfx.javafxplugin\u0027 version \u00270.0.13\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" String javaFxVersion \u003d \u002717.0.8\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":32,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":"javafx {","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" version \u003d \u002717\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" modules \u003d [ \u0027javafx.controls\u0027, \u0027javafx.fxml\u0027 ]","lastModifiedDate":"2023-09-03"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"},{"lineNumber":52,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" mainClass.set(\"seedu.Duke\")","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2020-05-25"},{"lineNumber":58,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":60,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":61,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"checkstyle {","lastModifiedDate":"2023-09-02"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2023-09-02"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-02"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":66,"author":{"gitId":"-"},"content":"run {","lastModifiedDate":"2020-05-25"},{"lineNumber":67,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":68,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Vanessamae23":27,"-":41}},{"path":"cs2030s/src/Array.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"// version 0.2","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"class Array\u003cT\u003e {","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":" private T[] array;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":" Array(int size) {","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":" @SuppressWarnings(\"unchecked\")","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":" this.array \u003d (T[]) new Object[size];","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" public void set(int index, T item) {","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" this.array[index] \u003d item;","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" public T get(int index) {","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" return this.array[index];","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Vanessamae23":17}},{"path":"cs2030s/src/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"public class Main {","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":" System.out.println(\"Hello world!\");","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":" Array\u003cString\u003e s \u003d new Array\u003cString\u003e(10);","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Vanessamae23":6}},{"path":"demo/mvnw.cmd","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"@REM ----------------------------------------------------------------------------","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"@REM Licensed to the Apache Software Foundation (ASF) under one","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"@REM or more contributor license agreements. See the NOTICE file","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"@REM distributed with this work for additional information","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"@REM regarding copyright ownership. The ASF licenses this file","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"@REM to you under the Apache License, Version 2.0 (the","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"@REM \"License\"); you may not use this file except in compliance","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"@REM with the License. You may obtain a copy of the License at","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"@REM","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"@REM https://www.apache.org/licenses/LICENSE-2.0","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"@REM","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"@REM Unless required by applicable law or agreed to in writing,","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"@REM software distributed under the License is distributed on an","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"@REM \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"@REM KIND, either express or implied. See the License for the","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"@REM specific language governing permissions and limitations","lastModifiedDate":"2023-09-03"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"@REM under the License.","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"@REM ----------------------------------------------------------------------------","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":"@REM ----------------------------------------------------------------------------","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":"@REM Maven Start Up Batch script","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":"@REM","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":"@REM Required ENV vars:","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":"@REM JAVA_HOME - location of a JDK home dir","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":"@REM","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":"@REM Optional ENV vars","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":"@REM M2_HOME - location of maven2\u0027s installed home dir","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":"@REM MAVEN_BATCH_ECHO - set to \u0027on\u0027 to enable the echoing of the batch commands","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":"@REM MAVEN_BATCH_PAUSE - set to \u0027on\u0027 to wait for a keystroke before ending","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":"@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":"@REM e.g. to debug Maven itself, use","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"@REM set MAVEN_OPTS\u003d-Xdebug -Xrunjdwp:transport\u003ddt_socket,server\u003dy,suspend\u003dy,address\u003d8000","lastModifiedDate":"2023-09-03"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":"@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files","lastModifiedDate":"2023-09-03"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":"@REM ----------------------------------------------------------------------------","lastModifiedDate":"2023-09-03"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":"@REM Begin all REM lines with \u0027@\u0027 in case MAVEN_BATCH_ECHO is \u0027on\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":"@echo off","lastModifiedDate":"2023-09-03"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"@REM set title of command window","lastModifiedDate":"2023-09-03"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":"title %0","lastModifiedDate":"2023-09-03"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":"@REM enable echoing by setting MAVEN_BATCH_ECHO to \u0027on\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":"@if \"%MAVEN_BATCH_ECHO%\" \u003d\u003d \"on\" echo %MAVEN_BATCH_ECHO%","lastModifiedDate":"2023-09-03"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":"@REM set %HOME% to equivalent of $HOME","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":"if \"%HOME%\" \u003d\u003d \"\" (set \"HOME\u003d%HOMEDRIVE%%HOMEPATH%\")","lastModifiedDate":"2023-09-03"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":"@REM Execute a user defined script before this one","lastModifiedDate":"2023-09-03"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":"if not \"%MAVEN_SKIP_RC%\" \u003d\u003d \"\" goto skipRcPre","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":"@REM check for pre script, once with legacy .bat ending and once with .cmd ending","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":"if exist \"%USERPROFILE%\\mavenrc_pre.bat\" call \"%USERPROFILE%\\mavenrc_pre.bat\" %*","lastModifiedDate":"2023-09-03"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":"if exist \"%USERPROFILE%\\mavenrc_pre.cmd\" call \"%USERPROFILE%\\mavenrc_pre.cmd\" %*","lastModifiedDate":"2023-09-03"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":":skipRcPre","lastModifiedDate":"2023-09-03"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":"@setlocal","lastModifiedDate":"2023-09-03"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":"set ERROR_CODE\u003d0","lastModifiedDate":"2023-09-03"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":"@REM To isolate internal variables from possible post scripts, we use another setlocal","lastModifiedDate":"2023-09-03"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":"@setlocal","lastModifiedDate":"2023-09-03"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":"@REM \u003d\u003d\u003d\u003d START VALIDATION \u003d\u003d\u003d\u003d","lastModifiedDate":"2023-09-03"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":"if not \"%JAVA_HOME%\" \u003d\u003d \"\" goto OkJHome","lastModifiedDate":"2023-09-03"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":"echo.","lastModifiedDate":"2023-09-03"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":"echo Error: JAVA_HOME not found in your environment. \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":"echo Please set the JAVA_HOME variable in your environment to match the \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":"echo location of your Java installation. \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":"echo.","lastModifiedDate":"2023-09-03"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":"goto error","lastModifiedDate":"2023-09-03"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":":OkJHome","lastModifiedDate":"2023-09-03"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":"if exist \"%JAVA_HOME%\\bin\\java.exe\" goto init","lastModifiedDate":"2023-09-03"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":"echo.","lastModifiedDate":"2023-09-03"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":"echo Error: JAVA_HOME is set to an invalid directory. \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":"echo JAVA_HOME \u003d \"%JAVA_HOME%\" \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":"echo Please set the JAVA_HOME variable in your environment to match the \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":"echo location of your Java installation. \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":"echo.","lastModifiedDate":"2023-09-03"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":"goto error","lastModifiedDate":"2023-09-03"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":"@REM \u003d\u003d\u003d\u003d END VALIDATION \u003d\u003d\u003d\u003d","lastModifiedDate":"2023-09-03"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":":init","lastModifiedDate":"2023-09-03"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":"@REM Find the project base dir, i.e. the directory that contains the folder \".mvn\".","lastModifiedDate":"2023-09-03"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":"@REM Fallback to current working directory if not found.","lastModifiedDate":"2023-09-03"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":"set MAVEN_PROJECTBASEDIR\u003d%MAVEN_BASEDIR%","lastModifiedDate":"2023-09-03"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":"IF NOT \"%MAVEN_PROJECTBASEDIR%\"\u003d\u003d\"\" goto endDetectBaseDir","lastModifiedDate":"2023-09-03"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":"set EXEC_DIR\u003d%CD%","lastModifiedDate":"2023-09-03"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":"set WDIR\u003d%EXEC_DIR%","lastModifiedDate":"2023-09-03"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":":findBaseDir","lastModifiedDate":"2023-09-03"},{"lineNumber":94,"author":{"gitId":"Vanessamae23"},"content":"IF EXIST \"%WDIR%\"\\.mvn goto baseDirFound","lastModifiedDate":"2023-09-03"},{"lineNumber":95,"author":{"gitId":"Vanessamae23"},"content":"cd ..","lastModifiedDate":"2023-09-03"},{"lineNumber":96,"author":{"gitId":"Vanessamae23"},"content":"IF \"%WDIR%\"\u003d\u003d\"%CD%\" goto baseDirNotFound","lastModifiedDate":"2023-09-03"},{"lineNumber":97,"author":{"gitId":"Vanessamae23"},"content":"set WDIR\u003d%CD%","lastModifiedDate":"2023-09-03"},{"lineNumber":98,"author":{"gitId":"Vanessamae23"},"content":"goto findBaseDir","lastModifiedDate":"2023-09-03"},{"lineNumber":99,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":100,"author":{"gitId":"Vanessamae23"},"content":":baseDirFound","lastModifiedDate":"2023-09-03"},{"lineNumber":101,"author":{"gitId":"Vanessamae23"},"content":"set MAVEN_PROJECTBASEDIR\u003d%WDIR%","lastModifiedDate":"2023-09-03"},{"lineNumber":102,"author":{"gitId":"Vanessamae23"},"content":"cd \"%EXEC_DIR%\"","lastModifiedDate":"2023-09-03"},{"lineNumber":103,"author":{"gitId":"Vanessamae23"},"content":"goto endDetectBaseDir","lastModifiedDate":"2023-09-03"},{"lineNumber":104,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":105,"author":{"gitId":"Vanessamae23"},"content":":baseDirNotFound","lastModifiedDate":"2023-09-03"},{"lineNumber":106,"author":{"gitId":"Vanessamae23"},"content":"set MAVEN_PROJECTBASEDIR\u003d%EXEC_DIR%","lastModifiedDate":"2023-09-03"},{"lineNumber":107,"author":{"gitId":"Vanessamae23"},"content":"cd \"%EXEC_DIR%\"","lastModifiedDate":"2023-09-03"},{"lineNumber":108,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":109,"author":{"gitId":"Vanessamae23"},"content":":endDetectBaseDir","lastModifiedDate":"2023-09-03"},{"lineNumber":110,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":111,"author":{"gitId":"Vanessamae23"},"content":"IF NOT EXIST \"%MAVEN_PROJECTBASEDIR%\\.mvn\\jvm.config\" goto endReadAdditionalConfig","lastModifiedDate":"2023-09-03"},{"lineNumber":112,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":113,"author":{"gitId":"Vanessamae23"},"content":"@setlocal EnableExtensions EnableDelayedExpansion","lastModifiedDate":"2023-09-03"},{"lineNumber":114,"author":{"gitId":"Vanessamae23"},"content":"for /F \"usebackq delims\u003d\" %%a in (\"%MAVEN_PROJECTBASEDIR%\\.mvn\\jvm.config\") do set JVM_CONFIG_MAVEN_PROPS\u003d!JVM_CONFIG_MAVEN_PROPS! %%a","lastModifiedDate":"2023-09-03"},{"lineNumber":115,"author":{"gitId":"Vanessamae23"},"content":"@endlocal \u0026 set JVM_CONFIG_MAVEN_PROPS\u003d%JVM_CONFIG_MAVEN_PROPS%","lastModifiedDate":"2023-09-03"},{"lineNumber":116,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":117,"author":{"gitId":"Vanessamae23"},"content":":endReadAdditionalConfig","lastModifiedDate":"2023-09-03"},{"lineNumber":118,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":119,"author":{"gitId":"Vanessamae23"},"content":"SET MAVEN_JAVA_EXE\u003d\"%JAVA_HOME%\\bin\\java.exe\"","lastModifiedDate":"2023-09-03"},{"lineNumber":120,"author":{"gitId":"Vanessamae23"},"content":"set WRAPPER_JAR\u003d\"%MAVEN_PROJECTBASEDIR%\\.mvn\\wrapper\\maven-wrapper.jar\"","lastModifiedDate":"2023-09-03"},{"lineNumber":121,"author":{"gitId":"Vanessamae23"},"content":"set WRAPPER_LAUNCHER\u003dorg.apache.maven.wrapper.MavenWrapperMain","lastModifiedDate":"2023-09-03"},{"lineNumber":122,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":123,"author":{"gitId":"Vanessamae23"},"content":"set DOWNLOAD_URL\u003d\"https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar\"","lastModifiedDate":"2023-09-03"},{"lineNumber":124,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":125,"author":{"gitId":"Vanessamae23"},"content":"FOR /F \"usebackq tokens\u003d1,2 delims\u003d\u003d\" %%A IN (\"%MAVEN_PROJECTBASEDIR%\\.mvn\\wrapper\\maven-wrapper.properties\") DO (","lastModifiedDate":"2023-09-03"},{"lineNumber":126,"author":{"gitId":"Vanessamae23"},"content":" IF \"%%A\"\u003d\u003d\"wrapperUrl\" SET DOWNLOAD_URL\u003d%%B","lastModifiedDate":"2023-09-03"},{"lineNumber":127,"author":{"gitId":"Vanessamae23"},"content":")","lastModifiedDate":"2023-09-03"},{"lineNumber":128,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":129,"author":{"gitId":"Vanessamae23"},"content":"@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central","lastModifiedDate":"2023-09-03"},{"lineNumber":130,"author":{"gitId":"Vanessamae23"},"content":"@REM This allows using the maven wrapper in projects that prohibit checking in binary data.","lastModifiedDate":"2023-09-03"},{"lineNumber":131,"author":{"gitId":"Vanessamae23"},"content":"if exist %WRAPPER_JAR% (","lastModifiedDate":"2023-09-03"},{"lineNumber":132,"author":{"gitId":"Vanessamae23"},"content":" if \"%MVNW_VERBOSE%\" \u003d\u003d \"true\" (","lastModifiedDate":"2023-09-03"},{"lineNumber":133,"author":{"gitId":"Vanessamae23"},"content":" echo Found %WRAPPER_JAR%","lastModifiedDate":"2023-09-03"},{"lineNumber":134,"author":{"gitId":"Vanessamae23"},"content":" )","lastModifiedDate":"2023-09-03"},{"lineNumber":135,"author":{"gitId":"Vanessamae23"},"content":") else (","lastModifiedDate":"2023-09-03"},{"lineNumber":136,"author":{"gitId":"Vanessamae23"},"content":" if not \"%MVNW_REPOURL%\" \u003d\u003d \"\" (","lastModifiedDate":"2023-09-03"},{"lineNumber":137,"author":{"gitId":"Vanessamae23"},"content":" SET DOWNLOAD_URL\u003d\"%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar\"","lastModifiedDate":"2023-09-03"},{"lineNumber":138,"author":{"gitId":"Vanessamae23"},"content":" )","lastModifiedDate":"2023-09-03"},{"lineNumber":139,"author":{"gitId":"Vanessamae23"},"content":" if \"%MVNW_VERBOSE%\" \u003d\u003d \"true\" (","lastModifiedDate":"2023-09-03"},{"lineNumber":140,"author":{"gitId":"Vanessamae23"},"content":" echo Couldn\u0027t find %WRAPPER_JAR%, downloading it ...","lastModifiedDate":"2023-09-03"},{"lineNumber":141,"author":{"gitId":"Vanessamae23"},"content":" echo Downloading from: %DOWNLOAD_URL%","lastModifiedDate":"2023-09-03"},{"lineNumber":142,"author":{"gitId":"Vanessamae23"},"content":" )","lastModifiedDate":"2023-09-03"},{"lineNumber":143,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":144,"author":{"gitId":"Vanessamae23"},"content":" powershell -Command \"\u0026{\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":145,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"$webclient \u003d new-object System.Net.WebClient;\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":146,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"if (-not ([string]::IsNullOrEmpty(\u0027%MVNW_USERNAME%\u0027) -and [string]::IsNullOrEmpty(\u0027%MVNW_PASSWORD%\u0027))) {\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":147,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"$webclient.Credentials \u003d new-object System.Net.NetworkCredential(\u0027%MVNW_USERNAME%\u0027, \u0027%MVNW_PASSWORD%\u0027);\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":148,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"}\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":149,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"[Net.ServicePointManager]::SecurityProtocol \u003d [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile(\u0027%DOWNLOAD_URL%\u0027, \u0027%WRAPPER_JAR%\u0027)\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":150,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"}\"","lastModifiedDate":"2023-09-03"},{"lineNumber":151,"author":{"gitId":"Vanessamae23"},"content":" if \"%MVNW_VERBOSE%\" \u003d\u003d \"true\" (","lastModifiedDate":"2023-09-03"},{"lineNumber":152,"author":{"gitId":"Vanessamae23"},"content":" echo Finished downloading %WRAPPER_JAR%","lastModifiedDate":"2023-09-03"},{"lineNumber":153,"author":{"gitId":"Vanessamae23"},"content":" )","lastModifiedDate":"2023-09-03"},{"lineNumber":154,"author":{"gitId":"Vanessamae23"},"content":")","lastModifiedDate":"2023-09-03"},{"lineNumber":155,"author":{"gitId":"Vanessamae23"},"content":"@REM End of extension","lastModifiedDate":"2023-09-03"},{"lineNumber":156,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":157,"author":{"gitId":"Vanessamae23"},"content":"@REM Provide a \"standardized\" way to retrieve the CLI args that will","lastModifiedDate":"2023-09-03"},{"lineNumber":158,"author":{"gitId":"Vanessamae23"},"content":"@REM work with both Windows and non-Windows executions.","lastModifiedDate":"2023-09-03"},{"lineNumber":159,"author":{"gitId":"Vanessamae23"},"content":"set MAVEN_CMD_LINE_ARGS\u003d%*","lastModifiedDate":"2023-09-03"},{"lineNumber":160,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":161,"author":{"gitId":"Vanessamae23"},"content":"%MAVEN_JAVA_EXE% ^","lastModifiedDate":"2023-09-03"},{"lineNumber":162,"author":{"gitId":"Vanessamae23"},"content":" %JVM_CONFIG_MAVEN_PROPS% ^","lastModifiedDate":"2023-09-03"},{"lineNumber":163,"author":{"gitId":"Vanessamae23"},"content":" %MAVEN_OPTS% ^","lastModifiedDate":"2023-09-03"},{"lineNumber":164,"author":{"gitId":"Vanessamae23"},"content":" %MAVEN_DEBUG_OPTS% ^","lastModifiedDate":"2023-09-03"},{"lineNumber":165,"author":{"gitId":"Vanessamae23"},"content":" -classpath %WRAPPER_JAR% ^","lastModifiedDate":"2023-09-03"},{"lineNumber":166,"author":{"gitId":"Vanessamae23"},"content":" \"-Dmaven.multiModuleProjectDirectory\u003d%MAVEN_PROJECTBASEDIR%\" ^","lastModifiedDate":"2023-09-03"},{"lineNumber":167,"author":{"gitId":"Vanessamae23"},"content":" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*","lastModifiedDate":"2023-09-03"},{"lineNumber":168,"author":{"gitId":"Vanessamae23"},"content":"if ERRORLEVEL 1 goto error","lastModifiedDate":"2023-09-03"},{"lineNumber":169,"author":{"gitId":"Vanessamae23"},"content":"goto end","lastModifiedDate":"2023-09-03"},{"lineNumber":170,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":171,"author":{"gitId":"Vanessamae23"},"content":":error","lastModifiedDate":"2023-09-03"},{"lineNumber":172,"author":{"gitId":"Vanessamae23"},"content":"set ERROR_CODE\u003d1","lastModifiedDate":"2023-09-03"},{"lineNumber":173,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":174,"author":{"gitId":"Vanessamae23"},"content":":end","lastModifiedDate":"2023-09-03"},{"lineNumber":175,"author":{"gitId":"Vanessamae23"},"content":"@endlocal \u0026 set ERROR_CODE\u003d%ERROR_CODE%","lastModifiedDate":"2023-09-03"},{"lineNumber":176,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":177,"author":{"gitId":"Vanessamae23"},"content":"if not \"%MAVEN_SKIP_RC%\"\u003d\u003d\"\" goto skipRcPost","lastModifiedDate":"2023-09-03"},{"lineNumber":178,"author":{"gitId":"Vanessamae23"},"content":"@REM check for post script, once with legacy .bat ending and once with .cmd ending","lastModifiedDate":"2023-09-03"},{"lineNumber":179,"author":{"gitId":"Vanessamae23"},"content":"if exist \"%USERPROFILE%\\mavenrc_post.bat\" call \"%USERPROFILE%\\mavenrc_post.bat\"","lastModifiedDate":"2023-09-03"},{"lineNumber":180,"author":{"gitId":"Vanessamae23"},"content":"if exist \"%USERPROFILE%\\mavenrc_post.cmd\" call \"%USERPROFILE%\\mavenrc_post.cmd\"","lastModifiedDate":"2023-09-03"},{"lineNumber":181,"author":{"gitId":"Vanessamae23"},"content":":skipRcPost","lastModifiedDate":"2023-09-03"},{"lineNumber":182,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":183,"author":{"gitId":"Vanessamae23"},"content":"@REM pause the script if MAVEN_BATCH_PAUSE is set to \u0027on\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":184,"author":{"gitId":"Vanessamae23"},"content":"if \"%MAVEN_BATCH_PAUSE%\"\u003d\u003d\"on\" pause","lastModifiedDate":"2023-09-03"},{"lineNumber":185,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":186,"author":{"gitId":"Vanessamae23"},"content":"if \"%MAVEN_TERMINATE_CMD%\"\u003d\u003d\"on\" exit %ERROR_CODE%","lastModifiedDate":"2023-09-03"},{"lineNumber":187,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":188,"author":{"gitId":"Vanessamae23"},"content":"cmd /C exit /B %ERROR_CODE%","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":188}},{"path":"demo/src/main/java/com/example/demo/HelloApplication.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package com.example.demo;","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"public class HelloApplication extends Application {","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" public void start(Stage stage) throws IOException {","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(HelloApplication.class.getResource(\"hello-view.fxml\"));","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" Scene scene \u003d new Scene(fxmlLoader.load(), 320, 240);","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" stage.setTitle(\"Hello!\");","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-03"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" stage.show();","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" launch();","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":23}},{"path":"demo/src/main/java/com/example/demo/HelloController.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package com.example.demo;","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"public class HelloController {","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":" private Label welcomeText;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" protected void onHelloButtonClick() {","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" welcomeText.setText(\"Welcome to JavaFX Application!\");","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":14}},{"path":"demo/src/main/java/module-info.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"module com.example.demo {","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":" requires javafx.controls;","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":" requires javafx.fxml;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":" opens com.example.demo to javafx.fxml;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":" exports com.example.demo;","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":8}},{"path":"demo/src/main/resources/com/example/demo/hello-view.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"\u003cVBox alignment\u003d\"CENTER\" spacing\u003d\"20.0\" xmlns:fx\u003d\"http://javafx.com/fxml\"","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":" fx:controller\u003d\"com.example.demo.HelloController\"\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" \u003cInsets bottom\u003d\"20.0\" left\u003d\"20.0\" right\u003d\"20.0\" top\u003d\"20.0\"/\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" \u003cLabel fx:id\u003d\"welcomeText\"/\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" \u003cButton text\u003d\"Hello!\" onAction\u003d\"#onHelloButtonClick\"/\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"\u003c/VBox\u003e","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":16}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"# Duke Project Pro (Project name)","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"\u003e “Your mind is for having ideas, not holding them.” – David Allen","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"DukePro frees your mind of having to remember things you need to do. It\u0027s,","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"- Text-based","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"- Best way to learn","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"- Easy and Simple to use","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"All you need to do is,","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"1. Download from [link](https://nus-cs2103-ay2324s1.github.io/website/schedule/week4/project.html)","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"2. Double click it","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"3. Add your tasks","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"4. Let it manage your task for you :blush:","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"It is also *Emphasize* Free","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"## User Guide","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"\u003e Words in `UPPER_CASE` are the parameters to be supplied by the user. For example, if users type in `task TASK`, the `TASK` is a parameter which can be used as the name of the task user wants to fill it in ","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":"### Adding a task : `task`","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":"Adds a task to remind users what to do","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":"Format : `task TASK` ","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":"| `task Study CS2103T` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":"| `task Revise CS2103T with John Doe` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":"### Adding an event : `event`","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"Adds an event to remind users of a one-time activity","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":"Format : `event NAME /from DAY TIME /to DAY TIME` where `TIME` is in this format `[NUMBER][am/pm]` ","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":"| `event Supernova /from Mon 2pm /to Tue 2pm` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":"| `event CS2103T /from Mon 2pm /to Sun 2pm` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":"### Adding a deadline: `deadline`","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":"Adds a deadline to remind users to do something before the due date","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":"Format : `deadline NAME /by DD/MM/YYYY` ","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":"| `deadline return book /by 02/12/2019` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":"| `deadline CS2103T IP /by 13/09/2023` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":"### List all tasks : `list`","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":"Shows user all the current tasks both pending and completed as long as it is not removed / deleted","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":"Format : `list` ","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":"| `list` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":"### Mark as Done : `mark`","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":"Marks a specific task / deadline / event as completed with a tick","lastModifiedDate":"2023-09-13"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":"Format : `mark INDEX` where INDEX is the current position of the activity users want to mark as done","lastModifiedDate":"2023-09-13"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":"- The `INDEX` must be a positive integer 1,2,3 where 1 is the first task appearing in the list","lastModifiedDate":"2023-09-13"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":"| `mark 1` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":"| `mark 2` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":"### Delete a Specific Job / Task : `delete`","lastModifiedDate":"2023-09-13"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":"Deletes the specified job / task from the task list","lastModifiedDate":"2023-09-13"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":"Format : `delete INDEX` where INDEX is the current position of the activity users want to delete","lastModifiedDate":"2023-09-13"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":"- The `INDEX` must be a positive integer 1,2,3 where 1 is the first task appearing in the list","lastModifiedDate":"2023-09-13"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":"| `delete 1` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":"| `delete 2` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":"### Bulk Delete : `remove`","lastModifiedDate":"2023-09-13"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":"Mass Removal of Activities that contain a certain word","lastModifiedDate":"2023-09-13"},{"lineNumber":94,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":95,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":96,"author":{"gitId":"Vanessamae23"},"content":"Format : `remove KEYWORD` where KEYWORD is all the activities that contain that specific keyword","lastModifiedDate":"2023-09-13"},{"lineNumber":97,"author":{"gitId":"Vanessamae23"},"content":"- The `KEYWORD` is case-sensitive","lastModifiedDate":"2023-09-13"},{"lineNumber":98,"author":{"gitId":"Vanessamae23"},"content":"- The order of the word matters","lastModifiedDate":"2023-09-13"},{"lineNumber":99,"author":{"gitId":"Vanessamae23"},"content":"- Partial words will be matched","lastModifiedDate":"2023-09-13"},{"lineNumber":100,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":101,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":102,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":103,"author":{"gitId":"Vanessamae23"},"content":"| `remove CS2103T` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":104,"author":{"gitId":"Vanessamae23"},"content":"| `remove playing` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":105,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":106,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":107,"author":{"gitId":"Vanessamae23"},"content":"### Navigate to Specific Activty : `find`","lastModifiedDate":"2023-09-13"},{"lineNumber":108,"author":{"gitId":"Vanessamae23"},"content":"Finds tasks / activities whose naming contain of the given keywords","lastModifiedDate":"2023-09-13"},{"lineNumber":109,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":110,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":111,"author":{"gitId":"Vanessamae23"},"content":"Format : `find KEYWORD` where KEYWORD is all the activities that contain that specific keyword","lastModifiedDate":"2023-09-13"},{"lineNumber":112,"author":{"gitId":"Vanessamae23"},"content":"- The `KEYWORD` is case-sensitive","lastModifiedDate":"2023-09-13"},{"lineNumber":113,"author":{"gitId":"Vanessamae23"},"content":"- The order of the word matters","lastModifiedDate":"2023-09-13"},{"lineNumber":114,"author":{"gitId":"Vanessamae23"},"content":"- Partial words will be matched","lastModifiedDate":"2023-09-13"},{"lineNumber":115,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":116,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":117,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":118,"author":{"gitId":"Vanessamae23"},"content":"| `find CS2103T` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":119,"author":{"gitId":"Vanessamae23"},"content":"| `find playing` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":120,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":121,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":122,"author":{"gitId":"Vanessamae23"},"content":"### Exiting the Duke : `bye`","lastModifiedDate":"2023-09-13"},{"lineNumber":123,"author":{"gitId":"Vanessamae23"},"content":"Exit the program and saves the current entry","lastModifiedDate":"2023-09-13"},{"lineNumber":124,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":125,"author":{"gitId":"Vanessamae23"},"content":"Format : `bye` ","lastModifiedDate":"2023-09-13"},{"lineNumber":126,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":127,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":128,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":129,"author":{"gitId":"Vanessamae23"},"content":"| `bye` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":130,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":131,"author":{"gitId":"Vanessamae23"},"content":"___","lastModifiedDate":"2023-09-13"},{"lineNumber":132,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"}],"authorContributionMap":{"Vanessamae23":119,"-":13}},{"path":"src/main/java/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.Region;","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-03"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" * The main class","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":"public class Duke extends Application {","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" private Image user \u003d new Image(this.getClass().getResourceAsStream(\"/user.jpg\"));","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" private Image duke \u003d new Image(this.getClass().getResourceAsStream(\"/ans.png\"));","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" private Scene scene;","lastModifiedDate":"2023-09-03"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" private Ui ui;","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" private Storage storage;","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" private TaskList tasks;","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" private static void writeToFile(String filePath, String textToAdd) throws IOException {","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":" FileWriter fw \u003d new FileWriter(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" fw.write(textToAdd);","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" fw.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" public Duke() {","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-09-03"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" storage \u003d new Storage(\"\");","lastModifiedDate":"2023-09-03"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-09-03"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" this.tasks \u003d storage.load();","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" tasks \u003d new TaskList(null);","lastModifiedDate":"2023-09-03"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" public Duke(String filePath) {","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" storage \u003d new Storage(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-21"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" this.tasks \u003d storage.load();","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-08-21"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" ui.showError(e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" tasks \u003d new TaskList(null);","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-09-03"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" * Iteration 2:","lastModifiedDate":"2023-09-03"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-03"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-03"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" private String handleUserInput() {","lastModifiedDate":"2023-09-05"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":" Label userText \u003d new Label(userInput.getText());","lastModifiedDate":"2023-09-03"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-03"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":" custom.DialogBox.getUserDialog( userText.toString(), user)","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":" );","lastModifiedDate":"2023-09-03"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":" userInput.clear();","lastModifiedDate":"2023-09-03"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":" return userText.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-09-03"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-03"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-09-03"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":" * You should have your own function to generate a response to user input.","lastModifiedDate":"2023-09-03"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":" * Replace this stub with your completed method.","lastModifiedDate":"2023-09-03"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":" public String[] getResponse(String input) {","lastModifiedDate":"2023-09-05"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":" Command c \u003d Parser.parse(input, this.ui, this.storage, this.tasks);","lastModifiedDate":"2023-09-05"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cString\u003e s \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-05"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":" s \u003d c.execute();","lastModifiedDate":"2023-09-05"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":" return s.toArray(new String[0]);","lastModifiedDate":"2023-09-05"},{"lineNumber":94,"author":{"gitId":"Vanessamae23"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"Vanessamae23"},"content":" String[] s \u003d new String[1];","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"Vanessamae23"},"content":" s[0] \u003d this.ui.showError(\"Something wrong!\" + e.getMessage());","lastModifiedDate":"2023-09-05"},{"lineNumber":97,"author":{"gitId":"Vanessamae23"},"content":" return s;","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":100,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":101,"author":{"gitId":"Vanessamae23"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":102,"author":{"gitId":"Vanessamae23"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-03"},{"lineNumber":103,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":104,"author":{"gitId":"Vanessamae23"},"content":" //The container for the content of the chat to scroll.","lastModifiedDate":"2023-09-03"},{"lineNumber":105,"author":{"gitId":"Vanessamae23"},"content":" scrollPane \u003d new ScrollPane();","lastModifiedDate":"2023-09-03"},{"lineNumber":106,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer \u003d new VBox();","lastModifiedDate":"2023-09-03"},{"lineNumber":107,"author":{"gitId":"Vanessamae23"},"content":" scrollPane.setContent(dialogContainer);","lastModifiedDate":"2023-09-03"},{"lineNumber":108,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":109,"author":{"gitId":"Vanessamae23"},"content":" userInput \u003d new TextField();","lastModifiedDate":"2023-09-03"},{"lineNumber":110,"author":{"gitId":"Vanessamae23"},"content":" sendButton \u003d new Button(\"Send\");","lastModifiedDate":"2023-09-03"},{"lineNumber":111,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":112,"author":{"gitId":"Vanessamae23"},"content":" AnchorPane mainLayout \u003d new AnchorPane();","lastModifiedDate":"2023-09-03"},{"lineNumber":113,"author":{"gitId":"Vanessamae23"},"content":" mainLayout.getChildren().addAll(scrollPane, userInput, sendButton);","lastModifiedDate":"2023-09-03"},{"lineNumber":114,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":115,"author":{"gitId":"Vanessamae23"},"content":" scene \u003d new Scene(mainLayout);","lastModifiedDate":"2023-09-03"},{"lineNumber":116,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":117,"author":{"gitId":"Vanessamae23"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-03"},{"lineNumber":118,"author":{"gitId":"Vanessamae23"},"content":" stage.show();","lastModifiedDate":"2023-09-03"},{"lineNumber":119,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":120,"author":{"gitId":"Vanessamae23"},"content":" // more code to be added here later","lastModifiedDate":"2023-09-03"},{"lineNumber":121,"author":{"gitId":"Vanessamae23"},"content":" //Step 2. Formatting the window to look as expected","lastModifiedDate":"2023-09-03"},{"lineNumber":122,"author":{"gitId":"Vanessamae23"},"content":" stage.setTitle(\"Duke Chatbot Pro\");","lastModifiedDate":"2023-09-03"},{"lineNumber":123,"author":{"gitId":"Vanessamae23"},"content":" stage.setResizable(false);","lastModifiedDate":"2023-09-03"},{"lineNumber":124,"author":{"gitId":"Vanessamae23"},"content":" stage.setMinHeight(600.0);","lastModifiedDate":"2023-09-03"},{"lineNumber":125,"author":{"gitId":"Vanessamae23"},"content":" stage.setMinWidth(400.0);","lastModifiedDate":"2023-09-03"},{"lineNumber":126,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":127,"author":{"gitId":"Vanessamae23"},"content":" mainLayout.setPrefSize(400.0, 600.0);","lastModifiedDate":"2023-09-03"},{"lineNumber":128,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":129,"author":{"gitId":"Vanessamae23"},"content":" scrollPane.setPrefSize(385, 535);","lastModifiedDate":"2023-09-03"},{"lineNumber":130,"author":{"gitId":"Vanessamae23"},"content":" scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);","lastModifiedDate":"2023-09-03"},{"lineNumber":131,"author":{"gitId":"Vanessamae23"},"content":" scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);","lastModifiedDate":"2023-09-03"},{"lineNumber":132,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":133,"author":{"gitId":"Vanessamae23"},"content":" scrollPane.setVvalue(1.0);","lastModifiedDate":"2023-09-03"},{"lineNumber":134,"author":{"gitId":"Vanessamae23"},"content":" scrollPane.setFitToWidth(true);","lastModifiedDate":"2023-09-03"},{"lineNumber":135,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":136,"author":{"gitId":"Vanessamae23"},"content":" // You will need to import `javafx.scene.layout.Region` for this.","lastModifiedDate":"2023-09-03"},{"lineNumber":137,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.setPrefHeight(Region.USE_COMPUTED_SIZE);","lastModifiedDate":"2023-09-03"},{"lineNumber":138,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":139,"author":{"gitId":"Vanessamae23"},"content":" userInput.setPrefWidth(325.0);","lastModifiedDate":"2023-09-03"},{"lineNumber":140,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":141,"author":{"gitId":"Vanessamae23"},"content":" sendButton.setPrefWidth(55.0);","lastModifiedDate":"2023-09-03"},{"lineNumber":142,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":143,"author":{"gitId":"Vanessamae23"},"content":" AnchorPane.setTopAnchor(scrollPane, 1.0);","lastModifiedDate":"2023-09-03"},{"lineNumber":144,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":145,"author":{"gitId":"Vanessamae23"},"content":" AnchorPane.setBottomAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-03"},{"lineNumber":146,"author":{"gitId":"Vanessamae23"},"content":" AnchorPane.setRightAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-03"},{"lineNumber":147,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":148,"author":{"gitId":"Vanessamae23"},"content":" AnchorPane.setLeftAnchor(userInput , 1.0);","lastModifiedDate":"2023-09-03"},{"lineNumber":149,"author":{"gitId":"Vanessamae23"},"content":" AnchorPane.setBottomAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-03"},{"lineNumber":150,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":151,"author":{"gitId":"Vanessamae23"},"content":" //Scroll down to the end every time dialogContainer\u0027s height changes.","lastModifiedDate":"2023-09-03"},{"lineNumber":152,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.heightProperty().addListener((observable) -\u003e scrollPane.setVvalue(1.0));","lastModifiedDate":"2023-09-03"},{"lineNumber":153,"author":{"gitId":"Vanessamae23"},"content":" // more code to be added here later","lastModifiedDate":"2023-09-03"},{"lineNumber":154,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":155,"author":{"gitId":"Vanessamae23"},"content":" String filename \u003d \"../src/save.txt\";","lastModifiedDate":"2023-09-11"},{"lineNumber":156,"author":{"gitId":"Vanessamae23"},"content":" new Duke(filename).run();","lastModifiedDate":"2023-09-05"},{"lineNumber":157,"author":{"gitId":"Vanessamae23"},"content":" boolean isExit \u003d false;","lastModifiedDate":"2023-09-05"},{"lineNumber":158,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":159,"author":{"gitId":"Vanessamae23"},"content":" //Part 3. Add functionality to handle user input.","lastModifiedDate":"2023-09-03"},{"lineNumber":160,"author":{"gitId":"Vanessamae23"},"content":" sendButton.setOnMouseClicked((event) -\u003e {","lastModifiedDate":"2023-09-03"},{"lineNumber":161,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":162,"author":{"gitId":"Vanessamae23"},"content":" });","lastModifiedDate":"2023-09-03"},{"lineNumber":163,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":164,"author":{"gitId":"Vanessamae23"},"content":" userInput.setOnAction((event) -\u003e {","lastModifiedDate":"2023-09-03"},{"lineNumber":165,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":166,"author":{"gitId":"Vanessamae23"},"content":" });","lastModifiedDate":"2023-09-03"},{"lineNumber":167,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":168,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":169,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":170,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":171,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":172,"author":{"gitId":"Vanessamae23"},"content":" public void run() {","lastModifiedDate":"2023-08-30"},{"lineNumber":173,"author":{"gitId":"Vanessamae23"},"content":" this.ui.showWelcome(dialogContainer);","lastModifiedDate":"2023-09-05"},{"lineNumber":174,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":175,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":176,"author":{"gitId":"-"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-08-30"},{"lineNumber":177,"author":{"gitId":"Vanessamae23"},"content":" String filename \u003d \"src/save.txt\";","lastModifiedDate":"2023-08-30"},{"lineNumber":178,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":179,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"Vanessamae23":176,"-":3}},{"path":"src/main/java/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.lang.reflect.InvocationTargetException;","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" private seedu.Duke duke \u003d new seedu.Duke( \"src/save.txt\");","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" fxmlLoader.\u003cui.MainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" stage.show();","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-03"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-03"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":36}},{"path":"src/main/java/custom/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package custom;","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.text.Font;","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" private Label dialog;","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" private DialogBox(String text, Image img, boolean user) {","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(ui.MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-03"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-03"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-03"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-03"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-03"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" Font customFont \u003d Font.font(\"Arial\", 14);","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" dialog.setFont(customFont);","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" if(user) {","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" this.setStyle(\"-fx-background-color: lightgreen;\");","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" this.setStyle(\"-fx-background-color: lightgrey;\");","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-09-03"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-03"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" private void flip() {","lastModifiedDate":"2023-09-03"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-03"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-03"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-03"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-03"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-03"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":" return new DialogBox(text, img, true);","lastModifiedDate":"2023-09-13"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-03"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" var db \u003d new DialogBox(text, img, false);","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" db.flip();","lastModifiedDate":"2023-09-03"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" return db;","lastModifiedDate":"2023-09-03"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":70}},{"path":"src/main/java/seedu/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"public class Command {","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":" private String command;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":" private Ui ui;","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" private boolean exit \u003d false;","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" private Storage storage;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" private TaskList tasks;","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" private int index;","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" public Command(String command, Ui ui, Storage storage, TaskList tasks) {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" this.command \u003d command;","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" this.ui \u003d ui;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" this.storage \u003d storage;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" public Command(String command, Ui ui, Storage storage, TaskList tasks, int index) {","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" this.command \u003d command;","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" this.ui \u003d ui;","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" this.storage \u003d storage;","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" this.index \u003d index;","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" public ArrayList\u003cString\u003e execute() throws Exception {","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cString\u003e s \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" if (command.equals(\"bye\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.showByeMessage());","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" this.storage.save(this.tasks);","lastModifiedDate":"2023-09-04"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.equals(\"list\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.showTask(this.tasks));","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.equals(\"delete\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":" Task removed \u003d this.tasks.remove(this.index);","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.removeTask(removed, this.tasks.getLen()));","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.equals(\"mark\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" this.tasks.mark(this.index);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.showMarked());","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"find\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" String keyword \u003d command.substring(4).trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cTask\u003e foundWords \u003d this.tasks.find(keyword);","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.showFoundWords(foundWords));","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"remove\")) {","lastModifiedDate":"2023-09-11"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" String keyword \u003d command.substring(6).trim();","lastModifiedDate":"2023-09-11"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cTask\u003e foundTasks \u003d this.tasks.find(keyword);","lastModifiedDate":"2023-09-11"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cTask\u003e removedTasks \u003d this.tasks.specificRemove(foundTasks);","lastModifiedDate":"2023-09-11"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.showMassDeleteSuccess(removedTasks));","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" Task curr \u003d new Task(command.substring(command.indexOf(\" \")),","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" command.substring(0, command.indexOf(\" \")));","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.addTask(curr));","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" this.tasks.add(curr);","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Some error occurred \" + e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" return s;","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" public boolean exit() {","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" return this.exit;","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":68}},{"path":"src/main/java/seedu/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"public class Launcher {","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" Application.launch(seedu.Main.class, args);","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":12}},{"path":"src/main/java/seedu/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":" * Parses user input.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"public class Parser {","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":" public static Command parse(String command, Ui ui, Storage storage, TaskList tasks) {","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":" ","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":" if(command.equals(\"bye\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" assert command !\u003d \"bye\" : \" Command should be a bye\";","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" return new Command(command, ui, storage, tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.equals(\"list\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" assert command !\u003d \"list\" : \" Command should be a list\";","lastModifiedDate":"2023-09-11"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" return new Command(command, ui, storage, tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"delete \")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" String[] s \u003d command.split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" int removeIndex \u003d Integer.parseInt(s[1]) - 1;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" return new Command(\"delete\", ui, storage, tasks, removeIndex);","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"mark \")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" int current \u003d Integer.parseInt(command.substring(5)) - 1;","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" return new Command(\"mark\", ui, storage, tasks, current);","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"find \")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" return new Command(command, ui, storage, tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"remove \")) {","lastModifiedDate":"2023-09-11"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" return new Command(command, ui, storage, tasks);","lastModifiedDate":"2023-09-11"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" return new Command(command, ui, storage, tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":32}},{"path":"src/main/java/seedu/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.nio.file.Files;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import java.nio.file.Path;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import java.nio.file.Paths;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import java.util.List;","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"public class Storage {","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" private final Path filePath;","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" * Stores the file of the tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" this.filePath \u003d Paths.get(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" public TaskList load() throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" List\u003cString\u003e tasks \u003d Files.readAllLines(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" return TaskList.getFromFile(tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" } catch(IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" throw new IOException(\"Error writing to file: \" + filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" public void save(TaskList tasks) throws IOException {","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" List\u003cString\u003e encodedTasks \u003d TaskList.encode(tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" Files.write(filePath, encodedTasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" } catch (IOException ioe) {","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" throw new IOException(\"Error writing to file: \" + filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":38}},{"path":"src/main/java/seedu/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"public class Task {","lastModifiedDate":"2023-08-21"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":" protected String description;","lastModifiedDate":"2023-08-21"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-21"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":" protected Type category;","lastModifiedDate":"2023-08-21"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":" protected String title;","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" protected String start \u003d \"\";","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" protected String end \u003d \"\";","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" * The task to be loaded","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" public Task(String description, String category) throws IllegalArgumentException {","lastModifiedDate":"2023-08-21"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-21"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" if (category.equals(\"todo\")) {","lastModifiedDate":"2023-08-21"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" this.category \u003d Type.ToDo;","lastModifiedDate":"2023-08-21"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" String[] splitWord \u003ddescription.split(\" \", 2);","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-21"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" this.title \u003d splitWord[1].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" this.description \u003d splitWord[0].trim() + \" \" + title;","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-21"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" throw new IllegalArgumentException(\"Please correct the format\");","lastModifiedDate":"2023-08-21"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" } else if (category.equals(\"deadline\")) {","lastModifiedDate":"2023-08-21"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" this.category \u003d Type.Deadline;","lastModifiedDate":"2023-08-21"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" String[] splitWord \u003ddescription.split(\"/\", 4);","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-21"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" if (splitWord.length \u003d\u003d 2) {","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" this.title \u003d splitWord[0].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" this.end \u003d splitWord[1].split(\"by \")[1].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" this.description \u003d title + \"(\"+ splitWord[1].split(\"by \")[1].trim() + \")\";","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" String date \u003d splitWord[1].substring( 3).length() \u003d\u003d 1 ? \"0\"","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" + splitWord[1].substring( 3) : splitWord[1].substring( 3);","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" String endDate \u003d splitWord[3]+\"-\"+splitWord[2]+\"-\" + date;","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" String formattedDate \u003d LocalDate.parse(endDate)","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" .format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" this.title \u003d splitWord[0];","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" this.end \u003d formattedDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" this.description \u003d splitWord[0] + \"(\"+ formattedDate + \")\";","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-21"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" throw new IllegalArgumentException(\"Please correct the format\");","lastModifiedDate":"2023-08-21"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" } else if (category.equals(\"event\")) {","lastModifiedDate":"2023-08-21"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" String[] splitWord \u003d description.split(\"/(from|to)\", 3);","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" this.category \u003d Type.Event;","lastModifiedDate":"2023-08-21"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-21"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" this.title \u003d splitWord[0].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" this.start \u003d splitWord[1].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" this.end \u003d splitWord[2].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" this.description \u003d title + \"(From : \" + start + \" To : \" + end + \")\";","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-21"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" throw new IllegalArgumentException(\"Please correct the format\");","lastModifiedDate":"2023-08-21"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-08-21"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":" throw new IllegalArgumentException(\"OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-08-21"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" * Returns the status of the task","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" * @returns a String of X if task is done otherwise a blank space","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-21"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":" return (isDone ? \"X\" : \" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":" * Returns the status of the task","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":" * @returns a String more descriptive status of the task","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":" public String getStatus() {","lastModifiedDate":"2023-08-21"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":" String cat \u003d this.category \u003d\u003d Type.ToDo ? \"T\" : this.category \u003d\u003d Type.Deadline ? \"D\" : \"E\";","lastModifiedDate":"2023-08-21"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":" return \"[\" + cat +\"]\" + \"[\"+ this.getStatusIcon() + \"] \" + this.description.trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":" * Sets the description of the task","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":" * @param desc the text description of the task","lastModifiedDate":"2023-09-11"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":" public void setDescription(String desc) {","lastModifiedDate":"2023-08-21"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":" this.description \u003d desc;","lastModifiedDate":"2023-08-21"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":94,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"Vanessamae23"},"content":" * Marks a certain task as done","lastModifiedDate":"2023-08-30"},{"lineNumber":96,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"Vanessamae23"},"content":" * @returns a String to confirm the checked","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":99,"author":{"gitId":"Vanessamae23"},"content":" public String mark() {","lastModifiedDate":"2023-08-21"},{"lineNumber":100,"author":{"gitId":"Vanessamae23"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-21"},{"lineNumber":101,"author":{"gitId":"Vanessamae23"},"content":" assert this.isDone \u003d\u003d true : \"Something wrong with marking\";","lastModifiedDate":"2023-09-11"},{"lineNumber":102,"author":{"gitId":"Vanessamae23"},"content":" return \"[\"+ this.getStatusIcon() + \"] \" + this.description;","lastModifiedDate":"2023-08-21"},{"lineNumber":103,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":104,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":105,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"Vanessamae23"},"content":" * Returns a string to show the status of the task","lastModifiedDate":"2023-08-30"},{"lineNumber":107,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"Vanessamae23"},"content":" * @returns a status of the current task","lastModifiedDate":"2023-08-30"},{"lineNumber":109,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":110,"author":{"gitId":"Vanessamae23"},"content":" @Override","lastModifiedDate":"2023-08-21"},{"lineNumber":111,"author":{"gitId":"Vanessamae23"},"content":" public String toString() {","lastModifiedDate":"2023-08-21"},{"lineNumber":112,"author":{"gitId":"Vanessamae23"},"content":" return this.getStatus();","lastModifiedDate":"2023-08-21"},{"lineNumber":113,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":114,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":115,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-21"}],"authorContributionMap":{"Vanessamae23":115}},{"path":"src/main/java/seedu/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.text.SimpleDateFormat;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import java.util.Date;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import java.util.List;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import java.util.regex.Matcher;","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import java.util.regex.Pattern;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"public class TaskList {","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" private static final String DELIMITER \u003d \"|\";","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" private static final String EMPTY \u003d \"\";","lastModifiedDate":"2023-09-11"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" private List\u003cTask\u003e lists \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" public TaskList(List\u003cTask\u003e t) {","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" this.lists \u003d t;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" * Add a tasks in the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" * @param t task the Task class that is to be added","lastModifiedDate":"2023-09-11"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" public void add(Task t) throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" this.lists.add(t);","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" } catch(IllegalArgumentException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Unfortunately, \" + e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" * Returns the current task from the list","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" * @param index the position of the current task to be retrieved","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":" * @returns a Task object of interest","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" public Task get(int index) {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" return this.lists.get(index);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" * Retrieves task lists from a list of string from a file","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" * @param from source of the lists of strings","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" * @returns a TaskList of the current lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" public static TaskList getFromFile(List\u003cString\u003e from) throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" List\u003cTask\u003e lists \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" for (String l : from) {","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" String[] chars \u003d l.split(\"\\\\|\");","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" if (chars[0].equals(\"ToDo\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" lists.add(new Task(\"todo\" + \" \" + chars[2] ,\"todo\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" } else if (chars[0].equals(\"Event\")){","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" String title \u003d chars[2];","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" String fr \u003d chars[4].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" String to \u003d chars[3].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":" Task temp \u003d new Task(title + \" /from \" + fr + \" /to \" + to, \"event\");","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" if (chars[1].equals(\"true\")) temp.isDone \u003d true;","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" lists.add(temp);","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" String title \u003d chars[2].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" String to \u003d chars[3].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" Task temp \u003d new Task(title + \" /by \" + to,\"deadline\");","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" if (chars[1].equals(\"true\")) temp.isDone \u003d true;","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":" lists.add(temp);","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":" return new TaskList(lists);","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":" throw new Error(\"Parsing error\");","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":" * Encodes TaskList to a list of string to be used in a file","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":" * @param tasks the list of Tasks objects","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":" * @returns a String List to be stored in a file","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":" public static List\u003cString\u003e encode(TaskList tasks) {","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":" int curr \u003d 1;","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":" List\u003cString\u003e arrays \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":" for (int i \u003d 0; i \u003c tasks.getLen(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":" if (tasks.get(i) !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":" Task t \u003d tasks.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":" String start \u003d !t.start.isEmpty() ? t.start + DELIMITER : EMPTY;","lastModifiedDate":"2023-09-11"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":" String end \u003d !t.end.isEmpty()? t.end + DELIMITER : EMPTY;","lastModifiedDate":"2023-09-11"},{"lineNumber":94,"author":{"gitId":"Vanessamae23"},"content":" arrays.add(t.category.toString() + DELIMITER + (t.isDone ? \"true\" : \"false\")","lastModifiedDate":"2023-09-11"},{"lineNumber":95,"author":{"gitId":"Vanessamae23"},"content":" + DELIMITER + t.title + DELIMITER + end + start);","lastModifiedDate":"2023-09-11"},{"lineNumber":96,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"Vanessamae23"},"content":" ;","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":99,"author":{"gitId":"Vanessamae23"},"content":" return arrays;","lastModifiedDate":"2023-08-30"},{"lineNumber":100,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":101,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":103,"author":{"gitId":"Vanessamae23"},"content":" * Returns the size of the TaskList","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"Vanessamae23"},"content":" * @returns the length of the tasks number","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":107,"author":{"gitId":"Vanessamae23"},"content":" public int getLen() {","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"Vanessamae23"},"content":" return this.lists.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":109,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":110,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":111,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":112,"author":{"gitId":"Vanessamae23"},"content":" * Marks a task in the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":113,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":114,"author":{"gitId":"Vanessamae23"},"content":" * @param index position of the task in the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":115,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":116,"author":{"gitId":"Vanessamae23"},"content":" public void mark(int index) throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":117,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"Vanessamae23"},"content":" this.lists.get(index).mark();","lastModifiedDate":"2023-08-30"},{"lineNumber":119,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Sorry there is no such task\");","lastModifiedDate":"2023-08-30"},{"lineNumber":121,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":122,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":123,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":124,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":125,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":126,"author":{"gitId":"Vanessamae23"},"content":" * Removes a task from lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":127,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":128,"author":{"gitId":"Vanessamae23"},"content":" * @param index the position of the task to be removed","lastModifiedDate":"2023-08-30"},{"lineNumber":129,"author":{"gitId":"Vanessamae23"},"content":" * @returns the Task that was removed","lastModifiedDate":"2023-08-30"},{"lineNumber":130,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":131,"author":{"gitId":"Vanessamae23"},"content":" public Task remove(int index) throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":132,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":133,"author":{"gitId":"Vanessamae23"},"content":" Task now \u003d lists.get(index);","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"Vanessamae23"},"content":" this.lists.remove(now);","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"Vanessamae23"},"content":" return now;","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Something wrong with the given input\");","lastModifiedDate":"2023-08-30"},{"lineNumber":138,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":139,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":140,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":141,"author":{"gitId":"Vanessamae23"},"content":" public ArrayList\u003cTask\u003e specificRemove(ArrayList\u003cTask\u003e tasks) throws Exception {","lastModifiedDate":"2023-09-11"},{"lineNumber":142,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-09-11"},{"lineNumber":143,"author":{"gitId":"Vanessamae23"},"content":" for(Task task : tasks) {","lastModifiedDate":"2023-09-11"},{"lineNumber":144,"author":{"gitId":"Vanessamae23"},"content":" this.lists.remove(task);","lastModifiedDate":"2023-09-11"},{"lineNumber":145,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":146,"author":{"gitId":"Vanessamae23"},"content":" return tasks;","lastModifiedDate":"2023-09-11"},{"lineNumber":147,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-09-11"},{"lineNumber":148,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Something wrong with the given input\");","lastModifiedDate":"2023-09-11"},{"lineNumber":149,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":150,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":151,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":152,"author":{"gitId":"Vanessamae23"},"content":" public ArrayList\u003cTask\u003e find(String keyword) throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":153,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cTask\u003e foundWords \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":154,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":155,"author":{"gitId":"Vanessamae23"},"content":" for(Task t : this.lists) {","lastModifiedDate":"2023-08-30"},{"lineNumber":156,"author":{"gitId":"Vanessamae23"},"content":" if(t.description.contains(keyword)) {","lastModifiedDate":"2023-08-30"},{"lineNumber":157,"author":{"gitId":"Vanessamae23"},"content":" foundWords.add(t);","lastModifiedDate":"2023-08-30"},{"lineNumber":158,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":159,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":160,"author":{"gitId":"Vanessamae23"},"content":" return foundWords;","lastModifiedDate":"2023-08-30"},{"lineNumber":161,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":162,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Keyword not found\");","lastModifiedDate":"2023-08-30"},{"lineNumber":163,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":164,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":165,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":165}},{"path":"src/main/java/seedu/Type.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"public enum Type {","lastModifiedDate":"2023-08-21"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":" ToDo, Deadline, Event","lastModifiedDate":"2023-08-21"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-21"}],"authorContributionMap":{"Vanessamae23":5}},{"path":"src/main/java/seedu/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import java.io.PrintStream;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"public class Ui {","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" private Scanner sc;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" private final PrintStream out;","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" public Ui() {","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" this.sc \u003d new Scanner(System.in);","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" this.out \u003d System.out;","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" * Prints welcome message to the user","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" public String showWelcome(VBox dialogContainer) {","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" String logo \u003d \"Bacon Pancake\";","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" return (\" Hello from \" + logo + \"\\n What can I do for you? \\n\" + \"---------------------------------- \\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" * Prints ending message to the user","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" public String showByeMessage() {","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" return (\"Bacon Pancake : \\n\" + \"Bye! See you again soon \");","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" * Prints out all the tasks in the list of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" * @param tasks the TaskList class that contains all the current tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" public String showTask(TaskList tasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" StringBuilder s \u003d new StringBuilder();","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" s.append(\"Bacon Pancake : Below are the lists\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" int curr \u003d 1;","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" for (int i \u003d 0; i \u003c tasks.getLen(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" if (tasks.get(i) !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" Task t \u003d tasks.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" s.append((curr++) + \". \" + t.getStatus() + \"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" assert curr \u003e\u003d tasks.getLen() : \"Something wrong with the task length\";","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" return s.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" * Generates and prints the error message upon any exceptions.","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" * @param m message of the error","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" public String showError(String m) {","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" return m;","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" * Removes a task from the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" * @param t Task that is to be removed","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" * @param currentLength to show the current number of tasks after removal","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":" public String removeTask(Task t, int currentLength) {","lastModifiedDate":"2023-09-05"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":" StringBuilder s \u003d new StringBuilder();","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":" s.append(\"Noted. I\u0027ve removed this task: \\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":" s.append(t.toString() + \"\\n\" + \"Now you have \" + currentLength + \" tasks left. \\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":" return s.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":" * Marks and checks the current task to be true","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":" public String showMarked() {","lastModifiedDate":"2023-09-05"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":" return (\"Bacon Pancake : Nice! I\u0027ve marked this task as done:\");","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":" * Add a task to the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":" * @param curr Task that is supposed to be added to the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":" public String addTask(Task curr) {","lastModifiedDate":"2023-09-05"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":" return (\"Bacon Pancake : \\n Added : \" + curr.description);","lastModifiedDate":"2023-09-05"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"Vanessamae23"},"content":" public String showFoundWords(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"Vanessamae23"},"content":" StringBuilder s \u003d new StringBuilder();","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"Vanessamae23"},"content":" for(Task task : tasks) {","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"Vanessamae23"},"content":" s.append(task.getStatus());","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":99,"author":{"gitId":"Vanessamae23"},"content":" return s.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":100,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":101,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"Vanessamae23"},"content":" public String showMassDeleteSuccess(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-09-11"},{"lineNumber":103,"author":{"gitId":"Vanessamae23"},"content":" StringBuilder s \u003d new StringBuilder();","lastModifiedDate":"2023-09-11"},{"lineNumber":104,"author":{"gitId":"Vanessamae23"},"content":" s.append(\"Successfully deleted these tasks : \\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":105,"author":{"gitId":"Vanessamae23"},"content":" for(Task task : tasks) {","lastModifiedDate":"2023-09-11"},{"lineNumber":106,"author":{"gitId":"Vanessamae23"},"content":" s.append(task.getStatus() + \" \\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":107,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":108,"author":{"gitId":"Vanessamae23"},"content":" return s.toString();","lastModifiedDate":"2023-09-11"},{"lineNumber":109,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":110,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":111,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":111}},{"path":"src/main/java/ui/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package ui;","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.event.ActionEvent;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"import seedu.Command;","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"import seedu.Parser;","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"import java.util.Arrays;","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-09-03"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" private seedu.Duke duke;","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/user.jpg\"));","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/ans.png\"));","lastModifiedDate":"2023-09-03"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" public void initialize() {","lastModifiedDate":"2023-09-03"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" * Sets the Duke model","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" * @param d Duke","lastModifiedDate":"2023-09-11"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" public void setDuke(seedu.Duke d) {","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-03"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-03"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-03"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-03"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-03"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" if(input.equals(\"exit\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-05"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" custom.DialogBox.getUserDialog(input, userImage)","lastModifiedDate":"2023-09-05"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" );","lastModifiedDate":"2023-09-05"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.getChildren().add(","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" custom.DialogBox.getDukeDialog(\"Press exit close\", dukeImage)","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" );","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":" userInput.clear();","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" String[] response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-03"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" custom.DialogBox.getUserDialog(input, userImage)","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" );","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" for (int i \u003d 0; i \u003c response.length; i++) {","lastModifiedDate":"2023-09-05"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.getChildren().add(","lastModifiedDate":"2023-09-05"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":" custom.DialogBox.getDukeDialog(response[i], dukeImage)","lastModifiedDate":"2023-09-05"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":" );","lastModifiedDate":"2023-09-03"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":" userInput.clear();","lastModifiedDate":"2023-09-03"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":76}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.shape.Circle?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"\u003cfx:root spacing\u003d\"2\" alignment\u003d\"TOP_RIGHT\" 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-13"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"false\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"50.0\" fitWidth\u003d\"50.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\"\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" \u003cclip\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" \u003cCircle fx:id\u003d\"circle\" radius\u003d\"15\" centerX\u003d\"15\" centerY\u003d\"15\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" \u003c/clip\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" \u003c/ImageView\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"10.0\" right\u003d\"0.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":21}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"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\"ui.MainWindow\"\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"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-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"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-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefWidth\u003d\"388.0\" /\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":19}},{"path":"src/module-info.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"module yourModuleName {","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":" requires javafx.controls;","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":" requires javafx.fxml;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":" // Add any other module dependencies if needed","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":5}},{"path":"src/save.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"Event|false|Supernova|Tue 2pm|Mon 2pm|","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"Deadline|false|return book|Dec 2 2019|","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"Event|false|Supernova|Tue 2pm|Mon 2pm|","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"ToDo|false|kk|","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"ToDo|false|djsaid|","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"ToDo|false|dsaidais|","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"ToDo|false|sada|","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Vanessamae23":7}},{"path":"src/test/java/seedu/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu; //same package as the class being tested","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import java.util.List;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"public class TaskListTest {","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" public void addTaskTest(){","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" Task newTask \u003d new Task(\"todo cs2103t\", \"todo\");","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" List\u003cTask\u003e lists \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" lists.add(newTask);","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" TaskList t \u003d new TaskList(lists);","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" assertEquals(\"todo cs2103t\", t.get(0).description);","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" public void removeTaskTest(){","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" Task newTask \u003d new Task(\"todo cs2103t\", \"todo\");","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" List\u003cTask\u003e lists \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" for(int i \u003d 0; i \u003c 10; i++) lists.add(newTask);","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" TaskList t \u003d new TaskList(lists);","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" t.remove(4);","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" assertEquals(9, t.getLen());","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":33}},{"path":"src/test/java/seedu/TaskTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu; //same package as the class being tested","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import java.util.List;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"public class TaskTest {","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" public void statusMarkTest(){","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" Task newTask \u003d new Task(\"todo cs2103t\", \"todo\");","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" newTask.mark();","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" assertEquals(\"[T][X] todo cs2103t\", newTask.getStatus());","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" public void markTest(){","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" Task newTask \u003d new Task(\"todsadao cs2103t\", \"toddsado\");","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" assertEquals(\"OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\", e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":26}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"todo Poop","lastModifiedDate":"2023-08-21"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"deadline return book /by 02/12/2019","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"event Supernova /from Mon 2pm /to Tue 2pm","lastModifiedDate":"2023-08-21"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"mark 2","lastModifiedDate":"2023-08-21"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"list","lastModifiedDate":"2023-08-21"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"delete 3","lastModifiedDate":"2023-08-21"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"list","lastModifiedDate":"2023-08-21"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"bye","lastModifiedDate":"2023-08-21"}],"authorContributionMap":{"Vanessamae23":8}},{"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":"Vanessamae23"},"content":"javac -cp C:\\Users\\user\\NUS\\CS2103T\\cs2103t-ip\\src\\main\\java -Xlint:none -d ..\\bin C:\\Users\\user\\NUS\\CS2103T\\cs2103t-ip\\src\\main\\java\\*.java","lastModifiedDate":"2023-08-21"},{"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":"Vanessamae23"},"content":"java -classpath C:\\Users\\user\\NUS\\CS2103T\\cs2103t-ip\\bin Duke \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-08-21"},{"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":{"Vanessamae23":2,"-":19}},{"path":"untitled/src/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"public class Main {","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":" System.out.println(\"Hello world!\");","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":5}}] +[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"# Duke Project Pro","lastModifiedDate":"2023-09-02"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"\u003e “Your mind is for having ideas, not holding them.” – David Allen","lastModifiedDate":"2023-09-02"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"DukePro frees your mind of having to remember things you need to do. It\u0027s,","lastModifiedDate":"2023-09-02"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"- Text-based","lastModifiedDate":"2023-09-02"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"- Best way to learn","lastModifiedDate":"2023-09-02"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"- Easy and Simple to use","lastModifiedDate":"2023-09-02"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"All you need to do is,","lastModifiedDate":"2023-09-02"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"1. Download from [link](https://nus-cs2103-ay2324s1.github.io/website/schedule/week4/project.html)","lastModifiedDate":"2023-09-02"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"2. Double click it","lastModifiedDate":"2023-09-02"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"3. Add your tasks","lastModifiedDate":"2023-09-02"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"4. Let it manage your task for you :blush:","lastModifiedDate":"2023-09-02"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"It is also *Emphasize* Free","lastModifiedDate":"2023-09-02"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"## User Guide","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"\u003e Words in `UPPER_CASE` are the parameters to be supplied by the user. For example, if users type in `task TASK`, the `TASK` is a parameter which can be used as the name of the task user wants to fill it in ","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":"### Adding a task : `task`","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":"Adds a task to remind users what to do","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":"Format : `task TASK` ","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":"| `task Study CS2103T` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":"| `task Revise CS2103T with John Doe` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":"### Adding an event : `event`","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":"Adds an event to remind users of a one-time activity","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":"Format : `event NAME /from DAY TIME /to DAY TIME` where `TIME` is in this format `[NUMBER][am/pm]` ","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":"| `event Supernova /from Mon 2pm /to Tue 2pm` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"| `event CS2103T /from Mon 2pm /to Sun 2pm` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":"### Adding an event : `deadline`","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":"Adds a deadline to remind users to do something before the due date","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":"Format : `deadline NAME /by DD/MM/YYYY` ","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":"| `deadline return book /by 02/12/2019` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":"| `deadline CS2103T IP /by 13/09/2023` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":"___","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":"## Features","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":"- [ ] Managing tasks","lastModifiedDate":"2023-09-02"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":"- [ ] Managing deadlines (coming soon)","lastModifiedDate":"2023-09-02"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":"- [ ] Reminders (coming soon)","lastModifiedDate":"2023-09-02"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":"___","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":"If you Java programmer, you can use it to practice Java too. Here\u0027s the `main` method:","lastModifiedDate":"2023-09-02"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"```","lastModifiedDate":"2023-09-02"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":"public class Main {","lastModifiedDate":"2023-09-02"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-02"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" Application.launch(MainApp.class, args);","lastModifiedDate":"2023-09-02"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-02"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-02"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":"```","lastModifiedDate":"2023-09-02"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":71,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":72,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":73,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":74,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":75,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":76,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":77,"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":78,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":79,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":80,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":81,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":82,"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":83,"author":{"gitId":"-"},"content":" In the same dialog, set the **Project language level** field to the `SDK default` option.","lastModifiedDate":"2021-07-29"},{"lineNumber":84,"author":{"gitId":"-"},"content":"3. After that, locate the `src/main/java/Duke.java` file, right-click it, and choose `Run Duke.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":"2021-07-29"},{"lineNumber":85,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":86,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":87,"author":{"gitId":"-"},"content":" ____ _ ","lastModifiedDate":"2020-05-25"},{"lineNumber":88,"author":{"gitId":"-"},"content":" | _ \\ _ _| | _____ ","lastModifiedDate":"2020-05-25"},{"lineNumber":89,"author":{"gitId":"-"},"content":" | | | | | | | |/ / _ \\","lastModifiedDate":"2020-05-25"},{"lineNumber":90,"author":{"gitId":"-"},"content":" | |_| | |_| | \u003c __/","lastModifiedDate":"2020-05-25"},{"lineNumber":91,"author":{"gitId":"-"},"content":" |____/ \\__,_|_|\\_\\___|","lastModifiedDate":"2020-05-25"},{"lineNumber":92,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Vanessamae23":70,"-":22}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2023-09-02"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":" id \u0027org.openjfx.javafxplugin\u0027 version \u00270.0.13\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" String javaFxVersion \u003d \u002717.0.8\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":32,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":49,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" mainClass.set(\"seedu.Launcher\")","lastModifiedDate":"2023-10-17"},{"lineNumber":51,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":57,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":58,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":"checkstyle {","lastModifiedDate":"2023-09-02"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2023-09-02"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-02"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-02"},{"lineNumber":63,"author":{"gitId":"-"},"content":"run {","lastModifiedDate":"2020-05-25"},{"lineNumber":64,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":65,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Vanessamae23":24,"-":41}},{"path":"demo/mvnw.cmd","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"@REM ----------------------------------------------------------------------------","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"@REM Licensed to the Apache Software Foundation (ASF) under one","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"@REM or more contributor license agreements. See the NOTICE file","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"@REM distributed with this work for additional information","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"@REM regarding copyright ownership. The ASF licenses this file","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"@REM to you under the Apache License, Version 2.0 (the","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"@REM \"License\"); you may not use this file except in compliance","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"@REM with the License. You may obtain a copy of the License at","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"@REM","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"@REM https://www.apache.org/licenses/LICENSE-2.0","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"@REM","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"@REM Unless required by applicable law or agreed to in writing,","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"@REM software distributed under the License is distributed on an","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"@REM \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"@REM KIND, either express or implied. See the License for the","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"@REM specific language governing permissions and limitations","lastModifiedDate":"2023-09-03"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"@REM under the License.","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"@REM ----------------------------------------------------------------------------","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":"@REM ----------------------------------------------------------------------------","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":"@REM Maven Start Up Batch script","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":"@REM","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":"@REM Required ENV vars:","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":"@REM JAVA_HOME - location of a JDK home dir","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":"@REM","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":"@REM Optional ENV vars","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":"@REM M2_HOME - location of maven2\u0027s installed home dir","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":"@REM MAVEN_BATCH_ECHO - set to \u0027on\u0027 to enable the echoing of the batch commands","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":"@REM MAVEN_BATCH_PAUSE - set to \u0027on\u0027 to wait for a keystroke before ending","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":"@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":"@REM e.g. to debug Maven itself, use","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"@REM set MAVEN_OPTS\u003d-Xdebug -Xrunjdwp:transport\u003ddt_socket,server\u003dy,suspend\u003dy,address\u003d8000","lastModifiedDate":"2023-09-03"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":"@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files","lastModifiedDate":"2023-09-03"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":"@REM ----------------------------------------------------------------------------","lastModifiedDate":"2023-09-03"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":"@REM Begin all REM lines with \u0027@\u0027 in case MAVEN_BATCH_ECHO is \u0027on\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":"@echo off","lastModifiedDate":"2023-09-03"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"@REM set title of command window","lastModifiedDate":"2023-09-03"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":"title %0","lastModifiedDate":"2023-09-03"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":"@REM enable echoing by setting MAVEN_BATCH_ECHO to \u0027on\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":"@if \"%MAVEN_BATCH_ECHO%\" \u003d\u003d \"on\" echo %MAVEN_BATCH_ECHO%","lastModifiedDate":"2023-09-03"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":"@REM set %HOME% to equivalent of $HOME","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":"if \"%HOME%\" \u003d\u003d \"\" (set \"HOME\u003d%HOMEDRIVE%%HOMEPATH%\")","lastModifiedDate":"2023-09-03"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":"@REM Execute a user defined script before this one","lastModifiedDate":"2023-09-03"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":"if not \"%MAVEN_SKIP_RC%\" \u003d\u003d \"\" goto skipRcPre","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":"@REM check for pre script, once with legacy .bat ending and once with .cmd ending","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":"if exist \"%USERPROFILE%\\mavenrc_pre.bat\" call \"%USERPROFILE%\\mavenrc_pre.bat\" %*","lastModifiedDate":"2023-09-03"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":"if exist \"%USERPROFILE%\\mavenrc_pre.cmd\" call \"%USERPROFILE%\\mavenrc_pre.cmd\" %*","lastModifiedDate":"2023-09-03"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":":skipRcPre","lastModifiedDate":"2023-09-03"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":"@setlocal","lastModifiedDate":"2023-09-03"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":"set ERROR_CODE\u003d0","lastModifiedDate":"2023-09-03"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":"@REM To isolate internal variables from possible post scripts, we use another setlocal","lastModifiedDate":"2023-09-03"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":"@setlocal","lastModifiedDate":"2023-09-03"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":"@REM \u003d\u003d\u003d\u003d START VALIDATION \u003d\u003d\u003d\u003d","lastModifiedDate":"2023-09-03"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":"if not \"%JAVA_HOME%\" \u003d\u003d \"\" goto OkJHome","lastModifiedDate":"2023-09-03"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":"echo.","lastModifiedDate":"2023-09-03"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":"echo Error: JAVA_HOME not found in your environment. \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":"echo Please set the JAVA_HOME variable in your environment to match the \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":"echo location of your Java installation. \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":"echo.","lastModifiedDate":"2023-09-03"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":"goto error","lastModifiedDate":"2023-09-03"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":":OkJHome","lastModifiedDate":"2023-09-03"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":"if exist \"%JAVA_HOME%\\bin\\java.exe\" goto init","lastModifiedDate":"2023-09-03"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":"echo.","lastModifiedDate":"2023-09-03"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":"echo Error: JAVA_HOME is set to an invalid directory. \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":"echo JAVA_HOME \u003d \"%JAVA_HOME%\" \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":"echo Please set the JAVA_HOME variable in your environment to match the \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":"echo location of your Java installation. \u003e\u00262","lastModifiedDate":"2023-09-03"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":"echo.","lastModifiedDate":"2023-09-03"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":"goto error","lastModifiedDate":"2023-09-03"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":"@REM \u003d\u003d\u003d\u003d END VALIDATION \u003d\u003d\u003d\u003d","lastModifiedDate":"2023-09-03"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":":init","lastModifiedDate":"2023-09-03"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":"@REM Find the project base dir, i.e. the directory that contains the folder \".mvn\".","lastModifiedDate":"2023-09-03"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":"@REM Fallback to current working directory if not found.","lastModifiedDate":"2023-09-03"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":"set MAVEN_PROJECTBASEDIR\u003d%MAVEN_BASEDIR%","lastModifiedDate":"2023-09-03"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":"IF NOT \"%MAVEN_PROJECTBASEDIR%\"\u003d\u003d\"\" goto endDetectBaseDir","lastModifiedDate":"2023-09-03"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":"set EXEC_DIR\u003d%CD%","lastModifiedDate":"2023-09-03"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":"set WDIR\u003d%EXEC_DIR%","lastModifiedDate":"2023-09-03"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":":findBaseDir","lastModifiedDate":"2023-09-03"},{"lineNumber":94,"author":{"gitId":"Vanessamae23"},"content":"IF EXIST \"%WDIR%\"\\.mvn goto baseDirFound","lastModifiedDate":"2023-09-03"},{"lineNumber":95,"author":{"gitId":"Vanessamae23"},"content":"cd ..","lastModifiedDate":"2023-09-03"},{"lineNumber":96,"author":{"gitId":"Vanessamae23"},"content":"IF \"%WDIR%\"\u003d\u003d\"%CD%\" goto baseDirNotFound","lastModifiedDate":"2023-09-03"},{"lineNumber":97,"author":{"gitId":"Vanessamae23"},"content":"set WDIR\u003d%CD%","lastModifiedDate":"2023-09-03"},{"lineNumber":98,"author":{"gitId":"Vanessamae23"},"content":"goto findBaseDir","lastModifiedDate":"2023-09-03"},{"lineNumber":99,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":100,"author":{"gitId":"Vanessamae23"},"content":":baseDirFound","lastModifiedDate":"2023-09-03"},{"lineNumber":101,"author":{"gitId":"Vanessamae23"},"content":"set MAVEN_PROJECTBASEDIR\u003d%WDIR%","lastModifiedDate":"2023-09-03"},{"lineNumber":102,"author":{"gitId":"Vanessamae23"},"content":"cd \"%EXEC_DIR%\"","lastModifiedDate":"2023-09-03"},{"lineNumber":103,"author":{"gitId":"Vanessamae23"},"content":"goto endDetectBaseDir","lastModifiedDate":"2023-09-03"},{"lineNumber":104,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":105,"author":{"gitId":"Vanessamae23"},"content":":baseDirNotFound","lastModifiedDate":"2023-09-03"},{"lineNumber":106,"author":{"gitId":"Vanessamae23"},"content":"set MAVEN_PROJECTBASEDIR\u003d%EXEC_DIR%","lastModifiedDate":"2023-09-03"},{"lineNumber":107,"author":{"gitId":"Vanessamae23"},"content":"cd \"%EXEC_DIR%\"","lastModifiedDate":"2023-09-03"},{"lineNumber":108,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":109,"author":{"gitId":"Vanessamae23"},"content":":endDetectBaseDir","lastModifiedDate":"2023-09-03"},{"lineNumber":110,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":111,"author":{"gitId":"Vanessamae23"},"content":"IF NOT EXIST \"%MAVEN_PROJECTBASEDIR%\\.mvn\\jvm.config\" goto endReadAdditionalConfig","lastModifiedDate":"2023-09-03"},{"lineNumber":112,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":113,"author":{"gitId":"Vanessamae23"},"content":"@setlocal EnableExtensions EnableDelayedExpansion","lastModifiedDate":"2023-09-03"},{"lineNumber":114,"author":{"gitId":"Vanessamae23"},"content":"for /F \"usebackq delims\u003d\" %%a in (\"%MAVEN_PROJECTBASEDIR%\\.mvn\\jvm.config\") do set JVM_CONFIG_MAVEN_PROPS\u003d!JVM_CONFIG_MAVEN_PROPS! %%a","lastModifiedDate":"2023-09-03"},{"lineNumber":115,"author":{"gitId":"Vanessamae23"},"content":"@endlocal \u0026 set JVM_CONFIG_MAVEN_PROPS\u003d%JVM_CONFIG_MAVEN_PROPS%","lastModifiedDate":"2023-09-03"},{"lineNumber":116,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":117,"author":{"gitId":"Vanessamae23"},"content":":endReadAdditionalConfig","lastModifiedDate":"2023-09-03"},{"lineNumber":118,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":119,"author":{"gitId":"Vanessamae23"},"content":"SET MAVEN_JAVA_EXE\u003d\"%JAVA_HOME%\\bin\\java.exe\"","lastModifiedDate":"2023-09-03"},{"lineNumber":120,"author":{"gitId":"Vanessamae23"},"content":"set WRAPPER_JAR\u003d\"%MAVEN_PROJECTBASEDIR%\\.mvn\\wrapper\\maven-wrapper.jar\"","lastModifiedDate":"2023-09-03"},{"lineNumber":121,"author":{"gitId":"Vanessamae23"},"content":"set WRAPPER_LAUNCHER\u003dorg.apache.maven.wrapper.MavenWrapperMain","lastModifiedDate":"2023-09-03"},{"lineNumber":122,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":123,"author":{"gitId":"Vanessamae23"},"content":"set DOWNLOAD_URL\u003d\"https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar\"","lastModifiedDate":"2023-09-03"},{"lineNumber":124,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":125,"author":{"gitId":"Vanessamae23"},"content":"FOR /F \"usebackq tokens\u003d1,2 delims\u003d\u003d\" %%A IN (\"%MAVEN_PROJECTBASEDIR%\\.mvn\\wrapper\\maven-wrapper.properties\") DO (","lastModifiedDate":"2023-09-03"},{"lineNumber":126,"author":{"gitId":"Vanessamae23"},"content":" IF \"%%A\"\u003d\u003d\"wrapperUrl\" SET DOWNLOAD_URL\u003d%%B","lastModifiedDate":"2023-09-03"},{"lineNumber":127,"author":{"gitId":"Vanessamae23"},"content":")","lastModifiedDate":"2023-09-03"},{"lineNumber":128,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":129,"author":{"gitId":"Vanessamae23"},"content":"@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central","lastModifiedDate":"2023-09-03"},{"lineNumber":130,"author":{"gitId":"Vanessamae23"},"content":"@REM This allows using the maven wrapper in projects that prohibit checking in binary data.","lastModifiedDate":"2023-09-03"},{"lineNumber":131,"author":{"gitId":"Vanessamae23"},"content":"if exist %WRAPPER_JAR% (","lastModifiedDate":"2023-09-03"},{"lineNumber":132,"author":{"gitId":"Vanessamae23"},"content":" if \"%MVNW_VERBOSE%\" \u003d\u003d \"true\" (","lastModifiedDate":"2023-09-03"},{"lineNumber":133,"author":{"gitId":"Vanessamae23"},"content":" echo Found %WRAPPER_JAR%","lastModifiedDate":"2023-09-03"},{"lineNumber":134,"author":{"gitId":"Vanessamae23"},"content":" )","lastModifiedDate":"2023-09-03"},{"lineNumber":135,"author":{"gitId":"Vanessamae23"},"content":") else (","lastModifiedDate":"2023-09-03"},{"lineNumber":136,"author":{"gitId":"Vanessamae23"},"content":" if not \"%MVNW_REPOURL%\" \u003d\u003d \"\" (","lastModifiedDate":"2023-09-03"},{"lineNumber":137,"author":{"gitId":"Vanessamae23"},"content":" SET DOWNLOAD_URL\u003d\"%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar\"","lastModifiedDate":"2023-09-03"},{"lineNumber":138,"author":{"gitId":"Vanessamae23"},"content":" )","lastModifiedDate":"2023-09-03"},{"lineNumber":139,"author":{"gitId":"Vanessamae23"},"content":" if \"%MVNW_VERBOSE%\" \u003d\u003d \"true\" (","lastModifiedDate":"2023-09-03"},{"lineNumber":140,"author":{"gitId":"Vanessamae23"},"content":" echo Couldn\u0027t find %WRAPPER_JAR%, downloading it ...","lastModifiedDate":"2023-09-03"},{"lineNumber":141,"author":{"gitId":"Vanessamae23"},"content":" echo Downloading from: %DOWNLOAD_URL%","lastModifiedDate":"2023-09-03"},{"lineNumber":142,"author":{"gitId":"Vanessamae23"},"content":" )","lastModifiedDate":"2023-09-03"},{"lineNumber":143,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":144,"author":{"gitId":"Vanessamae23"},"content":" powershell -Command \"\u0026{\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":145,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"$webclient \u003d new-object System.Net.WebClient;\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":146,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"if (-not ([string]::IsNullOrEmpty(\u0027%MVNW_USERNAME%\u0027) -and [string]::IsNullOrEmpty(\u0027%MVNW_PASSWORD%\u0027))) {\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":147,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"$webclient.Credentials \u003d new-object System.Net.NetworkCredential(\u0027%MVNW_USERNAME%\u0027, \u0027%MVNW_PASSWORD%\u0027);\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":148,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"}\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":149,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"[Net.ServicePointManager]::SecurityProtocol \u003d [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile(\u0027%DOWNLOAD_URL%\u0027, \u0027%WRAPPER_JAR%\u0027)\"^","lastModifiedDate":"2023-09-03"},{"lineNumber":150,"author":{"gitId":"Vanessamae23"},"content":"\t\t\"}\"","lastModifiedDate":"2023-09-03"},{"lineNumber":151,"author":{"gitId":"Vanessamae23"},"content":" if \"%MVNW_VERBOSE%\" \u003d\u003d \"true\" (","lastModifiedDate":"2023-09-03"},{"lineNumber":152,"author":{"gitId":"Vanessamae23"},"content":" echo Finished downloading %WRAPPER_JAR%","lastModifiedDate":"2023-09-03"},{"lineNumber":153,"author":{"gitId":"Vanessamae23"},"content":" )","lastModifiedDate":"2023-09-03"},{"lineNumber":154,"author":{"gitId":"Vanessamae23"},"content":")","lastModifiedDate":"2023-09-03"},{"lineNumber":155,"author":{"gitId":"Vanessamae23"},"content":"@REM End of extension","lastModifiedDate":"2023-09-03"},{"lineNumber":156,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":157,"author":{"gitId":"Vanessamae23"},"content":"@REM Provide a \"standardized\" way to retrieve the CLI args that will","lastModifiedDate":"2023-09-03"},{"lineNumber":158,"author":{"gitId":"Vanessamae23"},"content":"@REM work with both Windows and non-Windows executions.","lastModifiedDate":"2023-09-03"},{"lineNumber":159,"author":{"gitId":"Vanessamae23"},"content":"set MAVEN_CMD_LINE_ARGS\u003d%*","lastModifiedDate":"2023-09-03"},{"lineNumber":160,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":161,"author":{"gitId":"Vanessamae23"},"content":"%MAVEN_JAVA_EXE% ^","lastModifiedDate":"2023-09-03"},{"lineNumber":162,"author":{"gitId":"Vanessamae23"},"content":" %JVM_CONFIG_MAVEN_PROPS% ^","lastModifiedDate":"2023-09-03"},{"lineNumber":163,"author":{"gitId":"Vanessamae23"},"content":" %MAVEN_OPTS% ^","lastModifiedDate":"2023-09-03"},{"lineNumber":164,"author":{"gitId":"Vanessamae23"},"content":" %MAVEN_DEBUG_OPTS% ^","lastModifiedDate":"2023-09-03"},{"lineNumber":165,"author":{"gitId":"Vanessamae23"},"content":" -classpath %WRAPPER_JAR% ^","lastModifiedDate":"2023-09-03"},{"lineNumber":166,"author":{"gitId":"Vanessamae23"},"content":" \"-Dmaven.multiModuleProjectDirectory\u003d%MAVEN_PROJECTBASEDIR%\" ^","lastModifiedDate":"2023-09-03"},{"lineNumber":167,"author":{"gitId":"Vanessamae23"},"content":" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*","lastModifiedDate":"2023-09-03"},{"lineNumber":168,"author":{"gitId":"Vanessamae23"},"content":"if ERRORLEVEL 1 goto error","lastModifiedDate":"2023-09-03"},{"lineNumber":169,"author":{"gitId":"Vanessamae23"},"content":"goto end","lastModifiedDate":"2023-09-03"},{"lineNumber":170,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":171,"author":{"gitId":"Vanessamae23"},"content":":error","lastModifiedDate":"2023-09-03"},{"lineNumber":172,"author":{"gitId":"Vanessamae23"},"content":"set ERROR_CODE\u003d1","lastModifiedDate":"2023-09-03"},{"lineNumber":173,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":174,"author":{"gitId":"Vanessamae23"},"content":":end","lastModifiedDate":"2023-09-03"},{"lineNumber":175,"author":{"gitId":"Vanessamae23"},"content":"@endlocal \u0026 set ERROR_CODE\u003d%ERROR_CODE%","lastModifiedDate":"2023-09-03"},{"lineNumber":176,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":177,"author":{"gitId":"Vanessamae23"},"content":"if not \"%MAVEN_SKIP_RC%\"\u003d\u003d\"\" goto skipRcPost","lastModifiedDate":"2023-09-03"},{"lineNumber":178,"author":{"gitId":"Vanessamae23"},"content":"@REM check for post script, once with legacy .bat ending and once with .cmd ending","lastModifiedDate":"2023-09-03"},{"lineNumber":179,"author":{"gitId":"Vanessamae23"},"content":"if exist \"%USERPROFILE%\\mavenrc_post.bat\" call \"%USERPROFILE%\\mavenrc_post.bat\"","lastModifiedDate":"2023-09-03"},{"lineNumber":180,"author":{"gitId":"Vanessamae23"},"content":"if exist \"%USERPROFILE%\\mavenrc_post.cmd\" call \"%USERPROFILE%\\mavenrc_post.cmd\"","lastModifiedDate":"2023-09-03"},{"lineNumber":181,"author":{"gitId":"Vanessamae23"},"content":":skipRcPost","lastModifiedDate":"2023-09-03"},{"lineNumber":182,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":183,"author":{"gitId":"Vanessamae23"},"content":"@REM pause the script if MAVEN_BATCH_PAUSE is set to \u0027on\u0027","lastModifiedDate":"2023-09-03"},{"lineNumber":184,"author":{"gitId":"Vanessamae23"},"content":"if \"%MAVEN_BATCH_PAUSE%\"\u003d\u003d\"on\" pause","lastModifiedDate":"2023-09-03"},{"lineNumber":185,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":186,"author":{"gitId":"Vanessamae23"},"content":"if \"%MAVEN_TERMINATE_CMD%\"\u003d\u003d\"on\" exit %ERROR_CODE%","lastModifiedDate":"2023-09-03"},{"lineNumber":187,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":188,"author":{"gitId":"Vanessamae23"},"content":"cmd /C exit /B %ERROR_CODE%","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":188}},{"path":"demo/src/main/java/com/example/demo/HelloApplication.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package com.example.demo;","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"public class HelloApplication extends Application {","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" public void start(Stage stage) throws IOException {","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(HelloApplication.class.getResource(\"hello-view.fxml\"));","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" Scene scene \u003d new Scene(fxmlLoader.load(), 320, 240);","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" stage.setTitle(\"Hello!\");","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-03"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" stage.show();","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" launch();","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":23}},{"path":"demo/src/main/java/com/example/demo/HelloController.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package com.example.demo;","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"public class HelloController {","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":" private Label welcomeText;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" protected void onHelloButtonClick() {","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" welcomeText.setText(\"Welcome to JavaFX Application!\");","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":14}},{"path":"demo/src/main/java/module-info.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"module com.example.demo {","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":" requires javafx.controls;","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":" requires javafx.fxml;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":" opens com.example.demo to javafx.fxml;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":" exports com.example.demo;","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":8}},{"path":"demo/src/main/resources/com/example/demo/hello-view.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"\u003cVBox alignment\u003d\"CENTER\" spacing\u003d\"20.0\" xmlns:fx\u003d\"http://javafx.com/fxml\"","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":" fx:controller\u003d\"com.example.demo.HelloController\"\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" \u003cInsets bottom\u003d\"20.0\" left\u003d\"20.0\" right\u003d\"20.0\" top\u003d\"20.0\"/\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" \u003cLabel fx:id\u003d\"welcomeText\"/\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" \u003cButton text\u003d\"Hello!\" onAction\u003d\"#onHelloButtonClick\"/\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"\u003c/VBox\u003e","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":16}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"# Duke Project Pro (Project name)","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"\u003e “Your mind is for having ideas, not holding them.” – David Allen","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"DukePro frees your mind of having to remember things you need to do. It\u0027s,","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"- Text-based","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"- Best way to learn","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"- Easy and Simple to use","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"All you need to do is,","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"1. Download from [link](https://nus-cs2103-ay2324s1.github.io/website/schedule/week4/project.html)","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"2. Double click it","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"3. Add your tasks","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"4. Let it manage your task for you :blush:","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"It is also *Emphasize* Free","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"## User Guide","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"\u003e Words in `UPPER_CASE` are the parameters to be supplied by the user. For example, if users type in `task TASK`, the `TASK` is a parameter which can be used as the name of the task user wants to fill it in ","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":"### Adding a task : `task`","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":"Adds a task to remind users what to do","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":"Format : `task TASK` ","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":"| `task Study CS2103T` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":"| `task Revise CS2103T with John Doe` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":"### Adding an event : `event`","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"Adds an event to remind users of a one-time activity","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":"Format : `event NAME /from DAY TIME /to DAY TIME` where `TIME` is in this format `[NUMBER][am/pm]` ","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":"| `event Supernova /from Mon 2pm /to Tue 2pm` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":"| `event CS2103T /from Mon 2pm /to Sun 2pm` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":"### Adding a deadline: `deadline`","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":"Adds a deadline to remind users to do something before the due date","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":"Format : `deadline NAME /by DD/MM/YYYY` ","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":"| `deadline return book /by 02/12/2019` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":"| `deadline CS2103T IP /by 13/09/2023` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":"### List all tasks : `list`","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":"Shows user all the current tasks both pending and completed as long as it is not removed / deleted","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":"Format : `list` ","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":"| `list` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":"### Mark as Done : `mark`","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":"Marks a specific task / deadline / event as completed with a tick","lastModifiedDate":"2023-09-13"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":"Format : `mark INDEX` where INDEX is the current position of the activity users want to mark as done","lastModifiedDate":"2023-09-13"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":"- The `INDEX` must be a positive integer 1,2,3 where 1 is the first task appearing in the list","lastModifiedDate":"2023-09-13"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":"| `mark 1` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":"| `mark 2` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":"### Delete a Specific Job / Task : `delete`","lastModifiedDate":"2023-09-13"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":"Deletes the specified job / task from the task list","lastModifiedDate":"2023-09-13"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":"Format : `delete INDEX` where INDEX is the current position of the activity users want to delete","lastModifiedDate":"2023-09-13"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":"- The `INDEX` must be a positive integer 1,2,3 where 1 is the first task appearing in the list","lastModifiedDate":"2023-09-13"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":"| `delete 1` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":"| `delete 2` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":"### Bulk Delete : `remove`","lastModifiedDate":"2023-09-13"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":"Mass Removal of Activities that contain a certain word","lastModifiedDate":"2023-09-13"},{"lineNumber":94,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":95,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":96,"author":{"gitId":"Vanessamae23"},"content":"Format : `remove KEYWORD` where KEYWORD is all the activities that contain that specific keyword","lastModifiedDate":"2023-09-13"},{"lineNumber":97,"author":{"gitId":"Vanessamae23"},"content":"- The `KEYWORD` is case-sensitive","lastModifiedDate":"2023-09-13"},{"lineNumber":98,"author":{"gitId":"Vanessamae23"},"content":"- The order of the word matters","lastModifiedDate":"2023-09-13"},{"lineNumber":99,"author":{"gitId":"Vanessamae23"},"content":"- Partial words will be matched","lastModifiedDate":"2023-09-13"},{"lineNumber":100,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":101,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":102,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":103,"author":{"gitId":"Vanessamae23"},"content":"| `remove CS2103T` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":104,"author":{"gitId":"Vanessamae23"},"content":"| `remove playing` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":105,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":106,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":107,"author":{"gitId":"Vanessamae23"},"content":"### Navigate to Specific Activty : `find`","lastModifiedDate":"2023-09-13"},{"lineNumber":108,"author":{"gitId":"Vanessamae23"},"content":"Finds tasks / activities whose naming contain of the given keywords","lastModifiedDate":"2023-09-13"},{"lineNumber":109,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":110,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":111,"author":{"gitId":"Vanessamae23"},"content":"Format : `find KEYWORD` where KEYWORD is all the activities that contain that specific keyword","lastModifiedDate":"2023-09-13"},{"lineNumber":112,"author":{"gitId":"Vanessamae23"},"content":"- The `KEYWORD` is case-sensitive","lastModifiedDate":"2023-09-13"},{"lineNumber":113,"author":{"gitId":"Vanessamae23"},"content":"- The order of the word matters","lastModifiedDate":"2023-09-13"},{"lineNumber":114,"author":{"gitId":"Vanessamae23"},"content":"- Partial words will be matched","lastModifiedDate":"2023-09-13"},{"lineNumber":115,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":116,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":117,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":118,"author":{"gitId":"Vanessamae23"},"content":"| `find CS2103T` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":119,"author":{"gitId":"Vanessamae23"},"content":"| `find playing` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":120,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":121,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":122,"author":{"gitId":"Vanessamae23"},"content":"### Exiting the Duke : `bye`","lastModifiedDate":"2023-09-13"},{"lineNumber":123,"author":{"gitId":"Vanessamae23"},"content":"Exit the program and saves the current entry","lastModifiedDate":"2023-09-13"},{"lineNumber":124,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":125,"author":{"gitId":"Vanessamae23"},"content":"Format : `bye` ","lastModifiedDate":"2023-09-13"},{"lineNumber":126,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":127,"author":{"gitId":"Vanessamae23"},"content":"| Examples | ","lastModifiedDate":"2023-09-13"},{"lineNumber":128,"author":{"gitId":"Vanessamae23"},"content":"| --- |","lastModifiedDate":"2023-09-13"},{"lineNumber":129,"author":{"gitId":"Vanessamae23"},"content":"| `bye` | ","lastModifiedDate":"2023-09-13"},{"lineNumber":130,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":131,"author":{"gitId":"Vanessamae23"},"content":"___","lastModifiedDate":"2023-09-13"},{"lineNumber":132,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"}],"authorContributionMap":{"Vanessamae23":119,"-":13}},{"path":"src/main/java/custom/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package custom;","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.text.Font;","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"import seedu.MainWindow;","lastModifiedDate":"2023-10-17"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" private Label dialog;","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" private DialogBox(String text, Image img, boolean user) {","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-10-17"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-03"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-03"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-03"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-03"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-03"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" Font customFont \u003d Font.font(\"Arial\", 14);","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" dialog.setFont(customFont);","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" dialog.setWrapText(true); // Enable text wrapping","lastModifiedDate":"2023-10-17"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" if(user) {","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" this.setStyle(\"-fx-background-color: white;\");","lastModifiedDate":"2023-10-17"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" this.setStyle(\"-fx-background-color: lightgrey;\");","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-03"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-09-03"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-03"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" private void flip() {","lastModifiedDate":"2023-09-03"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-03"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-03"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-03"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-03"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-03"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" return new DialogBox(text, img, true);","lastModifiedDate":"2023-09-13"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-03"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" var db \u003d new DialogBox(text, img, false);","lastModifiedDate":"2023-09-13"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" db.flip();","lastModifiedDate":"2023-09-03"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":" return db;","lastModifiedDate":"2023-09-03"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":72}},{"path":"src/main/java/seedu/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"public class Command {","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":" private String command;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":" private Ui ui;","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" private boolean isExit \u003d false;","lastModifiedDate":"2023-10-17"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" private Storage storage;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" private TaskList tasks;","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" private int index;","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" public Command(String command, Ui ui, Storage storage, TaskList tasks) {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" this.command \u003d command;","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" this.ui \u003d ui;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" this.storage \u003d storage;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" public Command(String command, Ui ui, Storage storage, TaskList tasks, int index) {","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" this.command \u003d command;","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" this.ui \u003d ui;","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" this.storage \u003d storage;","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" this.index \u003d index;","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" public ArrayList\u003cString\u003e execute() throws Exception {","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cString\u003e s \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" if (command.equals(\"bye\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.showByeMessage());","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" this.storage.save(this.tasks);","lastModifiedDate":"2023-09-04"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.equals(\"list\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.showTask(this.tasks));","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.equals(\"delete\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":" Task removed \u003d this.tasks.remove(this.index);","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.removeTask(removed, this.tasks.getLen()));","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.equals(\"mark\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" this.tasks.mark(this.index);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.showMarked());","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"find\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" String keyword \u003d command.substring(4).trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cTask\u003e foundWords \u003d this.tasks.find(keyword);","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.showFoundWords(foundWords));","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"remove\")) {","lastModifiedDate":"2023-09-11"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" String keyword \u003d command.substring(6).trim();","lastModifiedDate":"2023-09-11"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cTask\u003e foundTasks \u003d this.tasks.find(keyword);","lastModifiedDate":"2023-09-11"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cTask\u003e removedTasks \u003d this.tasks.specificRemove(foundTasks);","lastModifiedDate":"2023-09-11"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.showMassDeleteSuccess(removedTasks));","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" Task curr \u003d new Task(command.substring(command.indexOf(\" \")),","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" command.substring(0, command.indexOf(\" \")));","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" s.add(this.ui.addTask(curr));","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" this.tasks.add(curr);","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Some error occurred \" + e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" return s;","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" public boolean exit() {","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" return this.isExit;","lastModifiedDate":"2023-10-17"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":68}},{"path":"src/main/java/seedu/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-10-17"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-10-17"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.io.IOException;","lastModifiedDate":"2023-10-17"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-17"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-10-17"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-10-17"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-10-17"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-10-17"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-10-17"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-10-17"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-10-17"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-10-17"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.Region;","lastModifiedDate":"2023-10-17"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-10-17"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-10-17"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-10-17"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" * The main class","lastModifiedDate":"2023-10-17"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-10-17"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":"public class Duke {","lastModifiedDate":"2023-10-17"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-10-17"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" private Image user \u003d new Image(this.getClass().getResourceAsStream(\"/user.jpg\"));","lastModifiedDate":"2023-10-17"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" private Image duke \u003d new Image(this.getClass().getResourceAsStream(\"/ans.png\"));","lastModifiedDate":"2023-10-17"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-10-17"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" private TextField userInput;","lastModifiedDate":"2023-10-17"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" private Button sendButton;","lastModifiedDate":"2023-10-17"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" private Scene scene;","lastModifiedDate":"2023-10-17"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" private Ui ui;","lastModifiedDate":"2023-10-17"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" private Storage storage;","lastModifiedDate":"2023-10-17"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" private TaskList tasks;","lastModifiedDate":"2023-10-17"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" private static void writeToFile(String filePath, String textToAdd) throws IOException {","lastModifiedDate":"2023-10-17"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" FileWriter fw \u003d new FileWriter(filePath);","lastModifiedDate":"2023-10-17"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":" fw.write(textToAdd);","lastModifiedDate":"2023-10-17"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" fw.close();","lastModifiedDate":"2023-10-17"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" public Duke(String filePath) {","lastModifiedDate":"2023-10-17"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-10-17"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" storage \u003d new Storage(filePath);","lastModifiedDate":"2023-10-17"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-10-17"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" this.tasks \u003d storage.load();","lastModifiedDate":"2023-10-17"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-10-17"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" ui.showError(e.getMessage());","lastModifiedDate":"2023-10-17"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" tasks \u003d new TaskList(null);","lastModifiedDate":"2023-10-17"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-10-17"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-10-17"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-10-17"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-10-17"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" private String handleUserInput() {","lastModifiedDate":"2023-10-17"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" Label userText \u003d new Label(userInput.getText());","lastModifiedDate":"2023-10-17"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-10-17"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" custom.DialogBox.getUserDialog( userText.toString(), user)","lastModifiedDate":"2023-10-17"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" );","lastModifiedDate":"2023-10-17"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":" userInput.clear();","lastModifiedDate":"2023-10-17"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" return userText.toString();","lastModifiedDate":"2023-10-17"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-10-17"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" * Shows the response from the Duke after handling the user input.","lastModifiedDate":"2023-10-17"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-10-17"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":" public String[] getResponse(String input) {","lastModifiedDate":"2023-10-17"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-10-17"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":" Command c \u003d Parser.parse(input, this.ui, this.storage, this.tasks);","lastModifiedDate":"2023-10-17"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cString\u003e s \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-17"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":" s \u003d c.execute();","lastModifiedDate":"2023-10-17"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":" return s.toArray(new String[0]);","lastModifiedDate":"2023-10-17"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-10-17"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":" String[] s \u003d new String[1];","lastModifiedDate":"2023-10-17"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":" s[0] \u003d this.ui.showError(\"Something wrong! \" + e.getMessage());","lastModifiedDate":"2023-10-17"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":" return s;","lastModifiedDate":"2023-10-17"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":" public void run() {","lastModifiedDate":"2023-10-17"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":" this.ui.showWelcome(dialogContainer);","lastModifiedDate":"2023-10-17"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-17"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":" String filename \u003d \"src/save.txt\";","lastModifiedDate":"2023-10-17"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-10-17"}],"authorContributionMap":{"Vanessamae23":93}},{"path":"src/main/java/seedu/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"public class Launcher {","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-10-17"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":12}},{"path":"src/main/java/seedu/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" private Duke duke \u003d new Duke(System.getProperty(\"user.home\") + \"/src/save.txt\");","lastModifiedDate":"2023-10-17"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" private String userHomeDirectory \u003d System.getProperty(\"user.dir\");","lastModifiedDate":"2023-10-17"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-10-17"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" stage.show();","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-03"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":35}},{"path":"src/main/java/seedu/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-10-17"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" private Duke duke;","lastModifiedDate":"2023-10-17"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/user.jpg\"));","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/ans.png\"));","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" public void initialize() {","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" * Sets the Duke model","lastModifiedDate":"2023-09-11"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" * @param d Duke","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-10-17"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-03"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-09-03"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-03"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-09-03"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" @FXML","lastModifiedDate":"2023-09-03"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" if(input.equals(\"exit\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" custom.DialogBox.getUserDialog(input, userImage)","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" );","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.getChildren().add(","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" custom.DialogBox.getDukeDialog(\"Press exit close\", dukeImage)","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" );","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" userInput.clear();","lastModifiedDate":"2023-09-05"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" String[] response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-05"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-03"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" custom.DialogBox.getUserDialog(input, userImage)","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" );","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":" for (int i \u003d 0; i \u003c response.length; i++) {","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" dialogContainer.getChildren().add(","lastModifiedDate":"2023-09-05"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" custom.DialogBox.getDukeDialog(response[i], dukeImage)","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" );","lastModifiedDate":"2023-09-03"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" userInput.clear();","lastModifiedDate":"2023-09-03"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":70}},{"path":"src/main/java/seedu/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":" * Parses user input.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"public class Parser {","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":" public static Command parse(String command, Ui ui, Storage storage, TaskList tasks) {","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":" ","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":" if(command.equals(\"bye\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" assert command !\u003d \"bye\" : \" Command should be a bye\";","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" return new Command(command, ui, storage, tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.equals(\"list\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" assert command !\u003d \"list\" : \" Command should be a list\";","lastModifiedDate":"2023-09-11"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" return new Command(command, ui, storage, tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"delete \")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" String[] s \u003d command.split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" int removeIndex \u003d Integer.parseInt(s[1]) - 1;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" return new Command(\"delete\", ui, storage, tasks, removeIndex);","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"mark \")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" int current \u003d Integer.parseInt(command.substring(5)) - 1;","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" return new Command(\"mark\", ui, storage, tasks, current);","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"find \")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" return new Command(command, ui, storage, tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" } else if (command.startsWith(\"remove \")) {","lastModifiedDate":"2023-09-11"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" return new Command(command, ui, storage, tasks);","lastModifiedDate":"2023-09-11"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" return new Command(command, ui, storage, tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":32}},{"path":"src/main/java/seedu/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.io.File;","lastModifiedDate":"2023-10-17"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import java.nio.file.Files;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import java.nio.file.Path;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import java.nio.file.Paths;","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import java.util.List;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"public class Storage {","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" private final Path filePath;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" private String filename;","lastModifiedDate":"2023-10-17"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" * Stores the file of the tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" this.filename \u003d filePath;","lastModifiedDate":"2023-10-17"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" File file \u003d new File(filename);","lastModifiedDate":"2023-10-17"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" File parentDirectory \u003d file.getParentFile();","lastModifiedDate":"2023-10-17"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" if (!parentDirectory.exists()) {","lastModifiedDate":"2023-10-17"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" parentDirectory.mkdirs();","lastModifiedDate":"2023-10-17"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" this.filePath \u003d Paths.get(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" if(file.exists()) {","lastModifiedDate":"2023-10-17"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" return;","lastModifiedDate":"2023-10-17"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-10-17"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" file.createNewFile();","lastModifiedDate":"2023-10-17"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-10-17"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" System.out.println(\"Something went wrong: \" + e.getMessage());","lastModifiedDate":"2023-10-17"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" public TaskList load() throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" List\u003cString\u003e tasks \u003d Files.readAllLines(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" return TaskList.getFromFile(tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" } catch(IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" throw new IOException(\"Error writing to file: \" + filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" public void save(TaskList tasks) throws IOException {","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" List\u003cString\u003e encodedTasks \u003d TaskList.encode(tasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" Files.write(filePath, encodedTasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" } catch (IOException ioe) {","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" throw new IOException(\"Error writing to file: \" + filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":58}},{"path":"src/main/java/seedu/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"public class Task {","lastModifiedDate":"2023-08-21"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":" protected String description;","lastModifiedDate":"2023-08-21"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-21"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":" protected Type category;","lastModifiedDate":"2023-08-21"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":" protected String title;","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" protected String start \u003d \"\";","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" protected String end \u003d \"\";","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" * Loads the task class","lastModifiedDate":"2023-10-17"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" public Task(String description, String category) throws IllegalArgumentException {","lastModifiedDate":"2023-08-21"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-21"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" if (category.equals(\"todo\")) {","lastModifiedDate":"2023-08-21"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" this.category \u003d Type.ToDo;","lastModifiedDate":"2023-08-21"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" String[] splitWord \u003ddescription.split(\" \", 2);","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-21"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" this.title \u003d splitWord[1].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" this.description \u003d splitWord[0].trim() + \" \" + title;","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-21"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" throw new IllegalArgumentException(\"Please correct the format\");","lastModifiedDate":"2023-08-21"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" } else if (category.equals(\"deadline\")) {","lastModifiedDate":"2023-08-21"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" this.category \u003d Type.Deadline;","lastModifiedDate":"2023-08-21"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" String[] splitWord \u003ddescription.split(\"/\", 4);","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-21"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" if (splitWord.length \u003d\u003d 2) {","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" this.title \u003d splitWord[0].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":" this.end \u003d splitWord[1].split(\"by \")[1].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" this.description \u003d title + \"(\"+ splitWord[1].split(\"by \")[1].trim() + \")\";","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" String date \u003d splitWord[1].substring( 3).length() \u003d\u003d 1 ? \"0\"","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" + splitWord[1].substring( 3) : splitWord[1].substring( 3);","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" String endDate \u003d splitWord[3]+\"-\"+splitWord[2]+\"-\" + date;","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" String formattedDate \u003d LocalDate.parse(endDate)","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" .format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" this.title \u003d splitWord[0];","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" this.end \u003d formattedDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" this.description \u003d splitWord[0] + \"(\"+ formattedDate + \")\";","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-21"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" throw new IllegalArgumentException(\"Please correct the format\");","lastModifiedDate":"2023-08-21"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" } else if (category.equals(\"event\")) {","lastModifiedDate":"2023-08-21"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" String[] splitWord \u003d description.split(\"/(from|to)\", 3);","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" this.category \u003d Type.Event;","lastModifiedDate":"2023-08-21"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-21"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" this.title \u003d splitWord[0].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" this.start \u003d splitWord[1].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" this.end \u003d splitWord[2].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" this.description \u003d title + \"(From : \" + start + \" To : \" + end + \")\";","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-21"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" throw new IllegalArgumentException(\"Please correct the format\");","lastModifiedDate":"2023-08-21"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-08-21"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":" throw new IllegalArgumentException(\"OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-08-21"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" * Returns the status of the task","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" * @returns a String of X if task is done otherwise a blank space","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-21"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":" return (isDone ? \"X\" : \" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":" * Returns the status of the task","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":" * @returns a String more descriptive status of the task","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":" public String getStatus() {","lastModifiedDate":"2023-08-21"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":" String cat \u003d this.category \u003d\u003d Type.ToDo ? \"T\" : this.category \u003d\u003d Type.Deadline ? \"D\" : \"E\";","lastModifiedDate":"2023-08-21"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":" return \"[\" + cat +\"]\" + \"[\"+ this.getStatusIcon() + \"] \" + this.description.trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":" * Sets the description of the task","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":" * @param desc the text description of the task","lastModifiedDate":"2023-09-11"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":" public void setDescription(String desc) {","lastModifiedDate":"2023-08-21"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":" this.description \u003d desc;","lastModifiedDate":"2023-08-21"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":94,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"Vanessamae23"},"content":" * Marks a certain task as done","lastModifiedDate":"2023-08-30"},{"lineNumber":96,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"Vanessamae23"},"content":" * @returns a String to confirm the checked","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":99,"author":{"gitId":"Vanessamae23"},"content":" public String mark() {","lastModifiedDate":"2023-08-21"},{"lineNumber":100,"author":{"gitId":"Vanessamae23"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-21"},{"lineNumber":101,"author":{"gitId":"Vanessamae23"},"content":" assert this.isDone \u003d\u003d true : \"Something wrong with marking\";","lastModifiedDate":"2023-09-11"},{"lineNumber":102,"author":{"gitId":"Vanessamae23"},"content":" return \"[\"+ this.getStatusIcon() + \"] \" + this.description;","lastModifiedDate":"2023-08-21"},{"lineNumber":103,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":104,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":105,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"Vanessamae23"},"content":" * Returns a string to show the status of the task","lastModifiedDate":"2023-08-30"},{"lineNumber":107,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"Vanessamae23"},"content":" * @returns a status of the current task","lastModifiedDate":"2023-08-30"},{"lineNumber":109,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":110,"author":{"gitId":"Vanessamae23"},"content":" @Override","lastModifiedDate":"2023-08-21"},{"lineNumber":111,"author":{"gitId":"Vanessamae23"},"content":" public String toString() {","lastModifiedDate":"2023-08-21"},{"lineNumber":112,"author":{"gitId":"Vanessamae23"},"content":" return this.getStatus();","lastModifiedDate":"2023-08-21"},{"lineNumber":113,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-21"},{"lineNumber":114,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-21"},{"lineNumber":115,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-21"}],"authorContributionMap":{"Vanessamae23":115}},{"path":"src/main/java/seedu/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import java.text.SimpleDateFormat;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"import java.util.Date;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import java.util.List;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import java.util.regex.Matcher;","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import java.util.regex.Pattern;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"public class TaskList {","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" private static final String DELIMITER \u003d \"|\";","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" private static final String EMPTY \u003d \"\";","lastModifiedDate":"2023-09-11"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" private List\u003cTask\u003e lists \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" public TaskList(List\u003cTask\u003e t) {","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" this.lists \u003d t;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" * Add a tasks in the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" * @param t task the Task class that is to be added","lastModifiedDate":"2023-09-11"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" public void add(Task t) throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" this.lists.add(t);","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" } catch(IllegalArgumentException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Unfortunately, \" + e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":" * Returns the current task from the list","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" * @param index the position of the current task to be retrieved","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":" * @returns a Task object of interest","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" public Task get(int index) {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" return this.lists.get(index);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" * Retrieves task lists from a list of string from a file","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" * @param from source of the lists of strings","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" * @returns a TaskList of the current lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" public static TaskList getFromFile(List\u003cString\u003e from) throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" List\u003cTask\u003e lists \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":" for (String l : from) {","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" String[] chars \u003d l.split(\"\\\\|\");","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" if (chars[0].equals(\"ToDo\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" lists.add(new Task(\"todo\" + \" \" + chars[2] ,\"todo\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" } else if (chars[0].equals(\"Event\")){","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" String title \u003d chars[2];","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" String fr \u003d chars[4].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" String to \u003d chars[3].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":" Task temp \u003d new Task(title + \" /from \" + fr + \" /to \" + to, \"event\");","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":" if (chars[1].equals(\"true\")) temp.isDone \u003d true;","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" lists.add(temp);","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" String title \u003d chars[2].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" String to \u003d chars[3].trim();","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" Task temp \u003d new Task(title + \" /by \" + to,\"deadline\");","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" if (chars[1].equals(\"true\")) temp.isDone \u003d true;","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":" lists.add(temp);","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":" return new TaskList(lists);","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":" throw new Error(\"Parsing error\");","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":" * Encodes TaskList to a list of string to be used in a file","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":" * @param tasks the list of Tasks objects","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":" * @returns a String List to be stored in a file","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":" public static List\u003cString\u003e encode(TaskList tasks) {","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":" int curr \u003d 1;","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":" List\u003cString\u003e arrays \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":" for (int i \u003d 0; i \u003c tasks.getLen(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":" if (tasks.get(i) !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":" Task t \u003d tasks.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":" String start \u003d !t.start.isEmpty() ? t.start + DELIMITER : EMPTY;","lastModifiedDate":"2023-09-11"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":" String end \u003d !t.end.isEmpty()? t.end + DELIMITER : EMPTY;","lastModifiedDate":"2023-09-11"},{"lineNumber":94,"author":{"gitId":"Vanessamae23"},"content":" arrays.add(t.category.toString() + DELIMITER + (t.isDone ? \"true\" : \"false\")","lastModifiedDate":"2023-09-11"},{"lineNumber":95,"author":{"gitId":"Vanessamae23"},"content":" + DELIMITER + t.title + DELIMITER + end + start);","lastModifiedDate":"2023-09-11"},{"lineNumber":96,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"Vanessamae23"},"content":" ;","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":99,"author":{"gitId":"Vanessamae23"},"content":" return arrays;","lastModifiedDate":"2023-08-30"},{"lineNumber":100,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":101,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":103,"author":{"gitId":"Vanessamae23"},"content":" * Returns the size of the TaskList","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"Vanessamae23"},"content":" * @returns the length of the tasks number","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":107,"author":{"gitId":"Vanessamae23"},"content":" public int getLen() {","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"Vanessamae23"},"content":" return this.lists.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":109,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":110,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":111,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":112,"author":{"gitId":"Vanessamae23"},"content":" * Marks a task in the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":113,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":114,"author":{"gitId":"Vanessamae23"},"content":" * @param index position of the task in the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":115,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":116,"author":{"gitId":"Vanessamae23"},"content":" public void mark(int index) throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":117,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"Vanessamae23"},"content":" this.lists.get(index).mark();","lastModifiedDate":"2023-08-30"},{"lineNumber":119,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Sorry there is no such task\");","lastModifiedDate":"2023-08-30"},{"lineNumber":121,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":122,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":123,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":124,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":125,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":126,"author":{"gitId":"Vanessamae23"},"content":" * Removes a task from lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":127,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":128,"author":{"gitId":"Vanessamae23"},"content":" * @param index the position of the task to be removed","lastModifiedDate":"2023-08-30"},{"lineNumber":129,"author":{"gitId":"Vanessamae23"},"content":" * @returns the Task that was removed","lastModifiedDate":"2023-08-30"},{"lineNumber":130,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":131,"author":{"gitId":"Vanessamae23"},"content":" public Task remove(int index) throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":132,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":133,"author":{"gitId":"Vanessamae23"},"content":" Task now \u003d lists.get(index);","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"Vanessamae23"},"content":" this.lists.remove(now);","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"Vanessamae23"},"content":" return now;","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Something wrong with the given input\");","lastModifiedDate":"2023-08-30"},{"lineNumber":138,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":139,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":140,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":141,"author":{"gitId":"Vanessamae23"},"content":" public ArrayList\u003cTask\u003e specificRemove(ArrayList\u003cTask\u003e tasks) throws Exception {","lastModifiedDate":"2023-09-11"},{"lineNumber":142,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-09-11"},{"lineNumber":143,"author":{"gitId":"Vanessamae23"},"content":" for(Task task : tasks) {","lastModifiedDate":"2023-09-11"},{"lineNumber":144,"author":{"gitId":"Vanessamae23"},"content":" this.lists.remove(task);","lastModifiedDate":"2023-09-11"},{"lineNumber":145,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":146,"author":{"gitId":"Vanessamae23"},"content":" return tasks;","lastModifiedDate":"2023-09-11"},{"lineNumber":147,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-09-11"},{"lineNumber":148,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Something wrong with the given input\");","lastModifiedDate":"2023-09-11"},{"lineNumber":149,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":150,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":151,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":152,"author":{"gitId":"Vanessamae23"},"content":" public ArrayList\u003cTask\u003e find(String keyword) throws Exception {","lastModifiedDate":"2023-08-30"},{"lineNumber":153,"author":{"gitId":"Vanessamae23"},"content":" ArrayList\u003cTask\u003e foundWords \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":154,"author":{"gitId":"Vanessamae23"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":155,"author":{"gitId":"Vanessamae23"},"content":" for(Task t : this.lists) {","lastModifiedDate":"2023-08-30"},{"lineNumber":156,"author":{"gitId":"Vanessamae23"},"content":" if(t.description.contains(keyword)) {","lastModifiedDate":"2023-08-30"},{"lineNumber":157,"author":{"gitId":"Vanessamae23"},"content":" foundWords.add(t);","lastModifiedDate":"2023-08-30"},{"lineNumber":158,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":159,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":160,"author":{"gitId":"Vanessamae23"},"content":" return foundWords;","lastModifiedDate":"2023-08-30"},{"lineNumber":161,"author":{"gitId":"Vanessamae23"},"content":" } catch(Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":162,"author":{"gitId":"Vanessamae23"},"content":" throw new Exception(\"Keyword not found\");","lastModifiedDate":"2023-08-30"},{"lineNumber":163,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":164,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":165,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":165}},{"path":"src/main/java/seedu/Type.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"public enum Type {","lastModifiedDate":"2023-08-21"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":" ToDo, Deadline, Event","lastModifiedDate":"2023-08-21"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-21"}],"authorContributionMap":{"Vanessamae23":5}},{"path":"src/main/java/seedu/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"package seedu;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"import java.io.PrintStream;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":"public class Ui {","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" private Scanner sc;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" private final PrintStream out;","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" public Ui() {","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" this.sc \u003d new Scanner(System.in);","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" this.out \u003d System.out;","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" * Prints welcome message to the user","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" public String showWelcome(VBox dialogContainer) {","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":" String logo \u003d \"Bacon Pancake\";","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Vanessamae23"},"content":" return (\" Hello from \" + logo + \"\\n What can I do for you? \\n\" + \"---------------------------------- \\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Vanessamae23"},"content":" * Prints ending message to the user","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"Vanessamae23"},"content":" public String showByeMessage() {","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"Vanessamae23"},"content":" return (\"Bacon Pancake : \\n\" + \"Bye! See you again soon \");","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"Vanessamae23"},"content":" * Prints out all the tasks in the list of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"Vanessamae23"},"content":" * @param tasks the TaskList class that contains all the current tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Vanessamae23"},"content":" public String showTask(TaskList tasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"Vanessamae23"},"content":" StringBuilder s \u003d new StringBuilder();","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"Vanessamae23"},"content":" s.append(\"Bacon Pancake : Below are the lists\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"Vanessamae23"},"content":" int curr \u003d 1;","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Vanessamae23"},"content":" for (int i \u003d 0; i \u003c tasks.getLen(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Vanessamae23"},"content":" if (tasks.get(i) !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"Vanessamae23"},"content":" Task t \u003d tasks.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"Vanessamae23"},"content":" s.append((curr++) + \". \" + t.getStatus() + \"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"Vanessamae23"},"content":" assert curr \u003e\u003d tasks.getLen() : \"Something wrong with the task length\";","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"Vanessamae23"},"content":" return s.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"Vanessamae23"},"content":" * Generates and prints the error message upon any exceptions.","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"Vanessamae23"},"content":" * @param m message of the error","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"Vanessamae23"},"content":" public String showError(String m) {","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"Vanessamae23"},"content":" return m;","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"Vanessamae23"},"content":" * Removes a task from the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"Vanessamae23"},"content":" * @param t Task that is to be removed","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"Vanessamae23"},"content":" * @param currentLength to show the current number of tasks after removal","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"Vanessamae23"},"content":" public String removeTask(Task t, int currentLength) {","lastModifiedDate":"2023-09-05"},{"lineNumber":71,"author":{"gitId":"Vanessamae23"},"content":" StringBuilder s \u003d new StringBuilder();","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"Vanessamae23"},"content":" s.append(\"Noted. I\u0027ve removed this task: \\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"Vanessamae23"},"content":" s.append(t.toString() + \"\\n\" + \"Now you have \" + currentLength + \" tasks left. \\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":74,"author":{"gitId":"Vanessamae23"},"content":" return s.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":75,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"Vanessamae23"},"content":" * Marks and checks the current task to be true","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"Vanessamae23"},"content":" public String showMarked() {","lastModifiedDate":"2023-09-05"},{"lineNumber":81,"author":{"gitId":"Vanessamae23"},"content":" return (\"Bacon Pancake : Nice! I\u0027ve marked this task as done:\");","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"Vanessamae23"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"Vanessamae23"},"content":" * Add a task to the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"Vanessamae23"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"Vanessamae23"},"content":" * @param curr Task that is supposed to be added to the lists of tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"Vanessamae23"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"Vanessamae23"},"content":" public String addTask(Task curr) {","lastModifiedDate":"2023-09-05"},{"lineNumber":91,"author":{"gitId":"Vanessamae23"},"content":" return (\"Bacon Pancake : \\n Added : \" + curr.description);","lastModifiedDate":"2023-09-05"},{"lineNumber":92,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"Vanessamae23"},"content":" public String showFoundWords(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"Vanessamae23"},"content":" StringBuilder s \u003d new StringBuilder();","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"Vanessamae23"},"content":" for(Task task : tasks) {","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"Vanessamae23"},"content":" s.append(task.getStatus());","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":99,"author":{"gitId":"Vanessamae23"},"content":" return s.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":100,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":101,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"Vanessamae23"},"content":" public String showMassDeleteSuccess(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-09-11"},{"lineNumber":103,"author":{"gitId":"Vanessamae23"},"content":" StringBuilder s \u003d new StringBuilder();","lastModifiedDate":"2023-09-11"},{"lineNumber":104,"author":{"gitId":"Vanessamae23"},"content":" s.append(\"Successfully deleted these tasks : \\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":105,"author":{"gitId":"Vanessamae23"},"content":" for(Task task : tasks) {","lastModifiedDate":"2023-09-11"},{"lineNumber":106,"author":{"gitId":"Vanessamae23"},"content":" s.append(task.getStatus() + \" \\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":107,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":108,"author":{"gitId":"Vanessamae23"},"content":" return s.toString();","lastModifiedDate":"2023-09-11"},{"lineNumber":109,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":110,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":111,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Vanessamae23":111}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.shape.Circle?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"content":"\u003cfx:root spacing\u003d\"2\" alignment\u003d\"TOP_RIGHT\" prefWidth\u003d\"800.0\" type\u003d\"javafx.scene.layout.HBox\"","lastModifiedDate":"2023-10-17"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-10-17"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" prefHeight\u003d\"150.0\" /\u003e","lastModifiedDate":"2023-10-17"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"50.0\" fitWidth\u003d\"50.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\"\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" \u003cclip\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" \u003cCircle fx:id\u003d\"circle\" radius\u003d\"15\" centerX\u003d\"15\" centerY\u003d\"15\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" \u003c/clip\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" \u003c/ImageView\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":20,"author":{"gitId":"Vanessamae23"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"10.0\" right\u003d\"0.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Vanessamae23"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Vanessamae23"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":22}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"Vanessamae23"},"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\"seedu.MainWindow\"\u003e","lastModifiedDate":"2023-10-17"},{"lineNumber":10,"author":{"gitId":"Vanessamae23"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Vanessamae23"},"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-03"},{"lineNumber":12,"author":{"gitId":"Vanessamae23"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Vanessamae23"},"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-03"},{"lineNumber":14,"author":{"gitId":"Vanessamae23"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Vanessamae23"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefWidth\u003d\"388.0\" /\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Vanessamae23"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":17,"author":{"gitId":"Vanessamae23"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":18,"author":{"gitId":"Vanessamae23"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Vanessamae23"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":19}},{"path":"src/save.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"Event|false|Supernova|Tue 2pm|Mon 2pm|","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"Deadline|false|return book|Dec 2 2019|","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"Event|false|Supernova|Tue 2pm|Mon 2pm|","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"ToDo|false|kk|","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"ToDo|false|djsaid|","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"ToDo|false|dsaidais|","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"ToDo|false|sada|","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Vanessamae23":7}},{"path":"src/test/module-info.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"module yourModuleName {","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":" requires javafx.controls;","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":" requires javafx.fxml;","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":" // Add any other module dependencies if needed","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":5}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"todo Poop","lastModifiedDate":"2023-08-21"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":"deadline return book /by 02/12/2019","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":"event Supernova /from Mon 2pm /to Tue 2pm","lastModifiedDate":"2023-08-21"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":"mark 2","lastModifiedDate":"2023-08-21"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"list","lastModifiedDate":"2023-08-21"},{"lineNumber":6,"author":{"gitId":"Vanessamae23"},"content":"delete 3","lastModifiedDate":"2023-08-21"},{"lineNumber":7,"author":{"gitId":"Vanessamae23"},"content":"list","lastModifiedDate":"2023-08-21"},{"lineNumber":8,"author":{"gitId":"Vanessamae23"},"content":"bye","lastModifiedDate":"2023-08-21"}],"authorContributionMap":{"Vanessamae23":8}},{"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":"Vanessamae23"},"content":"javac -cp C:\\Users\\user\\NUS\\CS2103T\\cs2103t-ip\\src\\main\\java -Xlint:none -d ..\\bin C:\\Users\\user\\NUS\\CS2103T\\cs2103t-ip\\src\\main\\java\\*.java","lastModifiedDate":"2023-08-21"},{"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":"Vanessamae23"},"content":"java -classpath C:\\Users\\user\\NUS\\CS2103T\\cs2103t-ip\\bin Duke \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-08-21"},{"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":{"Vanessamae23":2,"-":19}},{"path":"untitled/src/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Vanessamae23"},"content":"public class Main {","lastModifiedDate":"2023-09-03"},{"lineNumber":2,"author":{"gitId":"Vanessamae23"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-03"},{"lineNumber":3,"author":{"gitId":"Vanessamae23"},"content":" System.out.println(\"Hello world!\");","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Vanessamae23"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Vanessamae23"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Vanessamae23":5}}] diff --git a/Vanessamae23_ip_master/commits.json b/Vanessamae23_ip_master/commits.json index 02aa57a9..b6dae632 100644 --- a/Vanessamae23_ip_master/commits.json +++ b/Vanessamae23_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"Vanessamae23":[{"date":"2023-08-21","commitResults":[{"hash":"988a83ba0317502625238c92205d0f1c51ff5f14","isMergeCommit":false,"messageTitle":"Added level 0 tags","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":6}}},{"hash":"448e23ac117e9e23cdc158b848b9afd25e31f22d","isMergeCommit":false,"messageTitle":"Added level 1 tag","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":1}}},{"hash":"4b9e49db97e070f7146cdbddf2f8fd98b3d10692","isMergeCommit":false,"messageTitle":"Added feature for level 1 tag","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":5,"deletions":0}}},{"hash":"c8069dad6e9143569074714f7c42398a56d064f3","isMergeCommit":false,"messageTitle":"Added level 2","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":2}}},{"hash":"26e13bad28eeb1ea259160fc9ebcaabe858d9964","isMergeCommit":false,"messageTitle":"Added level 3","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":46,"deletions":3}}},{"hash":"3e137a5a65d0237b493aca3597a12bb080b38700","isMergeCommit":false,"messageTitle":"Added level 4 and fixed sth in level 0","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":21,"deletions":9}}},{"hash":"1f6d6a6f80af20453e1e485b3bd8583ede1e6980","isMergeCommit":false,"messageTitle":"Added testing","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":6,"deletions":0},"bat":{"insertions":2,"deletions":2}}},{"hash":"0872499fdef51fc2de9e915b9cca259a454f6ccb","isMergeCommit":false,"messageTitle":"Added exception handling","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":36,"deletions":8}}},{"hash":"ddc634a202a31b2a9b87c5223e3119d26af080d1","isMergeCommit":false,"messageTitle":"Added level 6","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":32,"deletions":11}}},{"hash":"f2030dec4b0a7da85a1cb9fc9b56746dbd06cd27","isMergeCommit":false,"messageTitle":"Added enums","messageBody":"","tags":["A-Enums"],"fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":5}}}]},{"date":"2023-08-30","commitResults":[{"hash":"6141730e4063df9e401f4591bf17382c87ec8221","isMergeCommit":false,"messageTitle":"Add level 7 requirements","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":24,"deletions":3}}},{"hash":"3db11fc4b54216fd878a5cb9af168e5a8b70f64f","isMergeCommit":true,"messageTitle":"Fix merging issues","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{}},{"hash":"7b46a8fc2921c4b7e1d39c54c2e0979d739b05e7","isMergeCommit":false,"messageTitle":"Add level 8","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":2},"java":{"insertions":12,"deletions":5}}},{"hash":"b6262b32627fd69f61cad4a34940e390069a766c","isMergeCommit":true,"messageTitle":"resolve conflicts","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{}},{"hash":"83781da36396408c2e9aab364689c6efabc1b7a1","isMergeCommit":false,"messageTitle":"More OOP","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":1},"java":{"insertions":305,"deletions":68}}},{"hash":"fbfa5c8a13daa2a5f6250cfc86573c55d6d5aa84","isMergeCommit":false,"messageTitle":"Add package","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":17,"deletions":6}}},{"hash":"30009e83d6368d8a38a2c7d89db996cd4e8b5325","isMergeCommit":false,"messageTitle":"fix issue","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":4},"java":{"insertions":41,"deletions":31}}},{"hash":"3380f7be9652e2413620b37878f7dfb6faa6d1d3","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"110f532e0015d1d58f4f85a2bf3dd4462724062d","isMergeCommit":false,"messageTitle":"Add testing","messageBody":"","tags":["A-Jar","A-JUnit"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"txt":{"insertions":7,"deletions":4},"java":{"insertions":70,"deletions":11}}},{"hash":"32415ec91b644814452a4d40b3468cf5ec9f66b4","isMergeCommit":false,"messageTitle":"Added javadoc","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":115,"deletions":0}}},{"hash":"43c40d7dff69031da0fda4505db1318de9a1f80a","isMergeCommit":false,"messageTitle":"Add code standards","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":3},"java":{"insertions":26,"deletions":22}}},{"hash":"41984b2c950a6d50d44fb7c9b2ffd0fd6fd1df4a","isMergeCommit":false,"messageTitle":"Add find method","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"txt":{"insertions":5,"deletions":3},"java":{"insertions":28,"deletions":1}}},{"hash":"c172dd76b5fdeb4fd682ecf4a25ccbe6c042bdbd","isMergeCommit":true,"messageTitle":"After merging two branch","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"cba2d0de948ab9683c099fb460427d8318f91139","isMergeCommit":true,"messageTitle":"After merge last","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"45caf5b3cedff69b7fd5170894ac757bf68bbcac","isMergeCommit":false,"messageTitle":"After merge last","messageBody":"","tags":["AfterMerge"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0}}}]},{"date":"2023-09-02","commitResults":[{"hash":"5daee0df6a40d547980b00364c16f1513cdf0d72","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":31,"deletions":2}}},{"hash":"47686a936b94d00cbf29f19769e0eb7312e80bbb","isMergeCommit":false,"messageTitle":"Added checkstyle","messageBody":"","tags":["A-CheckStyle"],"fileTypesAndContributionMap":{"gradle":{"insertions":7,"deletions":0}}},{"hash":"ce7b75bbd1c244b07105491ee82c9da9b9b94495","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/Vanessamae23/cs2103t-ip","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-03","commitResults":[{"hash":"395c776a1ea5905866ced7acb30710649d9ae292","isMergeCommit":false,"messageTitle":"Added javafx","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{"gradle":{"insertions":20,"deletions":1},"fxml":{"insertions":51,"deletions":0},"java":{"insertions":369,"deletions":3}}}]},{"date":"2023-09-04","commitResults":[{"hash":"9ae475115f6233efa3be1f9c6c8b2078c3dc35fa","isMergeCommit":false,"messageTitle":"Added a new branch","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}}]},{"date":"2023-09-05","commitResults":[{"hash":"25818b0fabf6fb98137e4660129650df001f0242","isMergeCommit":false,"messageTitle":"Made changes","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":86,"deletions":69}}}]},{"date":"2023-09-11","commitResults":[{"hash":"07a09d9995f14a5d0709d7ed4fd550e250096d87","isMergeCommit":false,"messageTitle":"setDuke method does not have any javadoc initially","messageBody":"Added the javadoc header details to give more comprehensive details\nabout what the method is doing\n","tags":["A-FullCommitMessage"],"fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":0}}},{"hash":"578ad91d0fbc0c66f602281dfd5dfe95fffbb9e3","isMergeCommit":false,"messageTitle":"Added some assertions","messageBody":"","tags":["A-Assertions"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":1},"java":{"insertions":5,"deletions":1}}},{"hash":"b61d46d6919687138b6bad574fbdc4472d530de1","isMergeCommit":false,"messageTitle":"Refactoring done","messageBody":"","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":24}}},{"hash":"13a2daf3fd2be8b0869b53cba6354a8cb78170d4","isMergeCommit":true,"messageTitle":"Merge pull request #1 from Vanessamae23/Branch-Assertion","messageBody":"Added some assertions","fileTypesAndContributionMap":{}},{"hash":"f65240d6bbf651bd293fa4b0eccdc46a65e01eb2","isMergeCommit":true,"messageTitle":"Merge branch \u0027Branch-CodeQuality\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"dc89b250e04a03770b3aa690aa7e67402099c040","isMergeCommit":false,"messageTitle":"Added extension:","messageBody":"","tags":["C-MassOps","BCD-Extension"],"fileTypesAndContributionMap":{"fxml":{"insertions":1,"deletions":1},"txt":{"insertions":7,"deletions":1},"java":{"insertions":30,"deletions":19}}}]},{"date":"2023-09-13","commitResults":[{"hash":"766dcda669356e3d6e652cb4a441c13d76d1ffe3","isMergeCommit":false,"messageTitle":"Added better gui","messageBody":"","tags":["A-BetterGui"],"fileTypesAndContributionMap":{"fxml":{"insertions":9,"deletions":4},"txt":{"insertions":0,"deletions":6},"java":{"insertions":36,"deletions":5}}},{"hash":"10499992523c7c505c0ac0aec9332db1b4a011eb","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":40,"deletions":1}}},{"hash":"ddc4f45b965fa61151f9781e122d4d9eeb7f0b20","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":48,"deletions":6}}},{"hash":"aef2b93722e3c35ec71cd1639a1a83d801437472","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":77,"deletions":1}}},{"hash":"84a00ded92680e2907c81a54b0f76af7b0038af5","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","tags":["A-UserGuide","A-Release"],"fileTypesAndContributionMap":{"md":{"insertions":4,"deletions":19}}}]}]},"authorFileTypeContributionMap":{"Vanessamae23":{"java":1041,"md":377,"fxml":56,"sh":0,"bat":2,"gradle":27,"txt":15}},"authorContributionVariance":{"Vanessamae23":32880.16},"authorDisplayNameMap":{"Vanessamae23":"CS2103T-T12-1 VANE.. MAE"}} +{"authorDailyContributionsMap":{"Vanessamae23":[{"date":"2023-08-21","commitResults":[{"hash":"988a83ba0317502625238c92205d0f1c51ff5f14","isMergeCommit":false,"messageTitle":"Added level 0 tags","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":6}}},{"hash":"448e23ac117e9e23cdc158b848b9afd25e31f22d","isMergeCommit":false,"messageTitle":"Added level 1 tag","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":1}}},{"hash":"4b9e49db97e070f7146cdbddf2f8fd98b3d10692","isMergeCommit":false,"messageTitle":"Added feature for level 1 tag","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":5,"deletions":0}}},{"hash":"c8069dad6e9143569074714f7c42398a56d064f3","isMergeCommit":false,"messageTitle":"Added level 2","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":2}}},{"hash":"26e13bad28eeb1ea259160fc9ebcaabe858d9964","isMergeCommit":false,"messageTitle":"Added level 3","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":46,"deletions":3}}},{"hash":"3e137a5a65d0237b493aca3597a12bb080b38700","isMergeCommit":false,"messageTitle":"Added level 4 and fixed sth in level 0","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":21,"deletions":9}}},{"hash":"1f6d6a6f80af20453e1e485b3bd8583ede1e6980","isMergeCommit":false,"messageTitle":"Added testing","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":6,"deletions":0},"bat":{"insertions":2,"deletions":2}}},{"hash":"0872499fdef51fc2de9e915b9cca259a454f6ccb","isMergeCommit":false,"messageTitle":"Added exception handling","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":36,"deletions":8}}},{"hash":"ddc634a202a31b2a9b87c5223e3119d26af080d1","isMergeCommit":false,"messageTitle":"Added level 6","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":32,"deletions":11}}},{"hash":"f2030dec4b0a7da85a1cb9fc9b56746dbd06cd27","isMergeCommit":false,"messageTitle":"Added enums","messageBody":"","tags":["A-Enums"],"fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":5}}}]},{"date":"2023-08-30","commitResults":[{"hash":"6141730e4063df9e401f4591bf17382c87ec8221","isMergeCommit":false,"messageTitle":"Add level 7 requirements","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":24,"deletions":3}}},{"hash":"3db11fc4b54216fd878a5cb9af168e5a8b70f64f","isMergeCommit":true,"messageTitle":"Fix merging issues","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{}},{"hash":"7b46a8fc2921c4b7e1d39c54c2e0979d739b05e7","isMergeCommit":false,"messageTitle":"Add level 8","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":2},"java":{"insertions":12,"deletions":5}}},{"hash":"b6262b32627fd69f61cad4a34940e390069a766c","isMergeCommit":true,"messageTitle":"resolve conflicts","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{}},{"hash":"83781da36396408c2e9aab364689c6efabc1b7a1","isMergeCommit":false,"messageTitle":"More OOP","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":1},"java":{"insertions":305,"deletions":68}}},{"hash":"fbfa5c8a13daa2a5f6250cfc86573c55d6d5aa84","isMergeCommit":false,"messageTitle":"Add package","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":17,"deletions":6}}},{"hash":"30009e83d6368d8a38a2c7d89db996cd4e8b5325","isMergeCommit":false,"messageTitle":"fix issue","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":4},"java":{"insertions":41,"deletions":31}}},{"hash":"3380f7be9652e2413620b37878f7dfb6faa6d1d3","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"110f532e0015d1d58f4f85a2bf3dd4462724062d","isMergeCommit":false,"messageTitle":"Add testing","messageBody":"","tags":["A-Jar","A-JUnit"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"txt":{"insertions":7,"deletions":4},"java":{"insertions":70,"deletions":11}}},{"hash":"32415ec91b644814452a4d40b3468cf5ec9f66b4","isMergeCommit":false,"messageTitle":"Added javadoc","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":115,"deletions":0}}},{"hash":"43c40d7dff69031da0fda4505db1318de9a1f80a","isMergeCommit":false,"messageTitle":"Add code standards","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":3},"java":{"insertions":26,"deletions":22}}},{"hash":"41984b2c950a6d50d44fb7c9b2ffd0fd6fd1df4a","isMergeCommit":false,"messageTitle":"Add find method","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"txt":{"insertions":5,"deletions":3},"java":{"insertions":28,"deletions":1}}},{"hash":"c172dd76b5fdeb4fd682ecf4a25ccbe6c042bdbd","isMergeCommit":true,"messageTitle":"After merging two branch","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"cba2d0de948ab9683c099fb460427d8318f91139","isMergeCommit":true,"messageTitle":"After merge last","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"45caf5b3cedff69b7fd5170894ac757bf68bbcac","isMergeCommit":false,"messageTitle":"After merge last","messageBody":"","tags":["AfterMerge"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0}}}]},{"date":"2023-09-02","commitResults":[{"hash":"5daee0df6a40d547980b00364c16f1513cdf0d72","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":31,"deletions":2}}},{"hash":"47686a936b94d00cbf29f19769e0eb7312e80bbb","isMergeCommit":false,"messageTitle":"Added checkstyle","messageBody":"","tags":["A-CheckStyle"],"fileTypesAndContributionMap":{"gradle":{"insertions":7,"deletions":0}}},{"hash":"ce7b75bbd1c244b07105491ee82c9da9b9b94495","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/Vanessamae23/cs2103t-ip","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-03","commitResults":[{"hash":"395c776a1ea5905866ced7acb30710649d9ae292","isMergeCommit":false,"messageTitle":"Added javafx","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{"gradle":{"insertions":20,"deletions":1},"fxml":{"insertions":51,"deletions":0},"java":{"insertions":369,"deletions":3}}}]},{"date":"2023-09-04","commitResults":[{"hash":"9ae475115f6233efa3be1f9c6c8b2078c3dc35fa","isMergeCommit":false,"messageTitle":"Added a new branch","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}}]},{"date":"2023-09-05","commitResults":[{"hash":"25818b0fabf6fb98137e4660129650df001f0242","isMergeCommit":false,"messageTitle":"Made changes","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":86,"deletions":69}}}]},{"date":"2023-09-11","commitResults":[{"hash":"07a09d9995f14a5d0709d7ed4fd550e250096d87","isMergeCommit":false,"messageTitle":"setDuke method does not have any javadoc initially","messageBody":"Added the javadoc header details to give more comprehensive details\nabout what the method is doing\n","tags":["A-FullCommitMessage"],"fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":0}}},{"hash":"578ad91d0fbc0c66f602281dfd5dfe95fffbb9e3","isMergeCommit":false,"messageTitle":"Added some assertions","messageBody":"","tags":["A-Assertions"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":1},"java":{"insertions":5,"deletions":1}}},{"hash":"b61d46d6919687138b6bad574fbdc4472d530de1","isMergeCommit":false,"messageTitle":"Refactoring done","messageBody":"","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":24}}},{"hash":"13a2daf3fd2be8b0869b53cba6354a8cb78170d4","isMergeCommit":true,"messageTitle":"Merge pull request #1 from Vanessamae23/Branch-Assertion","messageBody":"Added some assertions","fileTypesAndContributionMap":{}},{"hash":"f65240d6bbf651bd293fa4b0eccdc46a65e01eb2","isMergeCommit":true,"messageTitle":"Merge branch \u0027Branch-CodeQuality\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"dc89b250e04a03770b3aa690aa7e67402099c040","isMergeCommit":false,"messageTitle":"Added extension:","messageBody":"","tags":["C-MassOps","BCD-Extension"],"fileTypesAndContributionMap":{"fxml":{"insertions":1,"deletions":1},"txt":{"insertions":7,"deletions":1},"java":{"insertions":30,"deletions":19}}}]},{"date":"2023-09-13","commitResults":[{"hash":"766dcda669356e3d6e652cb4a441c13d76d1ffe3","isMergeCommit":false,"messageTitle":"Added better gui","messageBody":"","tags":["A-BetterGui"],"fileTypesAndContributionMap":{"fxml":{"insertions":9,"deletions":4},"txt":{"insertions":0,"deletions":6},"java":{"insertions":36,"deletions":5}}},{"hash":"10499992523c7c505c0ac0aec9332db1b4a011eb","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":40,"deletions":1}}},{"hash":"ddc4f45b965fa61151f9781e122d4d9eeb7f0b20","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":48,"deletions":6}}},{"hash":"aef2b93722e3c35ec71cd1639a1a83d801437472","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":77,"deletions":1}}},{"hash":"84a00ded92680e2907c81a54b0f76af7b0038af5","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","tags":["A-UserGuide","A-Release"],"fileTypesAndContributionMap":{"md":{"insertions":4,"deletions":19}}}]},{"date":"2023-10-17","commitResults":[{"hash":"c0ddfab7b3d403562cbc01c6fef7089b805f126e","isMergeCommit":false,"messageTitle":"Add extension","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":1,"deletions":1},"txt":{"insertions":7,"deletions":1},"java":{"insertions":30,"deletions":19}}},{"hash":"4d113af3447264098bae46e743b9a2e8b93cc434","isMergeCommit":false,"messageTitle":"Add better gui","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":9,"deletions":4},"txt":{"insertions":0,"deletions":6},"java":{"insertions":36,"deletions":5}}},{"hash":"0b3f17492fcb9398bb7ae6671eab4b08bbc03330","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":40,"deletions":1}}},{"hash":"cd6cd099705f8ff333f1b43158b64668ceb986d8","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":48,"deletions":6}}},{"hash":"aba4ae90e0e0d862d17ec5c5c96d3b82fb493901","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":77,"deletions":1}}},{"hash":"bd1fad5731a265341e95acdac7f4f21d28b28b0d","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":4,"deletions":19}}},{"hash":"48e52eec2a02fe4f5e1ffe2961a9fe24c8e3aa2f","isMergeCommit":false,"messageTitle":"Amend the IP","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":5},"fxml":{"insertions":4,"deletions":3},"java":{"insertions":127,"deletions":280}}},{"hash":"7afc3b9fba90464d2bdb61a55053f09352207aca","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/Vanessamae23/cs2103t-ip","messageBody":"","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"Vanessamae23":{"java":891,"md":377,"fxml":57,"sh":0,"bat":2,"gradle":24,"txt":15}},"authorContributionVariance":{"Vanessamae23":23911.385},"authorDisplayNameMap":{"Vanessamae23":"CS2103T-T12-1 VANE.. MAE"}} diff --git a/WeeeHung_ip_master/authorship.json b/WeeeHung_ip_master/authorship.json index 9e27adb1..c98317b5 100644 --- a/WeeeHung_ip_master/authorship.json +++ b/WeeeHung_ip_master/authorship.json @@ -1 +1 @@ -[{"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":"WeeeHung"},"content":"jar {","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" manifest {","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"// attributes \u0027Main-Class\u0027: \u0027com.example.MainClass\u0027","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" attributes \u0027Main-Class\u0027: \u0027Launcher\u0027","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" implementation \u0027org.junit.jupiter:junit-jupiter-api:5.10.0\u0027","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":21,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":51,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":"// mainClass.set(\"seedu.Launcher\")","lastModifiedDate":"2023-09-19"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" mainClass.set(\"Launcher\")","lastModifiedDate":"2023-09-19"},{"lineNumber":56,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":58,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":"// archiveBaseName \u003d \"duke\"","lastModifiedDate":"2023-09-19"},{"lineNumber":60,"author":{"gitId":"WeeeHung"},"content":"// archiveClassifier \u003d null","lastModifiedDate":"2023-09-19"},{"lineNumber":61,"author":{"gitId":"WeeeHung"},"content":"// dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-09-19"},{"lineNumber":62,"author":{"gitId":"WeeeHung"},"content":" archiveFileName \u003d \u0027iPBot-2.jar\u0027","lastModifiedDate":"2023-09-19"},{"lineNumber":63,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":64,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":65,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":66,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":67,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":38,"WeeeHung":29}},{"path":"data/duke.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"T|0|123","lastModifiedDate":"2023-09-22"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"T|1|456","lastModifiedDate":"2023-09-22"}],"authorContributionMap":{"WeeeHung":2}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"# iPbot - Your Task Management Chat Bot","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"iPbot is a task management chat bot that helps you keep track of your tasks, deadlines, and events conveniently through chat. It\u0027s designed to make task management easier and more interactive.","lastModifiedDate":"2023-09-19"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Features","lastModifiedDate":"2019-07-29"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"iPbot supports the following features:","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"- **`bye`**: Exit the chat bot.","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" Example: `bye`","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"- **`list`**: Display the list of tasks.","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" Example: `list`","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"- **`mark`**: Mark a task as done.","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" Example: `mark 1` (Mark task number 1 as done)","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":"- **`unmark`**: Unmark a task as done.","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" Example: `unmark 2` (Unmark task number 2 as undone)","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":"- **`delete`**: Delete a task from the list.","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" Example: `delete 3` (Delete task number 3)","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":"- **`find`**: Find tasks containing a specific keyword.","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" Example: `find homework` (Find tasks with \"homework\" in their description)","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":"- **`todo`**: Add a todo task.","lastModifiedDate":"2023-09-19"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" Example: `todo Buy groceries` (Adds a todo task with the description \"Buy groceries\")","lastModifiedDate":"2023-09-19"},{"lineNumber":29,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":"- **`deadline`**: Add a deadline task.","lastModifiedDate":"2023-09-19"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" Example: `deadline Submit report /by 2023-09-30 18:00:00`","lastModifiedDate":"2023-09-19"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" (Adds a deadline task with the description \"Submit report\" and due date \"2023-09-30 18:00:00\")","lastModifiedDate":"2023-09-19"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":"- **`event`**: Add an event task.","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" Example: `event Team meeting /from 2023-09-25 14:00:00 /to 2023-09-25 16:00:00`","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" (Adds an event task with the description \"Team meeting,\" start time \"2023-09-25 14:00:00,\" and end time \"2023-09-25 16:00:00\")","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":"- **`help`**: Display a help message.","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" Example: `help`","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":"Feel free to use these commands to manage your tasks and interact with iPbot. Enjoy chatting!","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":"## Getting Started","lastModifiedDate":"2023-09-19"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":"To get started with iPbot, follow these steps:","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":"1. Clone this repository to your local machine / Check for jar files in release.","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":"2. Build/Install and run the application.","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":"3. Start chatting with iPbot using the supported commands.","lastModifiedDate":"2023-09-19"},{"lineNumber":50,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":51,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":"Happy task management with iPbot!","lastModifiedDate":"2023-09-19"}],"authorContributionMap":{"-":20,"WeeeHung":32}},{"path":"src/main/java/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" private Label dialog;","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/View/DialogBox.fxml\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" private void flip() {","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"WeeeHung"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"WeeeHung"},"content":" return new DialogBox(text, img);","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"WeeeHung"},"content":" db.flip();","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"WeeeHung"},"content":" return db;","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":59}},{"path":"src/main/java/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.ChatGUI;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.Parser;","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.Storage;","lastModifiedDate":"2023-09-19"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":" * The Duke class is the main class that runs the Duke chatbot application.","lastModifiedDate":"2023-09-01"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"public class Duke{","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" protected static Storage storage \u003d new Storage();","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" protected static ChatGUI ui \u003d new ChatGUI(storage);","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" protected String getResponse(String input) {","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" return ui.process(input);","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" * The main method that serves as the entry point for the Duke application.","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" * This method initializes key components of the Duke application, such as the storage and parser,","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" * and handles the execution of user commands and interactions with the chatbot.","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" * @param args The command-line arguments passed to the application (not used in this application).","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"-"},"content":" public static void main(String[] args) {","lastModifiedDate":"2019-07-29"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" // standard response","lastModifiedDate":"2023-08-24"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" String horizontalLine \u003d \" ------------------------------------------------------------------------\";","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" String noDescError \u003d \" ☹ OOPS!!! The description of a todo cannot be empty.\";","lastModifiedDate":"2023-08-24"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" String noCommandError \u003d \" ☹ OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\";","lastModifiedDate":"2023-08-24"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" // initialise","lastModifiedDate":"2023-08-24"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" Storage storage \u003d new Storage();","lastModifiedDate":"2023-08-24"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" Parser parser \u003d new Parser();","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" // read from txt file and create tasks and put into storage","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":"// storage.loadListFromFile();","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":"// ui.printIntro();","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":"//","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":"// while (true) {","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":"// String input \u003d parser.getInput();","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":"// String[] parts \u003d input.split(\" \");","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":"// ui.printDivider();","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":"//","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":"// switch (parts[0]) {","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":"// case \"bye\":","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":"// ui.printOutro();","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":"// ui.printDivider();","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":"// // write the changes into the file duke.txt","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"WeeeHung"},"content":"// storage.writeTasksToFile();","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"WeeeHung"},"content":"// return;","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":"// case \"list\":","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"WeeeHung"},"content":"// storage.printTaskList();","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":"// break;","lastModifiedDate":"2023-09-07"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":"// case \"mark\":","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"WeeeHung"},"content":"// int id \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"WeeeHung"},"content":"// try {","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"WeeeHung"},"content":"// storage.changeTaskMarking(id, true);","lastModifiedDate":"2023-09-07"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":"// storage.printTaskMarking(id);","lastModifiedDate":"2023-09-07"},{"lineNumber":60,"author":{"gitId":"WeeeHung"},"content":"// } catch (Exception e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":61,"author":{"gitId":"WeeeHung"},"content":"// System.out.print(e.getMessage());","lastModifiedDate":"2023-09-07"},{"lineNumber":62,"author":{"gitId":"WeeeHung"},"content":"// }","lastModifiedDate":"2023-09-07"},{"lineNumber":63,"author":{"gitId":"WeeeHung"},"content":"// break;","lastModifiedDate":"2023-09-07"},{"lineNumber":64,"author":{"gitId":"WeeeHung"},"content":"// case \"unmark\":","lastModifiedDate":"2023-09-07"},{"lineNumber":65,"author":{"gitId":"WeeeHung"},"content":"// int id2 \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-07"},{"lineNumber":66,"author":{"gitId":"WeeeHung"},"content":"// try {","lastModifiedDate":"2023-09-07"},{"lineNumber":67,"author":{"gitId":"WeeeHung"},"content":"// storage.changeTaskMarking(id2, false);","lastModifiedDate":"2023-09-07"},{"lineNumber":68,"author":{"gitId":"WeeeHung"},"content":"// storage.printTaskMarking(id2);","lastModifiedDate":"2023-09-07"},{"lineNumber":69,"author":{"gitId":"WeeeHung"},"content":"// } catch (Exception e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":70,"author":{"gitId":"WeeeHung"},"content":"// System.out.print(e.getMessage());","lastModifiedDate":"2023-09-07"},{"lineNumber":71,"author":{"gitId":"WeeeHung"},"content":"// }","lastModifiedDate":"2023-09-07"},{"lineNumber":72,"author":{"gitId":"WeeeHung"},"content":"// break;","lastModifiedDate":"2023-09-07"},{"lineNumber":73,"author":{"gitId":"WeeeHung"},"content":"// case \"delete\":","lastModifiedDate":"2023-09-07"},{"lineNumber":74,"author":{"gitId":"WeeeHung"},"content":"// int id3 \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-07"},{"lineNumber":75,"author":{"gitId":"WeeeHung"},"content":"// storage.deleteTask(id3);","lastModifiedDate":"2023-09-07"},{"lineNumber":76,"author":{"gitId":"WeeeHung"},"content":"// break;","lastModifiedDate":"2023-09-07"},{"lineNumber":77,"author":{"gitId":"WeeeHung"},"content":"// case \"find\":","lastModifiedDate":"2023-09-07"},{"lineNumber":78,"author":{"gitId":"WeeeHung"},"content":"// int indexOfFind \u003d input.indexOf(\"find\");","lastModifiedDate":"2023-09-07"},{"lineNumber":79,"author":{"gitId":"WeeeHung"},"content":"// String toFindString \u003d input.substring(indexOfFind + 5);","lastModifiedDate":"2023-09-07"},{"lineNumber":80,"author":{"gitId":"WeeeHung"},"content":"// storage.printMatchingList(toFindString);","lastModifiedDate":"2023-09-07"},{"lineNumber":81,"author":{"gitId":"WeeeHung"},"content":"// break;","lastModifiedDate":"2023-09-07"},{"lineNumber":82,"author":{"gitId":"WeeeHung"},"content":"// case \"todo\":","lastModifiedDate":"2023-09-07"},{"lineNumber":83,"author":{"gitId":"WeeeHung"},"content":"// int indexOfTodo \u003d input.indexOf(\"todo\");","lastModifiedDate":"2023-09-07"},{"lineNumber":84,"author":{"gitId":"WeeeHung"},"content":"// String taskDesc \u003d input.substring(indexOfTodo + 5);","lastModifiedDate":"2023-09-07"},{"lineNumber":85,"author":{"gitId":"WeeeHung"},"content":"// if (Objects.equals(taskDesc, \"\")) {","lastModifiedDate":"2023-09-07"},{"lineNumber":86,"author":{"gitId":"WeeeHung"},"content":"// System.out.println(horizontalLine);","lastModifiedDate":"2023-09-07"},{"lineNumber":87,"author":{"gitId":"WeeeHung"},"content":"// System.out.println(noDescError);","lastModifiedDate":"2023-09-07"},{"lineNumber":88,"author":{"gitId":"WeeeHung"},"content":"// System.out.println(horizontalLine);","lastModifiedDate":"2023-09-07"},{"lineNumber":89,"author":{"gitId":"WeeeHung"},"content":"// break;","lastModifiedDate":"2023-09-07"},{"lineNumber":90,"author":{"gitId":"WeeeHung"},"content":"// }","lastModifiedDate":"2023-09-07"},{"lineNumber":91,"author":{"gitId":"WeeeHung"},"content":"// Task task \u003d new Task(taskDesc, TaskType.TODO, \"\", \"\");","lastModifiedDate":"2023-09-07"},{"lineNumber":92,"author":{"gitId":"WeeeHung"},"content":"// storage.addList(task);","lastModifiedDate":"2023-09-07"},{"lineNumber":93,"author":{"gitId":"WeeeHung"},"content":"// storage.printTaskEntry(task);","lastModifiedDate":"2023-09-07"},{"lineNumber":94,"author":{"gitId":"WeeeHung"},"content":"// break;","lastModifiedDate":"2023-09-07"},{"lineNumber":95,"author":{"gitId":"WeeeHung"},"content":"// case \"deadline\":","lastModifiedDate":"2023-09-07"},{"lineNumber":96,"author":{"gitId":"WeeeHung"},"content":"// int indexOfDeadline \u003d input.indexOf(\"deadline\");","lastModifiedDate":"2023-09-07"},{"lineNumber":97,"author":{"gitId":"WeeeHung"},"content":"// int indexOfBy \u003d input.indexOf(\"/by\");","lastModifiedDate":"2023-09-07"},{"lineNumber":98,"author":{"gitId":"WeeeHung"},"content":"// taskDesc \u003d input.substring(indexOfDeadline + 9, indexOfBy);","lastModifiedDate":"2023-09-07"},{"lineNumber":99,"author":{"gitId":"WeeeHung"},"content":"// String deadlinePart \u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":100,"author":{"gitId":"WeeeHung"},"content":"// deadlinePart \u003d input.substring(indexOfBy + 3).trim();","lastModifiedDate":"2023-09-07"},{"lineNumber":101,"author":{"gitId":"WeeeHung"},"content":"// task \u003d new Task(taskDesc, TaskType.DEADLINE, deadlinePart, \"\");","lastModifiedDate":"2023-09-07"},{"lineNumber":102,"author":{"gitId":"WeeeHung"},"content":"// storage.addList(task);","lastModifiedDate":"2023-09-07"},{"lineNumber":103,"author":{"gitId":"WeeeHung"},"content":"// storage.printTaskEntry(task);","lastModifiedDate":"2023-09-07"},{"lineNumber":104,"author":{"gitId":"WeeeHung"},"content":"// break;","lastModifiedDate":"2023-09-07"},{"lineNumber":105,"author":{"gitId":"WeeeHung"},"content":"// case \"event\":","lastModifiedDate":"2023-09-07"},{"lineNumber":106,"author":{"gitId":"WeeeHung"},"content":"// int indexOfEvent \u003d input.indexOf(\"event\");","lastModifiedDate":"2023-09-07"},{"lineNumber":107,"author":{"gitId":"WeeeHung"},"content":"// int indexOfFrom \u003d input.indexOf(\"/from\");","lastModifiedDate":"2023-09-07"},{"lineNumber":108,"author":{"gitId":"WeeeHung"},"content":"// int indexOfTo \u003d input.indexOf(\"/to\");","lastModifiedDate":"2023-09-07"},{"lineNumber":109,"author":{"gitId":"WeeeHung"},"content":"// taskDesc \u003d input.substring(indexOfEvent + 6, indexOfFrom);","lastModifiedDate":"2023-09-07"},{"lineNumber":110,"author":{"gitId":"WeeeHung"},"content":"// String fromPart \u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":111,"author":{"gitId":"WeeeHung"},"content":"// fromPart \u003d input.substring(indexOfFrom + 5, indexOfTo).trim();","lastModifiedDate":"2023-09-07"},{"lineNumber":112,"author":{"gitId":"WeeeHung"},"content":"// String toPart \u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":113,"author":{"gitId":"WeeeHung"},"content":"// toPart \u003d input.substring(indexOfTo + 3).trim();","lastModifiedDate":"2023-09-07"},{"lineNumber":114,"author":{"gitId":"WeeeHung"},"content":"// task \u003d new Task(taskDesc, TaskType.EVENT, fromPart, toPart);","lastModifiedDate":"2023-09-07"},{"lineNumber":115,"author":{"gitId":"WeeeHung"},"content":"// storage.addList(task);","lastModifiedDate":"2023-09-07"},{"lineNumber":116,"author":{"gitId":"WeeeHung"},"content":"// storage.printTaskEntry(task);","lastModifiedDate":"2023-09-07"},{"lineNumber":117,"author":{"gitId":"WeeeHung"},"content":"// break;","lastModifiedDate":"2023-09-07"},{"lineNumber":118,"author":{"gitId":"WeeeHung"},"content":"// default:","lastModifiedDate":"2023-09-07"},{"lineNumber":119,"author":{"gitId":"WeeeHung"},"content":"// System.out.println(noCommandError);","lastModifiedDate":"2023-09-07"},{"lineNumber":120,"author":{"gitId":"WeeeHung"},"content":"// }","lastModifiedDate":"2023-09-07"},{"lineNumber":121,"author":{"gitId":"WeeeHung"},"content":"// ui.printDivider();","lastModifiedDate":"2023-09-07"},{"lineNumber":122,"author":{"gitId":"WeeeHung"},"content":"// }","lastModifiedDate":"2023-09-07"},{"lineNumber":123,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":124,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"-":3,"WeeeHung":121}},{"path":"src/main/java/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"public class Launcher {","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":10}},{"path":"src/main/java/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" private final Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/View/MainWindow.fxml\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" stage.show();","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":29}},{"path":"src/main/java/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.ChatGUI;","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import javafx.animation.PauseTransition;","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"import javafx.util.Duration;","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" private Duke duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/theUser.jpg\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/iPBot.jpg\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" public void initialize() {","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" dialogContainer.getChildren().add(DialogBox.getDukeDialog(ChatGUI.handleHelp(\"\"), dukeImage));","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"WeeeHung"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"WeeeHung"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"WeeeHung"},"content":" );","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":" if (input.equals(\"bye\")) {","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" userInput.clear();","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"WeeeHung"},"content":" PauseTransition delay \u003d new PauseTransition(Duration.seconds(1));","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"WeeeHung"},"content":" delay.setOnFinished(event -\u003e {","lastModifiedDate":"2023-09-21"},{"lineNumber":58,"author":{"gitId":"WeeeHung"},"content":" Stage stage \u003d (Stage) userInput.getScene().getWindow();","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":" stage.close();","lastModifiedDate":"2023-09-21"},{"lineNumber":60,"author":{"gitId":"WeeeHung"},"content":" });","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"WeeeHung"},"content":" delay.play();","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"WeeeHung"},"content":" return;","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"WeeeHung"},"content":" userInput.clear();","lastModifiedDate":"2023-09-07"},{"lineNumber":65,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":66,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":66}},{"path":"src/main/java/StorageTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.Storage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.Task;","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.TaskType;","lastModifiedDate":"2023-09-19"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import org.junit.jupiter.api.BeforeEach;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" * The StorageTest class is a JUnit test class for testing the Storage class.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"public class StorageTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" private Storage storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" * Sets up the test environment before each test case.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" @BeforeEach","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" public void setUp() {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" storage \u003d new Storage();","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" * Tests the addList() method of the Storage class.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" public void testAddList() {","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" Task task \u003d new Task(\"Test task\", TaskType.TODO, \"\", \"\");","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task);","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" assertEquals(1, storage.getTaskList().size());","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" assertEquals(\"Test task\", storage.getTaskList().get(0).getDescription());","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" * Tests the delete() method of the Storage class.","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" public void testDelete() {","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":" Task task1 \u003d new Task(\"Task 1\", TaskType.TODO, \"\", \"\");","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":" Task task2 \u003d new Task(\"Task 2\", TaskType.TODO, \"\", \"\");","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task1);","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task2);","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" storage.deleteTask(0);","lastModifiedDate":"2023-09-01"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" assertEquals(1, storage.getTaskList().size());","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":" assertEquals(\"Task 2\", storage.getTaskList().get(0).getDescription());","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":48}},{"path":"src/main/java/dukepackage/ChatGUI.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-19"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":" * The ChatGUI class represents the graphical user interface (GUI)","lastModifiedDate":"2023-09-19"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":" * for the iPBot chat bot application.","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" * It handles user input, task management, and interactions with a storage system.","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"public class ChatGUI {","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" private final String INTRO \u003d \" Hello! I\u0027m iPbot \\n\" +","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" \" What can I do for you?\";","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" protected Storage storage;","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" * Constructs a ChatGUI object.","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" * @param storage The storage object used to load and save tasks.","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" public ChatGUI(Storage storage) {","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" // Constructor body (if needed)","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" // start the gui with loaded storage","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" storage.loadListFromFile();","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" // assertion","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" assert storage !\u003d null : \"Storage should be initialised\";","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" // set up storage for GUI","lastModifiedDate":"2023-09-19"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" this.storage \u003d storage;","lastModifiedDate":"2023-09-19"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" * Handles marking a task as done or undone.","lastModifiedDate":"2023-09-19"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" * @param result The result string to append the task information or error message.","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" * @param isDone Whether to mark the task as done or undone.","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" * @param id The ID of the task to be marked.","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" public String handleMarking(String result, Boolean isDone, int id) {","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" storage.changeTaskMarking(id, isDone);","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printTaskMarking(id);","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" result +\u003d e.getMessage();","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":" * Handles adding a new todo task.","lastModifiedDate":"2023-09-19"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":50,"author":{"gitId":"WeeeHung"},"content":" * @param input The user input command.","lastModifiedDate":"2023-09-19"},{"lineNumber":51,"author":{"gitId":"WeeeHung"},"content":" * @param result The result string to append the task information or error message.","lastModifiedDate":"2023-09-19"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":53,"author":{"gitId":"WeeeHung"},"content":" public String handleTodo(String input, String result) {","lastModifiedDate":"2023-09-19"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":" int indexOfTodo \u003d input.indexOf(\"todo\");","lastModifiedDate":"2023-09-19"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" String taskDesc \u003d input.substring(indexOfTodo + 5);","lastModifiedDate":"2023-09-19"},{"lineNumber":56,"author":{"gitId":"WeeeHung"},"content":" if (Objects.equals(taskDesc, \"\")) {","lastModifiedDate":"2023-09-19"},{"lineNumber":57,"author":{"gitId":"WeeeHung"},"content":" String noDescError \u003d \" OOPS!!! The description of a todo cannot be empty.\";","lastModifiedDate":"2023-09-19"},{"lineNumber":58,"author":{"gitId":"WeeeHung"},"content":" result +\u003d noDescError;","lastModifiedDate":"2023-09-19"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":60,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":61,"author":{"gitId":"WeeeHung"},"content":" Task task \u003d new Task(taskDesc, TaskType.TODO, \"\", \"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":62,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":63,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printTaskEntry(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":64,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":65,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":66,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":67,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":68,"author":{"gitId":"WeeeHung"},"content":" * Handles adding a new deadline task.","lastModifiedDate":"2023-09-19"},{"lineNumber":69,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":70,"author":{"gitId":"WeeeHung"},"content":" * @param input The user input command.","lastModifiedDate":"2023-09-19"},{"lineNumber":71,"author":{"gitId":"WeeeHung"},"content":" * @param result The result string to append the task information or error message.","lastModifiedDate":"2023-09-19"},{"lineNumber":72,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":73,"author":{"gitId":"WeeeHung"},"content":" public String handleDeadline(String input, String result) {","lastModifiedDate":"2023-09-19"},{"lineNumber":74,"author":{"gitId":"WeeeHung"},"content":" int indexOfDeadline \u003d input.indexOf(\"deadline\");","lastModifiedDate":"2023-09-19"},{"lineNumber":75,"author":{"gitId":"WeeeHung"},"content":" int indexOfBy \u003d input.indexOf(\"/by\");","lastModifiedDate":"2023-09-19"},{"lineNumber":76,"author":{"gitId":"WeeeHung"},"content":" String taskDesc \u003d input.substring(indexOfDeadline + 9, indexOfBy);","lastModifiedDate":"2023-09-19"},{"lineNumber":77,"author":{"gitId":"WeeeHung"},"content":" String deadlinePart \u003d input.substring(indexOfBy + 3).trim();","lastModifiedDate":"2023-09-19"},{"lineNumber":78,"author":{"gitId":"WeeeHung"},"content":" Task task \u003d new Task(taskDesc, TaskType.DEADLINE, deadlinePart, \"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":79,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":80,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printTaskEntry(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":81,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":82,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":83,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":84,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":85,"author":{"gitId":"WeeeHung"},"content":" * Handles adding a new event task.","lastModifiedDate":"2023-09-19"},{"lineNumber":86,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":87,"author":{"gitId":"WeeeHung"},"content":" * @param input The user input command.","lastModifiedDate":"2023-09-19"},{"lineNumber":88,"author":{"gitId":"WeeeHung"},"content":" * @param result The result string to append the task information or error message.","lastModifiedDate":"2023-09-19"},{"lineNumber":89,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":90,"author":{"gitId":"WeeeHung"},"content":" public String handleEvent(String input, String result) {","lastModifiedDate":"2023-09-19"},{"lineNumber":91,"author":{"gitId":"WeeeHung"},"content":" int indexOfEvent \u003d input.indexOf(\"event\");","lastModifiedDate":"2023-09-19"},{"lineNumber":92,"author":{"gitId":"WeeeHung"},"content":" int indexOfFrom \u003d input.indexOf(\"/from\");","lastModifiedDate":"2023-09-19"},{"lineNumber":93,"author":{"gitId":"WeeeHung"},"content":" int indexOfTo \u003d input.indexOf(\"/to\");","lastModifiedDate":"2023-09-19"},{"lineNumber":94,"author":{"gitId":"WeeeHung"},"content":" String taskDesc \u003d input.substring(indexOfEvent + 6, indexOfFrom);","lastModifiedDate":"2023-09-19"},{"lineNumber":95,"author":{"gitId":"WeeeHung"},"content":" String fromPart \u003d input.substring(indexOfFrom + 5, indexOfTo).trim();","lastModifiedDate":"2023-09-19"},{"lineNumber":96,"author":{"gitId":"WeeeHung"},"content":" String toPart \u003d input.substring(indexOfTo + 3).trim();","lastModifiedDate":"2023-09-19"},{"lineNumber":97,"author":{"gitId":"WeeeHung"},"content":" Task task \u003d new Task(taskDesc, TaskType.EVENT, fromPart, toPart);","lastModifiedDate":"2023-09-19"},{"lineNumber":98,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":99,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printTaskEntry(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":100,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":101,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":102,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":103,"author":{"gitId":"WeeeHung"},"content":" public static String handleHelp(String result) {","lastModifiedDate":"2023-09-21"},{"lineNumber":104,"author":{"gitId":"WeeeHung"},"content":" result +\u003d \"Welcome to iPbot\\n\" +","lastModifiedDate":"2023-09-21"},{"lineNumber":105,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":106,"author":{"gitId":"WeeeHung"},"content":" \"Here are the features supported by iPbot:\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":107,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":108,"author":{"gitId":"WeeeHung"},"content":" \"1. `bye`: Exit the chat bot and save data to local storage.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":109,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"bye\\\"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":110,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":111,"author":{"gitId":"WeeeHung"},"content":" \"2. `list`: Display the list of tasks.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":112,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"list\\\"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":113,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":114,"author":{"gitId":"WeeeHung"},"content":" \"3. `mark`: Mark a task as done.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":115,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"mark 1\\\" (Mark task number 1 as done)\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":116,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":117,"author":{"gitId":"WeeeHung"},"content":" \"4. `unmark`: Unmark a task as done.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":118,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"unmark 2\\\" (Unmark task number 2 as undone)\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":119,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":120,"author":{"gitId":"WeeeHung"},"content":" \"5. `delete`: Delete a task from the list.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":121,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"delete 3\\\" (Delete task number 3)\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":122,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":123,"author":{"gitId":"WeeeHung"},"content":" \"6. `find`: Find tasks containing a specific keyword.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":124,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"find homework\\\" (Find tasks with \\\"homework\\\" in their description)\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":125,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":126,"author":{"gitId":"WeeeHung"},"content":" \"7. `todo`: Add a todo task.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":127,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"todo Buy groceries\\\" (Adds a todo task with the description \\\"Buy groceries\\\")\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":128,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":129,"author":{"gitId":"WeeeHung"},"content":" \"8. `deadline`: Add a deadline task.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":130,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"deadline Submit report /by 2023-09-30 18:00:00\\\"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":131,"author":{"gitId":"WeeeHung"},"content":" \" (Adds a deadline task with the description \\\"Submit report\\\" and due date \\\"2023-09-30 18:00\\\")\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":132,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":133,"author":{"gitId":"WeeeHung"},"content":" \"9. `event`: Add an event task.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":134,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"event Team meeting /from 2023-09-25 14:00:00 /to 2023-09-25 16:00:00\\\"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":135,"author":{"gitId":"WeeeHung"},"content":" \" (Adds an event task with the description \\\"Team meeting,\\\" start time \\\"2023-09-25 14:00:00,\\\" and end time \\\"2023-09-25 16:00:00\\\")\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":136,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":137,"author":{"gitId":"WeeeHung"},"content":" \"10. `help`: Display this help message.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":138,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"help\\\"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":139,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":140,"author":{"gitId":"WeeeHung"},"content":" \"Tip: Do note that the acceptable format for date is YYYY-MM-DD HH-MM-SS. \\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":141,"author":{"gitId":"WeeeHung"},"content":" \"\\nFeel free to use these commands to manage your tasks and interact with iPbot. Enjoy chatting!\\n\";","lastModifiedDate":"2023-09-19"},{"lineNumber":142,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":143,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":144,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":145,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":146,"author":{"gitId":"WeeeHung"},"content":" * Processes the user input and returns the response.","lastModifiedDate":"2023-09-19"},{"lineNumber":147,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":148,"author":{"gitId":"WeeeHung"},"content":" * @param input The user input command.","lastModifiedDate":"2023-09-19"},{"lineNumber":149,"author":{"gitId":"WeeeHung"},"content":" * @return The response string.","lastModifiedDate":"2023-09-19"},{"lineNumber":150,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":151,"author":{"gitId":"WeeeHung"},"content":" public String process(String input) {","lastModifiedDate":"2023-09-07"},{"lineNumber":152,"author":{"gitId":"WeeeHung"},"content":" // Constants and instance variables","lastModifiedDate":"2023-09-19"},{"lineNumber":153,"author":{"gitId":"WeeeHung"},"content":" String HORIZONTAL_LINE \u003d \" ------------------------------------------------------------\\n\";","lastModifiedDate":"2023-09-19"},{"lineNumber":154,"author":{"gitId":"WeeeHung"},"content":" String result \u003d HORIZONTAL_LINE;","lastModifiedDate":"2023-09-07"},{"lineNumber":155,"author":{"gitId":"WeeeHung"},"content":" String[] parts \u003d input.split(\" \");","lastModifiedDate":"2023-09-07"},{"lineNumber":156,"author":{"gitId":"WeeeHung"},"content":" String noCommandError \u003d \" OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\";","lastModifiedDate":"2023-09-19"},{"lineNumber":157,"author":{"gitId":"WeeeHung"},"content":" String OUTRO \u003d \" Bye. Hope to see you again soon!\\n\";","lastModifiedDate":"2023-09-19"},{"lineNumber":158,"author":{"gitId":"WeeeHung"},"content":" switch (parts[0]) {","lastModifiedDate":"2023-09-07"},{"lineNumber":159,"author":{"gitId":"WeeeHung"},"content":" case \"bye\":","lastModifiedDate":"2023-09-07"},{"lineNumber":160,"author":{"gitId":"WeeeHung"},"content":" result +\u003d OUTRO;","lastModifiedDate":"2023-09-07"},{"lineNumber":161,"author":{"gitId":"WeeeHung"},"content":" // write the changes into the file duke.txt","lastModifiedDate":"2023-09-07"},{"lineNumber":162,"author":{"gitId":"WeeeHung"},"content":" storage.writeTasksToFile();","lastModifiedDate":"2023-09-07"},{"lineNumber":163,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":164,"author":{"gitId":"WeeeHung"},"content":" case \"list\":","lastModifiedDate":"2023-09-07"},{"lineNumber":165,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printTaskList();","lastModifiedDate":"2023-09-07"},{"lineNumber":166,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":167,"author":{"gitId":"WeeeHung"},"content":" case \"mark\":","lastModifiedDate":"2023-09-07"},{"lineNumber":168,"author":{"gitId":"WeeeHung"},"content":" int id \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-07"},{"lineNumber":169,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleMarking(result, true, id);","lastModifiedDate":"2023-09-19"},{"lineNumber":170,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":171,"author":{"gitId":"WeeeHung"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-07"},{"lineNumber":172,"author":{"gitId":"WeeeHung"},"content":" int id2 \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-07"},{"lineNumber":173,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleMarking(result, false, id2);","lastModifiedDate":"2023-09-19"},{"lineNumber":174,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":175,"author":{"gitId":"WeeeHung"},"content":" case \"delete\":","lastModifiedDate":"2023-09-07"},{"lineNumber":176,"author":{"gitId":"WeeeHung"},"content":" int id3 \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-07"},{"lineNumber":177,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.deleteTask(id3);","lastModifiedDate":"2023-09-07"},{"lineNumber":178,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":179,"author":{"gitId":"WeeeHung"},"content":" case \"find\":","lastModifiedDate":"2023-09-07"},{"lineNumber":180,"author":{"gitId":"WeeeHung"},"content":" int indexOfFind \u003d input.indexOf(\"find\");","lastModifiedDate":"2023-09-07"},{"lineNumber":181,"author":{"gitId":"WeeeHung"},"content":" String toFindString \u003d input.substring(indexOfFind + 5);","lastModifiedDate":"2023-09-07"},{"lineNumber":182,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printMatchingList(toFindString);","lastModifiedDate":"2023-09-07"},{"lineNumber":183,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":184,"author":{"gitId":"WeeeHung"},"content":" case \"todo\":","lastModifiedDate":"2023-09-07"},{"lineNumber":185,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleTodo(input, result);","lastModifiedDate":"2023-09-19"},{"lineNumber":186,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":187,"author":{"gitId":"WeeeHung"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-07"},{"lineNumber":188,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleDeadline(input, result);","lastModifiedDate":"2023-09-19"},{"lineNumber":189,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":190,"author":{"gitId":"WeeeHung"},"content":" case \"event\":","lastModifiedDate":"2023-09-07"},{"lineNumber":191,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleEvent(input, result);","lastModifiedDate":"2023-09-19"},{"lineNumber":192,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-19"},{"lineNumber":193,"author":{"gitId":"WeeeHung"},"content":" case \"help\":","lastModifiedDate":"2023-09-19"},{"lineNumber":194,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleHelp(result);","lastModifiedDate":"2023-09-19"},{"lineNumber":195,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":196,"author":{"gitId":"WeeeHung"},"content":" default:","lastModifiedDate":"2023-09-07"},{"lineNumber":197,"author":{"gitId":"WeeeHung"},"content":" result +\u003d noCommandError;","lastModifiedDate":"2023-09-07"},{"lineNumber":198,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":199,"author":{"gitId":"WeeeHung"},"content":" result +\u003d HORIZONTAL_LINE;","lastModifiedDate":"2023-09-07"},{"lineNumber":200,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-07"},{"lineNumber":201,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":202,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":202}},{"path":"src/main/java/dukepackage/ChatUI.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":" * The ChatUI class represents the user interface for the chatbot application.","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"public class ChatUI {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" private final String HORIZONTAL_LINE \u003d \" ------------------------------------------------------------------------\";","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" private final String INTRO \u003d \" Hello! I\u0027m iPbot \\n\" +","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" \" What can I do for you?\";","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" private final String OUTRO \u003d \" Bye. Hope to see you again soon!\";","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" * Constructs a new ChatUI object.","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" public ChatUI() {","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" // Constructor body (if needed), not necessary in this case","lastModifiedDate":"2023-09-22"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" * Prints a horizontal line divider.","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" public void printDivider() {","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" System.out.println(HORIZONTAL_LINE);","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" * Prints the introduction message.","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" public void printIntro() {","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" System.out.println(HORIZONTAL_LINE);","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" System.out.println(INTRO);","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" System.out.println(HORIZONTAL_LINE);","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" * Prints the outro message.","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" public void printOutro() {","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":" System.out.println(OUTRO);","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":42}},{"path":"src/main/java/dukepackage/DukeException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":" * The DukeException class represents an exception specific to the Duke application.","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"public class DukeException extends Exception {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" * Constructs a new DukeException object with the specified error message.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" * @param message The error message associated with the exception.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" public DukeException(String message) {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" super(message);","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":15}},{"path":"src/main/java/dukepackage/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"//function to retrieve string that the user input","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" * The Parser class is responsible for retrieving user input from the console.","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"public class Parser {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" Scanner scanner;","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" * Constructs a new Parser object.","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" public Parser() {","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" this.scanner \u003d new Scanner(System.in);","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" * Retrieves the user input as a string.","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" * @return The user input as a string.","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" public String getInput() {","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" Scanner scanner \u003d this.scanner;","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" // Prompt the user for input","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" System.out.print(\" \");","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" // Read and return the user input","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" return scanner.nextLine();","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":34}},{"path":"src/main/java/dukepackage/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import java.io.File;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import java.io.BufferedWriter;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"import java.io.BufferedReader;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"import java.io.FileReader;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"import java.util.Objects;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" * The Storage class is responsible for managing the storage of tasks in a task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":"public class Storage {","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" * The list of tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" protected ArrayList\u003cTask\u003e taskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" protected final String MATCHING_STRING \u003d \" Here are the matching tasks in your list:\\n\";","lastModifiedDate":"2023-09-21"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" protected final String filePathRelativeFromJar \u003d \"./data/duke.txt\";","lastModifiedDate":"2023-09-22"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" * Constructs a Storage object with an empty task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" public Storage() {","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" this.taskList \u003d new ArrayList\u003cTask\u003e();","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" * Retrieves the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" * @return The task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" public ArrayList\u003cTask\u003e getTaskList() {","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" return this.taskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" * Adds a task to the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" * @param t The task to be added.","lastModifiedDate":"2023-09-01"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":" public void addList(Task t) {","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" this.taskList.add(t);","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"WeeeHung"},"content":" * Deletes a task from the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"WeeeHung"},"content":" * @param id The index of the task to be deleted.","lastModifiedDate":"2023-09-01"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" public String deleteTask(int id) {","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"WeeeHung"},"content":" String result \u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"WeeeHung"},"content":" result +\u003d (\" Noted. I\u0027ve removed this task:\");","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"WeeeHung"},"content":" Task t \u003d this.taskList.get(id);","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":" result +\u003d t.printMarking(false);","lastModifiedDate":"2023-09-07"},{"lineNumber":60,"author":{"gitId":"WeeeHung"},"content":" this.taskList.remove(id);","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"WeeeHung"},"content":" int size \u003d this.taskList.size();","lastModifiedDate":"2023-08-31"},{"lineNumber":62,"author":{"gitId":"WeeeHung"},"content":" result +\u003d String.format(\"\\n Now you have %d tasks in the list.\\n\", size);","lastModifiedDate":"2023-09-07"},{"lineNumber":63,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-07"},{"lineNumber":64,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":65,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":67,"author":{"gitId":"WeeeHung"},"content":" * Writes the task list to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":68,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":69,"author":{"gitId":"WeeeHung"},"content":" public void writeTasksToFile() {","lastModifiedDate":"2023-09-01"},{"lineNumber":70,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":71,"author":{"gitId":"WeeeHung"},"content":" FileWriter fileWriter \u003d new FileWriter(filePathRelativeFromJar);","lastModifiedDate":"2023-09-19"},{"lineNumber":72,"author":{"gitId":"WeeeHung"},"content":" BufferedWriter bufferedWriter \u003d new BufferedWriter(fileWriter);","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"WeeeHung"},"content":" for (Task tasking : this.taskList) {","lastModifiedDate":"2023-08-31"},{"lineNumber":74,"author":{"gitId":"WeeeHung"},"content":" // format the string","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"WeeeHung"},"content":" String formattedString \u003d \"\";","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"WeeeHung"},"content":" Integer priority \u003d tasking.isDone ? 1 : 0;","lastModifiedDate":"2023-09-19"},{"lineNumber":77,"author":{"gitId":"WeeeHung"},"content":" switch (tasking.type) {","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"WeeeHung"},"content":" case TODO:","lastModifiedDate":"2023-08-31"},{"lineNumber":79,"author":{"gitId":"WeeeHung"},"content":" formattedString \u003d String.format(\"%c|%d|%s\", \u0027T\u0027, priority, tasking.description);","lastModifiedDate":"2023-09-19"},{"lineNumber":80,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-08-31"},{"lineNumber":81,"author":{"gitId":"WeeeHung"},"content":" case DEADLINE:","lastModifiedDate":"2023-08-31"},{"lineNumber":82,"author":{"gitId":"WeeeHung"},"content":" String start \u003d tasking.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":83,"author":{"gitId":"WeeeHung"},"content":" formattedString \u003d String.format(\"%c|%d|%s|%s\", \u0027D\u0027, priority, tasking.description, start);","lastModifiedDate":"2023-09-19"},{"lineNumber":84,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-08-31"},{"lineNumber":85,"author":{"gitId":"WeeeHung"},"content":" case EVENT:","lastModifiedDate":"2023-08-31"},{"lineNumber":86,"author":{"gitId":"WeeeHung"},"content":" start \u003d tasking.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":87,"author":{"gitId":"WeeeHung"},"content":" String end \u003d tasking.endTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":88,"author":{"gitId":"WeeeHung"},"content":" formattedString \u003d String.format(\"%c|%d|%s|%s|%s\",","lastModifiedDate":"2023-08-31"},{"lineNumber":89,"author":{"gitId":"WeeeHung"},"content":" \u0027E\u0027, priority, tasking.description, start, end);","lastModifiedDate":"2023-09-19"},{"lineNumber":90,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-08-31"},{"lineNumber":91,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":92,"author":{"gitId":"WeeeHung"},"content":" bufferedWriter.write(formattedString);","lastModifiedDate":"2023-08-31"},{"lineNumber":93,"author":{"gitId":"WeeeHung"},"content":" bufferedWriter.newLine(); // Move to the next line","lastModifiedDate":"2023-08-31"},{"lineNumber":94,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":95,"author":{"gitId":"WeeeHung"},"content":" bufferedWriter.close();","lastModifiedDate":"2023-08-31"},{"lineNumber":96,"author":{"gitId":"WeeeHung"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":97,"author":{"gitId":"WeeeHung"},"content":" e.printStackTrace();","lastModifiedDate":"2023-08-31"},{"lineNumber":98,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":99,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":100,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":101,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":102,"author":{"gitId":"WeeeHung"},"content":" * Initializes a Task object from an array of values.","lastModifiedDate":"2023-09-19"},{"lineNumber":103,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":104,"author":{"gitId":"WeeeHung"},"content":" * @param values An array of values representing task information.","lastModifiedDate":"2023-09-19"},{"lineNumber":105,"author":{"gitId":"WeeeHung"},"content":" * @return A Task object initialized from the provided values.","lastModifiedDate":"2023-09-19"},{"lineNumber":106,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":107,"author":{"gitId":"WeeeHung"},"content":" public Task initTaskFromLine(String[] values) {","lastModifiedDate":"2023-09-19"},{"lineNumber":108,"author":{"gitId":"WeeeHung"},"content":" TaskType type \u003d Objects.equals(values[0], \"T\")","lastModifiedDate":"2023-09-19"},{"lineNumber":109,"author":{"gitId":"WeeeHung"},"content":" ? TaskType.TODO","lastModifiedDate":"2023-09-19"},{"lineNumber":110,"author":{"gitId":"WeeeHung"},"content":" : Objects.equals(values[0], \"D\")","lastModifiedDate":"2023-09-19"},{"lineNumber":111,"author":{"gitId":"WeeeHung"},"content":" ? TaskType.DEADLINE","lastModifiedDate":"2023-09-19"},{"lineNumber":112,"author":{"gitId":"WeeeHung"},"content":" : TaskType.EVENT;","lastModifiedDate":"2023-09-19"},{"lineNumber":113,"author":{"gitId":"WeeeHung"},"content":" int valuesLength \u003d values.length;","lastModifiedDate":"2023-09-19"},{"lineNumber":114,"author":{"gitId":"WeeeHung"},"content":" String start \u003d valuesLength \u003e\u003d 4 ? values[3] : \"\";","lastModifiedDate":"2023-09-19"},{"lineNumber":115,"author":{"gitId":"WeeeHung"},"content":" String end \u003d valuesLength \u003e\u003d 5 ? values[4] : \"\";","lastModifiedDate":"2023-09-19"},{"lineNumber":116,"author":{"gitId":"WeeeHung"},"content":" return new Task(values[2], type, start, end);","lastModifiedDate":"2023-09-19"},{"lineNumber":117,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":118,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":119,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":120,"author":{"gitId":"WeeeHung"},"content":" * Loads the task list from a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":121,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":122,"author":{"gitId":"WeeeHung"},"content":" public void loadListFromFile() {","lastModifiedDate":"2023-09-01"},{"lineNumber":123,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-09-21"},{"lineNumber":124,"author":{"gitId":"WeeeHung"},"content":" File file \u003d new File(filePathRelativeFromJar);","lastModifiedDate":"2023-09-19"},{"lineNumber":125,"author":{"gitId":"WeeeHung"},"content":" if (!file.getParentFile().exists()) {","lastModifiedDate":"2023-09-21"},{"lineNumber":126,"author":{"gitId":"WeeeHung"},"content":" file.getParentFile().mkdirs();","lastModifiedDate":"2023-09-21"},{"lineNumber":127,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":128,"author":{"gitId":"WeeeHung"},"content":" if (!file.exists()) {","lastModifiedDate":"2023-08-31"},{"lineNumber":129,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-09-21"},{"lineNumber":130,"author":{"gitId":"WeeeHung"},"content":" file.createNewFile();","lastModifiedDate":"2023-08-31"},{"lineNumber":131,"author":{"gitId":"WeeeHung"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-21"},{"lineNumber":132,"author":{"gitId":"WeeeHung"},"content":" System.out.printf(\"Error creating file: \", e);","lastModifiedDate":"2023-09-21"},{"lineNumber":133,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":134,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":135,"author":{"gitId":"WeeeHung"},"content":" FileReader fileReader \u003d new FileReader(file); // append mode","lastModifiedDate":"2023-08-31"},{"lineNumber":136,"author":{"gitId":"WeeeHung"},"content":" BufferedReader bufferedReader \u003d new BufferedReader(fileReader);","lastModifiedDate":"2023-08-31"},{"lineNumber":137,"author":{"gitId":"WeeeHung"},"content":" String line;","lastModifiedDate":"2023-08-31"},{"lineNumber":138,"author":{"gitId":"WeeeHung"},"content":" while ((line \u003d bufferedReader.readLine()) !\u003d null) {","lastModifiedDate":"2023-09-21"},{"lineNumber":139,"author":{"gitId":"WeeeHung"},"content":" // Assuming your line contains comma-separated values","lastModifiedDate":"2023-08-31"},{"lineNumber":140,"author":{"gitId":"WeeeHung"},"content":" String[] values \u003d line.split(\"\\\\|\");","lastModifiedDate":"2023-08-31"},{"lineNumber":141,"author":{"gitId":"WeeeHung"},"content":" Task obj \u003d initTaskFromLine(values); // Instantiate with appropriate arguments","lastModifiedDate":"2023-09-19"},{"lineNumber":142,"author":{"gitId":"WeeeHung"},"content":" obj.setStatus(!(values[1].equals(\"0\")));","lastModifiedDate":"2023-09-19"},{"lineNumber":143,"author":{"gitId":"WeeeHung"},"content":" // Store the object in your storage instance","lastModifiedDate":"2023-08-31"},{"lineNumber":144,"author":{"gitId":"WeeeHung"},"content":" addList(obj);","lastModifiedDate":"2023-08-31"},{"lineNumber":145,"author":{"gitId":"WeeeHung"},"content":"// bufferedReader.close();","lastModifiedDate":"2023-09-21"},{"lineNumber":146,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":147,"author":{"gitId":"WeeeHung"},"content":" bufferedReader.close();","lastModifiedDate":"2023-09-01"},{"lineNumber":148,"author":{"gitId":"WeeeHung"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":149,"author":{"gitId":"WeeeHung"},"content":" e.printStackTrace();","lastModifiedDate":"2023-08-31"},{"lineNumber":150,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":151,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":152,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":153,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":154,"author":{"gitId":"WeeeHung"},"content":" * Appends a task\u0027s information to a StringBuilder.","lastModifiedDate":"2023-09-19"},{"lineNumber":155,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":156,"author":{"gitId":"WeeeHung"},"content":" * @param result The StringBuilder to which the task information is appended.","lastModifiedDate":"2023-09-19"},{"lineNumber":157,"author":{"gitId":"WeeeHung"},"content":" * @param index The index of the task.","lastModifiedDate":"2023-09-19"},{"lineNumber":158,"author":{"gitId":"WeeeHung"},"content":" * @param t The Task object containing task information.","lastModifiedDate":"2023-09-19"},{"lineNumber":159,"author":{"gitId":"WeeeHung"},"content":" * @return The updated StringBuilder containing the appended task information.","lastModifiedDate":"2023-09-19"},{"lineNumber":160,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":161,"author":{"gitId":"WeeeHung"},"content":" public StringBuilder appendTaskToString(StringBuilder result, int index, Task t) {","lastModifiedDate":"2023-09-19"},{"lineNumber":162,"author":{"gitId":"WeeeHung"},"content":" result.append(String.format(\" %d.[%s][%s] %s\",","lastModifiedDate":"2023-09-19"},{"lineNumber":163,"author":{"gitId":"WeeeHung"},"content":" index, t.getTypeIcon(), t.getStatusIcon(), t.description));","lastModifiedDate":"2023-09-19"},{"lineNumber":164,"author":{"gitId":"WeeeHung"},"content":" if (!Objects.isNull(t.startTime) \u0026\u0026 !Objects.isNull(t.endTime)) {","lastModifiedDate":"2023-09-19"},{"lineNumber":165,"author":{"gitId":"WeeeHung"},"content":" String start \u003d t.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":166,"author":{"gitId":"WeeeHung"},"content":" String end \u003d t.endTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":167,"author":{"gitId":"WeeeHung"},"content":" result.append(String.format(\" (from: %s to: %s)%n\", start, end));","lastModifiedDate":"2023-09-19"},{"lineNumber":168,"author":{"gitId":"WeeeHung"},"content":" } else if (!Objects.isNull(t.startTime)) {","lastModifiedDate":"2023-09-19"},{"lineNumber":169,"author":{"gitId":"WeeeHung"},"content":" String start \u003d t.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":170,"author":{"gitId":"WeeeHung"},"content":" result.append(String.format(\" (by: %s)%n\", start));","lastModifiedDate":"2023-09-19"},{"lineNumber":171,"author":{"gitId":"WeeeHung"},"content":" } else {","lastModifiedDate":"2023-09-19"},{"lineNumber":172,"author":{"gitId":"WeeeHung"},"content":" result.append(\"\\n\");","lastModifiedDate":"2023-09-19"},{"lineNumber":173,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":174,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":175,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":176,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":177,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":178,"author":{"gitId":"WeeeHung"},"content":" * Prints the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":179,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":180,"author":{"gitId":"WeeeHung"},"content":" * @return A string representation of the entire task list.","lastModifiedDate":"2023-09-19"},{"lineNumber":181,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":182,"author":{"gitId":"WeeeHung"},"content":" public String printTaskList() {","lastModifiedDate":"2023-09-07"},{"lineNumber":183,"author":{"gitId":"WeeeHung"},"content":" StringBuilder result \u003d new StringBuilder();","lastModifiedDate":"2023-09-19"},{"lineNumber":184,"author":{"gitId":"WeeeHung"},"content":" for (int i \u003d 0; i \u003c this.taskList.size(); i++) {","lastModifiedDate":"2023-08-31"},{"lineNumber":185,"author":{"gitId":"WeeeHung"},"content":" // taskList is 0 indexed while list in GUI is 1-indexed","lastModifiedDate":"2023-09-19"},{"lineNumber":186,"author":{"gitId":"WeeeHung"},"content":" int index \u003d i + 1;","lastModifiedDate":"2023-08-31"},{"lineNumber":187,"author":{"gitId":"WeeeHung"},"content":" Task t \u003d this.taskList.get(i);","lastModifiedDate":"2023-08-31"},{"lineNumber":188,"author":{"gitId":"WeeeHung"},"content":" result \u003d appendTaskToString(result, index, t);","lastModifiedDate":"2023-09-19"},{"lineNumber":189,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":190,"author":{"gitId":"WeeeHung"},"content":" return result.toString();","lastModifiedDate":"2023-09-19"},{"lineNumber":191,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":192,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":193,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":194,"author":{"gitId":"WeeeHung"},"content":" * Prints a list of matching tasks based on a search string.","lastModifiedDate":"2023-09-19"},{"lineNumber":195,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":196,"author":{"gitId":"WeeeHung"},"content":" * @param toFindString The search string used to filter matching tasks.","lastModifiedDate":"2023-09-19"},{"lineNumber":197,"author":{"gitId":"WeeeHung"},"content":" * @return A string representation of the matching tasks.","lastModifiedDate":"2023-09-19"},{"lineNumber":198,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":199,"author":{"gitId":"WeeeHung"},"content":" public String printMatchingList(String toFindString) {","lastModifiedDate":"2023-09-19"},{"lineNumber":200,"author":{"gitId":"WeeeHung"},"content":" StringBuilder result \u003d new StringBuilder();","lastModifiedDate":"2023-09-19"},{"lineNumber":201,"author":{"gitId":"WeeeHung"},"content":" result.append(MATCHING_STRING);","lastModifiedDate":"2023-09-19"},{"lineNumber":202,"author":{"gitId":"WeeeHung"},"content":" for (int i \u003d 0; i \u003c this.taskList.size(); i++) {","lastModifiedDate":"2023-09-19"},{"lineNumber":203,"author":{"gitId":"WeeeHung"},"content":" int index \u003d i + 1;","lastModifiedDate":"2023-09-19"},{"lineNumber":204,"author":{"gitId":"WeeeHung"},"content":" Task t \u003d this.taskList.get(i);","lastModifiedDate":"2023-09-19"},{"lineNumber":205,"author":{"gitId":"WeeeHung"},"content":" if (t.getDescription().contains(toFindString)) {","lastModifiedDate":"2023-09-19"},{"lineNumber":206,"author":{"gitId":"WeeeHung"},"content":" result \u003d appendTaskToString(result, index, t);","lastModifiedDate":"2023-09-19"},{"lineNumber":207,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":208,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":209,"author":{"gitId":"WeeeHung"},"content":" return result.toString();","lastModifiedDate":"2023-09-19"},{"lineNumber":210,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":211,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":212,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":213,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":214,"author":{"gitId":"WeeeHung"},"content":" * Prints the marking for a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":215,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":216,"author":{"gitId":"WeeeHung"},"content":" * @param i The index of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":217,"author":{"gitId":"WeeeHung"},"content":" * @return The marking information.","lastModifiedDate":"2023-09-19"},{"lineNumber":218,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":219,"author":{"gitId":"WeeeHung"},"content":" public String printTaskMarking(int i) {","lastModifiedDate":"2023-09-19"},{"lineNumber":220,"author":{"gitId":"WeeeHung"},"content":" String result \u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":221,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":222,"author":{"gitId":"WeeeHung"},"content":" Task t \u003d this.taskList.get(i);","lastModifiedDate":"2023-08-31"},{"lineNumber":223,"author":{"gitId":"WeeeHung"},"content":" result +\u003d t.printMarking(true);","lastModifiedDate":"2023-09-07"},{"lineNumber":224,"author":{"gitId":"WeeeHung"},"content":" System.out.println();","lastModifiedDate":"2023-08-31"},{"lineNumber":225,"author":{"gitId":"WeeeHung"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":226,"author":{"gitId":"WeeeHung"},"content":" result +\u003d (\" ☹ OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-09-07"},{"lineNumber":227,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":228,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-07"},{"lineNumber":229,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":230,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":231,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":232,"author":{"gitId":"WeeeHung"},"content":" * Changes the marking of a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":233,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":234,"author":{"gitId":"WeeeHung"},"content":" * @param i The index of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":235,"author":{"gitId":"WeeeHung"},"content":" * @param isDone The new marking status.","lastModifiedDate":"2023-09-01"},{"lineNumber":236,"author":{"gitId":"WeeeHung"},"content":" * @throws DukeException If the task index is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":237,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":238,"author":{"gitId":"WeeeHung"},"content":" public void changeTaskMarking(int i, boolean isDone) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":239,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":240,"author":{"gitId":"WeeeHung"},"content":" Task t \u003d this.taskList.get(i);","lastModifiedDate":"2023-08-31"},{"lineNumber":241,"author":{"gitId":"WeeeHung"},"content":" t.setStatus(isDone);","lastModifiedDate":"2023-09-01"},{"lineNumber":242,"author":{"gitId":"WeeeHung"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":243,"author":{"gitId":"WeeeHung"},"content":" throw new DukeException(\" ☹ OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-08-31"},{"lineNumber":244,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":245,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":246,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":247,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":248,"author":{"gitId":"WeeeHung"},"content":" * Prints the entry of a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":249,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":250,"author":{"gitId":"WeeeHung"},"content":" * @param t The task.","lastModifiedDate":"2023-09-01"},{"lineNumber":251,"author":{"gitId":"WeeeHung"},"content":" * @return The task entry information.","lastModifiedDate":"2023-09-19"},{"lineNumber":252,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":253,"author":{"gitId":"WeeeHung"},"content":" public String printTaskEntry(Task t) {","lastModifiedDate":"2023-09-07"},{"lineNumber":254,"author":{"gitId":"WeeeHung"},"content":" String result \u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":255,"author":{"gitId":"WeeeHung"},"content":" result +\u003d t.printDescription();","lastModifiedDate":"2023-09-07"},{"lineNumber":256,"author":{"gitId":"WeeeHung"},"content":" int size \u003d this.taskList.size();","lastModifiedDate":"2023-08-31"},{"lineNumber":257,"author":{"gitId":"WeeeHung"},"content":" result +\u003d String.format(\"\\n Now you have %d tasks in the list.\\n\", size);","lastModifiedDate":"2023-09-07"},{"lineNumber":258,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-07"},{"lineNumber":259,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":260,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":260}},{"path":"src/main/java/dukepackage/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import java.util.Objects;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" * The Task class represents a task with a description, status, type, start time, and end time.","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"public class Task {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" * The description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" protected String description;","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" * The status of the task (done or not done).","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" * The type of the task (TODO, DEADLINE, or EVENT).","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" protected TaskType type;","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" * The start time of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" protected LocalDateTime startTime;","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" * The end time of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" protected LocalDateTime endTime;","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" * The string displayed when the task is marked as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":" protected final String MARKED_STRING \u003d \" Nice! I\u0027ve marked this task as done:\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" * The string displayed when the task is marked as not done yet.","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" protected final String UNMARKED_STRING \u003d \" OK, I\u0027ve marked this task as not done yet:\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":" * Constructs a Task object with the given description, type, start time, and end time.","lastModifiedDate":"2023-09-01"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":50,"author":{"gitId":"WeeeHung"},"content":" * @param description The description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"WeeeHung"},"content":" * @param type The type of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":" * @param start The start time of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"WeeeHung"},"content":" * @param end The end time of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" public Task(String description, TaskType type, String start, String end) {","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"WeeeHung"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"WeeeHung"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"WeeeHung"},"content":" // set to-do as the default type","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":" this.type \u003d type;","lastModifiedDate":"2023-08-31"},{"lineNumber":60,"author":{"gitId":"WeeeHung"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"yyyy-MM-dd HH:mm:ss\");","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"WeeeHung"},"content":" this.startTime \u003d Objects.equals(start, \"\")","lastModifiedDate":"2023-09-01"},{"lineNumber":62,"author":{"gitId":"WeeeHung"},"content":" ? null","lastModifiedDate":"2023-08-31"},{"lineNumber":63,"author":{"gitId":"WeeeHung"},"content":" : LocalDateTime.parse(start, formatter);","lastModifiedDate":"2023-08-31"},{"lineNumber":64,"author":{"gitId":"WeeeHung"},"content":" this.endTime \u003d Objects.equals(end, \"\")","lastModifiedDate":"2023-09-01"},{"lineNumber":65,"author":{"gitId":"WeeeHung"},"content":" ? null","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"WeeeHung"},"content":" : LocalDateTime.parse(end, formatter);","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":68,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":69,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":70,"author":{"gitId":"WeeeHung"},"content":" * Retrieves the description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":71,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":72,"author":{"gitId":"WeeeHung"},"content":" * @return The description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":73,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":74,"author":{"gitId":"WeeeHung"},"content":" public String getDescription() {","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"WeeeHung"},"content":" return this.description;","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":77,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":79,"author":{"gitId":"WeeeHung"},"content":" * Retrieves the status icon of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":80,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":81,"author":{"gitId":"WeeeHung"},"content":" * @return The status icon of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":82,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":83,"author":{"gitId":"WeeeHung"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-31"},{"lineNumber":84,"author":{"gitId":"WeeeHung"},"content":" return (isDone ? \"X\" : \" \"); // mark done task with X","lastModifiedDate":"2023-08-31"},{"lineNumber":85,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":86,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":87,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":88,"author":{"gitId":"WeeeHung"},"content":" * Retrieves the type icon of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":89,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":90,"author":{"gitId":"WeeeHung"},"content":" * @return The type icon of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":91,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":92,"author":{"gitId":"WeeeHung"},"content":" public String getTypeIcon() {","lastModifiedDate":"2023-08-31"},{"lineNumber":93,"author":{"gitId":"WeeeHung"},"content":" switch (this.type) {","lastModifiedDate":"2023-08-31"},{"lineNumber":94,"author":{"gitId":"WeeeHung"},"content":" case TODO:","lastModifiedDate":"2023-08-31"},{"lineNumber":95,"author":{"gitId":"WeeeHung"},"content":" return \"T\";","lastModifiedDate":"2023-08-31"},{"lineNumber":96,"author":{"gitId":"WeeeHung"},"content":" case DEADLINE:","lastModifiedDate":"2023-08-31"},{"lineNumber":97,"author":{"gitId":"WeeeHung"},"content":" return \"D\";","lastModifiedDate":"2023-08-31"},{"lineNumber":98,"author":{"gitId":"WeeeHung"},"content":" case EVENT:","lastModifiedDate":"2023-08-31"},{"lineNumber":99,"author":{"gitId":"WeeeHung"},"content":" return \"E\";","lastModifiedDate":"2023-08-31"},{"lineNumber":100,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":101,"author":{"gitId":"WeeeHung"},"content":" return null;","lastModifiedDate":"2023-08-31"},{"lineNumber":102,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":103,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":104,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":105,"author":{"gitId":"WeeeHung"},"content":" * Sets the status of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":106,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":107,"author":{"gitId":"WeeeHung"},"content":" * @param checked The new status of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":108,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":109,"author":{"gitId":"WeeeHung"},"content":" public void setStatus(Boolean checked) {","lastModifiedDate":"2023-09-01"},{"lineNumber":110,"author":{"gitId":"WeeeHung"},"content":" this.isDone \u003d checked;","lastModifiedDate":"2023-08-31"},{"lineNumber":111,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":112,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":113,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":114,"author":{"gitId":"WeeeHung"},"content":" * Prints the description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":115,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":116,"author":{"gitId":"WeeeHung"},"content":" public String printDescription() {","lastModifiedDate":"2023-09-07"},{"lineNumber":117,"author":{"gitId":"WeeeHung"},"content":" String initStatement \u003d \" Got it. I\u0027ve added this task:\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":118,"author":{"gitId":"WeeeHung"},"content":"// System.out.println(initStatement);","lastModifiedDate":"2023-09-07"},{"lineNumber":119,"author":{"gitId":"WeeeHung"},"content":" return initStatement + this.printMarking(false);","lastModifiedDate":"2023-09-07"},{"lineNumber":120,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":121,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":122,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":123,"author":{"gitId":"WeeeHung"},"content":" * Prints the marking of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":124,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":125,"author":{"gitId":"WeeeHung"},"content":" * @param mark Indicates whether to display the marking or not.","lastModifiedDate":"2023-09-01"},{"lineNumber":126,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":127,"author":{"gitId":"WeeeHung"},"content":" public String printMarking(boolean mark) {","lastModifiedDate":"2023-09-07"},{"lineNumber":128,"author":{"gitId":"WeeeHung"},"content":" String result \u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":129,"author":{"gitId":"WeeeHung"},"content":" if (mark) {","lastModifiedDate":"2023-08-31"},{"lineNumber":130,"author":{"gitId":"WeeeHung"},"content":" if (this.isDone) {","lastModifiedDate":"2023-08-31"},{"lineNumber":131,"author":{"gitId":"WeeeHung"},"content":" result +\u003d MARKED_STRING;","lastModifiedDate":"2023-09-07"},{"lineNumber":132,"author":{"gitId":"WeeeHung"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":133,"author":{"gitId":"WeeeHung"},"content":" result +\u003d UNMARKED_STRING;","lastModifiedDate":"2023-09-07"},{"lineNumber":134,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":135,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":136,"author":{"gitId":"WeeeHung"},"content":" result +\u003d String.format(\" [%s][%s] %s\", this.getTypeIcon(), this.getStatusIcon(), this.description);","lastModifiedDate":"2023-09-07"},{"lineNumber":137,"author":{"gitId":"WeeeHung"},"content":" if (!Objects.isNull(this.startTime) \u0026\u0026 !Objects.isNull(this.endTime)) {","lastModifiedDate":"2023-09-01"},{"lineNumber":138,"author":{"gitId":"WeeeHung"},"content":" String start \u003d this.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":139,"author":{"gitId":"WeeeHung"},"content":" String end \u003d this.endTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":140,"author":{"gitId":"WeeeHung"},"content":" result +\u003d String.format(\" (from: %s to: %s)\", start, end);","lastModifiedDate":"2023-09-19"},{"lineNumber":141,"author":{"gitId":"WeeeHung"},"content":" } else if (!Objects.isNull(this.startTime)) {","lastModifiedDate":"2023-09-01"},{"lineNumber":142,"author":{"gitId":"WeeeHung"},"content":" String start \u003d this.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":143,"author":{"gitId":"WeeeHung"},"content":" result +\u003d String.format(\" (by: %s)\", start);","lastModifiedDate":"2023-09-19"},{"lineNumber":144,"author":{"gitId":"WeeeHung"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":145,"author":{"gitId":"WeeeHung"},"content":" result +\u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":146,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":147,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-07"},{"lineNumber":148,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":149,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":149}},{"path":"src/main/java/dukepackage/TaskType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":" * The TaskType enum represents the types of tasks that can be used in the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"public enum TaskType {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" * Represents a todo task.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" TODO,","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" * Represents a deadline task.","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" DEADLINE,","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" * Represents an event task.","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" EVENT","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":22}},{"path":"src/main/resources/View/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"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-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":16}},{"path":"src/main/resources/View/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.control.*?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"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\"MainWindow\"\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"\u003c!-- \u003cchildren\u003e--\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"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-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"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-07"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":"\u003c!-- \u003ccontent\u003e--\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" \u003cLabel text\u003d\"Welcome to the Chat bot\" style\u003d\"-fx-font-size: 20;\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" \u003cLabel text\u003d\"Enter your message:\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefWidth\u003d\"388.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"\u003c!-- \u003c/content\u003e--\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":"\u003c!-- \u003c/children\u003e--\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":18}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"todo task1","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"event task2 /from tue /to fri","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"event task2 /from tue /to fri","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"list","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":4}}] +[{"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":"WeeeHung"},"content":"jar {","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" manifest {","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"// attributes \u0027Main-Class\u0027: \u0027com.example.MainClass\u0027","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" attributes \u0027Main-Class\u0027: \u0027Launcher\u0027","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" implementation \u0027org.junit.jupiter:junit-jupiter-api:5.10.0\u0027","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":21,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":51,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":"// mainClass.set(\"seedu.Launcher\")","lastModifiedDate":"2023-09-19"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" mainClass.set(\"Launcher\")","lastModifiedDate":"2023-09-19"},{"lineNumber":56,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":58,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":"// archiveBaseName \u003d \"duke\"","lastModifiedDate":"2023-09-19"},{"lineNumber":60,"author":{"gitId":"WeeeHung"},"content":"// archiveClassifier \u003d null","lastModifiedDate":"2023-09-19"},{"lineNumber":61,"author":{"gitId":"WeeeHung"},"content":"// dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-09-19"},{"lineNumber":62,"author":{"gitId":"WeeeHung"},"content":" archiveFileName \u003d \u0027iPBot-2.jar\u0027","lastModifiedDate":"2023-09-19"},{"lineNumber":63,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":64,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":65,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":66,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":67,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":38,"WeeeHung":29}},{"path":"data/duke.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"T|0|123","lastModifiedDate":"2023-09-22"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"T|1|456","lastModifiedDate":"2023-09-22"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"T|0|something1","lastModifiedDate":"2023-10-17"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"E|0|Team meeting |2023-09-25 14:00|2023-09-25 14:00","lastModifiedDate":"2023-10-17"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"E|0|Team meeting x |2023-09-25 13:00|2023-09-25 14:00","lastModifiedDate":"2023-10-17"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"E|0|Team meeting final |2023-09-25 14:00|2023-10-25 16:00","lastModifiedDate":"2023-10-17"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"D|0|IP |2023-09-25 14:00","lastModifiedDate":"2023-10-17"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"T|0|mroe","lastModifiedDate":"2023-10-17"}],"authorContributionMap":{"WeeeHung":8}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"# iPbot - Your Task Management Chat Bot","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"iPbot is a task management chat bot that helps you keep track of your tasks, deadlines, and events conveniently through chat. It\u0027s designed to make task management easier and more interactive.","lastModifiedDate":"2023-09-19"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Features","lastModifiedDate":"2019-07-29"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"iPbot supports the following features:","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"- **`bye`**: Exit the chat bot.","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" Example: `bye`","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"- **`list`**: Display the list of tasks.","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" Example: `list`","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"- **`mark`**: Mark a task as done.","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" Example: `mark 1` (Mark task number 1 as done)","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":"- **`unmark`**: Unmark a task as done.","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" Example: `unmark 2` (Unmark task number 2 as undone)","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":"- **`delete`**: Delete a task from the list.","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" Example: `delete 3` (Delete task number 3)","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":"- **`find`**: Find tasks containing a specific keyword.","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" Example: `find homework` (Find tasks with \"homework\" in their description)","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":"- **`todo`**: Add a todo task.","lastModifiedDate":"2023-09-19"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" Example: `todo Buy groceries` (Adds a todo task with the description \"Buy groceries\")","lastModifiedDate":"2023-09-19"},{"lineNumber":29,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":"- **`deadline`**: Add a deadline task.","lastModifiedDate":"2023-09-19"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" Example: `deadline Submit report /by 2023-09-30 18:00:00`","lastModifiedDate":"2023-09-19"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" (Adds a deadline task with the description \"Submit report\" and due date \"2023-09-30 18:00:00\")","lastModifiedDate":"2023-09-19"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":"- **`event`**: Add an event task.","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" Example: `event Team meeting /from 2023-09-25 14:00:00 /to 2023-09-25 16:00:00`","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" (Adds an event task with the description \"Team meeting,\" start time \"2023-09-25 14:00:00,\" and end time \"2023-09-25 16:00:00\")","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":"- **`help`**: Display a help message.","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" Example: `help`","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":"Feel free to use these commands to manage your tasks and interact with iPbot. Enjoy chatting!","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":"## Getting Started","lastModifiedDate":"2023-09-19"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":"To get started with iPbot, follow these steps:","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":"1. Clone this repository to your local machine / Check for jar files in release.","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":"2. Build/Install and run the application.","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":"3. Start chatting with iPbot using the supported commands.","lastModifiedDate":"2023-09-19"},{"lineNumber":50,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":51,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":"Happy task management with iPbot!","lastModifiedDate":"2023-09-19"}],"authorContributionMap":{"-":20,"WeeeHung":32}},{"path":"src/main/java/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" private Label dialog;","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/View/DialogBox.fxml\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" private void flip() {","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"WeeeHung"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"WeeeHung"},"content":" return new DialogBox(text, img);","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"WeeeHung"},"content":" db.flip();","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"WeeeHung"},"content":" return db;","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":59}},{"path":"src/main/java/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.ChatGUI;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.Storage;","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":" * The Duke class is the main class that runs the Duke chatbot application.","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"public class Duke{","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" protected static Storage storage \u003d new Storage();","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" protected static ChatGUI ui \u003d new ChatGUI(storage);","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" protected String getResponse(String input) {","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" return ui.process(input);","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"-":2,"WeeeHung":13}},{"path":"src/main/java/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"public class Launcher {","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":10}},{"path":"src/main/java/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" private final Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" stage.setTitle(\"iPBot\"); // Set the window title","lastModifiedDate":"2023-10-17"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/View/MainWindow.fxml\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" stage.show();","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":31}},{"path":"src/main/java/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.ChatGUI;","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import javafx.animation.PauseTransition;","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"import javafx.util.Duration;","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" private Duke duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/theUser.jpg\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/iPBot.jpg\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" public void initialize() {","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" dialogContainer.getChildren().add(DialogBox.getDukeDialog(ChatGUI.handleHelp(\"\"), dukeImage));","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"WeeeHung"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"WeeeHung"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"WeeeHung"},"content":" );","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":" if (input.equals(\"bye\")) {","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" userInput.clear();","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"WeeeHung"},"content":" PauseTransition delay \u003d new PauseTransition(Duration.seconds(1));","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"WeeeHung"},"content":" delay.setOnFinished(event -\u003e {","lastModifiedDate":"2023-09-21"},{"lineNumber":58,"author":{"gitId":"WeeeHung"},"content":" Stage stage \u003d (Stage) userInput.getScene().getWindow();","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":" stage.close();","lastModifiedDate":"2023-09-21"},{"lineNumber":60,"author":{"gitId":"WeeeHung"},"content":" });","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"WeeeHung"},"content":" delay.play();","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"WeeeHung"},"content":" return;","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"WeeeHung"},"content":" userInput.clear();","lastModifiedDate":"2023-09-07"},{"lineNumber":65,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":66,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":66}},{"path":"src/main/java/StorageTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.Storage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.Task;","lastModifiedDate":"2023-09-19"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import dukepackage.TaskType;","lastModifiedDate":"2023-09-19"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import org.junit.jupiter.api.BeforeEach;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" * The StorageTest class is a JUnit test class for testing the Storage class.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"public class StorageTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" private Storage storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" * Sets up the test environment before each test case.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" @BeforeEach","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" public void setUp() {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" storage \u003d new Storage();","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" * Tests the addList() method of the Storage class.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" public void testAddList() {","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" Task task \u003d new Task(\"Test task\", TaskType.TODO, \"\", \"\");","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task);","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" assertEquals(1, storage.getTaskList().size());","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" assertEquals(\"Test task\", storage.getTaskList().get(0).getDescription());","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" * Tests the delete() method of the Storage class.","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" public void testDelete() {","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":" Task task1 \u003d new Task(\"Task 1\", TaskType.TODO, \"\", \"\");","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":" Task task2 \u003d new Task(\"Task 2\", TaskType.TODO, \"\", \"\");","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task1);","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task2);","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" storage.deleteTask(0);","lastModifiedDate":"2023-09-01"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" assertEquals(1, storage.getTaskList().size());","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":" assertEquals(\"Task 2\", storage.getTaskList().get(0).getDescription());","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":48}},{"path":"src/main/java/dukepackage/ChatGUI.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-19"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":" * The ChatGUI class represents the graphical user interface (GUI)","lastModifiedDate":"2023-09-19"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":" * for the iPBot chat bot application.","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" * It handles user input, task management, and interactions with a storage system.","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"public class ChatGUI {","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" private final String INTRO \u003d \" Hello! I\u0027m iPbot \\n\" +","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" \" What can I do for you?\";","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" protected Storage storage;","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" * Constructs a ChatGUI object.","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" * @param storage The storage object used to load and save tasks.","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" public ChatGUI(Storage storage) {","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" // Constructor body (if needed)","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" // start the gui with loaded storage","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" storage.loadListFromFile();","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" // assertion","lastModifiedDate":"2023-09-19"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" assert storage !\u003d null : \"Storage should be initialised\";","lastModifiedDate":"2023-09-19"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" // set up storage for GUI","lastModifiedDate":"2023-09-19"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" this.storage \u003d storage;","lastModifiedDate":"2023-09-19"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":" * Handles marking a task as done or undone.","lastModifiedDate":"2023-09-19"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" * @param result The result string to append the task information or error message.","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" * @param isDone Whether to mark the task as done or undone.","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" * @param id The ID of the task to be marked.","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" public String handleMarking(String result, Boolean isDone, int id) {","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" storage.changeTaskMarking(id, isDone);","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printTaskMarking(id);","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" result +\u003d e.getMessage();","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":" * Handles adding a new todo task.","lastModifiedDate":"2023-09-19"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":50,"author":{"gitId":"WeeeHung"},"content":" * @param input The user input command.","lastModifiedDate":"2023-09-19"},{"lineNumber":51,"author":{"gitId":"WeeeHung"},"content":" * @param result The result string to append the task information or error message.","lastModifiedDate":"2023-09-19"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":53,"author":{"gitId":"WeeeHung"},"content":" public String handleTodo(String input, String result) {","lastModifiedDate":"2023-09-19"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":" int indexOfTodo \u003d input.indexOf(\"todo\");","lastModifiedDate":"2023-09-19"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" String taskDesc \u003d input.substring(indexOfTodo + 5);","lastModifiedDate":"2023-09-19"},{"lineNumber":56,"author":{"gitId":"WeeeHung"},"content":" if (Objects.equals(taskDesc, \"\")) {","lastModifiedDate":"2023-09-19"},{"lineNumber":57,"author":{"gitId":"WeeeHung"},"content":" String noDescError \u003d \" OOPS!!! The description of a todo cannot be empty.\";","lastModifiedDate":"2023-09-19"},{"lineNumber":58,"author":{"gitId":"WeeeHung"},"content":" result +\u003d noDescError;","lastModifiedDate":"2023-09-19"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":60,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":61,"author":{"gitId":"WeeeHung"},"content":" Task task \u003d new Task(taskDesc, TaskType.TODO, \"\", \"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":62,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":63,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printTaskEntry(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":64,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":65,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":66,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":67,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":68,"author":{"gitId":"WeeeHung"},"content":" * Handles adding a new deadline task.","lastModifiedDate":"2023-09-19"},{"lineNumber":69,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":70,"author":{"gitId":"WeeeHung"},"content":" * @param input The user input command.","lastModifiedDate":"2023-09-19"},{"lineNumber":71,"author":{"gitId":"WeeeHung"},"content":" * @param result The result string to append the task information or error message.","lastModifiedDate":"2023-09-19"},{"lineNumber":72,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":73,"author":{"gitId":"WeeeHung"},"content":" public String handleDeadline(String input, String result) {","lastModifiedDate":"2023-09-19"},{"lineNumber":74,"author":{"gitId":"WeeeHung"},"content":" int indexOfDeadline \u003d input.indexOf(\"deadline\");","lastModifiedDate":"2023-09-19"},{"lineNumber":75,"author":{"gitId":"WeeeHung"},"content":" int indexOfBy \u003d input.indexOf(\"/by\");","lastModifiedDate":"2023-09-19"},{"lineNumber":76,"author":{"gitId":"WeeeHung"},"content":" String taskDesc \u003d input.substring(indexOfDeadline + 9, indexOfBy);","lastModifiedDate":"2023-09-19"},{"lineNumber":77,"author":{"gitId":"WeeeHung"},"content":" String deadlinePart \u003d input.substring(indexOfBy + 3).trim();","lastModifiedDate":"2023-09-19"},{"lineNumber":78,"author":{"gitId":"WeeeHung"},"content":" Task task \u003d new Task(taskDesc, TaskType.DEADLINE, deadlinePart, \"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":79,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":80,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printTaskEntry(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":81,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":82,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":83,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":84,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":85,"author":{"gitId":"WeeeHung"},"content":" * Handles adding a new event task.","lastModifiedDate":"2023-09-19"},{"lineNumber":86,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":87,"author":{"gitId":"WeeeHung"},"content":" * @param input The user input command.","lastModifiedDate":"2023-09-19"},{"lineNumber":88,"author":{"gitId":"WeeeHung"},"content":" * @param result The result string to append the task information or error message.","lastModifiedDate":"2023-09-19"},{"lineNumber":89,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":90,"author":{"gitId":"WeeeHung"},"content":" public String handleEvent(String input, String result) {","lastModifiedDate":"2023-09-19"},{"lineNumber":91,"author":{"gitId":"WeeeHung"},"content":" int indexOfEvent \u003d input.indexOf(\"event\");","lastModifiedDate":"2023-09-19"},{"lineNumber":92,"author":{"gitId":"WeeeHung"},"content":" int indexOfFrom \u003d input.indexOf(\"/from\");","lastModifiedDate":"2023-09-19"},{"lineNumber":93,"author":{"gitId":"WeeeHung"},"content":" int indexOfTo \u003d input.indexOf(\"/to\");","lastModifiedDate":"2023-09-19"},{"lineNumber":94,"author":{"gitId":"WeeeHung"},"content":" String taskDesc \u003d input.substring(indexOfEvent + 6, indexOfFrom);","lastModifiedDate":"2023-09-19"},{"lineNumber":95,"author":{"gitId":"WeeeHung"},"content":" String fromPart \u003d input.substring(indexOfFrom + 5, indexOfTo).trim();","lastModifiedDate":"2023-09-19"},{"lineNumber":96,"author":{"gitId":"WeeeHung"},"content":" String toPart \u003d input.substring(indexOfTo + 3).trim();","lastModifiedDate":"2023-09-19"},{"lineNumber":97,"author":{"gitId":"WeeeHung"},"content":" Task task \u003d new Task(taskDesc, TaskType.EVENT, fromPart, toPart);","lastModifiedDate":"2023-09-19"},{"lineNumber":98,"author":{"gitId":"WeeeHung"},"content":" storage.addList(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":99,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printTaskEntry(task);","lastModifiedDate":"2023-09-19"},{"lineNumber":100,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":101,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":102,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":103,"author":{"gitId":"WeeeHung"},"content":" public static String handleHelp(String result) {","lastModifiedDate":"2023-09-21"},{"lineNumber":104,"author":{"gitId":"WeeeHung"},"content":" result +\u003d \"Welcome to iPbot\\n\" +","lastModifiedDate":"2023-09-21"},{"lineNumber":105,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":106,"author":{"gitId":"WeeeHung"},"content":" \"Here are the features supported by iPbot:\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":107,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":108,"author":{"gitId":"WeeeHung"},"content":" \"1. `bye`: Exit the chat bot and save data to local storage.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":109,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"bye\\\"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":110,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":111,"author":{"gitId":"WeeeHung"},"content":" \"2. `list`: Display the list of tasks.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":112,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"list\\\"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":113,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":114,"author":{"gitId":"WeeeHung"},"content":" \"3. `mark`: Mark a task as done.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":115,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"mark 1\\\" (Mark task number 1 as done)\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":116,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":117,"author":{"gitId":"WeeeHung"},"content":" \"4. `unmark`: Unmark a task as done.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":118,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"unmark 2\\\" (Unmark task number 2 as undone)\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":119,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":120,"author":{"gitId":"WeeeHung"},"content":" \"5. `delete`: Delete a task from the list.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":121,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"delete 3\\\" (Delete task number 3)\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":122,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":123,"author":{"gitId":"WeeeHung"},"content":" \"6. `find`: Find tasks containing a specific keyword.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":124,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"find homework\\\" (Find tasks with \\\"homework\\\" in their description)\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":125,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":126,"author":{"gitId":"WeeeHung"},"content":" \"7. `todo`: Add a todo task.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":127,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"todo Buy groceries\\\" (Adds a todo task with the description \\\"Buy groceries\\\")\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":128,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":129,"author":{"gitId":"WeeeHung"},"content":" \"8. `deadline`: Add a deadline task.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":130,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"deadline Submit report /by 2023-09-30 18:00\\\"\\n\" +","lastModifiedDate":"2023-10-17"},{"lineNumber":131,"author":{"gitId":"WeeeHung"},"content":" \" (Adds a deadline task with the description \\\"Submit report\\\" and due date \\\"2023-09-30 18:00\\\")\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":132,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":133,"author":{"gitId":"WeeeHung"},"content":" \"9. `event`: Add an event task.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":134,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"event Team meeting /from 2023-09-25 14:00 /to 2023-09-25 16:00\\\"\\n\" +","lastModifiedDate":"2023-10-17"},{"lineNumber":135,"author":{"gitId":"WeeeHung"},"content":" \" (Adds an event task with the description \\\"Team meeting,\\\" start time \\\"2023-09-25 14:00,\\\" and end time \\\"2023-09-25 16:00\\\")\\n\" +","lastModifiedDate":"2023-10-17"},{"lineNumber":136,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":137,"author":{"gitId":"WeeeHung"},"content":" \"10. `help`: Display this help message.\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":138,"author":{"gitId":"WeeeHung"},"content":" \" Example: \\\"help\\\"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":139,"author":{"gitId":"WeeeHung"},"content":" \"\\n\" +","lastModifiedDate":"2023-09-19"},{"lineNumber":140,"author":{"gitId":"WeeeHung"},"content":" \"Tip: Do note that the acceptable format for date is YYYY-MM-DD HH-MM. \\n\" +","lastModifiedDate":"2023-10-17"},{"lineNumber":141,"author":{"gitId":"WeeeHung"},"content":" \"\\nFeel free to use these commands to manage your tasks and interact with iPbot. Enjoy chatting!\\n\";","lastModifiedDate":"2023-09-19"},{"lineNumber":142,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":143,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":144,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":145,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":146,"author":{"gitId":"WeeeHung"},"content":" * Processes the user input and returns the response.","lastModifiedDate":"2023-09-19"},{"lineNumber":147,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":148,"author":{"gitId":"WeeeHung"},"content":" * @param input The user input command.","lastModifiedDate":"2023-09-19"},{"lineNumber":149,"author":{"gitId":"WeeeHung"},"content":" * @return The response string.","lastModifiedDate":"2023-09-19"},{"lineNumber":150,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":151,"author":{"gitId":"WeeeHung"},"content":" public String process(String input) {","lastModifiedDate":"2023-09-07"},{"lineNumber":152,"author":{"gitId":"WeeeHung"},"content":" // Constants and instance variables","lastModifiedDate":"2023-09-19"},{"lineNumber":153,"author":{"gitId":"WeeeHung"},"content":" String HORIZONTAL_LINE \u003d \" ------------------------------------------------------------\\n\";","lastModifiedDate":"2023-09-19"},{"lineNumber":154,"author":{"gitId":"WeeeHung"},"content":" String result \u003d HORIZONTAL_LINE;","lastModifiedDate":"2023-09-07"},{"lineNumber":155,"author":{"gitId":"WeeeHung"},"content":" String[] parts \u003d input.split(\" \");","lastModifiedDate":"2023-09-07"},{"lineNumber":156,"author":{"gitId":"WeeeHung"},"content":" String noCommandError \u003d \" OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\";","lastModifiedDate":"2023-09-19"},{"lineNumber":157,"author":{"gitId":"WeeeHung"},"content":" String OUTRO \u003d \" Bye. Hope to see you again soon!\\n\";","lastModifiedDate":"2023-09-19"},{"lineNumber":158,"author":{"gitId":"WeeeHung"},"content":" switch (parts[0]) {","lastModifiedDate":"2023-09-07"},{"lineNumber":159,"author":{"gitId":"WeeeHung"},"content":" case \"bye\":","lastModifiedDate":"2023-09-07"},{"lineNumber":160,"author":{"gitId":"WeeeHung"},"content":" result +\u003d OUTRO;","lastModifiedDate":"2023-09-07"},{"lineNumber":161,"author":{"gitId":"WeeeHung"},"content":" // write the changes into the file duke.txt","lastModifiedDate":"2023-09-07"},{"lineNumber":162,"author":{"gitId":"WeeeHung"},"content":" storage.writeTasksToFile();","lastModifiedDate":"2023-09-07"},{"lineNumber":163,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":164,"author":{"gitId":"WeeeHung"},"content":" case \"list\":","lastModifiedDate":"2023-09-07"},{"lineNumber":165,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printTaskList();","lastModifiedDate":"2023-09-07"},{"lineNumber":166,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":167,"author":{"gitId":"WeeeHung"},"content":" case \"mark\":","lastModifiedDate":"2023-09-07"},{"lineNumber":168,"author":{"gitId":"WeeeHung"},"content":" int id \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-07"},{"lineNumber":169,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleMarking(result, true, id);","lastModifiedDate":"2023-09-19"},{"lineNumber":170,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":171,"author":{"gitId":"WeeeHung"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-07"},{"lineNumber":172,"author":{"gitId":"WeeeHung"},"content":" int id2 \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-07"},{"lineNumber":173,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleMarking(result, false, id2);","lastModifiedDate":"2023-09-19"},{"lineNumber":174,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":175,"author":{"gitId":"WeeeHung"},"content":" case \"delete\":","lastModifiedDate":"2023-09-07"},{"lineNumber":176,"author":{"gitId":"WeeeHung"},"content":" int id3 \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-07"},{"lineNumber":177,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.deleteTask(id3);","lastModifiedDate":"2023-09-07"},{"lineNumber":178,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":179,"author":{"gitId":"WeeeHung"},"content":" case \"find\":","lastModifiedDate":"2023-09-07"},{"lineNumber":180,"author":{"gitId":"WeeeHung"},"content":" int indexOfFind \u003d input.indexOf(\"find\");","lastModifiedDate":"2023-09-07"},{"lineNumber":181,"author":{"gitId":"WeeeHung"},"content":" String toFindString \u003d input.substring(indexOfFind + 5);","lastModifiedDate":"2023-09-07"},{"lineNumber":182,"author":{"gitId":"WeeeHung"},"content":" result +\u003d storage.printMatchingList(toFindString);","lastModifiedDate":"2023-09-07"},{"lineNumber":183,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":184,"author":{"gitId":"WeeeHung"},"content":" case \"todo\":","lastModifiedDate":"2023-09-07"},{"lineNumber":185,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleTodo(input, result);","lastModifiedDate":"2023-09-19"},{"lineNumber":186,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":187,"author":{"gitId":"WeeeHung"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-07"},{"lineNumber":188,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleDeadline(input, result);","lastModifiedDate":"2023-09-19"},{"lineNumber":189,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":190,"author":{"gitId":"WeeeHung"},"content":" case \"event\":","lastModifiedDate":"2023-09-07"},{"lineNumber":191,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleEvent(input, result);","lastModifiedDate":"2023-09-19"},{"lineNumber":192,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-19"},{"lineNumber":193,"author":{"gitId":"WeeeHung"},"content":" case \"help\":","lastModifiedDate":"2023-09-19"},{"lineNumber":194,"author":{"gitId":"WeeeHung"},"content":" result \u003d handleHelp(result);","lastModifiedDate":"2023-09-19"},{"lineNumber":195,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":196,"author":{"gitId":"WeeeHung"},"content":" default:","lastModifiedDate":"2023-09-07"},{"lineNumber":197,"author":{"gitId":"WeeeHung"},"content":" result +\u003d noCommandError;","lastModifiedDate":"2023-09-07"},{"lineNumber":198,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":199,"author":{"gitId":"WeeeHung"},"content":" result +\u003d HORIZONTAL_LINE;","lastModifiedDate":"2023-09-07"},{"lineNumber":200,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-07"},{"lineNumber":201,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":202,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":202}},{"path":"src/main/java/dukepackage/DukeException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":" * The DukeException class represents an exception specific to the Duke application.","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"public class DukeException extends Exception {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" * Constructs a new DukeException object with the specified error message.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" * @param message The error message associated with the exception.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" public DukeException(String message) {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" super(message);","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":15}},{"path":"src/main/java/dukepackage/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import java.io.File;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import java.io.BufferedWriter;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"import java.io.BufferedReader;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"import java.io.FileReader;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":"import java.util.Objects;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" * The Storage class is responsible for managing the storage of tasks in a task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":"public class Storage {","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" * The list of tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" protected ArrayList\u003cTask\u003e taskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" protected final String MATCHING_STRING \u003d \" Here are the matching tasks in your list:\\n\";","lastModifiedDate":"2023-09-21"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" protected final String filePathRelativeFromJar \u003d \"./data/duke.txt\";","lastModifiedDate":"2023-09-22"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":" * Constructs a Storage object with an empty task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" public Storage() {","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" this.taskList \u003d new ArrayList\u003cTask\u003e();","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" * Retrieves the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" * @return The task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" public ArrayList\u003cTask\u003e getTaskList() {","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" return this.taskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" * Adds a task to the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" * @param t The task to be added.","lastModifiedDate":"2023-09-01"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":" public void addList(Task t) {","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" this.taskList.add(t);","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"WeeeHung"},"content":" * Deletes a task from the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"WeeeHung"},"content":" * @param id The index of the task to be deleted.","lastModifiedDate":"2023-09-01"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" public String deleteTask(int id) {","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"WeeeHung"},"content":" String result \u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"WeeeHung"},"content":" result +\u003d (\" Noted. I\u0027ve removed this task:\");","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"WeeeHung"},"content":" Task t \u003d this.taskList.get(id);","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":" result +\u003d t.printMarking(false);","lastModifiedDate":"2023-09-07"},{"lineNumber":60,"author":{"gitId":"WeeeHung"},"content":" this.taskList.remove(id);","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"WeeeHung"},"content":" int size \u003d this.taskList.size();","lastModifiedDate":"2023-08-31"},{"lineNumber":62,"author":{"gitId":"WeeeHung"},"content":" result +\u003d String.format(\"\\n Now you have %d tasks in the list.\\n\", size);","lastModifiedDate":"2023-09-07"},{"lineNumber":63,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-07"},{"lineNumber":64,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":65,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":67,"author":{"gitId":"WeeeHung"},"content":" * Writes the task list to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":68,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":69,"author":{"gitId":"WeeeHung"},"content":" public void writeTasksToFile() {","lastModifiedDate":"2023-09-01"},{"lineNumber":70,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":71,"author":{"gitId":"WeeeHung"},"content":" FileWriter fileWriter \u003d new FileWriter(filePathRelativeFromJar);","lastModifiedDate":"2023-09-19"},{"lineNumber":72,"author":{"gitId":"WeeeHung"},"content":" BufferedWriter bufferedWriter \u003d new BufferedWriter(fileWriter);","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"WeeeHung"},"content":" for (Task tasking : this.taskList) {","lastModifiedDate":"2023-08-31"},{"lineNumber":74,"author":{"gitId":"WeeeHung"},"content":" // format the string","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"WeeeHung"},"content":" String formattedString \u003d \"\";","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"WeeeHung"},"content":" Integer priority \u003d tasking.isDone ? 1 : 0;","lastModifiedDate":"2023-09-19"},{"lineNumber":77,"author":{"gitId":"WeeeHung"},"content":" switch (tasking.type) {","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"WeeeHung"},"content":" case TODO:","lastModifiedDate":"2023-08-31"},{"lineNumber":79,"author":{"gitId":"WeeeHung"},"content":" formattedString \u003d String.format(\"%c|%d|%s\", \u0027T\u0027, priority, tasking.description);","lastModifiedDate":"2023-09-19"},{"lineNumber":80,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-08-31"},{"lineNumber":81,"author":{"gitId":"WeeeHung"},"content":" case DEADLINE:","lastModifiedDate":"2023-08-31"},{"lineNumber":82,"author":{"gitId":"WeeeHung"},"content":" String start \u003d tasking.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":83,"author":{"gitId":"WeeeHung"},"content":" formattedString \u003d String.format(\"%c|%d|%s|%s\", \u0027D\u0027, priority, tasking.description, start);","lastModifiedDate":"2023-09-19"},{"lineNumber":84,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-08-31"},{"lineNumber":85,"author":{"gitId":"WeeeHung"},"content":" case EVENT:","lastModifiedDate":"2023-08-31"},{"lineNumber":86,"author":{"gitId":"WeeeHung"},"content":" start \u003d tasking.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":87,"author":{"gitId":"WeeeHung"},"content":" String end \u003d tasking.endTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":88,"author":{"gitId":"WeeeHung"},"content":" formattedString \u003d String.format(\"%c|%d|%s|%s|%s\",","lastModifiedDate":"2023-08-31"},{"lineNumber":89,"author":{"gitId":"WeeeHung"},"content":" \u0027E\u0027, priority, tasking.description, start, end);","lastModifiedDate":"2023-09-19"},{"lineNumber":90,"author":{"gitId":"WeeeHung"},"content":" break;","lastModifiedDate":"2023-08-31"},{"lineNumber":91,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":92,"author":{"gitId":"WeeeHung"},"content":" bufferedWriter.write(formattedString);","lastModifiedDate":"2023-08-31"},{"lineNumber":93,"author":{"gitId":"WeeeHung"},"content":" bufferedWriter.newLine(); // Move to the next line","lastModifiedDate":"2023-08-31"},{"lineNumber":94,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":95,"author":{"gitId":"WeeeHung"},"content":" bufferedWriter.close();","lastModifiedDate":"2023-08-31"},{"lineNumber":96,"author":{"gitId":"WeeeHung"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":97,"author":{"gitId":"WeeeHung"},"content":" e.printStackTrace();","lastModifiedDate":"2023-08-31"},{"lineNumber":98,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":99,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":100,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":101,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":102,"author":{"gitId":"WeeeHung"},"content":" * Initializes a Task object from an array of values.","lastModifiedDate":"2023-09-19"},{"lineNumber":103,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":104,"author":{"gitId":"WeeeHung"},"content":" * @param values An array of values representing task information.","lastModifiedDate":"2023-09-19"},{"lineNumber":105,"author":{"gitId":"WeeeHung"},"content":" * @return A Task object initialized from the provided values.","lastModifiedDate":"2023-09-19"},{"lineNumber":106,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":107,"author":{"gitId":"WeeeHung"},"content":" public Task initTaskFromLine(String[] values) {","lastModifiedDate":"2023-09-19"},{"lineNumber":108,"author":{"gitId":"WeeeHung"},"content":" TaskType type \u003d Objects.equals(values[0], \"T\")","lastModifiedDate":"2023-09-19"},{"lineNumber":109,"author":{"gitId":"WeeeHung"},"content":" ? TaskType.TODO","lastModifiedDate":"2023-09-19"},{"lineNumber":110,"author":{"gitId":"WeeeHung"},"content":" : Objects.equals(values[0], \"D\")","lastModifiedDate":"2023-09-19"},{"lineNumber":111,"author":{"gitId":"WeeeHung"},"content":" ? TaskType.DEADLINE","lastModifiedDate":"2023-09-19"},{"lineNumber":112,"author":{"gitId":"WeeeHung"},"content":" : TaskType.EVENT;","lastModifiedDate":"2023-09-19"},{"lineNumber":113,"author":{"gitId":"WeeeHung"},"content":" int valuesLength \u003d values.length;","lastModifiedDate":"2023-09-19"},{"lineNumber":114,"author":{"gitId":"WeeeHung"},"content":" String start \u003d valuesLength \u003e\u003d 4 ? values[3] : \"\";","lastModifiedDate":"2023-09-19"},{"lineNumber":115,"author":{"gitId":"WeeeHung"},"content":" String end \u003d valuesLength \u003e\u003d 5 ? values[4] : \"\";","lastModifiedDate":"2023-09-19"},{"lineNumber":116,"author":{"gitId":"WeeeHung"},"content":" return new Task(values[2], type, start, end);","lastModifiedDate":"2023-09-19"},{"lineNumber":117,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":118,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":119,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":120,"author":{"gitId":"WeeeHung"},"content":" * Loads the task list from a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":121,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":122,"author":{"gitId":"WeeeHung"},"content":" public void loadListFromFile() {","lastModifiedDate":"2023-09-01"},{"lineNumber":123,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-09-21"},{"lineNumber":124,"author":{"gitId":"WeeeHung"},"content":" File file \u003d new File(filePathRelativeFromJar);","lastModifiedDate":"2023-09-19"},{"lineNumber":125,"author":{"gitId":"WeeeHung"},"content":" if (!file.getParentFile().exists()) {","lastModifiedDate":"2023-09-21"},{"lineNumber":126,"author":{"gitId":"WeeeHung"},"content":" file.getParentFile().mkdirs();","lastModifiedDate":"2023-09-21"},{"lineNumber":127,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":128,"author":{"gitId":"WeeeHung"},"content":" if (!file.exists()) {","lastModifiedDate":"2023-08-31"},{"lineNumber":129,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-09-21"},{"lineNumber":130,"author":{"gitId":"WeeeHung"},"content":" file.createNewFile();","lastModifiedDate":"2023-08-31"},{"lineNumber":131,"author":{"gitId":"WeeeHung"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-21"},{"lineNumber":132,"author":{"gitId":"WeeeHung"},"content":" System.out.printf(\"Error creating file: \", e);","lastModifiedDate":"2023-09-21"},{"lineNumber":133,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":134,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":135,"author":{"gitId":"WeeeHung"},"content":" FileReader fileReader \u003d new FileReader(file); // append mode","lastModifiedDate":"2023-08-31"},{"lineNumber":136,"author":{"gitId":"WeeeHung"},"content":" BufferedReader bufferedReader \u003d new BufferedReader(fileReader);","lastModifiedDate":"2023-08-31"},{"lineNumber":137,"author":{"gitId":"WeeeHung"},"content":" String line;","lastModifiedDate":"2023-08-31"},{"lineNumber":138,"author":{"gitId":"WeeeHung"},"content":" while ((line \u003d bufferedReader.readLine()) !\u003d null) {","lastModifiedDate":"2023-09-21"},{"lineNumber":139,"author":{"gitId":"WeeeHung"},"content":" // Assuming your line contains comma-separated values","lastModifiedDate":"2023-08-31"},{"lineNumber":140,"author":{"gitId":"WeeeHung"},"content":" String[] values \u003d line.split(\"\\\\|\");","lastModifiedDate":"2023-08-31"},{"lineNumber":141,"author":{"gitId":"WeeeHung"},"content":" Task obj \u003d initTaskFromLine(values); // Instantiate with appropriate arguments","lastModifiedDate":"2023-09-19"},{"lineNumber":142,"author":{"gitId":"WeeeHung"},"content":" obj.setStatus(!(values[1].equals(\"0\")));","lastModifiedDate":"2023-09-19"},{"lineNumber":143,"author":{"gitId":"WeeeHung"},"content":" // Store the object in your storage instance","lastModifiedDate":"2023-08-31"},{"lineNumber":144,"author":{"gitId":"WeeeHung"},"content":" addList(obj);","lastModifiedDate":"2023-08-31"},{"lineNumber":145,"author":{"gitId":"WeeeHung"},"content":"// bufferedReader.close();","lastModifiedDate":"2023-09-21"},{"lineNumber":146,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":147,"author":{"gitId":"WeeeHung"},"content":" bufferedReader.close();","lastModifiedDate":"2023-09-01"},{"lineNumber":148,"author":{"gitId":"WeeeHung"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":149,"author":{"gitId":"WeeeHung"},"content":" e.printStackTrace();","lastModifiedDate":"2023-08-31"},{"lineNumber":150,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":151,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":152,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":153,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":154,"author":{"gitId":"WeeeHung"},"content":" * Appends a task\u0027s information to a StringBuilder.","lastModifiedDate":"2023-09-19"},{"lineNumber":155,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":156,"author":{"gitId":"WeeeHung"},"content":" * @param result The StringBuilder to which the task information is appended.","lastModifiedDate":"2023-09-19"},{"lineNumber":157,"author":{"gitId":"WeeeHung"},"content":" * @param index The index of the task.","lastModifiedDate":"2023-09-19"},{"lineNumber":158,"author":{"gitId":"WeeeHung"},"content":" * @param t The Task object containing task information.","lastModifiedDate":"2023-09-19"},{"lineNumber":159,"author":{"gitId":"WeeeHung"},"content":" * @return The updated StringBuilder containing the appended task information.","lastModifiedDate":"2023-09-19"},{"lineNumber":160,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":161,"author":{"gitId":"WeeeHung"},"content":" public StringBuilder appendTaskToString(StringBuilder result, int index, Task t) {","lastModifiedDate":"2023-09-19"},{"lineNumber":162,"author":{"gitId":"WeeeHung"},"content":" result.append(String.format(\" %d.[%s][%s] %s\",","lastModifiedDate":"2023-09-19"},{"lineNumber":163,"author":{"gitId":"WeeeHung"},"content":" index, t.getTypeIcon(), t.getStatusIcon(), t.description));","lastModifiedDate":"2023-09-19"},{"lineNumber":164,"author":{"gitId":"WeeeHung"},"content":" if (!Objects.isNull(t.startTime) \u0026\u0026 !Objects.isNull(t.endTime)) {","lastModifiedDate":"2023-09-19"},{"lineNumber":165,"author":{"gitId":"WeeeHung"},"content":" String start \u003d t.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":166,"author":{"gitId":"WeeeHung"},"content":" String end \u003d t.endTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":167,"author":{"gitId":"WeeeHung"},"content":" result.append(String.format(\" (from: %s to: %s)%n\", start, end));","lastModifiedDate":"2023-09-19"},{"lineNumber":168,"author":{"gitId":"WeeeHung"},"content":" } else if (!Objects.isNull(t.startTime)) {","lastModifiedDate":"2023-09-19"},{"lineNumber":169,"author":{"gitId":"WeeeHung"},"content":" String start \u003d t.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":170,"author":{"gitId":"WeeeHung"},"content":" result.append(String.format(\" (by: %s)%n\", start));","lastModifiedDate":"2023-09-19"},{"lineNumber":171,"author":{"gitId":"WeeeHung"},"content":" } else {","lastModifiedDate":"2023-09-19"},{"lineNumber":172,"author":{"gitId":"WeeeHung"},"content":" result.append(\"\\n\");","lastModifiedDate":"2023-09-19"},{"lineNumber":173,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":174,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-19"},{"lineNumber":175,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":176,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":177,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":178,"author":{"gitId":"WeeeHung"},"content":" * Prints the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":179,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":180,"author":{"gitId":"WeeeHung"},"content":" * @return A string representation of the entire task list.","lastModifiedDate":"2023-09-19"},{"lineNumber":181,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":182,"author":{"gitId":"WeeeHung"},"content":" public String printTaskList() {","lastModifiedDate":"2023-09-07"},{"lineNumber":183,"author":{"gitId":"WeeeHung"},"content":" StringBuilder result \u003d new StringBuilder();","lastModifiedDate":"2023-09-19"},{"lineNumber":184,"author":{"gitId":"WeeeHung"},"content":" for (int i \u003d 0; i \u003c this.taskList.size(); i++) {","lastModifiedDate":"2023-08-31"},{"lineNumber":185,"author":{"gitId":"WeeeHung"},"content":" // taskList is 0 indexed while list in GUI is 1-indexed","lastModifiedDate":"2023-09-19"},{"lineNumber":186,"author":{"gitId":"WeeeHung"},"content":" int index \u003d i + 1;","lastModifiedDate":"2023-08-31"},{"lineNumber":187,"author":{"gitId":"WeeeHung"},"content":" Task t \u003d this.taskList.get(i);","lastModifiedDate":"2023-08-31"},{"lineNumber":188,"author":{"gitId":"WeeeHung"},"content":" result \u003d appendTaskToString(result, index, t);","lastModifiedDate":"2023-09-19"},{"lineNumber":189,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":190,"author":{"gitId":"WeeeHung"},"content":" return result.toString();","lastModifiedDate":"2023-09-19"},{"lineNumber":191,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":192,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":193,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":194,"author":{"gitId":"WeeeHung"},"content":" * Prints a list of matching tasks based on a search string.","lastModifiedDate":"2023-09-19"},{"lineNumber":195,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":196,"author":{"gitId":"WeeeHung"},"content":" * @param toFindString The search string used to filter matching tasks.","lastModifiedDate":"2023-09-19"},{"lineNumber":197,"author":{"gitId":"WeeeHung"},"content":" * @return A string representation of the matching tasks.","lastModifiedDate":"2023-09-19"},{"lineNumber":198,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":199,"author":{"gitId":"WeeeHung"},"content":" public String printMatchingList(String toFindString) {","lastModifiedDate":"2023-09-19"},{"lineNumber":200,"author":{"gitId":"WeeeHung"},"content":" StringBuilder result \u003d new StringBuilder();","lastModifiedDate":"2023-09-19"},{"lineNumber":201,"author":{"gitId":"WeeeHung"},"content":" result.append(MATCHING_STRING);","lastModifiedDate":"2023-09-19"},{"lineNumber":202,"author":{"gitId":"WeeeHung"},"content":" for (int i \u003d 0; i \u003c this.taskList.size(); i++) {","lastModifiedDate":"2023-09-19"},{"lineNumber":203,"author":{"gitId":"WeeeHung"},"content":" int index \u003d i + 1;","lastModifiedDate":"2023-09-19"},{"lineNumber":204,"author":{"gitId":"WeeeHung"},"content":" Task t \u003d this.taskList.get(i);","lastModifiedDate":"2023-09-19"},{"lineNumber":205,"author":{"gitId":"WeeeHung"},"content":" if (t.getDescription().contains(toFindString)) {","lastModifiedDate":"2023-09-19"},{"lineNumber":206,"author":{"gitId":"WeeeHung"},"content":" result \u003d appendTaskToString(result, index, t);","lastModifiedDate":"2023-09-19"},{"lineNumber":207,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":208,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":209,"author":{"gitId":"WeeeHung"},"content":" return result.toString();","lastModifiedDate":"2023-09-19"},{"lineNumber":210,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":211,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":212,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":213,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":214,"author":{"gitId":"WeeeHung"},"content":" * Prints the marking for a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":215,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":216,"author":{"gitId":"WeeeHung"},"content":" * @param i The index of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":217,"author":{"gitId":"WeeeHung"},"content":" * @return The marking information.","lastModifiedDate":"2023-09-19"},{"lineNumber":218,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":219,"author":{"gitId":"WeeeHung"},"content":" public String printTaskMarking(int i) {","lastModifiedDate":"2023-09-19"},{"lineNumber":220,"author":{"gitId":"WeeeHung"},"content":" String result \u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":221,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":222,"author":{"gitId":"WeeeHung"},"content":" Task t \u003d this.taskList.get(i);","lastModifiedDate":"2023-08-31"},{"lineNumber":223,"author":{"gitId":"WeeeHung"},"content":" result +\u003d t.printMarking(true);","lastModifiedDate":"2023-09-07"},{"lineNumber":224,"author":{"gitId":"WeeeHung"},"content":" System.out.println();","lastModifiedDate":"2023-08-31"},{"lineNumber":225,"author":{"gitId":"WeeeHung"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":226,"author":{"gitId":"WeeeHung"},"content":" result +\u003d (\" ☹ OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-09-07"},{"lineNumber":227,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":228,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-07"},{"lineNumber":229,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":230,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":231,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":232,"author":{"gitId":"WeeeHung"},"content":" * Changes the marking of a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":233,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":234,"author":{"gitId":"WeeeHung"},"content":" * @param i The index of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":235,"author":{"gitId":"WeeeHung"},"content":" * @param isDone The new marking status.","lastModifiedDate":"2023-09-01"},{"lineNumber":236,"author":{"gitId":"WeeeHung"},"content":" * @throws DukeException If the task index is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":237,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":238,"author":{"gitId":"WeeeHung"},"content":" public void changeTaskMarking(int i, boolean isDone) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":239,"author":{"gitId":"WeeeHung"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":240,"author":{"gitId":"WeeeHung"},"content":" Task t \u003d this.taskList.get(i);","lastModifiedDate":"2023-08-31"},{"lineNumber":241,"author":{"gitId":"WeeeHung"},"content":" t.setStatus(isDone);","lastModifiedDate":"2023-09-01"},{"lineNumber":242,"author":{"gitId":"WeeeHung"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":243,"author":{"gitId":"WeeeHung"},"content":" throw new DukeException(\" ☹ OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-08-31"},{"lineNumber":244,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":245,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":246,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":247,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":248,"author":{"gitId":"WeeeHung"},"content":" * Prints the entry of a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":249,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":250,"author":{"gitId":"WeeeHung"},"content":" * @param t The task.","lastModifiedDate":"2023-09-01"},{"lineNumber":251,"author":{"gitId":"WeeeHung"},"content":" * @return The task entry information.","lastModifiedDate":"2023-09-19"},{"lineNumber":252,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":253,"author":{"gitId":"WeeeHung"},"content":" public String printTaskEntry(Task t) {","lastModifiedDate":"2023-09-07"},{"lineNumber":254,"author":{"gitId":"WeeeHung"},"content":" String result \u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":255,"author":{"gitId":"WeeeHung"},"content":" result +\u003d t.printDescription();","lastModifiedDate":"2023-09-07"},{"lineNumber":256,"author":{"gitId":"WeeeHung"},"content":" int size \u003d this.taskList.size();","lastModifiedDate":"2023-08-31"},{"lineNumber":257,"author":{"gitId":"WeeeHung"},"content":" result +\u003d String.format(\"\\n Now you have %d tasks in the list.\\n\", size);","lastModifiedDate":"2023-09-07"},{"lineNumber":258,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-07"},{"lineNumber":259,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":260,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":260}},{"path":"src/main/java/dukepackage/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"import java.util.Objects;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" * The Task class represents a task with a description, status, type, start time, and end time.","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":"public class Task {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" * The description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" protected String description;","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" * The status of the task (done or not done).","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"WeeeHung"},"content":" * The type of the task (TODO, DEADLINE, or EVENT).","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"WeeeHung"},"content":" protected TaskType type;","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"WeeeHung"},"content":" * The start time of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"WeeeHung"},"content":" protected LocalDateTime startTime;","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"WeeeHung"},"content":" * The end time of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"WeeeHung"},"content":" protected LocalDateTime endTime;","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"WeeeHung"},"content":" * The string displayed when the task is marked as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"WeeeHung"},"content":" protected final String MARKED_STRING \u003d \" Nice! I\u0027ve marked this task as done:\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"WeeeHung"},"content":" * The string displayed when the task is marked as not done yet.","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":45,"author":{"gitId":"WeeeHung"},"content":" protected final String UNMARKED_STRING \u003d \" OK, I\u0027ve marked this task as not done yet:\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":48,"author":{"gitId":"WeeeHung"},"content":" * Constructs a Task object with the given description, type, start time, and end time.","lastModifiedDate":"2023-09-01"},{"lineNumber":49,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":50,"author":{"gitId":"WeeeHung"},"content":" * @param description The description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"WeeeHung"},"content":" * @param type The type of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"WeeeHung"},"content":" * @param start The start time of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"WeeeHung"},"content":" * @param end The end time of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":54,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":55,"author":{"gitId":"WeeeHung"},"content":" public Task(String description, TaskType type, String start, String end) {","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"WeeeHung"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"WeeeHung"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"WeeeHung"},"content":" // set to-do as the default type","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"WeeeHung"},"content":" this.type \u003d type;","lastModifiedDate":"2023-08-31"},{"lineNumber":60,"author":{"gitId":"WeeeHung"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"yyyy-MM-dd HH:mm\");","lastModifiedDate":"2023-10-17"},{"lineNumber":61,"author":{"gitId":"WeeeHung"},"content":" this.startTime \u003d Objects.equals(start, \"\")","lastModifiedDate":"2023-09-01"},{"lineNumber":62,"author":{"gitId":"WeeeHung"},"content":" ? null","lastModifiedDate":"2023-08-31"},{"lineNumber":63,"author":{"gitId":"WeeeHung"},"content":" : LocalDateTime.parse(start, formatter);","lastModifiedDate":"2023-08-31"},{"lineNumber":64,"author":{"gitId":"WeeeHung"},"content":" this.endTime \u003d Objects.equals(end, \"\")","lastModifiedDate":"2023-09-01"},{"lineNumber":65,"author":{"gitId":"WeeeHung"},"content":" ? null","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"WeeeHung"},"content":" : LocalDateTime.parse(end, formatter);","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":68,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":69,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":70,"author":{"gitId":"WeeeHung"},"content":" * Retrieves the description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":71,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":72,"author":{"gitId":"WeeeHung"},"content":" * @return The description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":73,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":74,"author":{"gitId":"WeeeHung"},"content":" public String getDescription() {","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"WeeeHung"},"content":" return this.description;","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":77,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":79,"author":{"gitId":"WeeeHung"},"content":" * Retrieves the status icon of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":80,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":81,"author":{"gitId":"WeeeHung"},"content":" * @return The status icon of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":82,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":83,"author":{"gitId":"WeeeHung"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-31"},{"lineNumber":84,"author":{"gitId":"WeeeHung"},"content":" return (isDone ? \"X\" : \" \"); // mark done task with X","lastModifiedDate":"2023-08-31"},{"lineNumber":85,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":86,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":87,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":88,"author":{"gitId":"WeeeHung"},"content":" * Retrieves the type icon of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":89,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":90,"author":{"gitId":"WeeeHung"},"content":" * @return The type icon of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":91,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":92,"author":{"gitId":"WeeeHung"},"content":" public String getTypeIcon() {","lastModifiedDate":"2023-08-31"},{"lineNumber":93,"author":{"gitId":"WeeeHung"},"content":" switch (this.type) {","lastModifiedDate":"2023-08-31"},{"lineNumber":94,"author":{"gitId":"WeeeHung"},"content":" case TODO:","lastModifiedDate":"2023-08-31"},{"lineNumber":95,"author":{"gitId":"WeeeHung"},"content":" return \"T\";","lastModifiedDate":"2023-08-31"},{"lineNumber":96,"author":{"gitId":"WeeeHung"},"content":" case DEADLINE:","lastModifiedDate":"2023-08-31"},{"lineNumber":97,"author":{"gitId":"WeeeHung"},"content":" return \"D\";","lastModifiedDate":"2023-08-31"},{"lineNumber":98,"author":{"gitId":"WeeeHung"},"content":" case EVENT:","lastModifiedDate":"2023-08-31"},{"lineNumber":99,"author":{"gitId":"WeeeHung"},"content":" return \"E\";","lastModifiedDate":"2023-08-31"},{"lineNumber":100,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":101,"author":{"gitId":"WeeeHung"},"content":" return null;","lastModifiedDate":"2023-08-31"},{"lineNumber":102,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":103,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":104,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":105,"author":{"gitId":"WeeeHung"},"content":" * Sets the status of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":106,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":107,"author":{"gitId":"WeeeHung"},"content":" * @param checked The new status of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":108,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":109,"author":{"gitId":"WeeeHung"},"content":" public void setStatus(Boolean checked) {","lastModifiedDate":"2023-09-01"},{"lineNumber":110,"author":{"gitId":"WeeeHung"},"content":" this.isDone \u003d checked;","lastModifiedDate":"2023-08-31"},{"lineNumber":111,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":112,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":113,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":114,"author":{"gitId":"WeeeHung"},"content":" * Prints the description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":115,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":116,"author":{"gitId":"WeeeHung"},"content":" public String printDescription() {","lastModifiedDate":"2023-09-07"},{"lineNumber":117,"author":{"gitId":"WeeeHung"},"content":" String initStatement \u003d \" Got it. I\u0027ve added this task:\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":118,"author":{"gitId":"WeeeHung"},"content":"// System.out.println(initStatement);","lastModifiedDate":"2023-09-07"},{"lineNumber":119,"author":{"gitId":"WeeeHung"},"content":" return initStatement + this.printMarking(false);","lastModifiedDate":"2023-09-07"},{"lineNumber":120,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":121,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":122,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":123,"author":{"gitId":"WeeeHung"},"content":" * Prints the marking of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":124,"author":{"gitId":"WeeeHung"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":125,"author":{"gitId":"WeeeHung"},"content":" * @param mark Indicates whether to display the marking or not.","lastModifiedDate":"2023-09-01"},{"lineNumber":126,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":127,"author":{"gitId":"WeeeHung"},"content":" public String printMarking(boolean mark) {","lastModifiedDate":"2023-09-07"},{"lineNumber":128,"author":{"gitId":"WeeeHung"},"content":" String result \u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":129,"author":{"gitId":"WeeeHung"},"content":" if (mark) {","lastModifiedDate":"2023-08-31"},{"lineNumber":130,"author":{"gitId":"WeeeHung"},"content":" if (this.isDone) {","lastModifiedDate":"2023-08-31"},{"lineNumber":131,"author":{"gitId":"WeeeHung"},"content":" result +\u003d MARKED_STRING;","lastModifiedDate":"2023-09-07"},{"lineNumber":132,"author":{"gitId":"WeeeHung"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":133,"author":{"gitId":"WeeeHung"},"content":" result +\u003d UNMARKED_STRING;","lastModifiedDate":"2023-09-07"},{"lineNumber":134,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":135,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":136,"author":{"gitId":"WeeeHung"},"content":" result +\u003d String.format(\" [%s][%s] %s\", this.getTypeIcon(), this.getStatusIcon(), this.description);","lastModifiedDate":"2023-09-07"},{"lineNumber":137,"author":{"gitId":"WeeeHung"},"content":" if (!Objects.isNull(this.startTime) \u0026\u0026 !Objects.isNull(this.endTime)) {","lastModifiedDate":"2023-09-01"},{"lineNumber":138,"author":{"gitId":"WeeeHung"},"content":" String start \u003d this.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":139,"author":{"gitId":"WeeeHung"},"content":" String end \u003d this.endTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":140,"author":{"gitId":"WeeeHung"},"content":" result +\u003d String.format(\" (from: %s to: %s)\", start, end);","lastModifiedDate":"2023-09-19"},{"lineNumber":141,"author":{"gitId":"WeeeHung"},"content":" } else if (!Objects.isNull(this.startTime)) {","lastModifiedDate":"2023-09-01"},{"lineNumber":142,"author":{"gitId":"WeeeHung"},"content":" String start \u003d this.startTime.toString().replace(\"T\", \" \");","lastModifiedDate":"2023-09-19"},{"lineNumber":143,"author":{"gitId":"WeeeHung"},"content":" result +\u003d String.format(\" (by: %s)\", start);","lastModifiedDate":"2023-09-19"},{"lineNumber":144,"author":{"gitId":"WeeeHung"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":145,"author":{"gitId":"WeeeHung"},"content":" result +\u003d \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":146,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":147,"author":{"gitId":"WeeeHung"},"content":" return result;","lastModifiedDate":"2023-09-07"},{"lineNumber":148,"author":{"gitId":"WeeeHung"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":149,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":149}},{"path":"src/main/java/dukepackage/TaskType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"package dukepackage;","lastModifiedDate":"2023-09-19"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":" * The TaskType enum represents the types of tasks that can be used in the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"public enum TaskType {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" * Represents a todo task.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" TODO,","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" * Represents a deadline task.","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" DEADLINE,","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"WeeeHung"},"content":" * Represents an event task.","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"WeeeHung"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"WeeeHung"},"content":" EVENT","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"WeeeHung"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":22}},{"path":"src/main/resources/View/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"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-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":16}},{"path":"src/main/resources/View/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.control.*?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"WeeeHung"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"WeeeHung"},"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\"MainWindow\"\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"WeeeHung"},"content":"\u003c!-- \u003cchildren\u003e--\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":8,"author":{"gitId":"WeeeHung"},"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-07"},{"lineNumber":9,"author":{"gitId":"WeeeHung"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"WeeeHung"},"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-07"},{"lineNumber":11,"author":{"gitId":"WeeeHung"},"content":"\u003c!-- \u003ccontent\u003e--\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"WeeeHung"},"content":" \u003cLabel text\u003d\"Welcome to the Chat bot\" style\u003d\"-fx-font-size: 20;\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"WeeeHung"},"content":" \u003cLabel text\u003d\"Enter your message:\" /\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"WeeeHung"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefWidth\u003d\"388.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"WeeeHung"},"content":"\u003c!-- \u003c/content\u003e--\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"WeeeHung"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"WeeeHung"},"content":"\u003c!-- \u003c/children\u003e--\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":18,"author":{"gitId":"WeeeHung"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"WeeeHung":18}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"WeeeHung"},"content":"todo task1","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"WeeeHung"},"content":"event task2 /from tue /to fri","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"WeeeHung"},"content":"event task2 /from tue /to fri","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"WeeeHung"},"content":"list","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"WeeeHung":4}}] diff --git a/WeeeHung_ip_master/commits.json b/WeeeHung_ip_master/commits.json index 248285d1..d40e257c 100644 --- a/WeeeHung_ip_master/commits.json +++ b/WeeeHung_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"WeeeHung":[{"date":"2023-08-24","commitResults":[{"hash":"39ad9b541b6fbf4332ea4c9bb9dc3acf270c4522","isMergeCommit":false,"messageTitle":"Level-0: Rename, Greet, Exit","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":7}}},{"hash":"e9888a8a521b9a1b41fe7889d35680e632c90289","isMergeCommit":false,"messageTitle":"Level-1: Echo","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":26,"deletions":0}}},{"hash":"27d1342a08f99d0a4f873a3c912d41b686955cd4","isMergeCommit":false,"messageTitle":"Level-2: Add, List","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":53,"deletions":12}}},{"hash":"565356b6af168f6345f8815bd62513cad61e039d","isMergeCommit":false,"messageTitle":"Level-3: Mark as Done","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":46,"deletions":8}}},{"hash":"2be65a58d5aae95907e6e6e2ef7f3910ceb9b42d","isMergeCommit":false,"messageTitle":"Level-4: ToDo, Event, Deadline","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":119,"deletions":36}}},{"hash":"18aa836387cde574cd0051fbc75677b8760b3432","isMergeCommit":false,"messageTitle":"Level 6: Delete","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":37,"deletions":11}}}]},{"date":"2023-08-31","commitResults":[{"hash":"dbd4817a5fc59b8c24ca1e2ebe47d3013a40e685","isMergeCommit":false,"messageTitle":"Level 7. Save","messageBody":"","tags":["Level-7,Save"],"fileTypesAndContributionMap":{"txt":{"insertions":9,"deletions":0},"java":{"insertions":138,"deletions":18}}},{"hash":"892b6e8fef5f1d8ec54e827de928d74480d199d2","isMergeCommit":true,"messageTitle":"Merge pull request #1 from WeeeHung/branch-level-7","messageBody":"Level 7. Save","fileTypesAndContributionMap":{}},{"hash":"902cbeb6704816b548ecafcc87ec557ad8e9ecf6","isMergeCommit":false,"messageTitle":"Level-8: Dates and Times","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"txt":{"insertions":7,"deletions":5},"java":{"insertions":29,"deletions":21}}},{"hash":"b6e7ee1000efd21565ae391aeb08fda711c9fb19","isMergeCommit":false,"messageTitle":"test commit","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":57,"deletions":45}}},{"hash":"67a13425b6177342cb168dc7afb3b600904c75c4","isMergeCommit":false,"messageTitle":"add UI Package","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":2},"java":{"insertions":70,"deletions":60}}},{"hash":"5510802fa5a9f4e4abda4ab09a9d0f46aa9451e0","isMergeCommit":false,"messageTitle":"Add package for iPBot","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":298,"deletions":280}}},{"hash":"eed9a59100f9540ed11a00d6735daddada28133c","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/add-gradle-support\u0027","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"3288138b4eb1874cc7b17e4d4dabd7c893a1bd2b","isMergeCommit":false,"messageTitle":"A-JUnit","messageBody":"","tags":["A-Junit","A-Jar"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0},"java":{"insertions":45,"deletions":1}}}]},{"date":"2023-09-01","commitResults":[{"hash":"83799f5015a0463e1f316a531ee8611cc16bb1b1","isMergeCommit":false,"messageTitle":"Add Javadocs","messageBody":"","tags":["A-Javadocs"],"fileTypesAndContributionMap":{"gradle":{"insertions":6,"deletions":0},"java":{"insertions":212,"deletions":28}}},{"hash":"1f3228874563366647ac5254f71efc7de59eac57","isMergeCommit":false,"messageTitle":"Edit to fit Java Coding Standard","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":1},"java":{"insertions":59,"deletions":60}}},{"hash":"322c861517f47d3503b02310769173905f7bf088","isMergeCommit":false,"messageTitle":"Edit to fit Java Coding Standar","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"java":{"insertions":24,"deletions":0}}}]},{"date":"2023-09-07","commitResults":[{"hash":"598107f70335f362485a2890c989eb45decdcc5c","isMergeCommit":false,"messageTitle":"Level 10: GUI","messageBody":"","tags":["Level-6","Level-10","A-MoreOOP"],"fileTypesAndContributionMap":{"gradle":{"insertions":15,"deletions":0},"txt":{"insertions":1,"deletions":9},"fxml":{"insertions":34,"deletions":0},"java":{"insertions":385,"deletions":126}}}]},{"date":"2023-09-19","commitResults":[{"hash":"8cd59f85d3060d52e3dd8ed7ca286c6d001c4d6e","isMergeCommit":false,"messageTitle":"done building jar files","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":8,"deletions":5},"txt":{"insertions":0,"deletions":1},"fxml":{"insertions":5,"deletions":5},"java":{"insertions":5,"deletions":5}}},{"hash":"9de189264e38a7b51bb450cd67351bcea245f8db","isMergeCommit":false,"messageTitle":"ChatGUI process method: carry on without storage","messageBody":"invalid storage will lead to error in process method\n\nJava Assertion used to terminate program if storage is invalid\n\nPrevent program from crashing in unexpected ways\nif storage is invalid\n","tags":["A-FullCommitMessage","A-Assertions"],"fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":0}}},{"hash":"a0353c1b060346a6813074e08be12a9a0fc0654e","isMergeCommit":false,"messageTitle":"Add Code Quality for repo","messageBody":"Some functions were unnecessarily long and complicated,\nso I refactored them to be shorter and more readable.\n\nShorten functions and removed arrow-headed functions,\nincorporated SLAP principle and renamed variables and packages\nto be more readable.\n","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":0}}},{"hash":"17b288c751206c53e2c30cab97b5dfd1d4105821","isMergeCommit":true,"messageTitle":"Merge pull request #3 from WeeeHung/A-CodeQuality","messageBody":"Add Code Quality for repo","fileTypesAndContributionMap":{}},{"hash":"2609a5b0907096fd88a23bb00433295174b46dcf","isMergeCommit":false,"messageTitle":"Extension to boost functionality of chat bot.","messageBody":"Add help command to display all commands available.\n","tags":["BCD-Extension"],"fileTypesAndContributionMap":{"txt":{"insertions":5,"deletions":0},"fxml":{"insertions":1,"deletions":1},"java":{"insertions":261,"deletions":134}}},{"hash":"56c64bc3515700b1dcf0ca529659af138697f057","isMergeCommit":true,"messageTitle":"Merge pull request #4 from WeeeHung/branch-BCD-Extension","messageBody":"Extension to boost functionality of chat bot.","fileTypesAndContributionMap":{}},{"hash":"189ea875b198a21f51edcbf7fb90f61d6f3b251c","isMergeCommit":false,"messageTitle":"Add UserGuide to ReadMe in GFMD","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":39,"deletions":16}}},{"hash":"3ce4c4d8bccaefdfd3a770f3907b5d6c298921a8","isMergeCommit":true,"messageTitle":"Merge pull request #5 from WeeeHung/branch-A-UserGuide","messageBody":"Add UserGuide to ReadMe in GFMD","fileTypesAndContributionMap":{}},{"hash":"0341539e2cf19c6af1e12278e01d0cfb69a29256","isMergeCommit":false,"messageTitle":"Add UserGuide to ReadMe in GFMD","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":4,"deletions":4}}},{"hash":"4b0c1d4b962b89d78b90c21c318d6a761414c42f","isMergeCommit":true,"messageTitle":"Merge pull request #6 from WeeeHung/branch-A-UserGuide","messageBody":"Add UserGuide to ReadMe in GFMD","fileTypesAndContributionMap":{}}]},{"date":"2023-09-21","commitResults":[{"hash":"9cb3ae30a6b408b7223032962ffda9ddb636e104","isMergeCommit":false,"messageTitle":"Amend for jar file release","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":4},"java":{"insertions":32,"deletions":8}}},{"hash":"59d4b4d8d89f4fbb9820704d937aaa1c2151d083","isMergeCommit":false,"messageTitle":"Update user guide","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"md":{"insertions":2,"deletions":2}}}]},{"date":"2023-09-22","commitResults":[{"hash":"fbea8e20d9ee047fbba82824a621d94346fea2ec","isMergeCommit":false,"messageTitle":"Touch up on tags","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":2},"java":{"insertions":4,"deletions":4}}}]}]},"authorFileTypeContributionMap":{"WeeeHung":{"java":1057,"md":32,"fxml":34,"sh":0,"bat":0,"gradle":29,"txt":6}},"authorContributionVariance":{"WeeeHung":50144.27},"authorDisplayNameMap":{"WeeeHung":"CS2103T-T14-3 CHIA..HUNG"}} +{"authorDailyContributionsMap":{"WeeeHung":[{"date":"2023-08-24","commitResults":[{"hash":"39ad9b541b6fbf4332ea4c9bb9dc3acf270c4522","isMergeCommit":false,"messageTitle":"Level-0: Rename, Greet, Exit","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":7}}},{"hash":"e9888a8a521b9a1b41fe7889d35680e632c90289","isMergeCommit":false,"messageTitle":"Level-1: Echo","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":26,"deletions":0}}},{"hash":"27d1342a08f99d0a4f873a3c912d41b686955cd4","isMergeCommit":false,"messageTitle":"Level-2: Add, List","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":53,"deletions":12}}},{"hash":"565356b6af168f6345f8815bd62513cad61e039d","isMergeCommit":false,"messageTitle":"Level-3: Mark as Done","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":46,"deletions":8}}},{"hash":"2be65a58d5aae95907e6e6e2ef7f3910ceb9b42d","isMergeCommit":false,"messageTitle":"Level-4: ToDo, Event, Deadline","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":119,"deletions":36}}},{"hash":"18aa836387cde574cd0051fbc75677b8760b3432","isMergeCommit":false,"messageTitle":"Level 6: Delete","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":37,"deletions":11}}}]},{"date":"2023-08-31","commitResults":[{"hash":"dbd4817a5fc59b8c24ca1e2ebe47d3013a40e685","isMergeCommit":false,"messageTitle":"Level 7. Save","messageBody":"","tags":["Level-7,Save"],"fileTypesAndContributionMap":{"txt":{"insertions":9,"deletions":0},"java":{"insertions":138,"deletions":18}}},{"hash":"892b6e8fef5f1d8ec54e827de928d74480d199d2","isMergeCommit":true,"messageTitle":"Merge pull request #1 from WeeeHung/branch-level-7","messageBody":"Level 7. Save","fileTypesAndContributionMap":{}},{"hash":"902cbeb6704816b548ecafcc87ec557ad8e9ecf6","isMergeCommit":false,"messageTitle":"Level-8: Dates and Times","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"txt":{"insertions":7,"deletions":5},"java":{"insertions":29,"deletions":21}}},{"hash":"b6e7ee1000efd21565ae391aeb08fda711c9fb19","isMergeCommit":false,"messageTitle":"test commit","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":57,"deletions":45}}},{"hash":"67a13425b6177342cb168dc7afb3b600904c75c4","isMergeCommit":false,"messageTitle":"add UI Package","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":2},"java":{"insertions":70,"deletions":60}}},{"hash":"5510802fa5a9f4e4abda4ab09a9d0f46aa9451e0","isMergeCommit":false,"messageTitle":"Add package for iPBot","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":298,"deletions":280}}},{"hash":"eed9a59100f9540ed11a00d6735daddada28133c","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/add-gradle-support\u0027","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"3288138b4eb1874cc7b17e4d4dabd7c893a1bd2b","isMergeCommit":false,"messageTitle":"A-JUnit","messageBody":"","tags":["A-Junit","A-Jar"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0},"java":{"insertions":45,"deletions":1}}}]},{"date":"2023-09-01","commitResults":[{"hash":"83799f5015a0463e1f316a531ee8611cc16bb1b1","isMergeCommit":false,"messageTitle":"Add Javadocs","messageBody":"","tags":["A-Javadocs"],"fileTypesAndContributionMap":{"gradle":{"insertions":6,"deletions":0},"java":{"insertions":212,"deletions":28}}},{"hash":"1f3228874563366647ac5254f71efc7de59eac57","isMergeCommit":false,"messageTitle":"Edit to fit Java Coding Standard","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":1},"java":{"insertions":59,"deletions":60}}},{"hash":"322c861517f47d3503b02310769173905f7bf088","isMergeCommit":false,"messageTitle":"Edit to fit Java Coding Standar","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"java":{"insertions":24,"deletions":0}}}]},{"date":"2023-09-07","commitResults":[{"hash":"598107f70335f362485a2890c989eb45decdcc5c","isMergeCommit":false,"messageTitle":"Level 10: GUI","messageBody":"","tags":["Level-6","Level-10","A-MoreOOP"],"fileTypesAndContributionMap":{"gradle":{"insertions":15,"deletions":0},"txt":{"insertions":1,"deletions":9},"fxml":{"insertions":34,"deletions":0},"java":{"insertions":385,"deletions":126}}}]},{"date":"2023-09-19","commitResults":[{"hash":"8cd59f85d3060d52e3dd8ed7ca286c6d001c4d6e","isMergeCommit":false,"messageTitle":"done building jar files","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":8,"deletions":5},"txt":{"insertions":0,"deletions":1},"fxml":{"insertions":5,"deletions":5},"java":{"insertions":5,"deletions":5}}},{"hash":"9de189264e38a7b51bb450cd67351bcea245f8db","isMergeCommit":false,"messageTitle":"ChatGUI process method: carry on without storage","messageBody":"invalid storage will lead to error in process method\n\nJava Assertion used to terminate program if storage is invalid\n\nPrevent program from crashing in unexpected ways\nif storage is invalid\n","tags":["A-FullCommitMessage","A-Assertions"],"fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":0}}},{"hash":"a0353c1b060346a6813074e08be12a9a0fc0654e","isMergeCommit":false,"messageTitle":"Add Code Quality for repo","messageBody":"Some functions were unnecessarily long and complicated,\nso I refactored them to be shorter and more readable.\n\nShorten functions and removed arrow-headed functions,\nincorporated SLAP principle and renamed variables and packages\nto be more readable.\n","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":0}}},{"hash":"17b288c751206c53e2c30cab97b5dfd1d4105821","isMergeCommit":true,"messageTitle":"Merge pull request #3 from WeeeHung/A-CodeQuality","messageBody":"Add Code Quality for repo","fileTypesAndContributionMap":{}},{"hash":"2609a5b0907096fd88a23bb00433295174b46dcf","isMergeCommit":false,"messageTitle":"Extension to boost functionality of chat bot.","messageBody":"Add help command to display all commands available.\n","tags":["BCD-Extension"],"fileTypesAndContributionMap":{"txt":{"insertions":5,"deletions":0},"fxml":{"insertions":1,"deletions":1},"java":{"insertions":261,"deletions":134}}},{"hash":"56c64bc3515700b1dcf0ca529659af138697f057","isMergeCommit":true,"messageTitle":"Merge pull request #4 from WeeeHung/branch-BCD-Extension","messageBody":"Extension to boost functionality of chat bot.","fileTypesAndContributionMap":{}},{"hash":"189ea875b198a21f51edcbf7fb90f61d6f3b251c","isMergeCommit":false,"messageTitle":"Add UserGuide to ReadMe in GFMD","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":39,"deletions":16}}},{"hash":"3ce4c4d8bccaefdfd3a770f3907b5d6c298921a8","isMergeCommit":true,"messageTitle":"Merge pull request #5 from WeeeHung/branch-A-UserGuide","messageBody":"Add UserGuide to ReadMe in GFMD","fileTypesAndContributionMap":{}},{"hash":"0341539e2cf19c6af1e12278e01d0cfb69a29256","isMergeCommit":false,"messageTitle":"Add UserGuide to ReadMe in GFMD","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":4,"deletions":4}}},{"hash":"4b0c1d4b962b89d78b90c21c318d6a761414c42f","isMergeCommit":true,"messageTitle":"Merge pull request #6 from WeeeHung/branch-A-UserGuide","messageBody":"Add UserGuide to ReadMe in GFMD","fileTypesAndContributionMap":{}}]},{"date":"2023-09-21","commitResults":[{"hash":"9cb3ae30a6b408b7223032962ffda9ddb636e104","isMergeCommit":false,"messageTitle":"Amend for jar file release","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":4},"java":{"insertions":32,"deletions":8}}},{"hash":"59d4b4d8d89f4fbb9820704d937aaa1c2151d083","isMergeCommit":false,"messageTitle":"Update user guide","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"md":{"insertions":2,"deletions":2}}}]},{"date":"2023-09-22","commitResults":[{"hash":"fbea8e20d9ee047fbba82824a621d94346fea2ec","isMergeCommit":false,"messageTitle":"Touch up on tags","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":2},"java":{"insertions":4,"deletions":4}}}]},{"date":"2023-10-17","commitResults":[{"hash":"f7f7c20e21429387bc0fd83328b1b8d7bb254637","isMergeCommit":false,"messageTitle":"ammend changes to clean dead code","messageBody":"","tags":["A-Release2"],"fileTypesAndContributionMap":{"txt":{"insertions":6,"deletions":0},"java":{"insertions":7,"deletions":190},"sh":{"insertions":0,"deletions":0}}},{"hash":"b330550610c4c90628e23d0236917d6a16775cb7","isMergeCommit":true,"messageTitle":"Merge pull request #9 from WeeeHung/branch-FixIP","messageBody":"ammend changes to clean dead code","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"WeeeHung":{"java":875,"md":32,"fxml":34,"sh":0,"bat":0,"gradle":29,"txt":12}},"authorContributionVariance":{"WeeeHung":31589.994},"authorDisplayNameMap":{"WeeeHung":"CS2103T-T14-3 CHIA..HUNG"}} diff --git a/archive.zip b/archive.zip index 4b631e71..e6a7b5e4 100644 Binary files a/archive.zip and b/archive.zip differ diff --git a/limzhenwy_ip_master/authorship.json b/limzhenwy_ip_master/authorship.json index 7f487ce1..7c8dff1b 100644 --- a/limzhenwy_ip_master/authorship.json +++ b/limzhenwy_ip_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"# Skog","lastModifiedDate":"2023-09-17"},{"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":"limzhenwy"},"content":"3. After that, locate the `src/main/java/duke/Duke.java` file, right-click it, and choose `Run Duke.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-17"},{"lineNumber":17,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" ","lastModifiedDate":"2023-09-17"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" Skog!","lastModifiedDate":"2023-09-17"},{"lineNumber":21,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2023-09-17"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" ","lastModifiedDate":"2023-09-17"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":"Here are some basic commands to use Skog:","lastModifiedDate":"2023-09-17"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-09-17"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":"todo / t","lastModifiedDate":"2023-09-17"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":"deadline / d","lastModifiedDate":"2023-09-17"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":"event / e","lastModifiedDate":"2023-09-17"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":"list / l","lastModifiedDate":"2023-09-17"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":"find / f","lastModifiedDate":"2023-09-17"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":"mark / m ","lastModifiedDate":"2023-09-17"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":"unmark / um","lastModifiedDate":"2023-09-17"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"delete / del","lastModifiedDate":"2023-09-17"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":"bye","lastModifiedDate":"2023-09-17"},{"lineNumber":34,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":"**todo:**","lastModifiedDate":"2023-09-17"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":"_A task with only a description field and no time constraints_","lastModifiedDate":"2023-09-17"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":"**deadline:**","lastModifiedDate":"2023-09-17"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":"_A task with an end-date to meet_ ","lastModifiedDate":"2023-09-17"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":"**event:**","lastModifiedDate":"2023-09-17"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":"_A task with a starting date and an ending date_","lastModifiedDate":"2023-09-17"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":"**list:**","lastModifiedDate":"2023-09-17"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":"_Lists out all added tasks_","lastModifiedDate":"2023-09-17"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":"**find:**","lastModifiedDate":"2023-09-17"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":"_Shows all the tasks with containing a specified word_","lastModifiedDate":"2023-09-17"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":"**mark:**","lastModifiedDate":"2023-09-17"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":"_Marks specified task as done_","lastModifiedDate":"2023-09-17"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":"**unmark:**","lastModifiedDate":"2023-09-17"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":"_Unmarks a specified task_","lastModifiedDate":"2023-09-17"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":58,"author":{"gitId":"limzhenwy"},"content":"**delete:**","lastModifiedDate":"2023-09-17"},{"lineNumber":59,"author":{"gitId":"limzhenwy"},"content":"_Deletes a specified task from the list_","lastModifiedDate":"2023-09-17"},{"lineNumber":60,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":61,"author":{"gitId":"limzhenwy"},"content":"**bye:**","lastModifiedDate":"2023-09-17"},{"lineNumber":62,"author":{"gitId":"limzhenwy"},"content":"_Ends the chat bot and saves the data into a text file_","lastModifiedDate":"2023-09-17"}],"authorContributionMap":{"limzhenwy":44,"-":18}},{"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":"limzhenwy"},"content":" id \u0027org.openjfx.javafxplugin\u0027 version \u00270.0.13\u0027","lastModifiedDate":"2023-09-06"},{"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":"limzhenwy"},"content":"javafx {","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" version \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" modules \u003d [\u0027javafx.controls\u0027, \u0027javafx.fxml\u0027]","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":17,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":19,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" mainClassName \u003d \u0027duke.Duke\u0027","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" archiveFileName \u003d \u0027duke.jar\u0027","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"limzhenwy":9,"-":41}},{"path":"src/main/java/duke/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.DukeException;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import duke.gui.Main;","lastModifiedDate":"2023-09-12"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import duke.logic.Executor;","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import duke.logic.Storage;","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"import duke.logic.Ui;","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.TaskList;","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-06"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-21"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" * Class for the ChatBot","lastModifiedDate":"2023-08-21"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-21"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"public class Duke {","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" public static final String TEXTFILE \u003d \"duke.txt\";","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" public static final String DATAFILE \u003d \"data.txt\";","lastModifiedDate":"2023-09-06"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" private Storage storage;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" private TaskList tasks;","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" private Ui ui;","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" private Executor executor;","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-20"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the Duke class.","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" * @param filePath Specifies the name of the text file","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" public Duke(String filePath) {","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" this.storage \u003d new Storage(TEXTFILE, DATAFILE);","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" this.ui \u003d new Ui();","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" this.executor \u003d new Executor();","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" tasks \u003d new TaskList(storage.load());","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" ui.showLoadingError();","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" tasks \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" * Echos the user input.","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" * @param input String that user inpt into the chat bot","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" * @return An echo of what the user said","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" public String getResponse(String input) {","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" return executor.execute(input, tasks, storage, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"limzhenwy":49,"-":1}},{"path":"src/main/java/duke/exceptions/DukeException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Special exceptions encountered by the chatbot.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"public class DukeException extends Exception {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the DukeException class.","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" * @param errorMessage Message about the error.","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" public DukeException(String errorMessage) {","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" super(errorMessage);","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":14}},{"path":"src/main/java/duke/exceptions/EmptyDescription.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Exception when no description is found.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"public class EmptyDescription extends DukeException {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the EmptyDescription class.","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" public EmptyDescription() {","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" super(\"-------------------------------\\n\"","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" + \"OOPS!!! The description of a todo cannot be empty.\\n\"","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" + \"-------------------------------\\n\");","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":16}},{"path":"src/main/java/duke/exceptions/WrongInput.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Exception when an illegal argument is found.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"public class WrongInput extends DukeException {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the WrongInput class.","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" public WrongInput() {","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" super(\"-------------------------------\\n\"","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" + \"OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\\n\"","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" + \"-------------------------------\\n\");","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":15}},{"path":"src/main/java/duke/gui/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.gui;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" private Label dialog;","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-06"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-06"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" private void flip() {","lastModifiedDate":"2023-09-06"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-06"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":" return new DialogBox(text, img);","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"limzhenwy"},"content":" db.flip();","lastModifiedDate":"2023-09-06"},{"lineNumber":59,"author":{"gitId":"limzhenwy"},"content":" return db;","lastModifiedDate":"2023-09-06"},{"lineNumber":60,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":61,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-06"},{"lineNumber":62,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"limzhenwy":62}},{"path":"src/main/java/duke/gui/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.gui;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.Duke;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" private Duke duke \u003d new Duke(\"duke.txt\");","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Duke.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" stage.show();","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"limzhenwy":29}},{"path":"src/main/java/duke/gui/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.gui;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.Duke;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" private Duke duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaUser.png\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaDuke.png\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" public void initialize() {","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" assert userImage !\u003d null","lastModifiedDate":"2023-09-12"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" \u0026\u0026 dukeImage !\u003d null","lastModifiedDate":"2023-09-12"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" : \"Images should be loaded properly\";","lastModifiedDate":"2023-09-12"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":" );","lastModifiedDate":"2023-09-07"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":" userInput.clear();","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"limzhenwy":57}},{"path":"src/main/java/duke/logic/Executor.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.logic;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.EmptyDescription;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.WrongInput;","lastModifiedDate":"2023-09-12"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.TaskList;","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"public class Executor {","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" private String DELIM \u003d \" \";","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" public String execute(String input, TaskList tasks, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" String[] arr \u003d input.split(DELIM);","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" String type \u003d arr[0];","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" assert tasks !\u003d null: \"TaskList should be initialized prior to calling this method.\";","lastModifiedDate":"2023-09-12"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" if (type.equals(\"bye\")) {","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" assert ui !\u003d null: \"UI should have been initialized.\";","lastModifiedDate":"2023-09-12"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" ui.end();","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" assert storage !\u003d null: \"Storage should have been initialized.\";","lastModifiedDate":"2023-09-12"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" storage.saveDataFile(tasks);","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" storage.saveTextFile(tasks);","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" return \"Goodbye!\";","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"list\") || type.equals(\"l\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" return tasks.listOut();","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"mark\") || type.equals(\"m\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" return tasks.mark(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"unmark\") || type.equals(\"um\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" return tasks.unmark(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"delete\") || type.equals(\"del\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" return tasks.delete(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"find\") || type.equals(\"f\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" return tasks.find(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" // check for task type first","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" if (type.equals(\"todo\") || type.equals(\"t\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" if (arr.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" throw new EmptyDescription();","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" String desc \u003d tasks.getDescription(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" return tasks.addTodo(desc);","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"deadline\") || type.equals(\"d\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" String desc \u003d tasks.getDescription(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" String date \u003d tasks.getDeadline(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" return tasks.addDeadline(desc, date);","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"event\") || type.equals(\"e\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":" String desc \u003d tasks.getDescription(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":" String timeline \u003d tasks.getEventTimeline(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":" return tasks.addEvent(desc, timeline);","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-09-07"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"limzhenwy"},"content":" } catch (EmptyDescription | WrongInput e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":59,"author":{"gitId":"limzhenwy"},"content":" return e.getMessage();","lastModifiedDate":"2023-09-07"},{"lineNumber":60,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":61,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":62,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"limzhenwy":62}},{"path":"src/main/java/duke/logic/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.logic;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.DukeException;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.TaskList;","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"import java.io.BufferedWriter;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"import java.io.FileInputStream;","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"import java.io.FileOutputStream;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":"import java.io.ObjectInputStream;","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":"import java.io.ObjectOutputStream;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" * Class to handle data writing and reading of task list to user hard disk.","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":"public class Storage {","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" private String textFile;","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" private String dataFile;","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" * Constructor for Storage class.","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" * @param textFile Name of the text file","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" * @param dataFile Name of the data file","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" public Storage(String textFile, String dataFile) {","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" this.textFile \u003d textFile;","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" this.dataFile \u003d dataFile;","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" * Reads the data file and initializes the Task ArrayList","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" * @return ArrayList\u003cTask\u003e based on data from the data file","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":" * @throws DukeException Error incurred when attempting to read the data file","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" public ArrayList\u003cTask\u003e load() throws DukeException {","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" FileInputStream fileIn \u003d new FileInputStream(this.dataFile);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" ObjectInputStream objIn \u003d new ObjectInputStream(fileIn);","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" @SuppressWarnings(\"unchecked\")","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" // can safely cast because all the methods to modify the array","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" // guarantee that the elements in the array are all sub-classes","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":" // of Task, the array is type-safe","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" ArrayList\u003cTask\u003e taskArr \u003d (ArrayList\u003cTask\u003e) objIn.readObject();","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" objIn.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" return taskArr;","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":" throw new DukeException(\"Data file is empty.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":" } catch (ClassNotFoundException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":" throw new RuntimeException(e);","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":" * Saves the current task list into the text file","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"limzhenwy"},"content":" * @param tasks TaskList that contains the list\u0027s data","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"limzhenwy"},"content":" public void saveTextFile(TaskList tasks) {","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"limzhenwy"},"content":" ArrayList\u003cTask\u003e arr \u003d tasks.retrieveArray();","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"limzhenwy"},"content":" FileWriter fw \u003d new FileWriter(textFile);","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"limzhenwy"},"content":" BufferedWriter bw \u003d new BufferedWriter(fw);","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c arr.size(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"limzhenwy"},"content":" bw.write(arr.get(i).toString());","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"limzhenwy"},"content":" bw.newLine();","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"limzhenwy"},"content":" bw.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"limzhenwy"},"content":" fw.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"limzhenwy"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"limzhenwy"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"limzhenwy"},"content":" * Saves the current task list into the data file","lastModifiedDate":"2023-08-31"},{"lineNumber":77,"author":{"gitId":"limzhenwy"},"content":" * @param tasks TaskList that contains the list\u0027s data","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":79,"author":{"gitId":"limzhenwy"},"content":" public void saveDataFile(TaskList tasks) {","lastModifiedDate":"2023-08-31"},{"lineNumber":80,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"limzhenwy"},"content":" FileOutputStream fos \u003d new FileOutputStream(dataFile);","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"limzhenwy"},"content":" ObjectOutputStream oos \u003d new ObjectOutputStream(fos);","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"limzhenwy"},"content":" oos.writeObject(tasks.retrieveArray());","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"limzhenwy"},"content":" oos.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"limzhenwy"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"limzhenwy"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"limzhenwy":89}},{"path":"src/main/java/duke/logic/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.logic;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":" * Class to handle with user inputs.","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"public class Ui {","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" Scanner sc;","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the Ui class.","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" public Ui() {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" this.sc \u003d new Scanner(System.in);","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" * Prints error message when data file is empty or fails to load.","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" public void showLoadingError() {","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" System.out.println(\"An error has occurred while attempting\"","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" + \" to load the data file. A new file will be created!\");","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" * Closes the scanner when chatbot ends.","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" public void end() {","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" this.sc.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"limzhenwy":33}},{"path":"src/main/java/duke/tasks/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Special kind of task that has a description and a deadline","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" protected final String type \u003d \"D\";","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" protected String date;","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the Deadline class.","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" * @param description Describes the task","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" * @param date When the task should be completed by","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" public Deadline(String description, String date) {","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" super(description);","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" this.date \u003d date;","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" public void mark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" public void unmark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" public String toString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" return this.type + \" | \" + this.getStatusIcon() + \" | \" + this.description","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" + \" | \" + this.date;","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":32}},{"path":"src/main/java/duke/tasks/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Special type of task that has a description, \u0027from\u0027 date and \u0027to\u0027 date.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"class Event extends Task {","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" protected String type \u003d \"E\";","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" protected String timeline;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" * Constructor for Event class.","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" * @param description Describes the event","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" * @param timeline Timeline of the event","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" public Event(String description, String timeline) {","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" super(description);","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" this.timeline \u003d timeline;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" public void mark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" public void unmark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" public String toString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" return this.type + \" | \" + this.getStatusIcon() + \" | \"","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" + this.description + \" | \" + this.timeline;","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":32}},{"path":"src/main/java/duke/tasks/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import java.io.Serializable;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":" * Class representing a task to be completed.","lastModifiedDate":"2023-08-29"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"public class Task implements Serializable {","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" protected String description;","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the Task object.","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" * @param description The description of what the task is about","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" public Task(String description) {","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" * Task\u0027s completion status.","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" * @return \"1\" if the task is completed and \"0\" otherwise","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" public int getStatusIcon() {","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" return (isDone ? 1 : 0);","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" * Mark the task as done.","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" public void mark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":" * Unmark a task as not done yet.","lastModifiedDate":"2023-08-29"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" public void unmark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-29"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" * Returns the description of the task.","lastModifiedDate":"2023-08-29"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" * @return Description of the task in a String","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" public String desc() {","lastModifiedDate":"2023-08-29"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" return this.description;","lastModifiedDate":"2023-08-29"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":50}},{"path":"src/main/java/duke/tasks/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.*;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" * Class to handle individual task and task list manipulation.","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":"public class TaskList {","lastModifiedDate":"2023-09-12"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" private ArrayList\u003cTask\u003e taskArr;","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" public TaskList(ArrayList\u003cTask\u003e taskArr) {","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" this.taskArr \u003d taskArr;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" public TaskList() {","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" this.taskArr \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" * Creates a Todo task in taskArr.","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" * @param desc Description of the Todo task","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" public String addTodo(String desc) {","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" Todo curr \u003d new Todo(desc);","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" taskArr.add(curr);","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" return curr.toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" * Creates a Deadline task in taskArr.","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" * @param desc Description of the Deadline task","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" * @param date Date to complete the Deadline task by","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":" public String addDeadline(String desc, String date) {","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" Deadline curr \u003d new Deadline(desc, date);","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" taskArr.add(curr);","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" return curr.toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" * Creates an Event task in taskArr.","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" * @param desc Description of the Event task","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":" * @param timeline Start and End date of the Event task","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" public String addEvent(String desc, String timeline) {","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" Event curr \u003d new Event(desc, timeline);","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":" taskArr.add(curr);","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":" return curr.toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":" * Mark a specific task in the Task ArrayList as done.","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":" * @param input User input for mark action","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":" * @throws WrongInput Error when user enters illegal input","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"limzhenwy"},"content":" public String mark(String[] input) throws WrongInput {","lastModifiedDate":"2023-09-07"},{"lineNumber":60,"author":{"gitId":"limzhenwy"},"content":" int size \u003d taskArr.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":62,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"limzhenwy"},"content":" int index \u003d Integer.parseInt(input[1]);","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"limzhenwy"},"content":" if (index \u003e size || index \u003c 0) {","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"limzhenwy"},"content":" taskArr.get(index - 1).mark();","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"limzhenwy"},"content":" return \"Got it, I\u0027ve marked this task:\\n\"","lastModifiedDate":"2023-09-07"},{"lineNumber":69,"author":{"gitId":"limzhenwy"},"content":" + taskArr.get(index - 1).toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":70,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"limzhenwy"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"limzhenwy"},"content":" * Unmarks a specific task in the Task ArrayList as not done.","lastModifiedDate":"2023-08-31"},{"lineNumber":77,"author":{"gitId":"limzhenwy"},"content":" * @param input User input for unmark action","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"limzhenwy"},"content":" * @throws WrongInput Error when user enters illegal input","lastModifiedDate":"2023-08-31"},{"lineNumber":79,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":80,"author":{"gitId":"limzhenwy"},"content":" public String unmark(String[] input) throws WrongInput {","lastModifiedDate":"2023-09-07"},{"lineNumber":81,"author":{"gitId":"limzhenwy"},"content":" int size \u003d taskArr.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":83,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"limzhenwy"},"content":" int index \u003d Integer.parseInt(input[1]);","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"limzhenwy"},"content":" if (index \u003e size || index \u003c 0) {","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"limzhenwy"},"content":" taskArr.get(index - 1).unmark();","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"limzhenwy"},"content":" return \"Got it, I\u0027ve unmarked this task:\\n\"","lastModifiedDate":"2023-09-07"},{"lineNumber":90,"author":{"gitId":"limzhenwy"},"content":" + taskArr.get(index - 1).toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":91,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"limzhenwy"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":96,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"limzhenwy"},"content":" * Deletes a specified task from the Task ArrayList.","lastModifiedDate":"2023-08-31"},{"lineNumber":98,"author":{"gitId":"limzhenwy"},"content":" * @param input User input for delete action","lastModifiedDate":"2023-08-31"},{"lineNumber":99,"author":{"gitId":"limzhenwy"},"content":" * @throws WrongInput Error when user enters illegal input","lastModifiedDate":"2023-08-31"},{"lineNumber":100,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":101,"author":{"gitId":"limzhenwy"},"content":" public String delete(String[] input) throws WrongInput {","lastModifiedDate":"2023-09-07"},{"lineNumber":102,"author":{"gitId":"limzhenwy"},"content":" int size \u003d taskArr.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":103,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":104,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"limzhenwy"},"content":" int num \u003d Integer.parseInt(input[1]);","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"limzhenwy"},"content":" if (num \u003e size || num \u003c 0) {","lastModifiedDate":"2023-08-30"},{"lineNumber":107,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":109,"author":{"gitId":"limzhenwy"},"content":" int index \u003d num - 1;","lastModifiedDate":"2023-08-30"},{"lineNumber":110,"author":{"gitId":"limzhenwy"},"content":" Task toRemove \u003d taskArr.get(index);","lastModifiedDate":"2023-08-30"},{"lineNumber":111,"author":{"gitId":"limzhenwy"},"content":" taskArr.remove(index);","lastModifiedDate":"2023-08-30"},{"lineNumber":112,"author":{"gitId":"limzhenwy"},"content":" return \"Noted, I\u0027ve removed this task:\\n\"","lastModifiedDate":"2023-09-07"},{"lineNumber":113,"author":{"gitId":"limzhenwy"},"content":" + toRemove.toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":114,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":115,"author":{"gitId":"limzhenwy"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":116,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":117,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":119,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"limzhenwy"},"content":" * Lists out all the tasks in taskArr.","lastModifiedDate":"2023-08-30"},{"lineNumber":121,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":122,"author":{"gitId":"limzhenwy"},"content":" public String listOut() {","lastModifiedDate":"2023-09-07"},{"lineNumber":123,"author":{"gitId":"limzhenwy"},"content":" int size \u003d taskArr.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":124,"author":{"gitId":"limzhenwy"},"content":" String response \u003d \"Here are the tasks in your list:\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":125,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":126,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c size; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":127,"author":{"gitId":"limzhenwy"},"content":" response +\u003d i + 1 + \". \" + taskArr.get(i).toString() + \"\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":128,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":129,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":130,"author":{"gitId":"limzhenwy"},"content":" return response + countTotalTasks();","lastModifiedDate":"2023-09-07"},{"lineNumber":131,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":132,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":133,"author":{"gitId":"limzhenwy"},"content":" * String to show the user the current state of the Task ArrayList.","lastModifiedDate":"2023-08-31"},{"lineNumber":134,"author":{"gitId":"limzhenwy"},"content":" * @return String containing all information of the current Task ArrayList","lastModifiedDate":"2023-08-31"},{"lineNumber":135,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"limzhenwy"},"content":" public String countTotalTasks() {","lastModifiedDate":"2023-09-06"},{"lineNumber":137,"author":{"gitId":"limzhenwy"},"content":" int size \u003d taskArr.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":138,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":139,"author":{"gitId":"limzhenwy"},"content":" return \"\\nNow you have \" + size + \" tasks in the list.\";","lastModifiedDate":"2023-08-30"},{"lineNumber":140,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":141,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":142,"author":{"gitId":"limzhenwy"},"content":" * String representing what the user input into the scanner","lastModifiedDate":"2023-08-31"},{"lineNumber":143,"author":{"gitId":"limzhenwy"},"content":" * @param arr User input converted to String array","lastModifiedDate":"2023-08-31"},{"lineNumber":144,"author":{"gitId":"limzhenwy"},"content":" * @return Description of the task specified by user","lastModifiedDate":"2023-08-31"},{"lineNumber":145,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":146,"author":{"gitId":"limzhenwy"},"content":" public String getDescription(String[] arr) {","lastModifiedDate":"2023-08-30"},{"lineNumber":147,"author":{"gitId":"limzhenwy"},"content":" String result \u003d null;","lastModifiedDate":"2023-08-30"},{"lineNumber":148,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":149,"author":{"gitId":"limzhenwy"},"content":" // can safely ignore the first element as we have already","lastModifiedDate":"2023-08-30"},{"lineNumber":150,"author":{"gitId":"limzhenwy"},"content":" // checked for the task type in main logic","lastModifiedDate":"2023-08-30"},{"lineNumber":151,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 1; i \u003c arr.length; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":152,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":153,"author":{"gitId":"limzhenwy"},"content":" if (arr[i].equals(\"/by\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":154,"author":{"gitId":"limzhenwy"},"content":" break;","lastModifiedDate":"2023-08-30"},{"lineNumber":155,"author":{"gitId":"limzhenwy"},"content":" } else if (arr[i].equals(\"/from\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":156,"author":{"gitId":"limzhenwy"},"content":" break;","lastModifiedDate":"2023-08-30"},{"lineNumber":157,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":158,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":159,"author":{"gitId":"limzhenwy"},"content":" if (result \u003d\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":160,"author":{"gitId":"limzhenwy"},"content":" result \u003d arr[i];","lastModifiedDate":"2023-08-30"},{"lineNumber":161,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":162,"author":{"gitId":"limzhenwy"},"content":" result +\u003d \" \" + arr[i];","lastModifiedDate":"2023-08-30"},{"lineNumber":163,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":164,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":165,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":166,"author":{"gitId":"limzhenwy"},"content":" return result;","lastModifiedDate":"2023-08-30"},{"lineNumber":167,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":168,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":169,"author":{"gitId":"limzhenwy"},"content":" * Retrieves deadline of a Deadline task","lastModifiedDate":"2023-08-31"},{"lineNumber":170,"author":{"gitId":"limzhenwy"},"content":" * @param arr User input converted to String array","lastModifiedDate":"2023-08-31"},{"lineNumber":171,"author":{"gitId":"limzhenwy"},"content":" * @return Task deadline set by user in Month Day Year format","lastModifiedDate":"2023-08-31"},{"lineNumber":172,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":173,"author":{"gitId":"limzhenwy"},"content":" public String getDeadline(String[] arr) {","lastModifiedDate":"2023-08-30"},{"lineNumber":174,"author":{"gitId":"limzhenwy"},"content":" String input \u003d null;","lastModifiedDate":"2023-08-30"},{"lineNumber":175,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":176,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c arr.length; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":177,"author":{"gitId":"limzhenwy"},"content":" if (arr[i].equals(\"/by\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":178,"author":{"gitId":"limzhenwy"},"content":" input \u003d arr[i + 1];","lastModifiedDate":"2023-08-30"},{"lineNumber":179,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":180,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":181,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":182,"author":{"gitId":"limzhenwy"},"content":" String result \u003d LocalDate.parse(input)","lastModifiedDate":"2023-08-30"},{"lineNumber":183,"author":{"gitId":"limzhenwy"},"content":" .format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":184,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":185,"author":{"gitId":"limzhenwy"},"content":" return result;","lastModifiedDate":"2023-08-30"},{"lineNumber":186,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":187,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":188,"author":{"gitId":"limzhenwy"},"content":" * Retrieves timeline of an Event task","lastModifiedDate":"2023-08-31"},{"lineNumber":189,"author":{"gitId":"limzhenwy"},"content":" * @param arr User input converted to String array","lastModifiedDate":"2023-08-31"},{"lineNumber":190,"author":{"gitId":"limzhenwy"},"content":" * @return Event timeline set by user in Month Day Year format","lastModifiedDate":"2023-08-31"},{"lineNumber":191,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":192,"author":{"gitId":"limzhenwy"},"content":" public String getEventTimeline(String[] arr) {","lastModifiedDate":"2023-08-30"},{"lineNumber":193,"author":{"gitId":"limzhenwy"},"content":" String fromInput \u003d null;","lastModifiedDate":"2023-08-30"},{"lineNumber":194,"author":{"gitId":"limzhenwy"},"content":" String toInput \u003d null;","lastModifiedDate":"2023-08-30"},{"lineNumber":195,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":196,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c arr.length; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":197,"author":{"gitId":"limzhenwy"},"content":" if (arr[i].equals(\"/from\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":198,"author":{"gitId":"limzhenwy"},"content":" fromInput \u003d arr[i + 1];","lastModifiedDate":"2023-08-30"},{"lineNumber":199,"author":{"gitId":"limzhenwy"},"content":" toInput \u003d arr[i + 3];","lastModifiedDate":"2023-08-30"},{"lineNumber":200,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":201,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":202,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":203,"author":{"gitId":"limzhenwy"},"content":" String from \u003d LocalDate.parse(fromInput)","lastModifiedDate":"2023-08-31"},{"lineNumber":204,"author":{"gitId":"limzhenwy"},"content":" .format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":205,"author":{"gitId":"limzhenwy"},"content":" String to \u003d LocalDate.parse(toInput)","lastModifiedDate":"2023-08-31"},{"lineNumber":206,"author":{"gitId":"limzhenwy"},"content":" .format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":207,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":208,"author":{"gitId":"limzhenwy"},"content":" return from + \" - \" + to;","lastModifiedDate":"2023-08-30"},{"lineNumber":209,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":210,"author":{"gitId":"limzhenwy"},"content":" public String find(String[] arr) throws WrongInput {","lastModifiedDate":"2023-09-07"},{"lineNumber":211,"author":{"gitId":"limzhenwy"},"content":" if (arr.length \u003d\u003d 1) {","lastModifiedDate":"2023-08-31"},{"lineNumber":212,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-31"},{"lineNumber":213,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":214,"author":{"gitId":"limzhenwy"},"content":" String response \u003d \"Here are the matching tasks in your list:\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":215,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":216,"author":{"gitId":"limzhenwy"},"content":" int[] result \u003d new int[taskArr.size()];","lastModifiedDate":"2023-08-31"},{"lineNumber":217,"author":{"gitId":"limzhenwy"},"content":" String term \u003d arr[1];","lastModifiedDate":"2023-08-31"},{"lineNumber":218,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":219,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c taskArr.size(); i++) {","lastModifiedDate":"2023-08-31"},{"lineNumber":220,"author":{"gitId":"limzhenwy"},"content":" String currDescription \u003d taskArr.get(i).desc();","lastModifiedDate":"2023-08-31"},{"lineNumber":221,"author":{"gitId":"limzhenwy"},"content":" if (currDescription.toLowerCase().contains(term.toLowerCase())) {","lastModifiedDate":"2023-08-31"},{"lineNumber":222,"author":{"gitId":"limzhenwy"},"content":" result[i] \u003d 1;","lastModifiedDate":"2023-08-31"},{"lineNumber":223,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":224,"author":{"gitId":"limzhenwy"},"content":" result[i] \u003d 0;","lastModifiedDate":"2023-08-31"},{"lineNumber":225,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":226,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":227,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":228,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c taskArr.size(); i++) {","lastModifiedDate":"2023-08-31"},{"lineNumber":229,"author":{"gitId":"limzhenwy"},"content":" if (result[i] \u003d\u003d 1) {","lastModifiedDate":"2023-08-31"},{"lineNumber":230,"author":{"gitId":"limzhenwy"},"content":" response +\u003d taskArr.get(i).toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":231,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":232,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":233,"author":{"gitId":"limzhenwy"},"content":" return response;","lastModifiedDate":"2023-09-07"},{"lineNumber":234,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":235,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":236,"author":{"gitId":"limzhenwy"},"content":" public ArrayList\u003cTask\u003e retrieveArray() {","lastModifiedDate":"2023-08-30"},{"lineNumber":237,"author":{"gitId":"limzhenwy"},"content":" return this.taskArr;","lastModifiedDate":"2023-08-30"},{"lineNumber":238,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":239,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"limzhenwy":239}},{"path":"src/main/java/duke/tasks/Todo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Special kind of task that only has a description","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"public class Todo extends Task {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" protected String type \u003d \"T\";","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the Todo task type.","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" * @param description String describing what the Todo task is about","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" public Todo(String description) {","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" super(description);","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" * Mark this Todo task as done.","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" public void mark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" * Unmark this Todo task as not done yet.","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" public void unmark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" public String toString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" return this.type + \" | \" + this.getStatusIcon()","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" + \" | \" + this.description;","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":36}},{"path":"src/main/java/module-info.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"module duke {","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":" requires javafx.controls;","lastModifiedDate":"2023-09-06"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":" requires javafx.fxml;","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" opens duke to javafx.fxml;","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":" exports duke;","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" exports duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" opens duke.tasks to javafx.fxml;","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" exports duke.gui;","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" opens duke.gui to javafx.fxml;","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" exports duke.logic;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" opens duke.logic to javafx.fxml;","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-06"}],"authorContributionMap":{"limzhenwy":13}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"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-06"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-06"}],"authorContributionMap":{"limzhenwy":16}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"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\"duke.gui.MainWindow\"\u003e","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"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-06"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"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-06"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"552.0\" prefWidth\u003d\"388.0\" /\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"}],"authorContributionMap":{"limzhenwy":20}},{"path":"src/test/java/duke/DukeTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"public class DukeTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" public void dummyTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" assertEquals(2, 2);","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" public void anotherDummyTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" assertEquals(4, 4);","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"limzhenwy":18}},{"path":"src/test/java/duke/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.TaskList;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.*;","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"public class TaskListTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" public void emptyArrayTest() {","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" TaskList t \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" assertEquals(true, t.retrieveArray().isEmpty());","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" public void arrayCorrectManipulation() {","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" TaskList t \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" t.addTodo(\"read book\");","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" t.addDeadline(\"return book\", \"sunday\");","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" t.addEvent(\"play games\", \"monday - tuesday\");","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" assertEquals(3, t.retrieveArray().size());","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" String dummyInput \u003d \"delete 2\";","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" String[] arr \u003d dummyInput.split(\" \");","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" t.delete(arr);","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" } catch (WrongInput e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" } finally {","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" assertEquals(2, t.retrieveArray().size());","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"limzhenwy":32}},{"path":"src/test/java/duke/TodoTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.Todo;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"public class TodoTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" public void constructorTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" Todo read \u003d new Todo(\"read\");","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" assertEquals(\"T | 0 | read\", read.toString());","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"limzhenwy":15}}] +[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"# Skog","lastModifiedDate":"2023-09-17"},{"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":"limzhenwy"},"content":"3. After that, locate the `src/main/java/duke/Duke.java` file, right-click it, and choose `Run Duke.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-17"},{"lineNumber":17,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" ","lastModifiedDate":"2023-09-17"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" Skog!","lastModifiedDate":"2023-09-17"},{"lineNumber":21,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2023-09-17"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" ","lastModifiedDate":"2023-09-17"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":"Here are some basic commands to use Skog:","lastModifiedDate":"2023-09-17"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-09-17"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":"todo / t","lastModifiedDate":"2023-09-17"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":"deadline / d","lastModifiedDate":"2023-09-17"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":"event / e","lastModifiedDate":"2023-09-17"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":"list / l","lastModifiedDate":"2023-09-17"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":"find / f","lastModifiedDate":"2023-09-17"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":"mark / m ","lastModifiedDate":"2023-09-17"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":"unmark / um","lastModifiedDate":"2023-09-17"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"delete / del","lastModifiedDate":"2023-09-17"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":"bye","lastModifiedDate":"2023-09-17"},{"lineNumber":34,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":"**todo:**","lastModifiedDate":"2023-09-17"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":"_A task with only a description field and no time constraints_","lastModifiedDate":"2023-09-17"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":"**deadline:**","lastModifiedDate":"2023-09-17"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":"_A task with an end-date to meet_ ","lastModifiedDate":"2023-09-17"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":"**event:**","lastModifiedDate":"2023-09-17"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":"_A task with a starting date and an ending date_","lastModifiedDate":"2023-09-17"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":"**list:**","lastModifiedDate":"2023-09-17"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":"_Lists out all added tasks_","lastModifiedDate":"2023-09-17"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":"**find:**","lastModifiedDate":"2023-09-17"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":"_Shows all the tasks with containing a specified word_","lastModifiedDate":"2023-09-17"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":"**mark:**","lastModifiedDate":"2023-09-17"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":"_Marks specified task as done_","lastModifiedDate":"2023-09-17"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":"**unmark:**","lastModifiedDate":"2023-09-17"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":"_Unmarks a specified task_","lastModifiedDate":"2023-09-17"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":58,"author":{"gitId":"limzhenwy"},"content":"**delete:**","lastModifiedDate":"2023-09-17"},{"lineNumber":59,"author":{"gitId":"limzhenwy"},"content":"_Deletes a specified task from the list_","lastModifiedDate":"2023-09-17"},{"lineNumber":60,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":61,"author":{"gitId":"limzhenwy"},"content":"**bye:**","lastModifiedDate":"2023-09-17"},{"lineNumber":62,"author":{"gitId":"limzhenwy"},"content":"_Ends the chat bot and saves the data into a text file_","lastModifiedDate":"2023-09-17"}],"authorContributionMap":{"limzhenwy":44,"-":18}},{"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":"limzhenwy"},"content":" id \u0027org.openjfx.javafxplugin\u0027 version \u00270.0.13\u0027","lastModifiedDate":"2023-09-06"},{"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":"limzhenwy"},"content":"javafx {","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" version \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" modules \u003d [\u0027javafx.controls\u0027, \u0027javafx.fxml\u0027]","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":17,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":19,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" mainClassName \u003d \u0027duke.Duke\u0027","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" archiveFileName \u003d \u0027duke.jar\u0027","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"limzhenwy":9,"-":41}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"# User Guide for Skog","lastModifiedDate":"2023-10-17"},{"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":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"Here are some basic commands to use Skog:","lastModifiedDate":"2023-10-17"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"todo / t","lastModifiedDate":"2023-10-17"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"deadline / d","lastModifiedDate":"2023-10-17"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"event / e","lastModifiedDate":"2023-10-17"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"list / l","lastModifiedDate":"2023-10-17"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":"find / f","lastModifiedDate":"2023-10-17"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":"mark / m ","lastModifiedDate":"2023-10-17"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"unmark / um","lastModifiedDate":"2023-10-17"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"delete / del","lastModifiedDate":"2023-10-17"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"bye","lastModifiedDate":"2023-10-17"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":19,"author":{"gitId":"-"},"content":"## Usage","lastModifiedDate":"2023-10-17"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":"### `todo` - A task with only a description field and no time constraints","lastModifiedDate":"2023-10-17"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":"Format: ","lastModifiedDate":"2023-10-17"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":"`todo [STRING]`","lastModifiedDate":"2023-10-17"},{"lineNumber":26,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":27,"author":{"gitId":"-"},"content":"Example of usage: ","lastModifiedDate":"2023-10-17"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":"`todo exercise`","lastModifiedDate":"2023-10-17"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":"Expected outcome:","lastModifiedDate":"2023-10-17"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":"Got it, I\u0027ve added this task:","lastModifiedDate":"2023-10-17"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":"T | 0 | exercise","lastModifiedDate":"2023-10-17"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":"### `deadline` - A task with an end-date to meet","lastModifiedDate":"2023-10-17"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":"Format: ","lastModifiedDate":"2023-10-17"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":"`deadline [STRING] /by [yyyy-mm-dd]`","lastModifiedDate":"2023-10-17"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":"Example of usage:","lastModifiedDate":"2023-10-17"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":"`deadline homework /by 2023-08-12`","lastModifiedDate":"2023-10-17"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":"Expected outcome:","lastModifiedDate":"2023-10-17"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":"Got it, I\u0027ve added this task:","lastModifiedDate":"2023-10-17"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":"D | 0 | homework | Aug 12 2023","lastModifiedDate":"2023-10-17"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":"### `event` - A task with a starting date and an ending date","lastModifiedDate":"2023-10-17"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":"Format: ","lastModifiedDate":"2023-10-17"},{"lineNumber":58,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":59,"author":{"gitId":"limzhenwy"},"content":"`event [STRING] /from [yyyy-mm-dd] /to [yyyy-mm-dd]`","lastModifiedDate":"2023-10-17"},{"lineNumber":60,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":61,"author":{"gitId":"limzhenwy"},"content":"Example of usage:","lastModifiedDate":"2023-10-17"},{"lineNumber":62,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":63,"author":{"gitId":"limzhenwy"},"content":"`event exam /from 2023-08-13 /to 2023-08-13`","lastModifiedDate":"2023-10-17"},{"lineNumber":64,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":65,"author":{"gitId":"limzhenwy"},"content":"Expected outcome:","lastModifiedDate":"2023-10-17"},{"lineNumber":66,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":67,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":68,"author":{"gitId":"limzhenwy"},"content":"Got it, I\u0027ve added this task:","lastModifiedDate":"2023-10-17"},{"lineNumber":69,"author":{"gitId":"limzhenwy"},"content":"E | 0 | exam | Aug 13 2023 - Aug 13 2023","lastModifiedDate":"2023-10-17"},{"lineNumber":70,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":71,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":72,"author":{"gitId":"limzhenwy"},"content":"### `list` - Lists out all added tasks","lastModifiedDate":"2023-10-17"},{"lineNumber":73,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":74,"author":{"gitId":"limzhenwy"},"content":"Format: ","lastModifiedDate":"2023-10-17"},{"lineNumber":75,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":76,"author":{"gitId":"limzhenwy"},"content":"`list`","lastModifiedDate":"2023-10-17"},{"lineNumber":77,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":78,"author":{"gitId":"limzhenwy"},"content":"Example of usage:","lastModifiedDate":"2023-10-17"},{"lineNumber":79,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":80,"author":{"gitId":"limzhenwy"},"content":"`list`","lastModifiedDate":"2023-10-17"},{"lineNumber":81,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":82,"author":{"gitId":"limzhenwy"},"content":"Expected outcome:","lastModifiedDate":"2023-10-17"},{"lineNumber":83,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":84,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":85,"author":{"gitId":"limzhenwy"},"content":"Here are the tasks in your list:","lastModifiedDate":"2023-10-17"},{"lineNumber":86,"author":{"gitId":"limzhenwy"},"content":"1. T | 0 | exercise","lastModifiedDate":"2023-10-17"},{"lineNumber":87,"author":{"gitId":"limzhenwy"},"content":"2. D | 0 | homework | Aug 12 2023","lastModifiedDate":"2023-10-17"},{"lineNumber":88,"author":{"gitId":"limzhenwy"},"content":"3. E | 0 | exam | Aug 13 2023 - Aug 13 2023","lastModifiedDate":"2023-10-17"},{"lineNumber":89,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":90,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":91,"author":{"gitId":"limzhenwy"},"content":"### `find` - Shows all the tasks with containing a specified word","lastModifiedDate":"2023-10-17"},{"lineNumber":92,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":93,"author":{"gitId":"limzhenwy"},"content":"Format: ","lastModifiedDate":"2023-10-17"},{"lineNumber":94,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":95,"author":{"gitId":"limzhenwy"},"content":"`find [STRING]`","lastModifiedDate":"2023-10-17"},{"lineNumber":96,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":97,"author":{"gitId":"limzhenwy"},"content":"Example of usage:","lastModifiedDate":"2023-10-17"},{"lineNumber":98,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":99,"author":{"gitId":"limzhenwy"},"content":"`find exercise`","lastModifiedDate":"2023-10-17"},{"lineNumber":100,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":101,"author":{"gitId":"limzhenwy"},"content":"Expected outcome:","lastModifiedDate":"2023-10-17"},{"lineNumber":102,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":103,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":104,"author":{"gitId":"limzhenwy"},"content":"Here are the matching tasks in your list:","lastModifiedDate":"2023-10-17"},{"lineNumber":105,"author":{"gitId":"limzhenwy"},"content":"T | 0 | exercise","lastModifiedDate":"2023-10-17"},{"lineNumber":106,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":107,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":108,"author":{"gitId":"limzhenwy"},"content":"### `mark` - Marks specified task as done","lastModifiedDate":"2023-10-17"},{"lineNumber":109,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":110,"author":{"gitId":"limzhenwy"},"content":"Format: ","lastModifiedDate":"2023-10-17"},{"lineNumber":111,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":112,"author":{"gitId":"limzhenwy"},"content":"`mark [int]`","lastModifiedDate":"2023-10-17"},{"lineNumber":113,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":114,"author":{"gitId":"limzhenwy"},"content":"Example of usage:","lastModifiedDate":"2023-10-17"},{"lineNumber":115,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":116,"author":{"gitId":"limzhenwy"},"content":"`mark 1`","lastModifiedDate":"2023-10-17"},{"lineNumber":117,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":118,"author":{"gitId":"limzhenwy"},"content":"Expected outcome:","lastModifiedDate":"2023-10-17"},{"lineNumber":119,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":120,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":121,"author":{"gitId":"limzhenwy"},"content":"Got it, I\u0027ve marked this task:","lastModifiedDate":"2023-10-17"},{"lineNumber":122,"author":{"gitId":"limzhenwy"},"content":"T | 1 | exercise","lastModifiedDate":"2023-10-17"},{"lineNumber":123,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":124,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":125,"author":{"gitId":"limzhenwy"},"content":"### `unmark` - Unmarks a specified task","lastModifiedDate":"2023-10-17"},{"lineNumber":126,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":127,"author":{"gitId":"limzhenwy"},"content":"Format: ","lastModifiedDate":"2023-10-17"},{"lineNumber":128,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":129,"author":{"gitId":"limzhenwy"},"content":"`unmark [int]`","lastModifiedDate":"2023-10-17"},{"lineNumber":130,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":131,"author":{"gitId":"limzhenwy"},"content":"Example of usage:","lastModifiedDate":"2023-10-17"},{"lineNumber":132,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":133,"author":{"gitId":"limzhenwy"},"content":"`unmark 1`","lastModifiedDate":"2023-10-17"},{"lineNumber":134,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":135,"author":{"gitId":"-"},"content":"Expected outcome:","lastModifiedDate":"2023-10-17"},{"lineNumber":136,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":137,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":138,"author":{"gitId":"limzhenwy"},"content":"Got it, I\u0027ve unmarked this task:","lastModifiedDate":"2023-10-17"},{"lineNumber":139,"author":{"gitId":"limzhenwy"},"content":"T | 0 | exercise","lastModifiedDate":"2023-10-17"},{"lineNumber":140,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":141,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":142,"author":{"gitId":"limzhenwy"},"content":"### `delete` - Deletes a specified task from the list","lastModifiedDate":"2023-10-17"},{"lineNumber":143,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":144,"author":{"gitId":"limzhenwy"},"content":"Format: ","lastModifiedDate":"2023-10-17"},{"lineNumber":145,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":146,"author":{"gitId":"limzhenwy"},"content":"`delete [int]`","lastModifiedDate":"2023-10-17"},{"lineNumber":147,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":148,"author":{"gitId":"limzhenwy"},"content":"Example of usage:","lastModifiedDate":"2023-10-17"},{"lineNumber":149,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":150,"author":{"gitId":"limzhenwy"},"content":"`delete 1`","lastModifiedDate":"2023-10-17"},{"lineNumber":151,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":152,"author":{"gitId":"limzhenwy"},"content":"Expected outcome:","lastModifiedDate":"2023-10-17"},{"lineNumber":153,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":154,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":155,"author":{"gitId":"limzhenwy"},"content":"Noted, I\u0027ve removed this task:","lastModifiedDate":"2023-10-17"},{"lineNumber":156,"author":{"gitId":"limzhenwy"},"content":"T | 0 | exercise","lastModifiedDate":"2023-10-17"},{"lineNumber":157,"author":{"gitId":"limzhenwy"},"content":"```","lastModifiedDate":"2023-10-17"},{"lineNumber":158,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":159,"author":{"gitId":"limzhenwy"},"content":"### `bye` - Ends the chat bot and saves the data into a text file","lastModifiedDate":"2023-10-17"},{"lineNumber":160,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":161,"author":{"gitId":"limzhenwy"},"content":"Format: ","lastModifiedDate":"2023-10-17"},{"lineNumber":162,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":163,"author":{"gitId":"limzhenwy"},"content":"`bye`","lastModifiedDate":"2023-10-17"},{"lineNumber":164,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":165,"author":{"gitId":"-"},"content":"Example of usage:","lastModifiedDate":"2019-07-29"},{"lineNumber":166,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":167,"author":{"gitId":"limzhenwy"},"content":"`bye`","lastModifiedDate":"2023-10-17"},{"lineNumber":168,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":169,"author":{"gitId":"-"},"content":"Expected outcome:","lastModifiedDate":"2019-07-29"},{"lineNumber":170,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":171,"author":{"gitId":"limzhenwy"},"content":"A text file and data file will be created containing all tasks","lastModifiedDate":"2023-10-17"},{"lineNumber":172,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":173,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2021-07-17"},{"lineNumber":174,"author":{"gitId":"limzhenwy"},"content":"Goodbye!","lastModifiedDate":"2023-10-17"},{"lineNumber":175,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2021-07-17"}],"authorContributionMap":{"limzhenwy":147,"-":28}},{"path":"src/main/java/duke/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.DukeException;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import duke.gui.Main;","lastModifiedDate":"2023-09-12"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import duke.logic.Executor;","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import duke.logic.Storage;","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"import duke.logic.Ui;","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.TaskList;","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-06"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-21"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" * Class for the ChatBot","lastModifiedDate":"2023-08-21"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-21"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"public class Duke {","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" public static final String TEXTFILE \u003d \"duke.txt\";","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" public static final String DATAFILE \u003d \"data.txt\";","lastModifiedDate":"2023-09-06"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" private Storage storage;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" private TaskList tasks;","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" private Ui ui;","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" private Executor executor;","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-20"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the Duke class.","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" * @param filePath Specifies the name of the text file","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" public Duke(String filePath) {","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" this.storage \u003d new Storage(TEXTFILE, DATAFILE);","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" this.ui \u003d new Ui();","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" this.executor \u003d new Executor();","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" tasks \u003d new TaskList(storage.load());","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" ui.showLoadingError();","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" tasks \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" * Echos the user input.","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" * @param input String that user inpt into the chat bot","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" * @return An echo of what the user said","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" public String getResponse(String input) {","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" return executor.execute(input, tasks, storage, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"limzhenwy":49,"-":1}},{"path":"src/main/java/duke/exceptions/DukeException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Special exceptions encountered by the chatbot.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"public class DukeException extends Exception {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the DukeException class.","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" * @param errorMessage Message about the error.","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" public DukeException(String errorMessage) {","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" super(errorMessage);","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":14}},{"path":"src/main/java/duke/exceptions/EmptyDescription.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Exception when no description is found.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"public class EmptyDescription extends DukeException {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the EmptyDescription class.","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" public EmptyDescription() {","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" super(\"-------------------------------\\n\"","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" + \"OOPS!!! The description of a todo cannot be empty.\\n\"","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" + \"-------------------------------\\n\");","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":16}},{"path":"src/main/java/duke/exceptions/InvalidFormat.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.exceptions;","lastModifiedDate":"2023-10-17"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"public class InvalidFormat extends DukeException{","lastModifiedDate":"2023-10-17"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-10-17"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the InvalidFormat class.","lastModifiedDate":"2023-10-17"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-10-17"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" public InvalidFormat() {","lastModifiedDate":"2023-10-17"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" super(\"-------------------------------\\n\"","lastModifiedDate":"2023-10-17"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" + \"OOPS!!! That is an invalid format.\" +","lastModifiedDate":"2023-10-17"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" \" Please follow the format yyyy-mm-dd!\\n\"","lastModifiedDate":"2023-10-17"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" + \"-------------------------------\\n\");","lastModifiedDate":"2023-10-17"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-10-17"}],"authorContributionMap":{"limzhenwy":13}},{"path":"src/main/java/duke/exceptions/WrongInput.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Exception when an illegal argument is found.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"public class WrongInput extends DukeException {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the WrongInput class.","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" public WrongInput() {","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" super(\"-------------------------------\\n\"","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" + \"OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\\n\"","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" + \"-------------------------------\\n\");","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":15}},{"path":"src/main/java/duke/gui/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.gui;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" private Label dialog;","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-06"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-06"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" private void flip() {","lastModifiedDate":"2023-09-06"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-06"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":" return new DialogBox(text, img);","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"limzhenwy"},"content":" db.flip();","lastModifiedDate":"2023-09-06"},{"lineNumber":59,"author":{"gitId":"limzhenwy"},"content":" return db;","lastModifiedDate":"2023-09-06"},{"lineNumber":60,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":61,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-06"},{"lineNumber":62,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"limzhenwy":62}},{"path":"src/main/java/duke/gui/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.gui;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.Duke;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" private Duke duke \u003d new Duke(\"duke.txt\");","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Duke.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" stage.show();","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"limzhenwy":29}},{"path":"src/main/java/duke/gui/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.gui;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.Duke;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" private Duke duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaUser.png\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaDuke.png\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" public void initialize() {","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" assert userImage !\u003d null","lastModifiedDate":"2023-09-12"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" \u0026\u0026 dukeImage !\u003d null","lastModifiedDate":"2023-09-12"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" : \"Images should be loaded properly\";","lastModifiedDate":"2023-09-12"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":" );","lastModifiedDate":"2023-09-07"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":" userInput.clear();","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"limzhenwy":57}},{"path":"src/main/java/duke/logic/Executor.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.logic;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.EmptyDescription;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.InvalidFormat;","lastModifiedDate":"2023-10-17"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.WrongInput;","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.TaskList;","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"public class Executor {","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" private String DELIM \u003d \" \";","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" public String execute(String input, TaskList tasks, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" String[] arr \u003d input.split(DELIM);","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" String type \u003d arr[0];","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" assert tasks !\u003d null: \"TaskList should be initialized prior to calling this method.\";","lastModifiedDate":"2023-09-12"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" if (type.equals(\"bye\")) {","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" assert ui !\u003d null: \"UI should have been initialized.\";","lastModifiedDate":"2023-09-12"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" ui.end();","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" assert storage !\u003d null: \"Storage should have been initialized.\";","lastModifiedDate":"2023-09-12"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" storage.saveDataFile(tasks);","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" storage.saveTextFile(tasks);","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" return \"Goodbye!\";","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"list\") || type.equals(\"l\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" return tasks.listOut();","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"mark\") || type.equals(\"m\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" return tasks.mark(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"unmark\") || type.equals(\"um\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" return tasks.unmark(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"delete\") || type.equals(\"del\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" return tasks.delete(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"find\") || type.equals(\"f\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":" return tasks.find(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" // check for task type first","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" if (type.equals(\"todo\") || type.equals(\"t\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" if (arr.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-07"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" throw new EmptyDescription();","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" String desc \u003d tasks.getDescription(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" return tasks.addTodo(desc);","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"deadline\") || type.equals(\"d\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" String desc \u003d tasks.getDescription(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" String date \u003d tasks.getDeadline(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":" return tasks.addDeadline(desc, date);","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":" } else if (type.equals(\"event\") || type.equals(\"e\")) {","lastModifiedDate":"2023-09-12"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":" String desc \u003d tasks.getDescription(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":" String timeline \u003d tasks.getEventTimeline(arr);","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":" return tasks.addEvent(desc, timeline);","lastModifiedDate":"2023-09-07"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":59,"author":{"gitId":"limzhenwy"},"content":" } catch (EmptyDescription | WrongInput | InvalidFormat e) {","lastModifiedDate":"2023-10-17"},{"lineNumber":60,"author":{"gitId":"limzhenwy"},"content":" return e.getMessage();","lastModifiedDate":"2023-09-07"},{"lineNumber":61,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":62,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":63,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"limzhenwy":63}},{"path":"src/main/java/duke/logic/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.logic;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.DukeException;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-12"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.TaskList;","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"import java.io.BufferedWriter;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"import java.io.FileInputStream;","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"import java.io.FileOutputStream;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":"import java.io.ObjectInputStream;","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":"import java.io.ObjectOutputStream;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" * Class to handle data writing and reading of task list to user hard disk.","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":"public class Storage {","lastModifiedDate":"2023-09-12"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" private String textFile;","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" private String dataFile;","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" * Constructor for Storage class.","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" * @param textFile Name of the text file","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" * @param dataFile Name of the data file","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" public Storage(String textFile, String dataFile) {","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" this.textFile \u003d textFile;","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" this.dataFile \u003d dataFile;","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" * Reads the data file and initializes the Task ArrayList","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" * @return ArrayList\u003cTask\u003e based on data from the data file","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":" * @throws DukeException Error incurred when attempting to read the data file","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" public ArrayList\u003cTask\u003e load() throws DukeException {","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" FileInputStream fileIn \u003d new FileInputStream(this.dataFile);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" ObjectInputStream objIn \u003d new ObjectInputStream(fileIn);","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" @SuppressWarnings(\"unchecked\")","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" // can safely cast because all the methods to modify the array","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" // guarantee that the elements in the array are all sub-classes","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":" // of Task, the array is type-safe","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" ArrayList\u003cTask\u003e taskArr \u003d (ArrayList\u003cTask\u003e) objIn.readObject();","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" objIn.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" return taskArr;","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":" throw new DukeException(\"Data file is empty.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":" } catch (ClassNotFoundException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":" throw new RuntimeException(e);","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":" * Saves the current task list into the text file","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"limzhenwy"},"content":" * @param tasks TaskList that contains the list\u0027s data","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"limzhenwy"},"content":" public void saveTextFile(TaskList tasks) {","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"limzhenwy"},"content":" ArrayList\u003cTask\u003e arr \u003d tasks.retrieveArray();","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"limzhenwy"},"content":" FileWriter fw \u003d new FileWriter(textFile);","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"limzhenwy"},"content":" BufferedWriter bw \u003d new BufferedWriter(fw);","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c arr.size(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"limzhenwy"},"content":" bw.write(arr.get(i).toString());","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"limzhenwy"},"content":" bw.newLine();","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"limzhenwy"},"content":" bw.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"limzhenwy"},"content":" fw.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"limzhenwy"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"limzhenwy"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"limzhenwy"},"content":" * Saves the current task list into the data file","lastModifiedDate":"2023-08-31"},{"lineNumber":77,"author":{"gitId":"limzhenwy"},"content":" * @param tasks TaskList that contains the list\u0027s data","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":79,"author":{"gitId":"limzhenwy"},"content":" public void saveDataFile(TaskList tasks) {","lastModifiedDate":"2023-08-31"},{"lineNumber":80,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"limzhenwy"},"content":" FileOutputStream fos \u003d new FileOutputStream(dataFile);","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"limzhenwy"},"content":" ObjectOutputStream oos \u003d new ObjectOutputStream(fos);","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"limzhenwy"},"content":" oos.writeObject(tasks.retrieveArray());","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"limzhenwy"},"content":" oos.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"limzhenwy"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"limzhenwy"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"limzhenwy":89}},{"path":"src/main/java/duke/logic/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.logic;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":" * Class to handle with user inputs.","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"public class Ui {","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" Scanner sc;","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the Ui class.","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" public Ui() {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" this.sc \u003d new Scanner(System.in);","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" * Prints error message when data file is empty or fails to load.","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" public void showLoadingError() {","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" System.out.println(\"An error has occurred while attempting\"","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" + \" to load the data file. A new file will be created!\");","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" * Closes the scanner when chatbot ends.","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" public void end() {","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" this.sc.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"limzhenwy":33}},{"path":"src/main/java/duke/tasks/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Special kind of task that has a description and a deadline","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" protected final String type \u003d \"D\";","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" protected String date;","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the Deadline class.","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" * @param description Describes the task","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" * @param date When the task should be completed by","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" public Deadline(String description, String date) {","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" super(description);","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" this.date \u003d date;","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" public void mark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" public void unmark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" public String toString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" return this.type + \" | \" + this.getStatusIcon() + \" | \" + this.description","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" + \" | \" + this.date;","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":32}},{"path":"src/main/java/duke/tasks/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Special type of task that has a description, \u0027from\u0027 date and \u0027to\u0027 date.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"class Event extends Task {","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" protected String type \u003d \"E\";","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" protected String timeline;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" * Constructor for Event class.","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" * @param description Describes the event","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" * @param timeline Timeline of the event","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" public Event(String description, String timeline) {","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" super(description);","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" this.timeline \u003d timeline;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" public void mark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" public void unmark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" public String toString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" return this.type + \" | \" + this.getStatusIcon() + \" | \"","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" + this.description + \" | \" + this.timeline;","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":32}},{"path":"src/main/java/duke/tasks/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import java.io.Serializable;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":" * Class representing a task to be completed.","lastModifiedDate":"2023-08-29"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"public class Task implements Serializable {","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" protected String description;","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the Task object.","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" * @param description The description of what the task is about","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" public Task(String description) {","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" * Task\u0027s completion status.","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" * @return \"1\" if the task is completed and \"0\" otherwise","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" public int getStatusIcon() {","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" return (isDone ? 1 : 0);","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" * Mark the task as done.","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" public void mark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":" * Unmark a task as not done yet.","lastModifiedDate":"2023-08-29"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" public void unmark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-29"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" * Returns the description of the task.","lastModifiedDate":"2023-08-29"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" * @return Description of the task in a String","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" public String desc() {","lastModifiedDate":"2023-08-29"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" return this.description;","lastModifiedDate":"2023-08-29"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":50}},{"path":"src/main/java/duke/tasks/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.*;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import java.lang.reflect.InvocationTargetException;","lastModifiedDate":"2023-10-17"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-10-17"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" * Class to handle individual task and task list manipulation.","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"public class TaskList {","lastModifiedDate":"2023-09-12"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" private ArrayList\u003cTask\u003e taskArr;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" public TaskList(ArrayList\u003cTask\u003e taskArr) {","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" this.taskArr \u003d taskArr;","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" public TaskList() {","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" this.taskArr \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" public String ACKNOWLEDGE \u003d \"Got it, I\u0027ve added this task:\\n\";","lastModifiedDate":"2023-10-17"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" * Creates a Todo task in taskArr.","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" * @param desc Description of the Todo task","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" public String addTodo(String desc) {","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" Todo curr \u003d new Todo(desc);","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" taskArr.add(curr);","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" return ACKNOWLEDGE + curr.toString();","lastModifiedDate":"2023-10-17"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":" * Creates a Deadline task in taskArr.","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"limzhenwy"},"content":" * @param desc Description of the Deadline task","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"limzhenwy"},"content":" * @param date Date to complete the Deadline task by","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"limzhenwy"},"content":" public String addDeadline(String desc, String date) {","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"limzhenwy"},"content":" Deadline curr \u003d new Deadline(desc, date);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"limzhenwy"},"content":" taskArr.add(curr);","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"limzhenwy"},"content":" return ACKNOWLEDGE + curr.toString();","lastModifiedDate":"2023-10-17"},{"lineNumber":45,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"limzhenwy"},"content":" * Creates an Event task in taskArr.","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"limzhenwy"},"content":" * @param desc Description of the Event task","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"limzhenwy"},"content":" * @param timeline Start and End date of the Event task","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"limzhenwy"},"content":" public String addEvent(String desc, String timeline) {","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"limzhenwy"},"content":" Event curr \u003d new Event(desc, timeline);","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"limzhenwy"},"content":" taskArr.add(curr);","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"limzhenwy"},"content":" return ACKNOWLEDGE + curr.toString();","lastModifiedDate":"2023-10-17"},{"lineNumber":56,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"limzhenwy"},"content":" * Mark a specific task in the Task ArrayList as done.","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"limzhenwy"},"content":" * @param input User input for mark action","lastModifiedDate":"2023-08-31"},{"lineNumber":60,"author":{"gitId":"limzhenwy"},"content":" * @throws WrongInput Error when user enters illegal input","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":62,"author":{"gitId":"limzhenwy"},"content":" public String mark(String[] input) throws WrongInput {","lastModifiedDate":"2023-09-07"},{"lineNumber":63,"author":{"gitId":"limzhenwy"},"content":" int size \u003d taskArr.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":65,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"limzhenwy"},"content":" int index \u003d Integer.parseInt(input[1]);","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"limzhenwy"},"content":" if (index \u003e size || index \u003c 0) {","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"limzhenwy"},"content":" taskArr.get(index - 1).mark();","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"limzhenwy"},"content":" return \"Got it, I\u0027ve marked this task:\\n\"","lastModifiedDate":"2023-09-07"},{"lineNumber":72,"author":{"gitId":"limzhenwy"},"content":" + taskArr.get(index - 1).toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":73,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"limzhenwy"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":79,"author":{"gitId":"limzhenwy"},"content":" * Unmarks a specific task in the Task ArrayList as not done.","lastModifiedDate":"2023-08-31"},{"lineNumber":80,"author":{"gitId":"limzhenwy"},"content":" * @param input User input for unmark action","lastModifiedDate":"2023-08-31"},{"lineNumber":81,"author":{"gitId":"limzhenwy"},"content":" * @throws WrongInput Error when user enters illegal input","lastModifiedDate":"2023-08-31"},{"lineNumber":82,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":83,"author":{"gitId":"limzhenwy"},"content":" public String unmark(String[] input) throws WrongInput {","lastModifiedDate":"2023-09-07"},{"lineNumber":84,"author":{"gitId":"limzhenwy"},"content":" int size \u003d taskArr.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":86,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"limzhenwy"},"content":" int index \u003d Integer.parseInt(input[1]);","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"limzhenwy"},"content":" if (index \u003e size || index \u003c 0) {","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":91,"author":{"gitId":"limzhenwy"},"content":" taskArr.get(index - 1).unmark();","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"limzhenwy"},"content":" return \"Got it, I\u0027ve unmarked this task:\\n\"","lastModifiedDate":"2023-09-07"},{"lineNumber":93,"author":{"gitId":"limzhenwy"},"content":" + taskArr.get(index - 1).toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":94,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"limzhenwy"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":96,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":99,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":100,"author":{"gitId":"limzhenwy"},"content":" * Deletes a specified task from the Task ArrayList.","lastModifiedDate":"2023-08-31"},{"lineNumber":101,"author":{"gitId":"limzhenwy"},"content":" * @param input User input for delete action","lastModifiedDate":"2023-08-31"},{"lineNumber":102,"author":{"gitId":"limzhenwy"},"content":" * @throws WrongInput Error when user enters illegal input","lastModifiedDate":"2023-08-31"},{"lineNumber":103,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"limzhenwy"},"content":" public String delete(String[] input) throws WrongInput {","lastModifiedDate":"2023-09-07"},{"lineNumber":105,"author":{"gitId":"limzhenwy"},"content":" int size \u003d taskArr.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":107,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"limzhenwy"},"content":" int num \u003d Integer.parseInt(input[1]);","lastModifiedDate":"2023-08-30"},{"lineNumber":109,"author":{"gitId":"limzhenwy"},"content":" if (num \u003e size || num \u003c 0) {","lastModifiedDate":"2023-08-30"},{"lineNumber":110,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":111,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":112,"author":{"gitId":"limzhenwy"},"content":" int index \u003d num - 1;","lastModifiedDate":"2023-08-30"},{"lineNumber":113,"author":{"gitId":"limzhenwy"},"content":" Task toRemove \u003d taskArr.get(index);","lastModifiedDate":"2023-08-30"},{"lineNumber":114,"author":{"gitId":"limzhenwy"},"content":" taskArr.remove(index);","lastModifiedDate":"2023-08-30"},{"lineNumber":115,"author":{"gitId":"limzhenwy"},"content":" return \"Noted, I\u0027ve removed this task:\\n\"","lastModifiedDate":"2023-09-07"},{"lineNumber":116,"author":{"gitId":"limzhenwy"},"content":" + toRemove.toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":117,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"limzhenwy"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":119,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":121,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":122,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":123,"author":{"gitId":"limzhenwy"},"content":" * Lists out all the tasks in taskArr.","lastModifiedDate":"2023-08-30"},{"lineNumber":124,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":125,"author":{"gitId":"limzhenwy"},"content":" public String listOut() {","lastModifiedDate":"2023-09-07"},{"lineNumber":126,"author":{"gitId":"limzhenwy"},"content":" int size \u003d taskArr.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":127,"author":{"gitId":"limzhenwy"},"content":" String response \u003d \"Here are the tasks in your list:\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":128,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":129,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c size; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":130,"author":{"gitId":"limzhenwy"},"content":" response +\u003d i + 1 + \". \" + taskArr.get(i).toString() + \"\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":131,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":132,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":133,"author":{"gitId":"limzhenwy"},"content":" return response + countTotalTasks();","lastModifiedDate":"2023-09-07"},{"lineNumber":134,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"limzhenwy"},"content":" * String to show the user the current state of the Task ArrayList.","lastModifiedDate":"2023-08-31"},{"lineNumber":137,"author":{"gitId":"limzhenwy"},"content":" * @return String containing all information of the current Task ArrayList","lastModifiedDate":"2023-08-31"},{"lineNumber":138,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":139,"author":{"gitId":"limzhenwy"},"content":" public String countTotalTasks() {","lastModifiedDate":"2023-09-06"},{"lineNumber":140,"author":{"gitId":"limzhenwy"},"content":" int size \u003d taskArr.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":141,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":142,"author":{"gitId":"limzhenwy"},"content":" return \"\\nNow you have \" + size + \" tasks in the list.\";","lastModifiedDate":"2023-08-30"},{"lineNumber":143,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":144,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":145,"author":{"gitId":"limzhenwy"},"content":" * String representing what the user input into the scanner","lastModifiedDate":"2023-08-31"},{"lineNumber":146,"author":{"gitId":"limzhenwy"},"content":" * @param arr User input converted to String array","lastModifiedDate":"2023-08-31"},{"lineNumber":147,"author":{"gitId":"limzhenwy"},"content":" * @return Description of the task specified by user","lastModifiedDate":"2023-08-31"},{"lineNumber":148,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":149,"author":{"gitId":"limzhenwy"},"content":" public String getDescription(String[] arr) {","lastModifiedDate":"2023-08-30"},{"lineNumber":150,"author":{"gitId":"limzhenwy"},"content":" String result \u003d null;","lastModifiedDate":"2023-08-30"},{"lineNumber":151,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":152,"author":{"gitId":"limzhenwy"},"content":" // can safely ignore the first element as we have already","lastModifiedDate":"2023-08-30"},{"lineNumber":153,"author":{"gitId":"limzhenwy"},"content":" // checked for the task type in main logic","lastModifiedDate":"2023-08-30"},{"lineNumber":154,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 1; i \u003c arr.length; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":155,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":156,"author":{"gitId":"limzhenwy"},"content":" if (arr[i].equals(\"/by\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":157,"author":{"gitId":"limzhenwy"},"content":" break;","lastModifiedDate":"2023-08-30"},{"lineNumber":158,"author":{"gitId":"limzhenwy"},"content":" } else if (arr[i].equals(\"/from\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":159,"author":{"gitId":"limzhenwy"},"content":" break;","lastModifiedDate":"2023-08-30"},{"lineNumber":160,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-09-12"},{"lineNumber":161,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":162,"author":{"gitId":"limzhenwy"},"content":" if (result \u003d\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":163,"author":{"gitId":"limzhenwy"},"content":" result \u003d arr[i];","lastModifiedDate":"2023-08-30"},{"lineNumber":164,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":165,"author":{"gitId":"limzhenwy"},"content":" result +\u003d \" \" + arr[i];","lastModifiedDate":"2023-08-30"},{"lineNumber":166,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":167,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":168,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":169,"author":{"gitId":"limzhenwy"},"content":" return result;","lastModifiedDate":"2023-08-30"},{"lineNumber":170,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":171,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":172,"author":{"gitId":"limzhenwy"},"content":" * Retrieves deadline of a Deadline task","lastModifiedDate":"2023-08-31"},{"lineNumber":173,"author":{"gitId":"limzhenwy"},"content":" * @param arr User input converted to String array","lastModifiedDate":"2023-08-31"},{"lineNumber":174,"author":{"gitId":"limzhenwy"},"content":" * @return Task deadline set by user in Month Day Year format","lastModifiedDate":"2023-08-31"},{"lineNumber":175,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":176,"author":{"gitId":"limzhenwy"},"content":" public String getDeadline(String[] arr) throws InvalidFormat, WrongInput {","lastModifiedDate":"2023-10-17"},{"lineNumber":177,"author":{"gitId":"limzhenwy"},"content":" String input \u003d null;","lastModifiedDate":"2023-08-30"},{"lineNumber":178,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":179,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c arr.length; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":180,"author":{"gitId":"limzhenwy"},"content":" if (arr[i].equals(\"/by\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":181,"author":{"gitId":"limzhenwy"},"content":" input \u003d arr[i + 1];","lastModifiedDate":"2023-08-30"},{"lineNumber":182,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":183,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":184,"author":{"gitId":"limzhenwy"},"content":" String result;","lastModifiedDate":"2023-10-17"},{"lineNumber":185,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-10-17"},{"lineNumber":186,"author":{"gitId":"limzhenwy"},"content":" result \u003d LocalDate.parse(input)","lastModifiedDate":"2023-10-17"},{"lineNumber":187,"author":{"gitId":"limzhenwy"},"content":" .format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":188,"author":{"gitId":"limzhenwy"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-10-17"},{"lineNumber":189,"author":{"gitId":"limzhenwy"},"content":" throw new InvalidFormat();","lastModifiedDate":"2023-10-17"},{"lineNumber":190,"author":{"gitId":"limzhenwy"},"content":" } catch (NullPointerException e) {","lastModifiedDate":"2023-10-17"},{"lineNumber":191,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-10-17"},{"lineNumber":192,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":193,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":194,"author":{"gitId":"limzhenwy"},"content":" return result;","lastModifiedDate":"2023-08-30"},{"lineNumber":195,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":196,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":197,"author":{"gitId":"limzhenwy"},"content":" * Retrieves timeline of an Event task","lastModifiedDate":"2023-08-31"},{"lineNumber":198,"author":{"gitId":"limzhenwy"},"content":" * @param arr User input converted to String array","lastModifiedDate":"2023-08-31"},{"lineNumber":199,"author":{"gitId":"limzhenwy"},"content":" * @return Event timeline set by user in Month Day Year format","lastModifiedDate":"2023-08-31"},{"lineNumber":200,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":201,"author":{"gitId":"limzhenwy"},"content":" public String getEventTimeline(String[] arr) throws InvalidFormat {","lastModifiedDate":"2023-10-17"},{"lineNumber":202,"author":{"gitId":"limzhenwy"},"content":" String fromInput \u003d null;","lastModifiedDate":"2023-08-30"},{"lineNumber":203,"author":{"gitId":"limzhenwy"},"content":" String toInput \u003d null;","lastModifiedDate":"2023-08-30"},{"lineNumber":204,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":205,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c arr.length; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":206,"author":{"gitId":"limzhenwy"},"content":" if (arr[i].equals(\"/from\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":207,"author":{"gitId":"limzhenwy"},"content":" fromInput \u003d arr[i + 1];","lastModifiedDate":"2023-08-30"},{"lineNumber":208,"author":{"gitId":"limzhenwy"},"content":" toInput \u003d arr[i + 3];","lastModifiedDate":"2023-08-30"},{"lineNumber":209,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":210,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":211,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":212,"author":{"gitId":"limzhenwy"},"content":" String from, to;","lastModifiedDate":"2023-10-17"},{"lineNumber":213,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-10-17"},{"lineNumber":214,"author":{"gitId":"limzhenwy"},"content":" from \u003d LocalDate.parse(fromInput)","lastModifiedDate":"2023-10-17"},{"lineNumber":215,"author":{"gitId":"limzhenwy"},"content":" .format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":216,"author":{"gitId":"limzhenwy"},"content":" to \u003d LocalDate.parse(toInput)","lastModifiedDate":"2023-10-17"},{"lineNumber":217,"author":{"gitId":"limzhenwy"},"content":" .format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":218,"author":{"gitId":"limzhenwy"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-10-17"},{"lineNumber":219,"author":{"gitId":"limzhenwy"},"content":" throw new InvalidFormat();","lastModifiedDate":"2023-10-17"},{"lineNumber":220,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-10-17"},{"lineNumber":221,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-10-17"},{"lineNumber":222,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":223,"author":{"gitId":"limzhenwy"},"content":" return from + \" - \" + to;","lastModifiedDate":"2023-08-30"},{"lineNumber":224,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":225,"author":{"gitId":"limzhenwy"},"content":" public String find(String[] arr) throws WrongInput {","lastModifiedDate":"2023-09-07"},{"lineNumber":226,"author":{"gitId":"limzhenwy"},"content":" if (arr.length \u003d\u003d 1) {","lastModifiedDate":"2023-08-31"},{"lineNumber":227,"author":{"gitId":"limzhenwy"},"content":" throw new WrongInput();","lastModifiedDate":"2023-08-31"},{"lineNumber":228,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":229,"author":{"gitId":"limzhenwy"},"content":" String response \u003d \"Here are the matching tasks in your list:\\n\";","lastModifiedDate":"2023-09-07"},{"lineNumber":230,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":231,"author":{"gitId":"limzhenwy"},"content":" int[] result \u003d new int[taskArr.size()];","lastModifiedDate":"2023-08-31"},{"lineNumber":232,"author":{"gitId":"limzhenwy"},"content":" String term \u003d arr[1];","lastModifiedDate":"2023-08-31"},{"lineNumber":233,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":234,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c taskArr.size(); i++) {","lastModifiedDate":"2023-08-31"},{"lineNumber":235,"author":{"gitId":"limzhenwy"},"content":" String currDescription \u003d taskArr.get(i).desc();","lastModifiedDate":"2023-08-31"},{"lineNumber":236,"author":{"gitId":"limzhenwy"},"content":" if (currDescription.toLowerCase().contains(term.toLowerCase())) {","lastModifiedDate":"2023-08-31"},{"lineNumber":237,"author":{"gitId":"limzhenwy"},"content":" result[i] \u003d 1;","lastModifiedDate":"2023-08-31"},{"lineNumber":238,"author":{"gitId":"limzhenwy"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":239,"author":{"gitId":"limzhenwy"},"content":" result[i] \u003d 0;","lastModifiedDate":"2023-08-31"},{"lineNumber":240,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":241,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":242,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":243,"author":{"gitId":"limzhenwy"},"content":" for (int i \u003d 0; i \u003c taskArr.size(); i++) {","lastModifiedDate":"2023-08-31"},{"lineNumber":244,"author":{"gitId":"limzhenwy"},"content":" if (result[i] \u003d\u003d 1) {","lastModifiedDate":"2023-08-31"},{"lineNumber":245,"author":{"gitId":"limzhenwy"},"content":" response +\u003d taskArr.get(i).toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":246,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":247,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":248,"author":{"gitId":"limzhenwy"},"content":" return response;","lastModifiedDate":"2023-09-07"},{"lineNumber":249,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":250,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":251,"author":{"gitId":"limzhenwy"},"content":" public ArrayList\u003cTask\u003e retrieveArray() {","lastModifiedDate":"2023-08-30"},{"lineNumber":252,"author":{"gitId":"limzhenwy"},"content":" return this.taskArr;","lastModifiedDate":"2023-08-30"},{"lineNumber":253,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":254,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"limzhenwy":254}},{"path":"src/main/java/duke/tasks/Todo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"/**","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":" * Special kind of task that only has a description","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"public class Todo extends Task {","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" protected String type \u003d \"T\";","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" * Constructor for the Todo task type.","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" * @param description String describing what the Todo task is about","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" public Todo(String description) {","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" super(description);","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" * Mark this Todo task as done.","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" public void mark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" * Unmark this Todo task as not done yet.","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" */","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" public void unmark() {","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":" public String toString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"limzhenwy"},"content":" return this.type + \" | \" + this.getStatusIcon()","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"limzhenwy"},"content":" + \" | \" + this.description;","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"limzhenwy":36}},{"path":"src/main/java/module-info.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"module duke {","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":" requires javafx.controls;","lastModifiedDate":"2023-09-06"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":" requires javafx.fxml;","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":" opens duke to javafx.fxml;","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":" exports duke;","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":" exports duke.tasks;","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" opens duke.tasks to javafx.fxml;","lastModifiedDate":"2023-09-12"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" exports duke.gui;","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" opens duke.gui to javafx.fxml;","lastModifiedDate":"2023-09-12"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" exports duke.logic;","lastModifiedDate":"2023-09-12"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" opens duke.logic to javafx.fxml;","lastModifiedDate":"2023-09-12"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-09-06"}],"authorContributionMap":{"limzhenwy":13}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"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-06"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-06"}],"authorContributionMap":{"limzhenwy":16}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"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\"duke.gui.MainWindow\"\u003e","lastModifiedDate":"2023-09-12"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"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-06"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"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-06"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"552.0\" prefWidth\u003d\"388.0\" /\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-06"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-06"}],"authorContributionMap":{"limzhenwy":20}},{"path":"src/test/java/duke/DukeTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"public class DukeTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" public void dummyTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" assertEquals(2, 2);","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" public void anotherDummyTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" assertEquals(4, 4);","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"limzhenwy":18}},{"path":"src/test/java/duke/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.TaskList;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import duke.exceptions.*;","lastModifiedDate":"2023-09-12"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-09-12"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":"public class TaskListTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" public void emptyArrayTest() {","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" TaskList t \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" assertEquals(true, t.retrieveArray().isEmpty());","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"limzhenwy"},"content":" public void arrayCorrectManipulation() {","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"limzhenwy"},"content":" TaskList t \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"limzhenwy"},"content":" t.addTodo(\"read book\");","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"limzhenwy"},"content":" t.addDeadline(\"return book\", \"sunday\");","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"limzhenwy"},"content":" t.addEvent(\"play games\", \"monday - tuesday\");","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"limzhenwy"},"content":" assertEquals(3, t.retrieveArray().size());","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"limzhenwy"},"content":" String dummyInput \u003d \"delete 2\";","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"limzhenwy"},"content":" String[] arr \u003d dummyInput.split(\" \");","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"limzhenwy"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"limzhenwy"},"content":" t.delete(arr);","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"limzhenwy"},"content":" } catch (WrongInput e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"limzhenwy"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"limzhenwy"},"content":" } finally {","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"limzhenwy"},"content":" assertEquals(2, t.retrieveArray().size());","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"limzhenwy":32}},{"path":"src/test/java/duke/TodoTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"limzhenwy"},"content":"package duke;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"limzhenwy"},"content":"import duke.tasks.Todo;","lastModifiedDate":"2023-09-12"},{"lineNumber":4,"author":{"gitId":"limzhenwy"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"limzhenwy"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"limzhenwy"},"content":"public class TodoTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"limzhenwy"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"limzhenwy"},"content":" public void constructorTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"limzhenwy"},"content":" Todo read \u003d new Todo(\"read\");","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"limzhenwy"},"content":" assertEquals(\"T | 0 | read\", read.toString());","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"limzhenwy"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"limzhenwy"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"limzhenwy"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"limzhenwy":15}}] diff --git a/limzhenwy_ip_master/commits.json b/limzhenwy_ip_master/commits.json index 3c401588..cff6362e 100644 --- a/limzhenwy_ip_master/commits.json +++ b/limzhenwy_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"limzhenwy":[{"date":"2023-08-19","commitResults":[{"hash":"2d290f4e4b3923f478ec3248e990880038b709f8","isMergeCommit":false,"messageTitle":"Altered chat bot name and changed the message","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":6}}},{"hash":"3b85c81d54b5f6e87b0ee42a762b89d8cad22eb9","isMergeCommit":false,"messageTitle":"Added in the echo feature","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":24,"deletions":3}}}]},{"date":"2023-08-20","commitResults":[{"hash":"b5883fd5488aa711bdc8bbf1d2f450f2cd5d1e27","isMergeCommit":false,"messageTitle":"List feature etc...","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":32,"deletions":7}}},{"hash":"d351b47c042f129ace44c0cccdfa9499ecd96e47","isMergeCommit":false,"messageTitle":"Mark and unmark features","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":55,"deletions":16}}}]},{"date":"2023-08-21","commitResults":[{"hash":"97e5de85f7537a38799ba2e43b8152e48a822a19","isMergeCommit":false,"messageTitle":"Added all the 3 events and event logic","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":173,"deletions":16}}},{"hash":"dcfe6b0dd6f59112a6f3f59ac5d385bcc8ade363","isMergeCommit":false,"messageTitle":"Exception handling","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":136,"deletions":73}}},{"hash":"e25e1fc5e62f4f89f3dd08a6a33110688cc5ec51","isMergeCommit":false,"messageTitle":"Delete function","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"java":{"insertions":68,"deletions":59}}}]},{"date":"2023-08-26","commitResults":[{"hash":"f5d98f2f20ccb9f3f786c17334e540eabce5d483","isMergeCommit":false,"messageTitle":"Erronous commit and push in the last push","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":144,"deletions":13}}}]},{"date":"2023-08-29","commitResults":[{"hash":"8cd3a4d568b39728efc4917ff3f965a1a9f60a25","isMergeCommit":false,"messageTitle":"Separate individual classes into files","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":258,"deletions":249}}}]},{"date":"2023-08-30","commitResults":[{"hash":"28a043d2a7d35ccebefa1953e0e7a8da91586830","isMergeCommit":false,"messageTitle":"Add save function","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":0},"java":{"insertions":138,"deletions":77}}},{"hash":"c2fe76dd0d3a173a1ea4883b9a511ee47787b85d","isMergeCommit":false,"messageTitle":"Improve program logic","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":0},"java":{"insertions":125,"deletions":89}}},{"hash":"638a6983110d90c16bde63734d1d7b17b7ae903d","isMergeCommit":false,"messageTitle":"Add time feature","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"java":{"insertions":42,"deletions":23}}},{"hash":"6130a3fa2a963b59df510625baba24f17d99d22a","isMergeCommit":false,"messageTitle":"Make code more OOP","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":0}}},{"hash":"ce2dceac2d338322c96bf6a7bea8a6265154e134","isMergeCommit":false,"messageTitle":"Make code more OOP","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":310,"deletions":255}}},{"hash":"ad423c292a51403b0778256b71c101672659af6b","isMergeCommit":false,"messageTitle":"Fix bugs from OOP implementation","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":16,"deletions":18}}},{"hash":"94d2d4f0e45b43b4e975d81a18e5a496ed6beba1","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-MoreOOP\u0027","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{}}]},{"date":"2023-08-31","commitResults":[{"hash":"f539c915766ab0c3eea94562d5d4a09c5841cc83","isMergeCommit":false,"messageTitle":"Put classes into duke package","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":29,"deletions":13}}},{"hash":"20c2292f0cf72727fd8bc0f522fa8a2ebc519623","isMergeCommit":true,"messageTitle":"Merge tag \u0027A-Packages\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"a0e57ebf67e522de2dd1693b80cd3f1c4e60665c","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Gradle\u0027 into add-gradle-support","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"8a87f54a16a9192e18447e6fe91584905f11be79","isMergeCommit":false,"messageTitle":"Resolve unchecked errors","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":3,"deletions":3}}},{"hash":"21281d97edaf3953c5ee4f42549f2d5e1d6c78bd","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027 into branch-A-Gradle","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"c142ce509e7b8df138c3fae4fbb07b36555c9c22","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Gradle\u0027","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"8b699675c735d01b7ae8243a7036bb10ade25a15","isMergeCommit":false,"messageTitle":"Add JUnit tests","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":61,"deletions":0}}},{"hash":"2733830b480bed9050456ed110115d6aeddd32a2","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JUnit\u0027","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{}},{"hash":"39a5cdc78e1898be47701041af360c192c763671","isMergeCommit":false,"messageTitle":"Modify build.gradle to support JAR creation","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":3,"deletions":1}}},{"hash":"091d9224b31d61da6f3021cbcc214188a1c28a36","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Jar\u0027","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{}},{"hash":"2ac80c8b65c7fd20dca3350aa83d238e6897fc15","isMergeCommit":false,"messageTitle":"Add javadoc requirements","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":99,"deletions":104}}},{"hash":"c440c2588f429c98bed69917c81ea4113b10bc5e","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JavaDoc\u0027","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{}},{"hash":"ad6d3fac978e9a737d874e7e14ac6d35ce1abe1d","isMergeCommit":false,"messageTitle":"Add find feature","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"java":{"insertions":47,"deletions":10}}},{"hash":"35ef7d9cd26d19bc8dd85cc8265c260f73a3ce28","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-9\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"2923bb2863b45f2b54f75abb5d746a585ec12f57","isMergeCommit":false,"messageTitle":"Edit code to follow convention","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":6}}},{"hash":"9c9fa72e6ddfba9abdfc71ab417786bbf97aac11","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-CodingStandard\u0027","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/Duke.java\n#\tsrc/main/java/duke/Event.java\n#\tsrc/main/java/duke/TaskList.java\n#\tsrc/main/java/duke/Todo.java\n","fileTypesAndContributionMap":{}},{"hash":"db743d05a6a7e0bdad6e56cf065a55e971b8baa3","isMergeCommit":false,"messageTitle":"Fix bugs from merge conflict","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":9}}}]},{"date":"2023-09-06","commitResults":[{"hash":"5a131eb7c4d3919b7acc4701b7fb66457a2ffb4a","isMergeCommit":false,"messageTitle":"Update src/main/java/duke/TaskList.java","messageBody":"Co-authored-by: jeffrey-jian \u003c74343245+jeffrey-jian@users.noreply.github.com\u003e","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"90fb09a4e96fb3abcf109add51770c44ee86cbb9","isMergeCommit":false,"messageTitle":"Update src/main/java/duke/Deadline.java","messageBody":"Co-authored-by: jeffrey-jian \u003c74343245+jeffrey-jian@users.noreply.github.com\u003e","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"d490f06d335dfad20564921fd53db053a471f391","isMergeCommit":false,"messageTitle":"Fix test and bugs","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":6}}},{"hash":"0fa61e0065bc910c29e73ffe6a963fc722f20bb4","isMergeCommit":false,"messageTitle":"Super duper ultra fun first step, great emphasis on super duper ultra FUN","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":21,"deletions":0},"java":{"insertions":31,"deletions":1}}},{"hash":"c281c7e4d5b3fd0bd02d586bcd3d448f8542bd06","isMergeCommit":false,"messageTitle":"Complete GUI up to part 4","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"fxml":{"insertions":36,"deletions":0},"java":{"insertions":188,"deletions":6}}}]},{"date":"2023-09-07","commitResults":[{"hash":"b7a5ae594bfbbf7fd5b200262c83b63fb52f084f","isMergeCommit":false,"messageTitle":"Implement part 4 of GUI","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":122,"deletions":145}}},{"hash":"a93455a3d71ada7d4beb9aaaf5999ec9ad9542f7","isMergeCommit":false,"messageTitle":"Implement chatbot to handle commands","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":78,"deletions":165}}},{"hash":"b78977aba41f49fbbb761e7c631bbc8b5cc4991c","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-level-10\u0027","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-12","commitResults":[{"hash":"dbeea5278c615e0da093a4f7a58aedde6b7de247","isMergeCommit":false,"messageTitle":"Add assertions to important parts of logic","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":0,"deletions":15},"java":{"insertions":12,"deletions":6}}}]},{"date":"2023-09-17","commitResults":[{"hash":"32db57d06a41c48add3d37d30ee44c5fa554da1d","isMergeCommit":false,"messageTitle":"Refactor code and improve code quality","messageBody":"Previously, the code was very messy and had inconsistent\nlevels of abstractions throughout.\n\nCreated different packages and moved classes into their\nrespective packages depending on their function.\n\nThis provides an easier way to read the code and check for\nbugs and logic errors.\n","fileTypesAndContributionMap":{"fxml":{"insertions":1,"deletions":1},"java":{"insertions":61,"deletions":41}}},{"hash":"5be905996df69a0bf2fbf0755a10d675dd4257c8","isMergeCommit":false,"messageTitle":"Add friendlier syntax","messageBody":"Typing out the entire command can be tedious and frustrating\nwhen dealing with many tasks at hand.\n\nAdded multiple shorthands for users to be able to\neasily specify the command type without having the need\nto type out the entire command.\n\nThis allows users to be able to use the functions of the\nchat bot much more easily and provides for a simpler\nexperience.\n","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":8}}},{"hash":"04f521ea1956288b8938f9e8c3e46c860fd1008c","isMergeCommit":false,"messageTitle":"Update readme","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"md":{"insertions":45,"deletions":7}}},{"hash":"cd82de7f85ec61fa7881f99edd69e0c55db36684","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-UserGuide\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-19","commitResults":[{"hash":"4dd908bc48ba5a04c55420189b6343749ba434a7","isMergeCommit":false,"messageTitle":"Update build.gradle for fat .jar file","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":2}}}]},{"date":"2023-09-20","commitResults":[{"hash":"6ab91f0196d23114311ee7280374b43c652b0e4e","isMergeCommit":false,"messageTitle":"Change comment","messageBody":"","tags":["BCD-Extension"],"fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"ca148aa0983be10fdd3bd3e070530a0644422b4c","isMergeCommit":true,"messageTitle":"Merge pull request #2 from limzhenwy/branch-A-PR","messageBody":"Change comment","tags":["FINAL"],"fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"limzhenwy":{"java":893,"md":44,"fxml":36,"sh":0,"bat":0,"gradle":9,"txt":0}},"authorContributionVariance":{"limzhenwy":55568.05},"authorDisplayNameMap":{"limzhenwy":"CS2103T-W09-1 LIM ..N WY"}} +{"authorDailyContributionsMap":{"limzhenwy":[{"date":"2023-08-19","commitResults":[{"hash":"2d290f4e4b3923f478ec3248e990880038b709f8","isMergeCommit":false,"messageTitle":"Altered chat bot name and changed the message","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":6}}},{"hash":"3b85c81d54b5f6e87b0ee42a762b89d8cad22eb9","isMergeCommit":false,"messageTitle":"Added in the echo feature","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":24,"deletions":3}}}]},{"date":"2023-08-20","commitResults":[{"hash":"b5883fd5488aa711bdc8bbf1d2f450f2cd5d1e27","isMergeCommit":false,"messageTitle":"List feature etc...","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":32,"deletions":7}}},{"hash":"d351b47c042f129ace44c0cccdfa9499ecd96e47","isMergeCommit":false,"messageTitle":"Mark and unmark features","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":55,"deletions":16}}}]},{"date":"2023-08-21","commitResults":[{"hash":"97e5de85f7537a38799ba2e43b8152e48a822a19","isMergeCommit":false,"messageTitle":"Added all the 3 events and event logic","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":173,"deletions":16}}},{"hash":"dcfe6b0dd6f59112a6f3f59ac5d385bcc8ade363","isMergeCommit":false,"messageTitle":"Exception handling","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":136,"deletions":73}}},{"hash":"e25e1fc5e62f4f89f3dd08a6a33110688cc5ec51","isMergeCommit":false,"messageTitle":"Delete function","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"java":{"insertions":68,"deletions":59}}}]},{"date":"2023-08-26","commitResults":[{"hash":"f5d98f2f20ccb9f3f786c17334e540eabce5d483","isMergeCommit":false,"messageTitle":"Erronous commit and push in the last push","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":144,"deletions":13}}}]},{"date":"2023-08-29","commitResults":[{"hash":"8cd3a4d568b39728efc4917ff3f965a1a9f60a25","isMergeCommit":false,"messageTitle":"Separate individual classes into files","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":258,"deletions":249}}}]},{"date":"2023-08-30","commitResults":[{"hash":"28a043d2a7d35ccebefa1953e0e7a8da91586830","isMergeCommit":false,"messageTitle":"Add save function","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":0},"java":{"insertions":138,"deletions":77}}},{"hash":"c2fe76dd0d3a173a1ea4883b9a511ee47787b85d","isMergeCommit":false,"messageTitle":"Improve program logic","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":0},"java":{"insertions":125,"deletions":89}}},{"hash":"638a6983110d90c16bde63734d1d7b17b7ae903d","isMergeCommit":false,"messageTitle":"Add time feature","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"java":{"insertions":42,"deletions":23}}},{"hash":"6130a3fa2a963b59df510625baba24f17d99d22a","isMergeCommit":false,"messageTitle":"Make code more OOP","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":0}}},{"hash":"ce2dceac2d338322c96bf6a7bea8a6265154e134","isMergeCommit":false,"messageTitle":"Make code more OOP","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":310,"deletions":255}}},{"hash":"ad423c292a51403b0778256b71c101672659af6b","isMergeCommit":false,"messageTitle":"Fix bugs from OOP implementation","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":16,"deletions":18}}},{"hash":"94d2d4f0e45b43b4e975d81a18e5a496ed6beba1","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-MoreOOP\u0027","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{}}]},{"date":"2023-08-31","commitResults":[{"hash":"f539c915766ab0c3eea94562d5d4a09c5841cc83","isMergeCommit":false,"messageTitle":"Put classes into duke package","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":29,"deletions":13}}},{"hash":"20c2292f0cf72727fd8bc0f522fa8a2ebc519623","isMergeCommit":true,"messageTitle":"Merge tag \u0027A-Packages\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"a0e57ebf67e522de2dd1693b80cd3f1c4e60665c","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Gradle\u0027 into add-gradle-support","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"8a87f54a16a9192e18447e6fe91584905f11be79","isMergeCommit":false,"messageTitle":"Resolve unchecked errors","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":3,"deletions":3}}},{"hash":"21281d97edaf3953c5ee4f42549f2d5e1d6c78bd","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027 into branch-A-Gradle","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"c142ce509e7b8df138c3fae4fbb07b36555c9c22","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Gradle\u0027","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"8b699675c735d01b7ae8243a7036bb10ade25a15","isMergeCommit":false,"messageTitle":"Add JUnit tests","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":61,"deletions":0}}},{"hash":"2733830b480bed9050456ed110115d6aeddd32a2","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JUnit\u0027","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{}},{"hash":"39a5cdc78e1898be47701041af360c192c763671","isMergeCommit":false,"messageTitle":"Modify build.gradle to support JAR creation","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":3,"deletions":1}}},{"hash":"091d9224b31d61da6f3021cbcc214188a1c28a36","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Jar\u0027","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{}},{"hash":"2ac80c8b65c7fd20dca3350aa83d238e6897fc15","isMergeCommit":false,"messageTitle":"Add javadoc requirements","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":99,"deletions":104}}},{"hash":"c440c2588f429c98bed69917c81ea4113b10bc5e","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JavaDoc\u0027","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{}},{"hash":"ad6d3fac978e9a737d874e7e14ac6d35ce1abe1d","isMergeCommit":false,"messageTitle":"Add find feature","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"java":{"insertions":47,"deletions":10}}},{"hash":"35ef7d9cd26d19bc8dd85cc8265c260f73a3ce28","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-9\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"2923bb2863b45f2b54f75abb5d746a585ec12f57","isMergeCommit":false,"messageTitle":"Edit code to follow convention","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":6}}},{"hash":"9c9fa72e6ddfba9abdfc71ab417786bbf97aac11","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-CodingStandard\u0027","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/Duke.java\n#\tsrc/main/java/duke/Event.java\n#\tsrc/main/java/duke/TaskList.java\n#\tsrc/main/java/duke/Todo.java\n","fileTypesAndContributionMap":{}},{"hash":"db743d05a6a7e0bdad6e56cf065a55e971b8baa3","isMergeCommit":false,"messageTitle":"Fix bugs from merge conflict","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":9}}}]},{"date":"2023-09-06","commitResults":[{"hash":"5a131eb7c4d3919b7acc4701b7fb66457a2ffb4a","isMergeCommit":false,"messageTitle":"Update src/main/java/duke/TaskList.java","messageBody":"Co-authored-by: jeffrey-jian \u003c74343245+jeffrey-jian@users.noreply.github.com\u003e","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"90fb09a4e96fb3abcf109add51770c44ee86cbb9","isMergeCommit":false,"messageTitle":"Update src/main/java/duke/Deadline.java","messageBody":"Co-authored-by: jeffrey-jian \u003c74343245+jeffrey-jian@users.noreply.github.com\u003e","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"d490f06d335dfad20564921fd53db053a471f391","isMergeCommit":false,"messageTitle":"Fix test and bugs","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":6}}},{"hash":"0fa61e0065bc910c29e73ffe6a963fc722f20bb4","isMergeCommit":false,"messageTitle":"Super duper ultra fun first step, great emphasis on super duper ultra FUN","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":21,"deletions":0},"java":{"insertions":31,"deletions":1}}},{"hash":"c281c7e4d5b3fd0bd02d586bcd3d448f8542bd06","isMergeCommit":false,"messageTitle":"Complete GUI up to part 4","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"fxml":{"insertions":36,"deletions":0},"java":{"insertions":188,"deletions":6}}}]},{"date":"2023-09-07","commitResults":[{"hash":"b7a5ae594bfbbf7fd5b200262c83b63fb52f084f","isMergeCommit":false,"messageTitle":"Implement part 4 of GUI","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":122,"deletions":145}}},{"hash":"a93455a3d71ada7d4beb9aaaf5999ec9ad9542f7","isMergeCommit":false,"messageTitle":"Implement chatbot to handle commands","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":78,"deletions":165}}},{"hash":"b78977aba41f49fbbb761e7c631bbc8b5cc4991c","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-level-10\u0027","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-12","commitResults":[{"hash":"dbeea5278c615e0da093a4f7a58aedde6b7de247","isMergeCommit":false,"messageTitle":"Add assertions to important parts of logic","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":0,"deletions":15},"java":{"insertions":12,"deletions":6}}}]},{"date":"2023-09-17","commitResults":[{"hash":"32db57d06a41c48add3d37d30ee44c5fa554da1d","isMergeCommit":false,"messageTitle":"Refactor code and improve code quality","messageBody":"Previously, the code was very messy and had inconsistent\nlevels of abstractions throughout.\n\nCreated different packages and moved classes into their\nrespective packages depending on their function.\n\nThis provides an easier way to read the code and check for\nbugs and logic errors.\n","fileTypesAndContributionMap":{"fxml":{"insertions":1,"deletions":1},"java":{"insertions":61,"deletions":41}}},{"hash":"5be905996df69a0bf2fbf0755a10d675dd4257c8","isMergeCommit":false,"messageTitle":"Add friendlier syntax","messageBody":"Typing out the entire command can be tedious and frustrating\nwhen dealing with many tasks at hand.\n\nAdded multiple shorthands for users to be able to\neasily specify the command type without having the need\nto type out the entire command.\n\nThis allows users to be able to use the functions of the\nchat bot much more easily and provides for a simpler\nexperience.\n","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":8}}},{"hash":"04f521ea1956288b8938f9e8c3e46c860fd1008c","isMergeCommit":false,"messageTitle":"Update readme","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"md":{"insertions":45,"deletions":7}}},{"hash":"cd82de7f85ec61fa7881f99edd69e0c55db36684","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-UserGuide\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-19","commitResults":[{"hash":"4dd908bc48ba5a04c55420189b6343749ba434a7","isMergeCommit":false,"messageTitle":"Update build.gradle for fat .jar file","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":2}}}]},{"date":"2023-09-20","commitResults":[{"hash":"6ab91f0196d23114311ee7280374b43c652b0e4e","isMergeCommit":false,"messageTitle":"Change comment","messageBody":"","tags":["BCD-Extension"],"fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"ca148aa0983be10fdd3bd3e070530a0644422b4c","isMergeCommit":true,"messageTitle":"Merge pull request #2 from limzhenwy/branch-A-PR","messageBody":"Change comment","tags":["FINAL"],"fileTypesAndContributionMap":{}}]},{"date":"2023-10-17","commitResults":[{"hash":"5e6ff47f4717587615635ce3f94238e039f2fb9b","isMergeCommit":false,"messageTitle":"Add reply for task adding","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":3}}},{"hash":"c2c2dcd5ee9de3ccee114c334a21cbd68eae0233","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-reply\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"ff9d7ce0ac47449518b6eb186c2d591071e39c1f","isMergeCommit":false,"messageTitle":"Add UG","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":141,"deletions":13}}},{"hash":"fde998b45c39409c4293f3ae8132be1d04cb4b30","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-UG\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"48edf692229ac767897e0ec32f298b9b5b1368a9","isMergeCommit":false,"messageTitle":"Improve formatting","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":27,"deletions":9}}},{"hash":"a3f96b2ab352057b55dc0e11c8a6ebf48f0c9317","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-UG\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"9228fe7ecd70f7f29da9ded80c8934223abadf0a","isMergeCommit":false,"messageTitle":"Add runtime exception handling","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":38,"deletions":10}}},{"hash":"fd5c7ed2f61d04d9acef108eb78222143b363507","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-ParseException\u0027","messageBody":"","tags":["final"],"fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"limzhenwy":{"java":922,"md":191,"fxml":36,"sh":0,"bat":0,"gradle":9,"txt":0}},"authorContributionVariance":{"limzhenwy":34623.848},"authorDisplayNameMap":{"limzhenwy":"CS2103T-W09-1 LIM ..N WY"}} diff --git a/lyuanww_ip_master/authorship.json b/lyuanww_ip_master/authorship.json index 85b27433..08e914b6 100644 --- a/lyuanww_ip_master/authorship.json +++ b/lyuanww_ip_master/authorship.json @@ -1 +1 @@ -[{"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":"lyuanww"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"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":"lyuanww"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":28,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"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":"lyuanww"},"content":" mainClass.set(\"duke.Launcher\")","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" archiveBaseName \u003d \"maya\"","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":53,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" enableAssertions \u003d true","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":"checkstyle {","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"lyuanww":21,"-":41}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"# User Guide for Task Manager Maya","lastModifiedDate":"2023-09-20"},{"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":"lyuanww"},"content":"### Adding a Task","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"Insert a new task, whether it\u0027s a simple to-do, a deadline, or an event, into the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"### Deleting a Task","lastModifiedDate":"2023-09-20"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"Delete any task from the storage that you no longer need.","lastModifiedDate":"2023-09-20"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"### Displaying Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"View a list of all tasks stored, and if necessary, sort them based on their descriptions.","lastModifiedDate":"2023-09-20"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"### Marking Tasks as Done or Undone","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":"Mark tasks as done or not done. Completed tasks will display a checkmark (\"X\") in the list.","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"### Searching for a Task by Keyword","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":"Locate a specific task by entering a related keyword.","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":"### Exiting the Program","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":"Close the task manager application whenever needed.","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":29,"author":{"gitId":"-"},"content":"## Usage","lastModifiedDate":"2019-07-29"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":"### `todo` - Adding a Todo Task","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":"This command lets you add a to-do task to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":"`todo read book`","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":39,"author":{"gitId":"-"},"content":"Expected outcome:","lastModifiedDate":"2019-07-29"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":"The task is added to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":"### `deadline` - Adding a Deadline Task","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":"This command allows you to add a task with a specified deadline to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":"`deadline quiz /by 2021-09-21 23:59`","lastModifiedDate":"2023-09-20"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":"The task with the given deadline is added to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":"### `event` - Adding an Event Task","lastModifiedDate":"2023-09-20"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":"Utilize this command to add an event task to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":"`event party /from 2021-09-21 23:59 /to 2021-09-22 03:59`","lastModifiedDate":"2023-09-20"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":"The event task is added to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":"### `mark` - Marking a Task as Completed","lastModifiedDate":"2023-09-20"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":"Mark a task as completed using this command.","lastModifiedDate":"2023-09-20"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":"`mark 2`","lastModifiedDate":"2023-09-20"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":"2 - the 2nd task on the list","lastModifiedDate":"2023-09-20"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":74,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":75,"author":{"gitId":"lyuanww"},"content":"The task is marked as done, indicated by a checkmark (\"X\")./","lastModifiedDate":"2023-09-20"},{"lineNumber":76,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":77,"author":{"gitId":"lyuanww"},"content":"### `unmark` - Marking a Task as Undone","lastModifiedDate":"2023-09-20"},{"lineNumber":78,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":79,"author":{"gitId":"lyuanww"},"content":"Mark a task as undone using this command.","lastModifiedDate":"2023-09-20"},{"lineNumber":80,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":81,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":82,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":83,"author":{"gitId":"lyuanww"},"content":"`unmark 2`","lastModifiedDate":"2023-09-20"},{"lineNumber":84,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":85,"author":{"gitId":"lyuanww"},"content":"2 - the 2nd task on the list","lastModifiedDate":"2023-09-20"},{"lineNumber":86,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":87,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":88,"author":{"gitId":"lyuanww"},"content":"The task is marked as undone.","lastModifiedDate":"2023-09-20"},{"lineNumber":89,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":90,"author":{"gitId":"lyuanww"},"content":"### `delete` - Removing a Task ","lastModifiedDate":"2023-09-20"},{"lineNumber":91,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":92,"author":{"gitId":"lyuanww"},"content":"Use this command to delete a task from the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":93,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":94,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":95,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":96,"author":{"gitId":"lyuanww"},"content":"`delete 2`","lastModifiedDate":"2023-09-20"},{"lineNumber":97,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":98,"author":{"gitId":"lyuanww"},"content":"2 - the 2nd task on the list","lastModifiedDate":"2023-09-20"},{"lineNumber":99,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":100,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":101,"author":{"gitId":"lyuanww"},"content":"The task is removed from the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":102,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":103,"author":{"gitId":"lyuanww"},"content":"### `find` - Finding Tasks by Keyword","lastModifiedDate":"2023-09-20"},{"lineNumber":104,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":105,"author":{"gitId":"lyuanww"},"content":"Search for tasks by providing a keyword related to their description.","lastModifiedDate":"2023-09-20"},{"lineNumber":106,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":107,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":108,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":109,"author":{"gitId":"lyuanww"},"content":"`find read`","lastModifiedDate":"2023-09-20"},{"lineNumber":110,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":111,"author":{"gitId":"-"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":112,"author":{"gitId":"lyuanww"},"content":"Tasks with descriptions matching the keyword are returned.","lastModifiedDate":"2023-09-20"},{"lineNumber":113,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":114,"author":{"gitId":"lyuanww"},"content":"### `list` - Displaying Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":115,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":116,"author":{"gitId":"lyuanww"},"content":"Display a list of tasks with the ability to sort them.","lastModifiedDate":"2023-09-20"},{"lineNumber":117,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":118,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":119,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":120,"author":{"gitId":"lyuanww"},"content":"`list`","lastModifiedDate":"2023-09-20"},{"lineNumber":121,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":122,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":123,"author":{"gitId":"lyuanww"},"content":"All tasks are shown.","lastModifiedDate":"2023-09-20"},{"lineNumber":124,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":125,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":126,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":127,"author":{"gitId":"lyuanww"},"content":"`list sortBy description asc`","lastModifiedDate":"2023-09-20"},{"lineNumber":128,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":129,"author":{"gitId":"lyuanww"},"content":"`list sortBy description desc`","lastModifiedDate":"2023-09-20"},{"lineNumber":130,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":131,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":132,"author":{"gitId":"lyuanww"},"content":"All tasks are shown in ascending or descending alphabetical order.","lastModifiedDate":"2023-09-20"},{"lineNumber":133,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":134,"author":{"gitId":"lyuanww"},"content":"### `bye` - Exiting the Program","lastModifiedDate":"2023-09-20"},{"lineNumber":135,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":136,"author":{"gitId":"lyuanww"},"content":"Use this command to exit the task manager application.","lastModifiedDate":"2023-09-20"},{"lineNumber":137,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":138,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":139,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":140,"author":{"gitId":"lyuanww"},"content":"`bye`","lastModifiedDate":"2023-09-20"},{"lineNumber":141,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":142,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":143,"author":{"gitId":"lyuanww"},"content":"The program is closed.","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"lyuanww":120,"-":23}},{"path":"src/main/java/duke/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.shape.Circle;","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" private Label dialog;","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" dialog.setMaxWidth(300);","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" dialog.setWrapText(true);","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" double width \u003d displayPicture.getFitWidth();","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" double height \u003d displayPicture.getFitHeight();","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" Circle clip \u003d new Circle(width / 2, height / 2, width / 2);","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" displayPicture.setClip(clip);","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" private void flip() {","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-07"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-19"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" db.setAlignment(Pos.TOP_RIGHT);","lastModifiedDate":"2023-09-19"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" return db;","lastModifiedDate":"2023-09-19"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-07"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" db.flip();","lastModifiedDate":"2023-09-07"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":" return db;","lastModifiedDate":"2023-09-07"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-07"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":72}},{"path":"src/main/java/duke/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.command.Command;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Parser;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" * Duke is a task management application that allows users to manage tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" * by adding, marking as done, deleting, and listing tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"-"},"content":"public class Duke {","lastModifiedDate":"2019-07-29"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" private final String name;","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" private final TaskList taskList;","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" private final Storage storage;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" private final Ui ui;","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" * Constructs a Duke object.","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" * @param name The name of the Duke application.","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" * @param filePath The path to the file used for storing tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" public Duke(String name, String filePath) {","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" this.name \u003d name;","lastModifiedDate":"2023-08-22"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" this.ui \u003d new Ui();","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" this.taskList \u003d new TaskList();","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" this.storage \u003d new Storage(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" storage.loadTasks(this.taskList, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" * Runs the Duke application, handling user input and commands.","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" public String getResponse(String input) {","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" this.ui.clearOutput();","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" assert this.ui.getOutput().equals(\"\") : \"Output should be empty before processing input\";","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" Command command \u003d Parser.processInputIntoCommand(input, this.ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" if (command !\u003d null) {","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" command.execute(this.taskList, this.storage, this.ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" return this.ui.getOutput();","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" * Returns the name of the Duke application.","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-06"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" * @return The name of the Duke application.","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" public String getName() {","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" return this.name;","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"lyuanww":53,"-":2}},{"path":"src/main/java/duke/DukeException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":" * Represents an exception specific to Duke.","lastModifiedDate":"2023-09-06"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"public class DukeException extends Exception {","lastModifiedDate":"2023-08-23"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" * Constructs a DukeException object.","lastModifiedDate":"2023-09-06"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" * @param message The message to be displayed.","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" public DukeException(String message) {","lastModifiedDate":"2023-08-23"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" super(message);","lastModifiedDate":"2023-08-23"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":16}},{"path":"src/main/java/duke/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"public class Launcher {","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":11}},{"path":"src/main/java/duke/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" private Duke duke \u003d new Duke(\"Maya\", \"./data/duke.txt\");","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" stage.show();","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":31}},{"path":"src/main/java/duke/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import javafx.animation.PauseTransition;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"import javafx.util.Duration;","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" private Duke duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaUser.jpg\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaMaya.jpg\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" * Initializes the MainWindow.","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" public void initialize() {","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" DialogBox.getDukeDialog(\"Hello! I\u0027m Maya!\\nHow can I help you?\" , dukeImage)","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" );","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" scrollPane.setFitToWidth(true);","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-07"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-07"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" );","lastModifiedDate":"2023-09-07"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" if (response.equals(\"Bye. Hope to see you again soon!\")) {","lastModifiedDate":"2023-09-20"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" PauseTransition wait \u003d new PauseTransition(Duration.seconds(2));","lastModifiedDate":"2023-09-07"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" wait.setOnFinished((e) -\u003e {","lastModifiedDate":"2023-09-07"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":" Stage stage \u003d (Stage) sendButton.getScene().getWindow();","lastModifiedDate":"2023-09-07"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" stage.close();","lastModifiedDate":"2023-09-07"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-09-07"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" wait.play();","lastModifiedDate":"2023-09-07"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":" userInput.clear();","lastModifiedDate":"2023-09-07"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":73}},{"path":"src/main/java/duke/command/AddCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to add a new task to the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class AddCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" private final String taskDescription;","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * Creates a new AddCommand with the specified task description.","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param taskDescription The description of the task to be added.","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public AddCommand(String taskDescription) {","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" this.taskDescription \u003d taskDescription;","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(this.taskDescription, storage, ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":27}},{"path":"src/main/java/duke/command/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command that can be executed by the Duke application.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public abstract class Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" * Executes the command with the provided TaskList, Storage, and Ui objects.","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * @param taskList The TaskList containing the task data.","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param storage The Storage object responsible for saving and loading data.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param ui The Ui object responsible for user interface interactions.","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public abstract void execute(TaskList taskList, Storage storage, Ui ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":20}},{"path":"src/main/java/duke/command/DeleteCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to delete a task from the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class DeleteCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" private final int taskNumber;","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * Creates a new DeleteCommand with the specified task number.","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be deleted.","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public DeleteCommand(int taskNumber) {","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" taskList.deleteTask(this.taskNumber, storage, ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":27}},{"path":"src/main/java/duke/command/ExitCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to exit the program.","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Bye. Hope to see you again soon!\");","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":16}},{"path":"src/main/java/duke/command/FindCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to find tasks that match a given keyword in the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class FindCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private final String keyword;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * Creates a new FindCommand with the specified keyword.","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param keyword The keyword to search for in tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" public FindCommand(String keyword) {","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" this.keyword \u003d keyword;","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" taskList.findTasks(this.keyword, ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":26}},{"path":"src/main/java/duke/command/ListCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to list all tasks in the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class ListCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" private String queryParam;","lastModifiedDate":"2023-09-17"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" public ListCommand(String queryParam) {","lastModifiedDate":"2023-09-17"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" this.queryParam \u003d queryParam;","lastModifiedDate":"2023-09-17"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" taskList.showAllTasks(ui, queryParam);","lastModifiedDate":"2023-09-17"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":22}},{"path":"src/main/java/duke/command/MarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to mark a task as done in the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class MarkCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private final int taskNumber;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * Creates a new MarkCommand with the specified task number.","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be marked as done.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" public MarkCommand(int taskNumber) {","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" taskList.markTaskAsDone(this.taskNumber, storage, ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":26}},{"path":"src/main/java/duke/command/UnmarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to unmark a task as done in the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class UnmarkCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private final int taskNumber;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * Creates a new UnmarkCommand with the specified task number.","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be unmarked as done.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" public UnmarkCommand(int taskNumber) {","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" taskList.unmarkTaskAsDone(this.taskNumber, storage, ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":26}},{"path":"src/main/java/duke/task/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.DateParser;","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a task with a deadline.","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-08-23"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private final LocalDateTime by;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * Constructs a Deadline object.","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param name The name or description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param by The deadline of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public Deadline(String name, String by) {","lastModifiedDate":"2023-08-23"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" super(name);","lastModifiedDate":"2023-08-23"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" this.by \u003d DateParser.convertStringToDateTime(by);","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" * Converts the Deadline object to its string representation.","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" * @return The string representation of the Deadline object.","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-08-23"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" public String toString() {","lastModifiedDate":"2023-08-23"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" return \"[D]\" + super.toString() + \" (by: \" + DateParser.convertDateTimeToString(this.by) + \")\";","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" * Converts the Deadline object to a formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" * @return The formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" public String convertTaskToStorageFormat() {","lastModifiedDate":"2023-09-06"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" return \"D | \" + (super.getIsDone() ? \"1\" : \"0\") + \" | \" + super.getName() + \" | \"","lastModifiedDate":"2023-09-06"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" + DateParser.convertDateTimeToString(this.by);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":43}},{"path":"src/main/java/duke/task/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.DateParser;","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents an event task with a specified start and end time.","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class Event extends Task {","lastModifiedDate":"2023-08-23"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private final LocalDateTime to;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" private final LocalDateTime from;","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * Constructs an Event object.","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param name The name or description of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" * @param from The start time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * @param to The end time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" public Event(String name, String from, String to) {","lastModifiedDate":"2023-08-23"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" super(name);","lastModifiedDate":"2023-08-23"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" this.from \u003d DateParser.convertStringToDateTime(from);","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" this.to \u003d DateParser.convertStringToDateTime(to);","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" * Converts the Event object to its string representation.","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" * @return The string representation of the Event object.","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-08-23"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" public String toString() {","lastModifiedDate":"2023-08-23"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" return \"[E]\" + super.toString() + \" (from: \" + DateParser.convertDateTimeToString(this.from) + \" to: \"","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" + DateParser.convertDateTimeToString(this.to) + \")\";","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" * Converts the Event object to a formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" * @return The formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" public String convertTaskToStorageFormat() {","lastModifiedDate":"2023-09-06"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" return \"E | \" + (super.getIsDone() ? \"1\" : \"0\") + \" | \" + super.getName() + \" | \"","lastModifiedDate":"2023-09-06"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" + DateParser.convertDateTimeToString(this.from) + \" | \" + DateParser.convertDateTimeToString(this.to);","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":47}},{"path":"src/main/java/duke/task/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":" * Represents a task that can be marked as done or undone.","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"public abstract class Task {","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" private final String name;","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private boolean isDone;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * Constructs a Task object with a specified name.","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param name The name or description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" public Task(String name) {","lastModifiedDate":"2023-08-23"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" this.name \u003d name;","lastModifiedDate":"2023-08-23"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-09-06"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" * Marks the task as done and optionally displays a message.","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" * @param willDisplayMessage Whether to display a message indicating the task was marked as done.","lastModifiedDate":"2023-09-06"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" public void markAsDone(boolean willDisplayMessage, Ui ui) {","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-09-06"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" if (willDisplayMessage) {","lastModifiedDate":"2023-09-06"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Nice! I\u0027ve marked this task as done:\\n \" + this + \"\\n\");","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" * Unmarks the task as done and optionally displays a message.","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" * @param willDisplayMessage Whether to display a message indicating the task was marked as not done.","lastModifiedDate":"2023-09-06"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" public void unmarkAsDone(boolean willDisplayMessage, Ui ui) {","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-09-06"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" if (willDisplayMessage) {","lastModifiedDate":"2023-09-06"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Nice! I\u0027ve unmarked this task as done:\\n \" + this + \"\\n\");","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-08-23"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" public String toString() {","lastModifiedDate":"2023-08-23"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" char markDone \u003d this.isDone ? \u0027X\u0027 : \u0027 \u0027;","lastModifiedDate":"2023-09-06"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" return \"[\" + markDone + \"] \" + this.name;","lastModifiedDate":"2023-08-23"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" public String getName() {","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" return this.name;","lastModifiedDate":"2023-08-29"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" public boolean getIsDone() {","lastModifiedDate":"2023-09-06"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" return this.isDone;","lastModifiedDate":"2023-09-06"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" * Converts the task into a formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" * @return The formatted string representation of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" public abstract String convertTaskToStorageFormat();","lastModifiedDate":"2023-09-06"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":68}},{"path":"src/main/java/duke/task/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import java.util.List;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import java.util.stream.Collectors;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" * Represents a list of tasks and provides methods to manage tasks within the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"public class TaskList {","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" private final ArrayList\u003cTask\u003e tasks;","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" public TaskList() {","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" this.tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-22"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" * Adds a task to the list based on the task description.","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" * @param taskDescription The description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" * @param storage The storage handler to save the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" public void addTask(String taskDescription, Storage storage, Ui ui) {","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" Task task;","lastModifiedDate":"2023-08-23"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" String[] taskInformation \u003d taskDescription.split(\" /\");","lastModifiedDate":"2023-08-23"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" String taskName \u003d taskInformation[0].trim();","lastModifiedDate":"2023-08-23"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" if (taskInformation.length \u003d\u003d 1) {","lastModifiedDate":"2023-08-23"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" task \u003d new ToDo(taskName);","lastModifiedDate":"2023-08-23"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" } else if (taskInformation.length \u003d\u003d 2) {","lastModifiedDate":"2023-08-23"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" task \u003d new Deadline(taskName, taskInformation[1].replace(\"by \", \"\"));","lastModifiedDate":"2023-08-23"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" } else if (taskInformation.length \u003d\u003d 3) {","lastModifiedDate":"2023-08-23"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" task \u003d new Event(taskName, taskInformation[1].replace(\"from \", \"\"), taskInformation[2].replace(\"to \", \"\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" } else {","lastModifiedDate":"2023-08-23"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Invalid task format\");","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-23"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" this.tasks.add(task);","lastModifiedDate":"2023-08-22"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" storage.saveTask(task);","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Got it. I\u0027ve added this task:\\n \" + task + \"\\nNow you have \" + this.tasks.size()","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" + \" task(s) in the list.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" * Adds a task directly to the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" * @param task The task to be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" public void addTask(Task task) {","lastModifiedDate":"2023-08-29"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" assert task !\u003d null : \"Task should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" this.tasks.add(task);","lastModifiedDate":"2023-08-29"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" * Deletes a task from the list based on the task number.","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be deleted.","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" * @param storage The storage handler to remove the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" public void deleteTask(int taskNumber, Storage storage, Ui ui) {","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" if (taskNumber \u003e this.tasks.size() || taskNumber \u003c 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Task number does not exist\");","lastModifiedDate":"2023-09-07"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-23"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":" Task task \u003d this.tasks.get(taskNumber - 1);","lastModifiedDate":"2023-08-23"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":" assert task !\u003d null : \"Task should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":74,"author":{"gitId":"lyuanww"},"content":" this.tasks.remove(task);","lastModifiedDate":"2023-08-23"},{"lineNumber":75,"author":{"gitId":"lyuanww"},"content":" storage.deleteTask(taskNumber, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":76,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Noted. I\u0027ve removed this task:\\n \" + task + \"\\nNow you have \" + this.tasks.size()","lastModifiedDate":"2023-09-07"},{"lineNumber":77,"author":{"gitId":"lyuanww"},"content":" + \" task(s) in the list.\");","lastModifiedDate":"2023-09-06"},{"lineNumber":78,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":79,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":80,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"lyuanww"},"content":" * Displays all tasks in the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"lyuanww"},"content":" * @param queryParam The query parameter to sort the tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":85,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"lyuanww"},"content":" public void showAllTasks(Ui ui, String queryParam) {","lastModifiedDate":"2023-09-17"},{"lineNumber":87,"author":{"gitId":"lyuanww"},"content":" if (this.tasks.size() \u003d\u003d 0) {","lastModifiedDate":"2023-08-22"},{"lineNumber":88,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"You have no tasks in your list.\");","lastModifiedDate":"2023-09-07"},{"lineNumber":89,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-22"},{"lineNumber":90,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":91,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":92,"author":{"gitId":"lyuanww"},"content":" if (queryParam !\u003d null) {","lastModifiedDate":"2023-09-17"},{"lineNumber":93,"author":{"gitId":"lyuanww"},"content":" String[] queryParamArr \u003d queryParam.split(\" \");","lastModifiedDate":"2023-09-17"},{"lineNumber":94,"author":{"gitId":"lyuanww"},"content":" String sortOrder \u003d queryParamArr[1];","lastModifiedDate":"2023-09-17"},{"lineNumber":95,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":96,"author":{"gitId":"lyuanww"},"content":" if (sortOrder.equals(\"asc\")) {","lastModifiedDate":"2023-09-17"},{"lineNumber":97,"author":{"gitId":"lyuanww"},"content":" this.tasks.sort((task1, task2) -\u003e task1.getName().compareTo(task2.getName()));","lastModifiedDate":"2023-09-17"},{"lineNumber":98,"author":{"gitId":"lyuanww"},"content":" } else if (sortOrder.equals(\"desc\")) {","lastModifiedDate":"2023-09-17"},{"lineNumber":99,"author":{"gitId":"lyuanww"},"content":" this.tasks.sort((task1, task2) -\u003e task2.getName().compareTo(task1.getName()));","lastModifiedDate":"2023-09-17"},{"lineNumber":100,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":101,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":102,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":103,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Here are the tasks in your list:\\n\");","lastModifiedDate":"2023-09-17"},{"lineNumber":104,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":105,"author":{"gitId":"lyuanww"},"content":" for (int i \u003d 0; i \u003c this.tasks.size(); i++) {","lastModifiedDate":"2023-08-22"},{"lineNumber":106,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(i + 1 + \".\" + this.tasks.get(i) + \"\\n\");","lastModifiedDate":"2023-09-13"},{"lineNumber":107,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":108,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":109,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"\\n\");","lastModifiedDate":"2023-09-10"},{"lineNumber":110,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":111,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":112,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":113,"author":{"gitId":"lyuanww"},"content":" * Marks a task as done based on the task number.","lastModifiedDate":"2023-08-30"},{"lineNumber":114,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":115,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be marked as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":116,"author":{"gitId":"lyuanww"},"content":" * @param storage The storage handler to update the task status.","lastModifiedDate":"2023-08-30"},{"lineNumber":117,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":119,"author":{"gitId":"lyuanww"},"content":" public void markTaskAsDone(int taskNumber, Storage storage, Ui ui) {","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"lyuanww"},"content":" if (taskNumber \u003e this.tasks.size() || taskNumber \u003c 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":121,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Task number does not exist\");","lastModifiedDate":"2023-09-07"},{"lineNumber":122,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-23"},{"lineNumber":123,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":124,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":125,"author":{"gitId":"lyuanww"},"content":" Task task \u003d this.tasks.get(taskNumber - 1);","lastModifiedDate":"2023-08-23"},{"lineNumber":126,"author":{"gitId":"lyuanww"},"content":" assert task !\u003d null : \"Task should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":127,"author":{"gitId":"lyuanww"},"content":" task.markAsDone(true, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":128,"author":{"gitId":"lyuanww"},"content":" storage.modifyTask(taskNumber, task);","lastModifiedDate":"2023-08-30"},{"lineNumber":129,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":130,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":131,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":132,"author":{"gitId":"lyuanww"},"content":" * Marks a task as not done (undone) based on the task number.","lastModifiedDate":"2023-08-30"},{"lineNumber":133,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be marked as not done.","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"lyuanww"},"content":" * @param storage The storage handler to update the task status.","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":138,"author":{"gitId":"lyuanww"},"content":" public void unmarkTaskAsDone(int taskNumber, Storage storage, Ui ui) {","lastModifiedDate":"2023-08-30"},{"lineNumber":139,"author":{"gitId":"lyuanww"},"content":" if (taskNumber \u003e this.tasks.size() || taskNumber \u003c 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":140,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Task number does not exist\");","lastModifiedDate":"2023-09-07"},{"lineNumber":141,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-23"},{"lineNumber":142,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":143,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":144,"author":{"gitId":"lyuanww"},"content":" Task task \u003d this.tasks.get(taskNumber - 1);","lastModifiedDate":"2023-08-23"},{"lineNumber":145,"author":{"gitId":"lyuanww"},"content":" assert task !\u003d null : \"Task should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":146,"author":{"gitId":"lyuanww"},"content":" task.unmarkAsDone(true, ui);","lastModifiedDate":"2023-09-13"},{"lineNumber":147,"author":{"gitId":"lyuanww"},"content":" storage.modifyTask(taskNumber, task);","lastModifiedDate":"2023-08-30"},{"lineNumber":148,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":149,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":150,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":151,"author":{"gitId":"lyuanww"},"content":" * Finds tasks that match a given keyword and displays them.","lastModifiedDate":"2023-09-06"},{"lineNumber":152,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-06"},{"lineNumber":153,"author":{"gitId":"lyuanww"},"content":" * @param keyword The keyword to search for in tasks.","lastModifiedDate":"2023-09-06"},{"lineNumber":154,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-06"},{"lineNumber":155,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":156,"author":{"gitId":"lyuanww"},"content":" public void findTasks(String keyword, Ui ui) {","lastModifiedDate":"2023-08-30"},{"lineNumber":157,"author":{"gitId":"lyuanww"},"content":" List\u003cTask\u003e foundTasks \u003d tasks.stream()","lastModifiedDate":"2023-09-13"},{"lineNumber":158,"author":{"gitId":"lyuanww"},"content":" .filter(task -\u003e task.toString().contains(keyword))","lastModifiedDate":"2023-09-13"},{"lineNumber":159,"author":{"gitId":"lyuanww"},"content":" .collect(Collectors.toList());","lastModifiedDate":"2023-09-13"},{"lineNumber":160,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":161,"author":{"gitId":"lyuanww"},"content":" if (foundTasks.isEmpty()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":162,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"No matching tasks found.\");","lastModifiedDate":"2023-09-20"},{"lineNumber":163,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-30"},{"lineNumber":164,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":165,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":166,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Here are the matching tasks in your list:\\n\");","lastModifiedDate":"2023-09-07"},{"lineNumber":167,"author":{"gitId":"lyuanww"},"content":" for (int i \u003d 0; i \u003c foundTasks.size(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":168,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(i + 1 + \".\" + foundTasks.get(i));","lastModifiedDate":"2023-09-07"},{"lineNumber":169,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":170,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"\");","lastModifiedDate":"2023-09-07"},{"lineNumber":171,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":172,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":173,"author":{"gitId":"lyuanww"},"content":" public int getTaskListSize() {","lastModifiedDate":"2023-08-30"},{"lineNumber":174,"author":{"gitId":"lyuanww"},"content":" return this.tasks.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":175,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":176,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":177,"author":{"gitId":"lyuanww"},"content":" public Task getTask(int taskNumber) {","lastModifiedDate":"2023-08-30"},{"lineNumber":178,"author":{"gitId":"lyuanww"},"content":" return this.tasks.get(taskNumber);","lastModifiedDate":"2023-08-30"},{"lineNumber":179,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":180,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":181,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-22"}],"authorContributionMap":{"lyuanww":181}},{"path":"src/main/java/duke/task/ToDo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":" * Represents a task without any specific due date or time.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-08-23"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Constructs a ToDo object.","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" * @param name The name or description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" public ToDo(String name) {","lastModifiedDate":"2023-08-23"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" super(name);","lastModifiedDate":"2023-08-23"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * Converts the ToDo object to its string representation.","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * @return The string representation of the ToDo object.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-08-23"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" public String toString() {","lastModifiedDate":"2023-08-23"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-08-23"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" * Converts the ToDo object to a formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" * @return The formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" public String convertTaskToStorageFormat() {","lastModifiedDate":"2023-09-06"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" return \"T | \" + (super.getIsDone() ? \"1\" : \"0\") + \" | \" + super.getName();","lastModifiedDate":"2023-09-06"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":34}},{"path":"src/main/java/duke/utility/DateParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * A utility class for parsing and formatting date and time strings.","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class DateParser {","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" private static final DateTimeFormatter DATE_TIME_FORMATTER \u003d DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm\");","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * Converts a date and time string to a LocalDateTime object.","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param datetime The date and time string to be converted.","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" * @return A LocalDateTime object representing the parsed date and time.","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" public static LocalDateTime convertStringToDateTime(String datetime) {","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" return LocalDateTime.parse(datetime, DATE_TIME_FORMATTER);","lastModifiedDate":"2023-09-06"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" * Converts a LocalDateTime object to a formatted date and time string.","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" * @param datetime The LocalDateTime object to be converted.","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" * @return A formatted date and time string.","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" public static String convertDateTimeToString(LocalDateTime datetime) {","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" return datetime.format(DATE_TIME_FORMATTER);","lastModifiedDate":"2023-09-06"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" * Checks if a date and time string is in the wrong format.","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" * @param datetime The date and time string to be checked.","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" * @return false if the date and time string is in the correct format, true otherwise.","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" public static boolean isInvalidDateTime(String datetime) {","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" LocalDateTime.parse(datetime, DATE_TIME_FORMATTER);","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" return false;","lastModifiedDate":"2023-09-19"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-19"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" return true;","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"lyuanww":48}},{"path":"src/main/java/duke/utility/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.DukeException;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.command.AddCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.command.Command;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import duke.command.DeleteCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import duke.command.ExitCommand;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import duke.command.FindCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import duke.command.ListCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"import duke.command.MarkCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"import duke.command.UnmarkCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * A utility class for parsing and validating user commands in the Duke application.","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"public class Parser {","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * Processes user input into a corresponding command object.","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" * @param input The user\u0027s input as a string.","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" * @return A command object based on the user\u0027s input, or null if input is invalid.","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" public static Command processInputIntoCommand(String input, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" String command \u003d inputArr[0];","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" switch (command) {","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" case \"list\":","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" String queryParam \u003d Parser.validateListCommand(input);","lastModifiedDate":"2023-09-17"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" return new ListCommand(queryParam);","lastModifiedDate":"2023-09-17"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" case \"mark\":","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" int markTaskNumber \u003d Parser.validateTaskNumberInput(input);","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" return new MarkCommand(markTaskNumber);","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" int unmarkTaskNumber \u003d Parser.validateTaskNumberInput(input);","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" return new UnmarkCommand(unmarkTaskNumber);","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" case \"todo\":","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" String todoDescription \u003d Parser.validateToDoCommand(input);","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" return new AddCommand(todoDescription);","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" String deadlineDescription \u003d Parser.validateDeadlineCommand(input);","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" return new AddCommand(deadlineDescription);","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" case \"event\":","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" String eventDescription \u003d Parser.validateEventCommand(input);","lastModifiedDate":"2023-09-05"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" return new AddCommand(eventDescription);","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" case \"delete\":","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" int deleteTaskNumber \u003d Parser.validateTaskNumberInput(input);","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" return new DeleteCommand(deleteTaskNumber);","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" case \"find\":","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" String keyword \u003d input.replace(\"find\", \"\").trim();","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" return new FindCommand(keyword);","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" case \"bye\":","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" return new ExitCommand();","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" default:","lastModifiedDate":"2023-09-05"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-09-05"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(e.getMessage());","lastModifiedDate":"2023-09-07"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" return null;","lastModifiedDate":"2023-09-05"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" * Validates and extracts the description from a todo command.","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":" * @param input The user input containing the todo command.","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" * @return The description of the todo task.","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the description is empty.","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":" public static String validateToDoCommand(String input) throws DukeException {","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"lyuanww"},"content":" assert input !\u003d null : \"Input should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":75,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"lyuanww"},"content":" if (inputArr.length \u003d\u003d 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The description of a todo cannot be empty.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"lyuanww"},"content":" return input.replace(\"todo\", \"\");","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"lyuanww"},"content":" * Validates and extracts the description and deadline from a deadline command.","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"lyuanww"},"content":" * @param input The user input containing the deadline command.","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"lyuanww"},"content":" * @return The description of the deadline task.","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the format is invalid or the description is empty.","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"lyuanww"},"content":" public static String validateDeadlineCommand(String input) throws DukeException {","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"lyuanww"},"content":" assert input !\u003d null : \"Input should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":91,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"lyuanww"},"content":" if (inputArr.length \u003d\u003d 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The description of a deadline cannot be empty.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":96,"author":{"gitId":"lyuanww"},"content":" String[] description \u003d input.replace(\"deadline\", \"\").trim().split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"lyuanww"},"content":" int index \u003d -1;","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"lyuanww"},"content":" if (description.length \u003e 2) {","lastModifiedDate":"2023-08-30"},{"lineNumber":99,"author":{"gitId":"lyuanww"},"content":" for (int i \u003d 0; i \u003c description.length; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":100,"author":{"gitId":"lyuanww"},"content":" if (description[i].equals(\"/by\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":101,"author":{"gitId":"lyuanww"},"content":" index \u003d i;","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"lyuanww"},"content":" break;","lastModifiedDate":"2023-08-30"},{"lineNumber":103,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":107,"author":{"gitId":"lyuanww"},"content":" if (index \u003d\u003d -1 || index \u003d\u003d 0 || index \u003d\u003d description.length - 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The format of a deadline is invalid. \"","lastModifiedDate":"2023-08-30"},{"lineNumber":109,"author":{"gitId":"lyuanww"},"content":" + \"Format: deadline \u003ctask name\u003e /by \u003cdate\u003e\");","lastModifiedDate":"2023-08-30"},{"lineNumber":110,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":111,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":112,"author":{"gitId":"lyuanww"},"content":" String[] taskInformation \u003d input.split(\" /\");","lastModifiedDate":"2023-09-19"},{"lineNumber":113,"author":{"gitId":"lyuanww"},"content":" String by \u003d taskInformation[1].replace(\"by \", \"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":114,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":115,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":116,"author":{"gitId":"lyuanww"},"content":" if (DateParser.isInvalidDateTime(by)) {","lastModifiedDate":"2023-09-19"},{"lineNumber":117,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The format of the date time is invalid. \"","lastModifiedDate":"2023-09-19"},{"lineNumber":118,"author":{"gitId":"lyuanww"},"content":" + \"Format: dd-MM-yyyy HH:mm\");","lastModifiedDate":"2023-09-20"},{"lineNumber":119,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":120,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":121,"author":{"gitId":"lyuanww"},"content":" return input.replace(\"deadline\", \"\");","lastModifiedDate":"2023-08-30"},{"lineNumber":122,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":123,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":124,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":125,"author":{"gitId":"lyuanww"},"content":" * Validates and extracts the description and event timing from an event command.","lastModifiedDate":"2023-08-30"},{"lineNumber":126,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":127,"author":{"gitId":"lyuanww"},"content":" * @param input The user input containing the event command.","lastModifiedDate":"2023-08-30"},{"lineNumber":128,"author":{"gitId":"lyuanww"},"content":" * @return The description of the event task.","lastModifiedDate":"2023-08-30"},{"lineNumber":129,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the format is invalid or the description is empty.","lastModifiedDate":"2023-08-30"},{"lineNumber":130,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":131,"author":{"gitId":"lyuanww"},"content":" public static String validateEventCommand(String input) throws DukeException {","lastModifiedDate":"2023-08-30"},{"lineNumber":132,"author":{"gitId":"lyuanww"},"content":" assert input !\u003d null : \"Input should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":133,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"lyuanww"},"content":" if (inputArr.length \u003d\u003d 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The description of a event cannot be empty.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":138,"author":{"gitId":"lyuanww"},"content":" String[] description \u003d input.replace(\"event\", \"\").trim().split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":139,"author":{"gitId":"lyuanww"},"content":" int fromIndex \u003d -1;","lastModifiedDate":"2023-08-30"},{"lineNumber":140,"author":{"gitId":"lyuanww"},"content":" int toIndex \u003d -1;","lastModifiedDate":"2023-08-30"},{"lineNumber":141,"author":{"gitId":"lyuanww"},"content":" if (description.length \u003e 2) {","lastModifiedDate":"2023-08-30"},{"lineNumber":142,"author":{"gitId":"lyuanww"},"content":" for (int i \u003d 0; i \u003c description.length; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":143,"author":{"gitId":"lyuanww"},"content":" if (description[i].equals(\"/from\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":144,"author":{"gitId":"lyuanww"},"content":" fromIndex \u003d i;","lastModifiedDate":"2023-08-30"},{"lineNumber":145,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":146,"author":{"gitId":"lyuanww"},"content":" if (description[i].equals(\"/to\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":147,"author":{"gitId":"lyuanww"},"content":" toIndex \u003d i;","lastModifiedDate":"2023-08-30"},{"lineNumber":148,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":149,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":150,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":151,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":152,"author":{"gitId":"lyuanww"},"content":" boolean isFromIndexBeforeToIndex \u003d fromIndex \u003c toIndex;","lastModifiedDate":"2023-09-06"},{"lineNumber":153,"author":{"gitId":"lyuanww"},"content":" boolean isFromIndexValid \u003d fromIndex !\u003d -1 \u0026\u0026 fromIndex !\u003d 0 \u0026\u0026 fromIndex !\u003d description.length - 1;","lastModifiedDate":"2023-09-06"},{"lineNumber":154,"author":{"gitId":"lyuanww"},"content":" boolean isToIndexValid \u003d toIndex !\u003d -1 \u0026\u0026 toIndex !\u003d 0 \u0026\u0026 toIndex !\u003d description.length - 1;","lastModifiedDate":"2023-09-06"},{"lineNumber":155,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":156,"author":{"gitId":"lyuanww"},"content":" if (!isFromIndexBeforeToIndex || !isFromIndexValid || !isToIndexValid) {","lastModifiedDate":"2023-09-06"},{"lineNumber":157,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The format of a event is invalid. Format: event \u003ctask name\u003e \"","lastModifiedDate":"2023-09-06"},{"lineNumber":158,"author":{"gitId":"lyuanww"},"content":" + \"/from \u003cdate\u003e /to \u003cdate\u003e\");","lastModifiedDate":"2023-09-06"},{"lineNumber":159,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":160,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":161,"author":{"gitId":"lyuanww"},"content":" String[] taskInformation \u003d input.split(\" /\");","lastModifiedDate":"2023-09-19"},{"lineNumber":162,"author":{"gitId":"lyuanww"},"content":" String from \u003d taskInformation[1].replace(\"from \", \"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":163,"author":{"gitId":"lyuanww"},"content":" String to \u003d taskInformation[2].replace(\"to \", \"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":164,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":165,"author":{"gitId":"lyuanww"},"content":" if (DateParser.isInvalidDateTime(from) || DateParser.isInvalidDateTime(to)) {","lastModifiedDate":"2023-09-19"},{"lineNumber":166,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The format of the date time is invalid. \"","lastModifiedDate":"2023-09-19"},{"lineNumber":167,"author":{"gitId":"lyuanww"},"content":" + \"Format: dd-MM-yyyy HH:mm\");","lastModifiedDate":"2023-09-20"},{"lineNumber":168,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":169,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":170,"author":{"gitId":"lyuanww"},"content":" return input.replace(\"event\", \"\");","lastModifiedDate":"2023-08-30"},{"lineNumber":171,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":172,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":173,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":174,"author":{"gitId":"lyuanww"},"content":" * Parses an integer from a string.","lastModifiedDate":"2023-08-30"},{"lineNumber":175,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":176,"author":{"gitId":"lyuanww"},"content":" * @param input The string to be parsed.","lastModifiedDate":"2023-08-30"},{"lineNumber":177,"author":{"gitId":"lyuanww"},"content":" * @return The parsed integer, or -1 if parsing fails.","lastModifiedDate":"2023-08-30"},{"lineNumber":178,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":179,"author":{"gitId":"lyuanww"},"content":" private static int parseInt(String input) throws DukeException {","lastModifiedDate":"2023-09-20"},{"lineNumber":180,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":181,"author":{"gitId":"lyuanww"},"content":" return Integer.parseInt(input);","lastModifiedDate":"2023-08-30"},{"lineNumber":182,"author":{"gitId":"lyuanww"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":183,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The task number is invalid.\");","lastModifiedDate":"2023-09-20"},{"lineNumber":184,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":185,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":186,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":187,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":188,"author":{"gitId":"lyuanww"},"content":" * Validates and extracts the query parameter from a list command.","lastModifiedDate":"2023-09-17"},{"lineNumber":189,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":190,"author":{"gitId":"lyuanww"},"content":" * @param input The user input containing the list command.","lastModifiedDate":"2023-09-17"},{"lineNumber":191,"author":{"gitId":"lyuanww"},"content":" * @return The query parameter of the list command.","lastModifiedDate":"2023-09-17"},{"lineNumber":192,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the format is invalid.","lastModifiedDate":"2023-09-17"},{"lineNumber":193,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":194,"author":{"gitId":"lyuanww"},"content":" public static String validateListCommand(String input) throws DukeException {","lastModifiedDate":"2023-09-17"},{"lineNumber":195,"author":{"gitId":"lyuanww"},"content":" assert input !\u003d null : \"Input should not be null\";","lastModifiedDate":"2023-09-17"},{"lineNumber":196,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-09-17"},{"lineNumber":197,"author":{"gitId":"lyuanww"},"content":" if (inputArr.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-17"},{"lineNumber":198,"author":{"gitId":"lyuanww"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":199,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":200,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":201,"author":{"gitId":"lyuanww"},"content":" String[] description \u003d input.replace(\"list\", \"\").trim().split(\" \");","lastModifiedDate":"2023-09-17"},{"lineNumber":202,"author":{"gitId":"lyuanww"},"content":" boolean isQueryInvalid \u003d description.length !\u003d 3 || !description[0].equals(\"sortBy\")","lastModifiedDate":"2023-09-17"},{"lineNumber":203,"author":{"gitId":"lyuanww"},"content":" || (!description[2].equals(\"asc\") \u0026\u0026 !description[2].equals(\"desc\"));","lastModifiedDate":"2023-09-17"},{"lineNumber":204,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":205,"author":{"gitId":"lyuanww"},"content":" if (isQueryInvalid) {","lastModifiedDate":"2023-09-17"},{"lineNumber":206,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The format of a list is invalid. \"","lastModifiedDate":"2023-09-17"},{"lineNumber":207,"author":{"gitId":"lyuanww"},"content":" + \"Format: list sortBy \u003cqueryParam\u003e \u003casc/desc\u003e\" + description[0]);","lastModifiedDate":"2023-09-17"},{"lineNumber":208,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":209,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":210,"author":{"gitId":"lyuanww"},"content":" if (!description[1].equals(\"description\")) {","lastModifiedDate":"2023-09-17"},{"lineNumber":211,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ Sorry!!! Tasks can only be sorted by description currently. \"","lastModifiedDate":"2023-09-17"},{"lineNumber":212,"author":{"gitId":"lyuanww"},"content":" + \"Format: list sortBy \u003cqueryParam\u003e \u003casc/desc\u003e\");","lastModifiedDate":"2023-09-17"},{"lineNumber":213,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":214,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":215,"author":{"gitId":"lyuanww"},"content":" return description[1] + \" \" + description[2];","lastModifiedDate":"2023-09-17"},{"lineNumber":216,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":217,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":218,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":219,"author":{"gitId":"lyuanww"},"content":" * Validates and extracts the task number from a mark or unmark command.","lastModifiedDate":"2023-09-20"},{"lineNumber":220,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":221,"author":{"gitId":"lyuanww"},"content":" * @param input The user input containing the mark or unmark command.","lastModifiedDate":"2023-09-20"},{"lineNumber":222,"author":{"gitId":"lyuanww"},"content":" * @return The task number of the mark or unmark command.","lastModifiedDate":"2023-09-20"},{"lineNumber":223,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the format is invalid.","lastModifiedDate":"2023-09-20"},{"lineNumber":224,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":225,"author":{"gitId":"lyuanww"},"content":" public static int validateTaskNumberInput(String input) throws DukeException {","lastModifiedDate":"2023-09-20"},{"lineNumber":226,"author":{"gitId":"lyuanww"},"content":" assert input !\u003d null : \"Input should not be null\";","lastModifiedDate":"2023-09-20"},{"lineNumber":227,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-09-20"},{"lineNumber":228,"author":{"gitId":"lyuanww"},"content":" if (inputArr.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-20"},{"lineNumber":229,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The task number is invalid.\");","lastModifiedDate":"2023-09-20"},{"lineNumber":230,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":231,"author":{"gitId":"lyuanww"},"content":" return Parser.parseInt(inputArr[1]);","lastModifiedDate":"2023-09-20"},{"lineNumber":232,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":233,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":234,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":235,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"lyuanww":235}},{"path":"src/main/java/duke/utility/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.io.BufferedReader;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import java.io.File;","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import java.io.FileNotFoundException;","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import java.io.FileReader;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"import duke.DukeException;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"import duke.task.Deadline;","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"import duke.task.Event;","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"import duke.task.Task;","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"import duke.task.ToDo;","lastModifiedDate":"2023-09-06"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * A class responsible for loading and saving tasks from and to a file.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"public class Storage {","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" private final String filePath;","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" * Constructs a Storage object with the specified file path.","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" * @param filePath The path to the file used for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" this.filePath \u003d filePath;","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" private static boolean isInvalidTaskType(String taskType) {","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" return !taskType.equals(\"T\") \u0026\u0026 !taskType.equals(\"D\") \u0026\u0026 !taskType.equals(\"E\");","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" private static boolean isInvalidDoneFlag(String doneFlag) {","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" return !doneFlag.equals(\"0\") \u0026\u0026 !doneFlag.equals(\"1\");","lastModifiedDate":"2023-09-17"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" private static boolean isInvalidTaskFormat(String taskType, int taskFormatLength) {","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" return !(taskType.equals(\"T\") \u0026\u0026 taskFormatLength \u003d\u003d 3) \u0026\u0026 !(taskType.equals(\"D\") \u0026\u0026 taskFormatLength \u003d\u003d 4)","lastModifiedDate":"2023-09-17"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" \u0026\u0026 !(taskType.equals(\"E\") \u0026\u0026 taskFormatLength \u003d\u003d 5);","lastModifiedDate":"2023-09-17"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" * Loads tasks from the file and adds them to the provided TaskList.","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" * @param taskList The TaskList to which tasks should be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" public void loadTasks(TaskList taskList, Ui ui) {","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"Loading tasks...\");","lastModifiedDate":"2023-08-29"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" if (!file.exists()) {","lastModifiedDate":"2023-09-17"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" file.getParentFile().mkdirs();","lastModifiedDate":"2023-09-11"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" file.createNewFile();","lastModifiedDate":"2023-09-20"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"No existing duke.txt found. File created!\");","lastModifiedDate":"2023-09-11"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" BufferedReader reader \u003d new BufferedReader(new FileReader(file));","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" String line;","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" while ((line \u003d reader.readLine()) !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" validateString(line);","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":" Task task \u003d convertStringIntoTask(line, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(task);","lastModifiedDate":"2023-08-29"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" reader.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":" } catch (FileNotFoundException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"An error has occurred during file creation. Please check duke.txt in the data folder\");","lastModifiedDate":"2023-09-13"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-09-11"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"An error has occurred during file loading. Please check duke.txt in the data folder\");","lastModifiedDate":"2023-09-13"},{"lineNumber":74,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":76,"author":{"gitId":"lyuanww"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-08-29"},{"lineNumber":77,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-08-29"},{"lineNumber":78,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":79,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"Tasks loaded successfully!\");","lastModifiedDate":"2023-08-29"},{"lineNumber":80,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":81,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":82,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"lyuanww"},"content":" * Converts a data string into a Task object.","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"lyuanww"},"content":" * @param dataString The string containing task data.","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"lyuanww"},"content":" * @return The parsed Task object.","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If parsing encounters an error.","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"lyuanww"},"content":" public Task convertStringIntoTask(String dataString, Ui ui) throws DukeException {","lastModifiedDate":"2023-09-07"},{"lineNumber":90,"author":{"gitId":"lyuanww"},"content":" String[] dataArr \u003d dataString.split(\" \\\\| \");","lastModifiedDate":"2023-08-29"},{"lineNumber":91,"author":{"gitId":"lyuanww"},"content":" String taskType \u003d dataArr[0];","lastModifiedDate":"2023-08-29"},{"lineNumber":92,"author":{"gitId":"lyuanww"},"content":" boolean isDone \u003d dataArr[1].equals(\"1\");","lastModifiedDate":"2023-08-29"},{"lineNumber":93,"author":{"gitId":"lyuanww"},"content":" String taskName \u003d dataArr[2];","lastModifiedDate":"2023-08-29"},{"lineNumber":94,"author":{"gitId":"lyuanww"},"content":" Task task;","lastModifiedDate":"2023-08-29"},{"lineNumber":95,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":96,"author":{"gitId":"lyuanww"},"content":" switch (taskType) {","lastModifiedDate":"2023-08-29"},{"lineNumber":97,"author":{"gitId":"lyuanww"},"content":" case \"T\":","lastModifiedDate":"2023-08-29"},{"lineNumber":98,"author":{"gitId":"lyuanww"},"content":" task \u003d new ToDo(taskName);","lastModifiedDate":"2023-08-29"},{"lineNumber":99,"author":{"gitId":"lyuanww"},"content":" break;","lastModifiedDate":"2023-08-29"},{"lineNumber":100,"author":{"gitId":"lyuanww"},"content":" case \"D\":","lastModifiedDate":"2023-08-29"},{"lineNumber":101,"author":{"gitId":"lyuanww"},"content":" task \u003d new Deadline(taskName, dataArr[3]);","lastModifiedDate":"2023-08-29"},{"lineNumber":102,"author":{"gitId":"lyuanww"},"content":" break;","lastModifiedDate":"2023-08-29"},{"lineNumber":103,"author":{"gitId":"lyuanww"},"content":" case \"E\":","lastModifiedDate":"2023-08-29"},{"lineNumber":104,"author":{"gitId":"lyuanww"},"content":" task \u003d new Event(taskName, dataArr[3], dataArr[4]);","lastModifiedDate":"2023-08-29"},{"lineNumber":105,"author":{"gitId":"lyuanww"},"content":" break;","lastModifiedDate":"2023-08-29"},{"lineNumber":106,"author":{"gitId":"lyuanww"},"content":" default:","lastModifiedDate":"2023-08-29"},{"lineNumber":107,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"Unexpected error\");","lastModifiedDate":"2023-08-29"},{"lineNumber":108,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":109,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":110,"author":{"gitId":"lyuanww"},"content":" if (isDone) {","lastModifiedDate":"2023-08-29"},{"lineNumber":111,"author":{"gitId":"lyuanww"},"content":" task.markAsDone(false, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":112,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":113,"author":{"gitId":"lyuanww"},"content":" return task;","lastModifiedDate":"2023-08-29"},{"lineNumber":114,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":115,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":116,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":117,"author":{"gitId":"lyuanww"},"content":" * Validates a data string to ensure its format is correct.","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":119,"author":{"gitId":"lyuanww"},"content":" * @param dataString The string to be validated.","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the format is invalid.","lastModifiedDate":"2023-08-30"},{"lineNumber":121,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":122,"author":{"gitId":"lyuanww"},"content":" public void validateString(String dataString) throws DukeException {","lastModifiedDate":"2023-08-30"},{"lineNumber":123,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":124,"author":{"gitId":"lyuanww"},"content":" String[] dataArr \u003d dataString.split(\" \\\\| \");","lastModifiedDate":"2023-08-29"},{"lineNumber":125,"author":{"gitId":"lyuanww"},"content":" int dataLength \u003d dataArr.length;","lastModifiedDate":"2023-08-29"},{"lineNumber":126,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":127,"author":{"gitId":"lyuanww"},"content":" String taskType \u003d dataArr[0];","lastModifiedDate":"2023-08-29"},{"lineNumber":128,"author":{"gitId":"lyuanww"},"content":" String doneFlag \u003d dataArr[1];","lastModifiedDate":"2023-08-29"},{"lineNumber":129,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":130,"author":{"gitId":"lyuanww"},"content":" if (isInvalidTaskType(taskType)) {","lastModifiedDate":"2023-09-13"},{"lineNumber":131,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"Invalid task type\");","lastModifiedDate":"2023-08-29"},{"lineNumber":132,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":133,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":134,"author":{"gitId":"lyuanww"},"content":" if (isInvalidDoneFlag(doneFlag)) {","lastModifiedDate":"2023-09-13"},{"lineNumber":135,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"Invalid done flag\");","lastModifiedDate":"2023-08-29"},{"lineNumber":136,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":137,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":138,"author":{"gitId":"lyuanww"},"content":" if (isInvalidTaskFormat(taskType, dataLength)) {","lastModifiedDate":"2023-09-13"},{"lineNumber":139,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"Invalid task format\");","lastModifiedDate":"2023-08-29"},{"lineNumber":140,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":141,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":142,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":143,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":144,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":145,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":146,"author":{"gitId":"lyuanww"},"content":" * Saves a task to the file.","lastModifiedDate":"2023-08-30"},{"lineNumber":147,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":148,"author":{"gitId":"lyuanww"},"content":" * @param task The task to be saved.","lastModifiedDate":"2023-08-30"},{"lineNumber":149,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":150,"author":{"gitId":"lyuanww"},"content":" public void saveTask(Task task) {","lastModifiedDate":"2023-08-30"},{"lineNumber":151,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":152,"author":{"gitId":"lyuanww"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":153,"author":{"gitId":"lyuanww"},"content":" java.io.FileWriter fileWriter \u003d new java.io.FileWriter(file, true);","lastModifiedDate":"2023-08-29"},{"lineNumber":154,"author":{"gitId":"lyuanww"},"content":" fileWriter.write(task.convertTaskToStorageFormat() + \"\\n\");","lastModifiedDate":"2023-09-06"},{"lineNumber":155,"author":{"gitId":"lyuanww"},"content":" fileWriter.close();","lastModifiedDate":"2023-08-29"},{"lineNumber":156,"author":{"gitId":"lyuanww"},"content":" } catch (java.io.IOException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":157,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"Something went wrong: \" + e.getMessage());","lastModifiedDate":"2023-08-29"},{"lineNumber":158,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-08-29"},{"lineNumber":159,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":160,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":161,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":162,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":163,"author":{"gitId":"lyuanww"},"content":" * Modifies an existing task in the file.","lastModifiedDate":"2023-08-30"},{"lineNumber":164,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":165,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The index of the task to be modified.","lastModifiedDate":"2023-08-30"},{"lineNumber":166,"author":{"gitId":"lyuanww"},"content":" * @param newTask The new task to replace the existing task.","lastModifiedDate":"2023-08-30"},{"lineNumber":167,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":168,"author":{"gitId":"lyuanww"},"content":" public void modifyTask(int taskNumber, Task newTask) {","lastModifiedDate":"2023-08-30"},{"lineNumber":169,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":170,"author":{"gitId":"lyuanww"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":171,"author":{"gitId":"lyuanww"},"content":" Scanner scanner \u003d new Scanner(file);","lastModifiedDate":"2023-08-29"},{"lineNumber":172,"author":{"gitId":"lyuanww"},"content":" StringBuilder newContents \u003d new StringBuilder();","lastModifiedDate":"2023-08-29"},{"lineNumber":173,"author":{"gitId":"lyuanww"},"content":" int count \u003d 0;","lastModifiedDate":"2023-08-29"},{"lineNumber":174,"author":{"gitId":"lyuanww"},"content":" while (scanner.hasNext()) {","lastModifiedDate":"2023-08-29"},{"lineNumber":175,"author":{"gitId":"lyuanww"},"content":" String dataString \u003d scanner.nextLine();","lastModifiedDate":"2023-08-29"},{"lineNumber":176,"author":{"gitId":"lyuanww"},"content":" if (count \u003d\u003d taskNumber - 1) {","lastModifiedDate":"2023-08-29"},{"lineNumber":177,"author":{"gitId":"lyuanww"},"content":" newContents.append(newTask.convertTaskToStorageFormat() + \"\\n\");","lastModifiedDate":"2023-09-06"},{"lineNumber":178,"author":{"gitId":"lyuanww"},"content":" } else {","lastModifiedDate":"2023-08-29"},{"lineNumber":179,"author":{"gitId":"lyuanww"},"content":" newContents.append(dataString + \"\\n\");","lastModifiedDate":"2023-08-29"},{"lineNumber":180,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":181,"author":{"gitId":"lyuanww"},"content":" count++;","lastModifiedDate":"2023-08-29"},{"lineNumber":182,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":183,"author":{"gitId":"lyuanww"},"content":" scanner.close();","lastModifiedDate":"2023-08-29"},{"lineNumber":184,"author":{"gitId":"lyuanww"},"content":" FileWriter fileWriter \u003d new FileWriter(file, false);","lastModifiedDate":"2023-08-29"},{"lineNumber":185,"author":{"gitId":"lyuanww"},"content":" fileWriter.write(newContents.toString());","lastModifiedDate":"2023-08-29"},{"lineNumber":186,"author":{"gitId":"lyuanww"},"content":" fileWriter.close();","lastModifiedDate":"2023-08-29"},{"lineNumber":187,"author":{"gitId":"lyuanww"},"content":" } catch (java.io.IOException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":188,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"Something went wrong: \" + e.getMessage());","lastModifiedDate":"2023-08-29"},{"lineNumber":189,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-08-29"},{"lineNumber":190,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":191,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":192,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":193,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":194,"author":{"gitId":"lyuanww"},"content":" * Deletes a task from the file.","lastModifiedDate":"2023-08-30"},{"lineNumber":195,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":196,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The index of the task to be deleted.","lastModifiedDate":"2023-08-30"},{"lineNumber":197,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":198,"author":{"gitId":"lyuanww"},"content":" public void deleteTask(int taskNumber, Ui ui) {","lastModifiedDate":"2023-09-07"},{"lineNumber":199,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":200,"author":{"gitId":"lyuanww"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":201,"author":{"gitId":"lyuanww"},"content":" BufferedReader reader \u003d new BufferedReader(new FileReader(file));","lastModifiedDate":"2023-08-30"},{"lineNumber":202,"author":{"gitId":"lyuanww"},"content":" StringBuilder newContents \u003d new StringBuilder();","lastModifiedDate":"2023-08-29"},{"lineNumber":203,"author":{"gitId":"lyuanww"},"content":" int count \u003d 0;","lastModifiedDate":"2023-08-29"},{"lineNumber":204,"author":{"gitId":"lyuanww"},"content":" String line;","lastModifiedDate":"2023-08-30"},{"lineNumber":205,"author":{"gitId":"lyuanww"},"content":" while ((line \u003d reader.readLine()) !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":206,"author":{"gitId":"lyuanww"},"content":" if (count !\u003d taskNumber - 1) {","lastModifiedDate":"2023-08-29"},{"lineNumber":207,"author":{"gitId":"lyuanww"},"content":" newContents.append(line + \"\\n\");","lastModifiedDate":"2023-08-30"},{"lineNumber":208,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":209,"author":{"gitId":"lyuanww"},"content":" count++;","lastModifiedDate":"2023-08-29"},{"lineNumber":210,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":211,"author":{"gitId":"lyuanww"},"content":" FileWriter fileWriter \u003d new FileWriter(file, false);","lastModifiedDate":"2023-08-29"},{"lineNumber":212,"author":{"gitId":"lyuanww"},"content":" fileWriter.write(newContents.toString());","lastModifiedDate":"2023-08-29"},{"lineNumber":213,"author":{"gitId":"lyuanww"},"content":" fileWriter.close();","lastModifiedDate":"2023-08-29"},{"lineNumber":214,"author":{"gitId":"lyuanww"},"content":" } catch (java.io.IOException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":215,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Something went wrong: \" + e.getMessage());","lastModifiedDate":"2023-09-07"},{"lineNumber":216,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-08-29"},{"lineNumber":217,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":218,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":219,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-29"},{"lineNumber":220,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":221,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"lyuanww":221}},{"path":"src/main/java/duke/utility/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":" * Handles interaction with the user by providing input and displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"public class Ui {","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":" private StringBuilder output;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" * Constructs a Ui object.","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" public Ui() {","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" this.output \u003d new StringBuilder();","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" * Returns the next line of input from the user.","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" * @return The next line of input from the user.","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" public String getOutput() {","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" return this.output.toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" * Clears the output.","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" public void clearOutput() {","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" this.output \u003d new StringBuilder();","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" * Prints a message to the user.","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" * @param message The message to be printed.","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" public void printMessage(String message) {","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" this.output.append(message);","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"lyuanww":43}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"\u003cfx:root fx:id\u003d\"root\" HBox.hgrow\u003d\"ALWAYS\" 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\" stylesheets\u003d\"@dialogBox.css\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" \u003cchildren \u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" \u003cLabel fx:id\u003d\"dialog\" minHeight\u003d\"-Infinity\" text\u003d\"Label\" wrapText\u003d\"true\" HBox.hgrow\u003d\"ALWAYS\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" \u003cHBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" \u003cInsets bottom\u003d\"10.0\" left\u003d\"10.0\" right\u003d\"10.0\" top\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" \u003c/HBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" \u003c/Label\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\"/\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"15.0\" right\u003d\"15.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":20}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"\u003cAnchorPane 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\"duke.MainWindow\" stylesheets\u003d\"@mainWindow.css\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" fitToHeight\u003d\"true\" fitToWidth\u003d\"true\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\"","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" AnchorPane.bottomAnchor\u003d\"30.0\" AnchorPane.leftAnchor\u003d\"0.0\" AnchorPane.rightAnchor\u003d\"0.0\"","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" AnchorPane.topAnchor\u003d\"0.0\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" HBox.hgrow\u003d\"ALWAYS\"/\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" \u003cHBox AnchorPane.bottomAnchor\u003d\"0.0\" AnchorPane.leftAnchor\u003d\"0.0\" AnchorPane.rightAnchor\u003d\"0.0\"\u003e","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" \u003cTextField fx:id\u003d\"userInput\" HBox.hgrow\u003d\"ALWAYS\" minHeight\u003d\"30.0\" minWidth\u003d\"100.0\" prefHeight\u003d\"30.0\" prefWidth\u003d\"200.0\" onAction\u003d\"#handleUserInput\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" \u003cButton fx:id\u003d\"sendButton\" HBox.hgrow\u003d\"ALWAYS\" mnemonicParsing\u003d\"false\" minHeight\u003d\"30.0\" minWidth\u003d\"100.0\" prefHeight\u003d\"30.0\" prefWidth\u003d\"100.0\" onAction\u003d\"#handleUserInput\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" \u003c/HBox\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":25}},{"path":"src/test/java/duke/task/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import org.junit.jupiter.api.BeforeEach;","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import duke.utility.StorageStub;","lastModifiedDate":"2023-09-06"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-06"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"public class TaskListTest {","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" private TaskList taskList;","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" @BeforeEach","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" public void setUp() {","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" public void testAddTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Buy groceries /by 06-03-2007 13:44\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" assertEquals(1, taskList.getTaskListSize());","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" public void testDeleteTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Buy groceries /by 06-03-2007 13:44\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" taskList.deleteTask(1, new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" assertEquals(0, taskList.getTaskListSize());","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" public void testShowAllTasks() {","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Buy groceries /by 06-03-2007 13:44\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Read book /from 02-09-2022 11:00 /to 02-09-2022 12:00\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Go for a walk\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" assertEquals(3, taskList.getTaskListSize());","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" Ui ui \u003d new Ui();","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" taskList.showAllTasks(ui, \"sortBy description asc\");","lastModifiedDate":"2023-09-17"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" String expectedOutput \u003d \"\\nHere are the tasks in your list:\\n\"","lastModifiedDate":"2023-09-06"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" + \"1.[D][ ] Buy groceries (by: 06-03-2007 13:44)\\n\"","lastModifiedDate":"2023-09-06"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" + \"2.[T][ ] Go for a walk\\n\"","lastModifiedDate":"2023-09-17"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" + \"3.[E][ ] Read book (from: 02-09-2022 11:00 to: 02-09-2022 12:00)\\n\\n\";","lastModifiedDate":"2023-09-17"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" assertEquals(expectedOutput, ui.getOutput());","lastModifiedDate":"2023-09-10"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" public void testMarkTaskAsDone() {","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Buy groceries /by 06-03-2007 13:44\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" taskList.markTaskAsDone(1, new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" assertEquals(true, taskList.getTask(0).getIsDone());","lastModifiedDate":"2023-09-06"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" public void testUnmarkTaskAsDone() {","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Buy groceries /by 06-03-2007 13:44\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" taskList.markTaskAsDone(1, new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" taskList.unmarkTaskAsDone(1, new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" assertEquals(false, taskList.getTask(0).getIsDone());","lastModifiedDate":"2023-09-06"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"lyuanww":63}},{"path":"src/test/java/duke/utility/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import static org.junit.jupiter.api.Assertions.assertThrows;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import static org.junit.jupiter.api.Assertions.fail;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import duke.DukeException;","lastModifiedDate":"2023-09-06"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"public class ParserTest {","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" public void testValidateToDoCommand() {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" String result \u003d Parser.validateToDoCommand(\"todo Buy groceries\");","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" assertEquals(\" Buy groceries\", result);","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" fail(\"Unexpected DukeException thrown.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" Parser.validateToDoCommand(\"todo\");","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" public void testValidateDeadlineCommand() {","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" String result \u003d Parser.validateDeadlineCommand(\"deadline Submit report /by 2023-09-01\");","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" assertEquals(\" Submit report /by 2023-09-01\", result);","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" fail(\"Unexpected DukeException thrown.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" Parser.validateDeadlineCommand(\"deadline\");","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" Parser.validateDeadlineCommand(\"deadline Submit report /by\");","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" Parser.validateDeadlineCommand(\"deadline Submit report /by2023-09-01\");","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" public void testValidateEventCommand() {","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" String result \u003d Parser.validateEventCommand(\"event Birthday party /from 2023-09-01 /to 2023-09-02\");","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" assertEquals(\" Birthday party /from 2023-09-01 /to 2023-09-02\", result);","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" fail(\"Unexpected DukeException thrown.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" Parser.validateEventCommand(\"event\");","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" Parser.validateEventCommand(\"event Birthday party /from\");","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" Parser.validateEventCommand(\"event Birthday party /from 2023-09-01 /to\");","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":" Parser.validateEventCommand(\"event Birthday party /from 2023-09-01 /to 2023-09-02 /from\");","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"lyuanww"},"content":" public void testValidateTaskNumberInput() {","lastModifiedDate":"2023-09-20"},{"lineNumber":77,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-09-20"},{"lineNumber":78,"author":{"gitId":"lyuanww"},"content":" int result \u003d Parser.validateTaskNumberInput(\"mark 1\");","lastModifiedDate":"2023-09-20"},{"lineNumber":79,"author":{"gitId":"lyuanww"},"content":" assertEquals(1, result);","lastModifiedDate":"2023-09-20"},{"lineNumber":80,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-09-20"},{"lineNumber":81,"author":{"gitId":"lyuanww"},"content":" fail(\"Unexpected DukeException thrown.\");","lastModifiedDate":"2023-09-20"},{"lineNumber":82,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":83,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-09-20"},{"lineNumber":85,"author":{"gitId":"lyuanww"},"content":" Parser.validateTaskNumberInput(\"mark a\");","lastModifiedDate":"2023-09-20"},{"lineNumber":86,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-09-20"},{"lineNumber":87,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"lyuanww":89}},{"path":"src/test/java/duke/utility/StorageStub.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.Task;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":" * A stub class extending Storage for testing purposes.","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":" * This class overrides the saveTask method to do nothing.","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"public class StorageStub extends Storage {","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" * Creates a new StorageStub with a default file path.","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" public StorageStub() {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" super(\"data/duke.txt\");","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * Overrides the saveTask method to do nothing.","lastModifiedDate":"2023-09-06"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" * This method is used for testing and does not save tasks.","lastModifiedDate":"2023-09-06"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-06"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" * @param task The task to be saved (not saved in this stub implementation).","lastModifiedDate":"2023-09-06"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" public void saveTask(Task task) {","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" // do nothing","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"lyuanww":28}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"todo read book","lastModifiedDate":"2023-08-23"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"deadline return book /by June 6th","lastModifiedDate":"2023-08-23"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"event project meeting /from Aug 6th 2pm /to 4pm","lastModifiedDate":"2023-08-23"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"todo join sports club","lastModifiedDate":"2023-08-23"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"todo borrow book","lastModifiedDate":"2023-08-23"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"mark 1","lastModifiedDate":"2023-08-23"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"mark 4","lastModifiedDate":"2023-08-23"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"list","lastModifiedDate":"2023-08-23"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"bye","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":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":"lyuanww"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"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":"lyuanww"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":28,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"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":"lyuanww"},"content":" mainClass.set(\"duke.Launcher\")","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" archiveBaseName \u003d \"maya\"","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":53,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" enableAssertions \u003d true","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":"checkstyle {","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"lyuanww":21,"-":41}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"# User Guide for Task Manager Maya","lastModifiedDate":"2023-09-20"},{"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":"lyuanww"},"content":"### Adding a Task","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"Insert a new task, whether it\u0027s a simple to-do, a deadline, or an event, into the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"### Deleting a Task","lastModifiedDate":"2023-09-20"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"Delete any task from the storage that you no longer need.","lastModifiedDate":"2023-09-20"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"### Displaying Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"View a list of all tasks stored, and if necessary, sort them based on their descriptions.","lastModifiedDate":"2023-09-20"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"### Marking Tasks as Done or Undone","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":"Mark tasks as done or not done. Completed tasks will display a checkmark (\"X\") in the list.","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"### Searching for a Task by Keyword","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":"Locate a specific task by entering a related keyword.","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":"### Exiting the Program","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":"Close the task manager application whenever needed.","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":29,"author":{"gitId":"-"},"content":"## Usage","lastModifiedDate":"2019-07-29"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":"### `todo` - Adding a Todo Task","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":"This command lets you add a to-do task to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":"`todo read book`","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":39,"author":{"gitId":"-"},"content":"Expected outcome:","lastModifiedDate":"2019-07-29"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":"The task is added to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":"### `deadline` - Adding a Deadline Task","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":"This command allows you to add a task with a specified deadline to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":"`deadline quiz /by 21-09-2021 23:59`","lastModifiedDate":"2023-10-17"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":"The task with the given deadline is added to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":"### `event` - Adding an Event Task","lastModifiedDate":"2023-09-20"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":"Utilize this command to add an event task to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":"`event party /from 21-09-2021 23:59 /to 22-09-2021 03:59`","lastModifiedDate":"2023-10-17"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":"The event task is added to the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":"### `mark` - Marking a Task as Completed","lastModifiedDate":"2023-09-20"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":"Mark a task as completed using this command.","lastModifiedDate":"2023-09-20"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":"`mark 2`","lastModifiedDate":"2023-09-20"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":"2 - the 2nd task on the list","lastModifiedDate":"2023-09-20"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":74,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":75,"author":{"gitId":"lyuanww"},"content":"The task is marked as done, indicated by a checkmark (\"X\")./","lastModifiedDate":"2023-09-20"},{"lineNumber":76,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":77,"author":{"gitId":"lyuanww"},"content":"### `unmark` - Marking a Task as Undone","lastModifiedDate":"2023-09-20"},{"lineNumber":78,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":79,"author":{"gitId":"lyuanww"},"content":"Mark a task as undone using this command.","lastModifiedDate":"2023-09-20"},{"lineNumber":80,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":81,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":82,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":83,"author":{"gitId":"lyuanww"},"content":"`unmark 2`","lastModifiedDate":"2023-09-20"},{"lineNumber":84,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":85,"author":{"gitId":"lyuanww"},"content":"2 - the 2nd task on the list","lastModifiedDate":"2023-09-20"},{"lineNumber":86,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":87,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":88,"author":{"gitId":"lyuanww"},"content":"The task is marked as undone.","lastModifiedDate":"2023-09-20"},{"lineNumber":89,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":90,"author":{"gitId":"lyuanww"},"content":"### `delete` - Removing a Task ","lastModifiedDate":"2023-09-20"},{"lineNumber":91,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":92,"author":{"gitId":"lyuanww"},"content":"Use this command to delete a task from the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":93,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":94,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":95,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":96,"author":{"gitId":"lyuanww"},"content":"`delete 2`","lastModifiedDate":"2023-09-20"},{"lineNumber":97,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":98,"author":{"gitId":"lyuanww"},"content":"2 - the 2nd task on the list","lastModifiedDate":"2023-09-20"},{"lineNumber":99,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":100,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":101,"author":{"gitId":"lyuanww"},"content":"The task is removed from the storage.","lastModifiedDate":"2023-09-20"},{"lineNumber":102,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":103,"author":{"gitId":"lyuanww"},"content":"### `find` - Finding Tasks by Keyword","lastModifiedDate":"2023-09-20"},{"lineNumber":104,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":105,"author":{"gitId":"lyuanww"},"content":"Search for tasks by providing a keyword related to their description.","lastModifiedDate":"2023-09-20"},{"lineNumber":106,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":107,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":108,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":109,"author":{"gitId":"lyuanww"},"content":"`find read`","lastModifiedDate":"2023-09-20"},{"lineNumber":110,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":111,"author":{"gitId":"-"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":112,"author":{"gitId":"lyuanww"},"content":"Tasks with descriptions matching the keyword are returned.","lastModifiedDate":"2023-09-20"},{"lineNumber":113,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":114,"author":{"gitId":"lyuanww"},"content":"### `list` - Displaying Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":115,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":116,"author":{"gitId":"lyuanww"},"content":"Display a list of tasks with the ability to sort them.","lastModifiedDate":"2023-09-20"},{"lineNumber":117,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":118,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":119,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":120,"author":{"gitId":"lyuanww"},"content":"`list`","lastModifiedDate":"2023-09-20"},{"lineNumber":121,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":122,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":123,"author":{"gitId":"lyuanww"},"content":"All tasks are shown.","lastModifiedDate":"2023-09-20"},{"lineNumber":124,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":125,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":126,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":127,"author":{"gitId":"lyuanww"},"content":"`list sortBy description asc`","lastModifiedDate":"2023-09-20"},{"lineNumber":128,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":129,"author":{"gitId":"lyuanww"},"content":"`list sortBy description desc`","lastModifiedDate":"2023-09-20"},{"lineNumber":130,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":131,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":132,"author":{"gitId":"lyuanww"},"content":"All tasks are shown in ascending or descending alphabetical order.","lastModifiedDate":"2023-09-20"},{"lineNumber":133,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":134,"author":{"gitId":"lyuanww"},"content":"### `bye` - Exiting the Program","lastModifiedDate":"2023-09-20"},{"lineNumber":135,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":136,"author":{"gitId":"lyuanww"},"content":"Use this command to exit the task manager application.","lastModifiedDate":"2023-09-20"},{"lineNumber":137,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":138,"author":{"gitId":"lyuanww"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":139,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":140,"author":{"gitId":"lyuanww"},"content":"`bye`","lastModifiedDate":"2023-09-20"},{"lineNumber":141,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":142,"author":{"gitId":"lyuanww"},"content":"Expected outcome:","lastModifiedDate":"2023-09-20"},{"lineNumber":143,"author":{"gitId":"lyuanww"},"content":"The program is closed.","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"lyuanww":120,"-":23}},{"path":"src/main/java/duke/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.shape.Circle;","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" private Label dialog;","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" dialog.setMaxWidth(300);","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" dialog.setWrapText(true);","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" double width \u003d displayPicture.getFitWidth();","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" double height \u003d displayPicture.getFitHeight();","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" Circle clip \u003d new Circle(width / 2, height / 2, width / 2);","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" displayPicture.setClip(clip);","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" private void flip() {","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-07"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-19"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" db.setAlignment(Pos.TOP_RIGHT);","lastModifiedDate":"2023-09-19"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" return db;","lastModifiedDate":"2023-09-19"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-07"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-07"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" db.flip();","lastModifiedDate":"2023-09-07"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":" return db;","lastModifiedDate":"2023-09-07"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-07"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":72}},{"path":"src/main/java/duke/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.command.Command;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Parser;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" * Duke is a task management application that allows users to manage tasks","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" * by adding, marking as done, deleting, and listing tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"-"},"content":"public class Duke {","lastModifiedDate":"2019-07-29"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" private final String name;","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" private final TaskList taskList;","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" private final Storage storage;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" private final Ui ui;","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" * Constructs a Duke object.","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" * @param name The name of the Duke application.","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" * @param filePath The path to the file used for storing tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" public Duke(String name, String filePath) {","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" this.name \u003d name;","lastModifiedDate":"2023-08-22"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" this.ui \u003d new Ui();","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" this.taskList \u003d new TaskList();","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" this.storage \u003d new Storage(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" storage.loadTasks(this.taskList, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" * Runs the Duke application, handling user input and commands.","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" public String getResponse(String input) {","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" this.ui.clearOutput();","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" assert this.ui.getOutput().equals(\"\") : \"Output should be empty before processing input\";","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" Command command \u003d Parser.processInputIntoCommand(input, this.ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" if (command !\u003d null) {","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" command.execute(this.taskList, this.storage, this.ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" return this.ui.getOutput();","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" * Returns the name of the Duke application.","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-06"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" * @return The name of the Duke application.","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" public String getName() {","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" return this.name;","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-06"},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"lyuanww":53,"-":2}},{"path":"src/main/java/duke/DukeException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":" * Represents an exception specific to Duke.","lastModifiedDate":"2023-09-06"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"public class DukeException extends Exception {","lastModifiedDate":"2023-08-23"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" * Constructs a DukeException object.","lastModifiedDate":"2023-09-06"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" * @param message The message to be displayed.","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" public DukeException(String message) {","lastModifiedDate":"2023-08-23"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" super(message);","lastModifiedDate":"2023-08-23"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":16}},{"path":"src/main/java/duke/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"public class Launcher {","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":11}},{"path":"src/main/java/duke/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" private Duke duke \u003d new Duke(\"Maya\", \"./data/duke.txt\");","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" stage.show();","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":31}},{"path":"src/main/java/duke/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import javafx.animation.PauseTransition;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"import javafx.util.Duration;","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-07"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" private Duke duke;","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaUser.jpg\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaMaya.jpg\"));","lastModifiedDate":"2023-09-19"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" * Initializes the MainWindow.","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" public void initialize() {","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" DialogBox.getDukeDialog(\"Hello! I\u0027m Maya!\\nHow can I help you?\" , dukeImage)","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" );","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-07"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" scrollPane.setFitToWidth(true);","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-07"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-07"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-07"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" @FXML","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-07"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-07"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-07"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-07"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" );","lastModifiedDate":"2023-09-07"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" if (response.equals(\"Bye. Hope to see you again soon!\")) {","lastModifiedDate":"2023-09-20"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" PauseTransition wait \u003d new PauseTransition(Duration.seconds(2));","lastModifiedDate":"2023-09-07"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" wait.setOnFinished((e) -\u003e {","lastModifiedDate":"2023-09-07"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":" Stage stage \u003d (Stage) sendButton.getScene().getWindow();","lastModifiedDate":"2023-09-07"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" stage.close();","lastModifiedDate":"2023-09-07"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-09-07"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" wait.play();","lastModifiedDate":"2023-09-07"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":" userInput.clear();","lastModifiedDate":"2023-09-07"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":73}},{"path":"src/main/java/duke/command/AddCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to add a new task to the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class AddCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" private final String taskDescription;","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * Creates a new AddCommand with the specified task description.","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param taskDescription The description of the task to be added.","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public AddCommand(String taskDescription) {","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" this.taskDescription \u003d taskDescription;","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(this.taskDescription, storage, ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":27}},{"path":"src/main/java/duke/command/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command that can be executed by the Duke application.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public abstract class Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" * Executes the command with the provided TaskList, Storage, and Ui objects.","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * @param taskList The TaskList containing the task data.","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param storage The Storage object responsible for saving and loading data.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param ui The Ui object responsible for user interface interactions.","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public abstract void execute(TaskList taskList, Storage storage, Ui ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":20}},{"path":"src/main/java/duke/command/DeleteCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to delete a task from the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class DeleteCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" private final int taskNumber;","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * Creates a new DeleteCommand with the specified task number.","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be deleted.","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public DeleteCommand(int taskNumber) {","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" taskList.deleteTask(this.taskNumber, storage, ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":27}},{"path":"src/main/java/duke/command/ExitCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to exit the program.","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-07"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Bye. Hope to see you again soon!\");","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":16}},{"path":"src/main/java/duke/command/FindCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to find tasks that match a given keyword in the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class FindCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private final String keyword;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * Creates a new FindCommand with the specified keyword.","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param keyword The keyword to search for in tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" public FindCommand(String keyword) {","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" this.keyword \u003d keyword;","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" taskList.findTasks(this.keyword, ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":26}},{"path":"src/main/java/duke/command/ListCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to list all tasks in the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class ListCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" private String queryParam;","lastModifiedDate":"2023-09-17"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" public ListCommand(String queryParam) {","lastModifiedDate":"2023-09-17"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" this.queryParam \u003d queryParam;","lastModifiedDate":"2023-09-17"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" taskList.showAllTasks(ui, queryParam);","lastModifiedDate":"2023-09-17"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":22}},{"path":"src/main/java/duke/command/MarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to mark a task as done in the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class MarkCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private final int taskNumber;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * Creates a new MarkCommand with the specified task number.","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be marked as done.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" public MarkCommand(int taskNumber) {","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" taskList.markTaskAsDone(this.taskNumber, storage, ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":26}},{"path":"src/main/java/duke/command/UnmarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.command;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a command to unmark a task as done in the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class UnmarkCommand extends Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private final int taskNumber;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * Creates a new UnmarkCommand with the specified task number.","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be unmarked as done.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" public UnmarkCommand(int taskNumber) {","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" this.taskNumber \u003d taskNumber;","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" public void execute(TaskList taskList, Storage storage, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" taskList.unmarkTaskAsDone(this.taskNumber, storage, ui);","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"lyuanww":26}},{"path":"src/main/java/duke/task/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.DateParser;","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents a task with a deadline.","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-08-23"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private final LocalDateTime by;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * Constructs a Deadline object.","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param name The name or description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param by The deadline of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" public Deadline(String name, String by) {","lastModifiedDate":"2023-08-23"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" super(name);","lastModifiedDate":"2023-08-23"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" this.by \u003d DateParser.convertStringToDateTime(by);","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" * Converts the Deadline object to its string representation.","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" * @return The string representation of the Deadline object.","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-08-23"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" public String toString() {","lastModifiedDate":"2023-08-23"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" return \"[D]\" + super.toString() + \" (by: \" + DateParser.convertDateTimeToString(this.by) + \")\";","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" * Converts the Deadline object to a formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" * @return The formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" public String convertTaskToStorageFormat() {","lastModifiedDate":"2023-09-06"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" return \"D | \" + (super.getIsDone() ? \"1\" : \"0\") + \" | \" + super.getName() + \" | \"","lastModifiedDate":"2023-09-06"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" + DateParser.convertDateTimeToString(this.by);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":43}},{"path":"src/main/java/duke/task/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.utility.DateParser;","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Represents an event task with a specified start and end time.","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class Event extends Task {","lastModifiedDate":"2023-08-23"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private final LocalDateTime to;","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" private final LocalDateTime from;","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * Constructs an Event object.","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param name The name or description of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" * @param from The start time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * @param to The end time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" public Event(String name, String from, String to) {","lastModifiedDate":"2023-08-23"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" super(name);","lastModifiedDate":"2023-08-23"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" this.from \u003d DateParser.convertStringToDateTime(from);","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" this.to \u003d DateParser.convertStringToDateTime(to);","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" * Converts the Event object to its string representation.","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" * @return The string representation of the Event object.","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-08-23"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" public String toString() {","lastModifiedDate":"2023-08-23"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" return \"[E]\" + super.toString() + \" (from: \" + DateParser.convertDateTimeToString(this.from) + \" to: \"","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" + DateParser.convertDateTimeToString(this.to) + \")\";","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" * Converts the Event object to a formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" * @return The formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" public String convertTaskToStorageFormat() {","lastModifiedDate":"2023-09-06"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" return \"E | \" + (super.getIsDone() ? \"1\" : \"0\") + \" | \" + super.getName() + \" | \"","lastModifiedDate":"2023-09-06"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" + DateParser.convertDateTimeToString(this.from) + \" | \" + DateParser.convertDateTimeToString(this.to);","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":47}},{"path":"src/main/java/duke/task/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":" * Represents a task that can be marked as done or undone.","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"public abstract class Task {","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" private final String name;","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" private boolean isDone;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * Constructs a Task object with a specified name.","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" * @param name The name or description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" public Task(String name) {","lastModifiedDate":"2023-08-23"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" this.name \u003d name;","lastModifiedDate":"2023-08-23"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-09-06"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" * Marks the task as done and optionally displays a message.","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" * @param willDisplayMessage Whether to display a message indicating the task was marked as done.","lastModifiedDate":"2023-09-06"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" public void markAsDone(boolean willDisplayMessage, Ui ui) {","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-09-06"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" if (willDisplayMessage) {","lastModifiedDate":"2023-09-06"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Nice! I\u0027ve marked this task as done:\\n \" + this + \"\\n\");","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" * Unmarks the task as done and optionally displays a message.","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" * @param willDisplayMessage Whether to display a message indicating the task was marked as not done.","lastModifiedDate":"2023-09-06"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" public void unmarkAsDone(boolean willDisplayMessage, Ui ui) {","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-09-06"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" if (willDisplayMessage) {","lastModifiedDate":"2023-09-06"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Nice! I\u0027ve unmarked this task as done:\\n \" + this + \"\\n\");","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-08-23"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" public String toString() {","lastModifiedDate":"2023-08-23"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" char markDone \u003d this.isDone ? \u0027X\u0027 : \u0027 \u0027;","lastModifiedDate":"2023-09-06"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" return \"[\" + markDone + \"] \" + this.name;","lastModifiedDate":"2023-08-23"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" public String getName() {","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" return this.name;","lastModifiedDate":"2023-08-29"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" public boolean getIsDone() {","lastModifiedDate":"2023-09-06"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" return this.isDone;","lastModifiedDate":"2023-09-06"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" * Converts the task into a formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" * @return The formatted string representation of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" public abstract String convertTaskToStorageFormat();","lastModifiedDate":"2023-09-06"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":68}},{"path":"src/main/java/duke/task/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import java.util.List;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import java.util.stream.Collectors;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" * Represents a list of tasks and provides methods to manage tasks within the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"public class TaskList {","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" private final ArrayList\u003cTask\u003e tasks;","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" public TaskList() {","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" this.tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-22"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" * Adds a task to the list based on the task description.","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" * @param taskDescription The description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" * @param storage The storage handler to save the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" public void addTask(String taskDescription, Storage storage, Ui ui) {","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" Task task;","lastModifiedDate":"2023-08-23"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" String[] taskInformation \u003d taskDescription.split(\" /\");","lastModifiedDate":"2023-08-23"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" String taskName \u003d taskInformation[0].trim();","lastModifiedDate":"2023-08-23"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" if (taskInformation.length \u003d\u003d 1) {","lastModifiedDate":"2023-08-23"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" task \u003d new ToDo(taskName);","lastModifiedDate":"2023-08-23"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" } else if (taskInformation.length \u003d\u003d 2) {","lastModifiedDate":"2023-08-23"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" task \u003d new Deadline(taskName, taskInformation[1].replace(\"by \", \"\"));","lastModifiedDate":"2023-08-23"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" } else if (taskInformation.length \u003d\u003d 3) {","lastModifiedDate":"2023-08-23"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" task \u003d new Event(taskName, taskInformation[1].replace(\"from \", \"\"), taskInformation[2].replace(\"to \", \"\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" } else {","lastModifiedDate":"2023-08-23"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Invalid task format\");","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-23"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" this.tasks.add(task);","lastModifiedDate":"2023-08-22"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" storage.saveTask(task);","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Got it. I\u0027ve added this task:\\n \" + task + \"\\nNow you have \" + this.tasks.size()","lastModifiedDate":"2023-09-07"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" + \" task(s) in the list.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" * Adds a task directly to the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" * @param task The task to be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" public void addTask(Task task) {","lastModifiedDate":"2023-08-29"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" assert task !\u003d null : \"Task should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" this.tasks.add(task);","lastModifiedDate":"2023-08-29"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" * Deletes a task from the list based on the task number.","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be deleted.","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" * @param storage The storage handler to remove the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" public void deleteTask(int taskNumber, Storage storage, Ui ui) {","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" if (taskNumber \u003e this.tasks.size() || taskNumber \u003c 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Task number does not exist\");","lastModifiedDate":"2023-09-07"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-23"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":" Task task \u003d this.tasks.get(taskNumber - 1);","lastModifiedDate":"2023-08-23"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":" assert task !\u003d null : \"Task should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":74,"author":{"gitId":"lyuanww"},"content":" this.tasks.remove(task);","lastModifiedDate":"2023-08-23"},{"lineNumber":75,"author":{"gitId":"lyuanww"},"content":" storage.deleteTask(taskNumber, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":76,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Noted. I\u0027ve removed this task:\\n \" + task + \"\\nNow you have \" + this.tasks.size()","lastModifiedDate":"2023-09-07"},{"lineNumber":77,"author":{"gitId":"lyuanww"},"content":" + \" task(s) in the list.\");","lastModifiedDate":"2023-09-06"},{"lineNumber":78,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":79,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":80,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"lyuanww"},"content":" * Displays all tasks in the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"lyuanww"},"content":" * @param queryParam The query parameter to sort the tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":85,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"lyuanww"},"content":" public void showAllTasks(Ui ui, String queryParam) {","lastModifiedDate":"2023-09-17"},{"lineNumber":87,"author":{"gitId":"lyuanww"},"content":" if (this.tasks.size() \u003d\u003d 0) {","lastModifiedDate":"2023-08-22"},{"lineNumber":88,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"You have no tasks in your list.\");","lastModifiedDate":"2023-09-07"},{"lineNumber":89,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-22"},{"lineNumber":90,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":91,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":92,"author":{"gitId":"lyuanww"},"content":" if (queryParam !\u003d null) {","lastModifiedDate":"2023-09-17"},{"lineNumber":93,"author":{"gitId":"lyuanww"},"content":" String[] queryParamArr \u003d queryParam.split(\" \");","lastModifiedDate":"2023-09-17"},{"lineNumber":94,"author":{"gitId":"lyuanww"},"content":" String sortOrder \u003d queryParamArr[1];","lastModifiedDate":"2023-09-17"},{"lineNumber":95,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":96,"author":{"gitId":"lyuanww"},"content":" if (sortOrder.equals(\"asc\")) {","lastModifiedDate":"2023-09-17"},{"lineNumber":97,"author":{"gitId":"lyuanww"},"content":" this.tasks.sort((task1, task2) -\u003e task1.getName().compareTo(task2.getName()));","lastModifiedDate":"2023-09-17"},{"lineNumber":98,"author":{"gitId":"lyuanww"},"content":" } else if (sortOrder.equals(\"desc\")) {","lastModifiedDate":"2023-09-17"},{"lineNumber":99,"author":{"gitId":"lyuanww"},"content":" this.tasks.sort((task1, task2) -\u003e task2.getName().compareTo(task1.getName()));","lastModifiedDate":"2023-09-17"},{"lineNumber":100,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":101,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":102,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":103,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Here are the tasks in your list:\\n\");","lastModifiedDate":"2023-09-17"},{"lineNumber":104,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":105,"author":{"gitId":"lyuanww"},"content":" for (int i \u003d 0; i \u003c this.tasks.size(); i++) {","lastModifiedDate":"2023-08-22"},{"lineNumber":106,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(i + 1 + \".\" + this.tasks.get(i) + \"\\n\");","lastModifiedDate":"2023-09-13"},{"lineNumber":107,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":108,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":109,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"\\n\");","lastModifiedDate":"2023-09-10"},{"lineNumber":110,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":111,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":112,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":113,"author":{"gitId":"lyuanww"},"content":" * Marks a task as done based on the task number.","lastModifiedDate":"2023-08-30"},{"lineNumber":114,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":115,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be marked as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":116,"author":{"gitId":"lyuanww"},"content":" * @param storage The storage handler to update the task status.","lastModifiedDate":"2023-08-30"},{"lineNumber":117,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":119,"author":{"gitId":"lyuanww"},"content":" public void markTaskAsDone(int taskNumber, Storage storage, Ui ui) {","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"lyuanww"},"content":" if (taskNumber \u003e this.tasks.size() || taskNumber \u003c 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":121,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Task number does not exist\");","lastModifiedDate":"2023-09-07"},{"lineNumber":122,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-23"},{"lineNumber":123,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":124,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":125,"author":{"gitId":"lyuanww"},"content":" Task task \u003d this.tasks.get(taskNumber - 1);","lastModifiedDate":"2023-08-23"},{"lineNumber":126,"author":{"gitId":"lyuanww"},"content":" assert task !\u003d null : \"Task should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":127,"author":{"gitId":"lyuanww"},"content":" task.markAsDone(true, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":128,"author":{"gitId":"lyuanww"},"content":" storage.modifyTask(taskNumber, task);","lastModifiedDate":"2023-08-30"},{"lineNumber":129,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":130,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":131,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":132,"author":{"gitId":"lyuanww"},"content":" * Marks a task as not done (undone) based on the task number.","lastModifiedDate":"2023-08-30"},{"lineNumber":133,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The number of the task to be marked as not done.","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"lyuanww"},"content":" * @param storage The storage handler to update the task status.","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":138,"author":{"gitId":"lyuanww"},"content":" public void unmarkTaskAsDone(int taskNumber, Storage storage, Ui ui) {","lastModifiedDate":"2023-08-30"},{"lineNumber":139,"author":{"gitId":"lyuanww"},"content":" if (taskNumber \u003e this.tasks.size() || taskNumber \u003c 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":140,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Task number does not exist\");","lastModifiedDate":"2023-09-07"},{"lineNumber":141,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-23"},{"lineNumber":142,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":143,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":144,"author":{"gitId":"lyuanww"},"content":" Task task \u003d this.tasks.get(taskNumber - 1);","lastModifiedDate":"2023-08-23"},{"lineNumber":145,"author":{"gitId":"lyuanww"},"content":" assert task !\u003d null : \"Task should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":146,"author":{"gitId":"lyuanww"},"content":" task.unmarkAsDone(true, ui);","lastModifiedDate":"2023-09-13"},{"lineNumber":147,"author":{"gitId":"lyuanww"},"content":" storage.modifyTask(taskNumber, task);","lastModifiedDate":"2023-08-30"},{"lineNumber":148,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":149,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":150,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":151,"author":{"gitId":"lyuanww"},"content":" * Finds tasks that match a given keyword and displays them.","lastModifiedDate":"2023-09-06"},{"lineNumber":152,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-06"},{"lineNumber":153,"author":{"gitId":"lyuanww"},"content":" * @param keyword The keyword to search for in tasks.","lastModifiedDate":"2023-09-06"},{"lineNumber":154,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-06"},{"lineNumber":155,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":156,"author":{"gitId":"lyuanww"},"content":" public void findTasks(String keyword, Ui ui) {","lastModifiedDate":"2023-08-30"},{"lineNumber":157,"author":{"gitId":"lyuanww"},"content":" List\u003cTask\u003e foundTasks \u003d tasks.stream()","lastModifiedDate":"2023-09-13"},{"lineNumber":158,"author":{"gitId":"lyuanww"},"content":" .filter(task -\u003e task.toString().contains(keyword))","lastModifiedDate":"2023-09-13"},{"lineNumber":159,"author":{"gitId":"lyuanww"},"content":" .collect(Collectors.toList());","lastModifiedDate":"2023-09-13"},{"lineNumber":160,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":161,"author":{"gitId":"lyuanww"},"content":" if (foundTasks.isEmpty()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":162,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"No matching tasks found.\");","lastModifiedDate":"2023-09-20"},{"lineNumber":163,"author":{"gitId":"lyuanww"},"content":" return;","lastModifiedDate":"2023-08-30"},{"lineNumber":164,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":165,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":166,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Here are the matching tasks in your list:\\n\");","lastModifiedDate":"2023-09-07"},{"lineNumber":167,"author":{"gitId":"lyuanww"},"content":" for (int i \u003d 0; i \u003c foundTasks.size(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":168,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(i + 1 + \".\" + foundTasks.get(i));","lastModifiedDate":"2023-09-07"},{"lineNumber":169,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":170,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"\");","lastModifiedDate":"2023-09-07"},{"lineNumber":171,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":172,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":173,"author":{"gitId":"lyuanww"},"content":" public int getTaskListSize() {","lastModifiedDate":"2023-08-30"},{"lineNumber":174,"author":{"gitId":"lyuanww"},"content":" return this.tasks.size();","lastModifiedDate":"2023-08-30"},{"lineNumber":175,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":176,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":177,"author":{"gitId":"lyuanww"},"content":" public Task getTask(int taskNumber) {","lastModifiedDate":"2023-08-30"},{"lineNumber":178,"author":{"gitId":"lyuanww"},"content":" return this.tasks.get(taskNumber);","lastModifiedDate":"2023-08-30"},{"lineNumber":179,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":180,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":181,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-22"}],"authorContributionMap":{"lyuanww":181}},{"path":"src/main/java/duke/task/ToDo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":" * Represents a task without any specific due date or time.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-08-23"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * Constructs a ToDo object.","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" * @param name The name or description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" public ToDo(String name) {","lastModifiedDate":"2023-08-23"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" super(name);","lastModifiedDate":"2023-08-23"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * Converts the ToDo object to its string representation.","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * @return The string representation of the ToDo object.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-08-23"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" public String toString() {","lastModifiedDate":"2023-08-23"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-08-23"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" * Converts the ToDo object to a formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" * @return The formatted string for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" public String convertTaskToStorageFormat() {","lastModifiedDate":"2023-09-06"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" return \"T | \" + (super.getIsDone() ? \"1\" : \"0\") + \" | \" + super.getName();","lastModifiedDate":"2023-09-06"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":34}},{"path":"src/main/java/duke/utility/DateParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" * A utility class for parsing and formatting date and time strings.","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"public class DateParser {","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" private static final DateTimeFormatter DATE_TIME_FORMATTER \u003d DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm\");","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" * Converts a date and time string to a LocalDateTime object.","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" * @param datetime The date and time string to be converted.","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" * @return A LocalDateTime object representing the parsed date and time.","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" public static LocalDateTime convertStringToDateTime(String datetime) {","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" return LocalDateTime.parse(datetime, DATE_TIME_FORMATTER);","lastModifiedDate":"2023-09-06"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" * Converts a LocalDateTime object to a formatted date and time string.","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" * @param datetime The LocalDateTime object to be converted.","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" * @return A formatted date and time string.","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" public static String convertDateTimeToString(LocalDateTime datetime) {","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" return datetime.format(DATE_TIME_FORMATTER);","lastModifiedDate":"2023-09-06"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-19"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" * Checks if a date and time string is in the wrong format.","lastModifiedDate":"2023-09-19"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-19"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" * @param datetime The date and time string to be checked.","lastModifiedDate":"2023-09-19"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" * @return false if the date and time string is in the correct format, true otherwise.","lastModifiedDate":"2023-09-19"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-19"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" public static boolean isInvalidDateTime(String datetime) {","lastModifiedDate":"2023-09-19"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-09-19"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" LocalDateTime.parse(datetime, DATE_TIME_FORMATTER);","lastModifiedDate":"2023-09-19"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" return false;","lastModifiedDate":"2023-09-19"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-19"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" return true;","lastModifiedDate":"2023-09-19"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"lyuanww":48}},{"path":"src/main/java/duke/utility/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.DukeException;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import duke.command.AddCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import duke.command.Command;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import duke.command.DeleteCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import duke.command.ExitCommand;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import duke.command.FindCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import duke.command.ListCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"import duke.command.MarkCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"import duke.command.UnmarkCommand;","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" * A utility class for parsing and validating user commands in the Duke application.","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"public class Parser {","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * Processes user input into a corresponding command object.","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" * @param input The user\u0027s input as a string.","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" * @return A command object based on the user\u0027s input, or null if input is invalid.","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" public static Command processInputIntoCommand(String input, Ui ui) {","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" String command \u003d inputArr[0];","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" switch (command) {","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" case \"list\":","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" String queryParam \u003d Parser.validateListCommand(input);","lastModifiedDate":"2023-09-17"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" return new ListCommand(queryParam);","lastModifiedDate":"2023-09-17"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" case \"mark\":","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" int markTaskNumber \u003d Parser.validateTaskNumberInput(input);","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" return new MarkCommand(markTaskNumber);","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" int unmarkTaskNumber \u003d Parser.validateTaskNumberInput(input);","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" return new UnmarkCommand(unmarkTaskNumber);","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" case \"todo\":","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" String todoDescription \u003d Parser.validateToDoCommand(input);","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" return new AddCommand(todoDescription);","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" String deadlineDescription \u003d Parser.validateDeadlineCommand(input);","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" return new AddCommand(deadlineDescription);","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" case \"event\":","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" String eventDescription \u003d Parser.validateEventCommand(input);","lastModifiedDate":"2023-09-05"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" return new AddCommand(eventDescription);","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" case \"delete\":","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" int deleteTaskNumber \u003d Parser.validateTaskNumberInput(input);","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" return new DeleteCommand(deleteTaskNumber);","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" case \"find\":","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" String keyword \u003d input.replace(\"find\", \"\").trim();","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" return new FindCommand(keyword);","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" case \"bye\":","lastModifiedDate":"2023-09-07"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" return new ExitCommand();","lastModifiedDate":"2023-09-07"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" default:","lastModifiedDate":"2023-09-05"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-09-05"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(e.getMessage());","lastModifiedDate":"2023-09-07"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" return null;","lastModifiedDate":"2023-09-05"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" * Validates and extracts the description from a todo command.","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":" * @param input The user input containing the todo command.","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" * @return The description of the todo task.","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the description is empty.","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":" public static String validateToDoCommand(String input) throws DukeException {","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"lyuanww"},"content":" assert input !\u003d null : \"Input should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":75,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"lyuanww"},"content":" if (inputArr.length \u003d\u003d 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The description of a todo cannot be empty.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"lyuanww"},"content":" return input.replace(\"todo\", \"\");","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"lyuanww"},"content":" * Validates and extracts the description and deadline from a deadline command.","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"lyuanww"},"content":" * @param input The user input containing the deadline command.","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"lyuanww"},"content":" * @return The description of the deadline task.","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the format is invalid or the description is empty.","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"lyuanww"},"content":" public static String validateDeadlineCommand(String input) throws DukeException {","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"lyuanww"},"content":" assert input !\u003d null : \"Input should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":91,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"lyuanww"},"content":" if (inputArr.length \u003d\u003d 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The description of a deadline cannot be empty.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":96,"author":{"gitId":"lyuanww"},"content":" String[] description \u003d input.replace(\"deadline\", \"\").trim().split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"lyuanww"},"content":" int index \u003d -1;","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"lyuanww"},"content":" if (description.length \u003e 2) {","lastModifiedDate":"2023-08-30"},{"lineNumber":99,"author":{"gitId":"lyuanww"},"content":" for (int i \u003d 0; i \u003c description.length; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":100,"author":{"gitId":"lyuanww"},"content":" if (description[i].equals(\"/by\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":101,"author":{"gitId":"lyuanww"},"content":" index \u003d i;","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"lyuanww"},"content":" break;","lastModifiedDate":"2023-08-30"},{"lineNumber":103,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":107,"author":{"gitId":"lyuanww"},"content":" if (index \u003d\u003d -1 || index \u003d\u003d 0 || index \u003d\u003d description.length - 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The format of a deadline is invalid. \"","lastModifiedDate":"2023-08-30"},{"lineNumber":109,"author":{"gitId":"lyuanww"},"content":" + \"Format: deadline \u003ctask name\u003e /by \u003cdate\u003e\");","lastModifiedDate":"2023-08-30"},{"lineNumber":110,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":111,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":112,"author":{"gitId":"lyuanww"},"content":" String[] taskInformation \u003d input.split(\" /\");","lastModifiedDate":"2023-09-19"},{"lineNumber":113,"author":{"gitId":"lyuanww"},"content":" String by \u003d taskInformation[1].replace(\"by \", \"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":114,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":115,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":116,"author":{"gitId":"lyuanww"},"content":" if (DateParser.isInvalidDateTime(by)) {","lastModifiedDate":"2023-09-19"},{"lineNumber":117,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The format of the date time is invalid. \"","lastModifiedDate":"2023-09-19"},{"lineNumber":118,"author":{"gitId":"lyuanww"},"content":" + \"Format: dd-MM-yyyy HH:mm\");","lastModifiedDate":"2023-09-20"},{"lineNumber":119,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":120,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":121,"author":{"gitId":"lyuanww"},"content":" return input.replace(\"deadline\", \"\");","lastModifiedDate":"2023-08-30"},{"lineNumber":122,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":123,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":124,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":125,"author":{"gitId":"lyuanww"},"content":" * Validates and extracts the description and event timing from an event command.","lastModifiedDate":"2023-08-30"},{"lineNumber":126,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":127,"author":{"gitId":"lyuanww"},"content":" * @param input The user input containing the event command.","lastModifiedDate":"2023-08-30"},{"lineNumber":128,"author":{"gitId":"lyuanww"},"content":" * @return The description of the event task.","lastModifiedDate":"2023-08-30"},{"lineNumber":129,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the format is invalid or the description is empty.","lastModifiedDate":"2023-08-30"},{"lineNumber":130,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":131,"author":{"gitId":"lyuanww"},"content":" public static String validateEventCommand(String input) throws DukeException {","lastModifiedDate":"2023-08-30"},{"lineNumber":132,"author":{"gitId":"lyuanww"},"content":" assert input !\u003d null : \"Input should not be null\";","lastModifiedDate":"2023-09-11"},{"lineNumber":133,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"lyuanww"},"content":" if (inputArr.length \u003d\u003d 1) {","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The description of a event cannot be empty.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":138,"author":{"gitId":"lyuanww"},"content":" String[] description \u003d input.replace(\"event\", \"\").trim().split(\" \");","lastModifiedDate":"2023-08-30"},{"lineNumber":139,"author":{"gitId":"lyuanww"},"content":" int fromIndex \u003d -1;","lastModifiedDate":"2023-08-30"},{"lineNumber":140,"author":{"gitId":"lyuanww"},"content":" int toIndex \u003d -1;","lastModifiedDate":"2023-08-30"},{"lineNumber":141,"author":{"gitId":"lyuanww"},"content":" if (description.length \u003e 2) {","lastModifiedDate":"2023-08-30"},{"lineNumber":142,"author":{"gitId":"lyuanww"},"content":" for (int i \u003d 0; i \u003c description.length; i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":143,"author":{"gitId":"lyuanww"},"content":" if (description[i].equals(\"/from\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":144,"author":{"gitId":"lyuanww"},"content":" fromIndex \u003d i;","lastModifiedDate":"2023-08-30"},{"lineNumber":145,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":146,"author":{"gitId":"lyuanww"},"content":" if (description[i].equals(\"/to\")) {","lastModifiedDate":"2023-08-30"},{"lineNumber":147,"author":{"gitId":"lyuanww"},"content":" toIndex \u003d i;","lastModifiedDate":"2023-08-30"},{"lineNumber":148,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":149,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":150,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":151,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":152,"author":{"gitId":"lyuanww"},"content":" boolean isFromIndexBeforeToIndex \u003d fromIndex \u003c toIndex;","lastModifiedDate":"2023-09-06"},{"lineNumber":153,"author":{"gitId":"lyuanww"},"content":" boolean isFromIndexValid \u003d fromIndex !\u003d -1 \u0026\u0026 fromIndex !\u003d 0 \u0026\u0026 fromIndex !\u003d description.length - 1;","lastModifiedDate":"2023-09-06"},{"lineNumber":154,"author":{"gitId":"lyuanww"},"content":" boolean isToIndexValid \u003d toIndex !\u003d -1 \u0026\u0026 toIndex !\u003d 0 \u0026\u0026 toIndex !\u003d description.length - 1;","lastModifiedDate":"2023-09-06"},{"lineNumber":155,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":156,"author":{"gitId":"lyuanww"},"content":" if (!isFromIndexBeforeToIndex || !isFromIndexValid || !isToIndexValid) {","lastModifiedDate":"2023-09-06"},{"lineNumber":157,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The format of a event is invalid. Format: event \u003ctask name\u003e \"","lastModifiedDate":"2023-09-06"},{"lineNumber":158,"author":{"gitId":"lyuanww"},"content":" + \"/from \u003cdate\u003e /to \u003cdate\u003e\");","lastModifiedDate":"2023-09-06"},{"lineNumber":159,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":160,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":161,"author":{"gitId":"lyuanww"},"content":" String[] taskInformation \u003d input.split(\" /\");","lastModifiedDate":"2023-09-19"},{"lineNumber":162,"author":{"gitId":"lyuanww"},"content":" String from \u003d taskInformation[1].replace(\"from \", \"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":163,"author":{"gitId":"lyuanww"},"content":" String to \u003d taskInformation[2].replace(\"to \", \"\");","lastModifiedDate":"2023-09-19"},{"lineNumber":164,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":165,"author":{"gitId":"lyuanww"},"content":" if (DateParser.isInvalidDateTime(from) || DateParser.isInvalidDateTime(to)) {","lastModifiedDate":"2023-09-19"},{"lineNumber":166,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The format of the date time is invalid. \"","lastModifiedDate":"2023-09-19"},{"lineNumber":167,"author":{"gitId":"lyuanww"},"content":" + \"Format: dd-MM-yyyy HH:mm\");","lastModifiedDate":"2023-09-20"},{"lineNumber":168,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-19"},{"lineNumber":169,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":170,"author":{"gitId":"lyuanww"},"content":" return input.replace(\"event\", \"\");","lastModifiedDate":"2023-08-30"},{"lineNumber":171,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":172,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":173,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":174,"author":{"gitId":"lyuanww"},"content":" * Parses an integer from a string.","lastModifiedDate":"2023-08-30"},{"lineNumber":175,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":176,"author":{"gitId":"lyuanww"},"content":" * @param input The string to be parsed.","lastModifiedDate":"2023-08-30"},{"lineNumber":177,"author":{"gitId":"lyuanww"},"content":" * @return The parsed integer, or -1 if parsing fails.","lastModifiedDate":"2023-08-30"},{"lineNumber":178,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":179,"author":{"gitId":"lyuanww"},"content":" private static int parseInt(String input) throws DukeException {","lastModifiedDate":"2023-09-20"},{"lineNumber":180,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":181,"author":{"gitId":"lyuanww"},"content":" return Integer.parseInt(input);","lastModifiedDate":"2023-08-30"},{"lineNumber":182,"author":{"gitId":"lyuanww"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":183,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The task number is invalid.\");","lastModifiedDate":"2023-09-20"},{"lineNumber":184,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":185,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":186,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":187,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":188,"author":{"gitId":"lyuanww"},"content":" * Validates and extracts the query parameter from a list command.","lastModifiedDate":"2023-09-17"},{"lineNumber":189,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":190,"author":{"gitId":"lyuanww"},"content":" * @param input The user input containing the list command.","lastModifiedDate":"2023-09-17"},{"lineNumber":191,"author":{"gitId":"lyuanww"},"content":" * @return The query parameter of the list command.","lastModifiedDate":"2023-09-17"},{"lineNumber":192,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the format is invalid.","lastModifiedDate":"2023-09-17"},{"lineNumber":193,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":194,"author":{"gitId":"lyuanww"},"content":" public static String validateListCommand(String input) throws DukeException {","lastModifiedDate":"2023-09-17"},{"lineNumber":195,"author":{"gitId":"lyuanww"},"content":" assert input !\u003d null : \"Input should not be null\";","lastModifiedDate":"2023-09-17"},{"lineNumber":196,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-09-17"},{"lineNumber":197,"author":{"gitId":"lyuanww"},"content":" if (inputArr.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-17"},{"lineNumber":198,"author":{"gitId":"lyuanww"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":199,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":200,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":201,"author":{"gitId":"lyuanww"},"content":" String[] description \u003d input.replace(\"list\", \"\").trim().split(\" \");","lastModifiedDate":"2023-09-17"},{"lineNumber":202,"author":{"gitId":"lyuanww"},"content":" boolean isQueryInvalid \u003d description.length !\u003d 3 || !description[0].equals(\"sortBy\")","lastModifiedDate":"2023-09-17"},{"lineNumber":203,"author":{"gitId":"lyuanww"},"content":" || (!description[2].equals(\"asc\") \u0026\u0026 !description[2].equals(\"desc\"));","lastModifiedDate":"2023-09-17"},{"lineNumber":204,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":205,"author":{"gitId":"lyuanww"},"content":" if (isQueryInvalid) {","lastModifiedDate":"2023-09-17"},{"lineNumber":206,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The format of a list is invalid. \"","lastModifiedDate":"2023-09-17"},{"lineNumber":207,"author":{"gitId":"lyuanww"},"content":" + \"Format: list sortBy \u003cqueryParam\u003e \u003casc/desc\u003e\" + description[0]);","lastModifiedDate":"2023-09-17"},{"lineNumber":208,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":209,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":210,"author":{"gitId":"lyuanww"},"content":" if (!description[1].equals(\"description\")) {","lastModifiedDate":"2023-09-17"},{"lineNumber":211,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ Sorry!!! Tasks can only be sorted by description currently. \"","lastModifiedDate":"2023-09-17"},{"lineNumber":212,"author":{"gitId":"lyuanww"},"content":" + \"Format: list sortBy \u003cqueryParam\u003e \u003casc/desc\u003e\");","lastModifiedDate":"2023-09-17"},{"lineNumber":213,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":214,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":215,"author":{"gitId":"lyuanww"},"content":" return description[1] + \" \" + description[2];","lastModifiedDate":"2023-09-17"},{"lineNumber":216,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":217,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":218,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":219,"author":{"gitId":"lyuanww"},"content":" * Validates and extracts the task number from a mark or unmark command.","lastModifiedDate":"2023-09-20"},{"lineNumber":220,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":221,"author":{"gitId":"lyuanww"},"content":" * @param input The user input containing the mark or unmark command.","lastModifiedDate":"2023-09-20"},{"lineNumber":222,"author":{"gitId":"lyuanww"},"content":" * @return The task number of the mark or unmark command.","lastModifiedDate":"2023-09-20"},{"lineNumber":223,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the format is invalid.","lastModifiedDate":"2023-09-20"},{"lineNumber":224,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":225,"author":{"gitId":"lyuanww"},"content":" public static int validateTaskNumberInput(String input) throws DukeException {","lastModifiedDate":"2023-09-20"},{"lineNumber":226,"author":{"gitId":"lyuanww"},"content":" assert input !\u003d null : \"Input should not be null\";","lastModifiedDate":"2023-09-20"},{"lineNumber":227,"author":{"gitId":"lyuanww"},"content":" String[] inputArr \u003d input.split(\" \");","lastModifiedDate":"2023-09-20"},{"lineNumber":228,"author":{"gitId":"lyuanww"},"content":" if (inputArr.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-20"},{"lineNumber":229,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"☹ OOPS!!! The task number is invalid.\");","lastModifiedDate":"2023-09-20"},{"lineNumber":230,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":231,"author":{"gitId":"lyuanww"},"content":" return Parser.parseInt(inputArr[1]);","lastModifiedDate":"2023-09-20"},{"lineNumber":232,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":233,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":234,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":235,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"lyuanww":235}},{"path":"src/main/java/duke/utility/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import java.io.BufferedReader;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import java.io.File;","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import java.io.FileNotFoundException;","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import java.io.FileReader;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"import duke.DukeException;","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"import duke.task.Deadline;","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":"import duke.task.Event;","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"import duke.task.Task;","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":"import duke.task.TaskList;","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"import duke.task.ToDo;","lastModifiedDate":"2023-09-06"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * A class responsible for loading and saving tasks from and to a file.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"public class Storage {","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" private final String filePath;","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" * Constructs a Storage object with the specified file path.","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" * @param filePath The path to the file used for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" this.filePath \u003d filePath;","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" private static boolean isInvalidTaskType(String taskType) {","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" return !taskType.equals(\"T\") \u0026\u0026 !taskType.equals(\"D\") \u0026\u0026 !taskType.equals(\"E\");","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" private static boolean isInvalidDoneFlag(String doneFlag) {","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" return !doneFlag.equals(\"0\") \u0026\u0026 !doneFlag.equals(\"1\");","lastModifiedDate":"2023-09-17"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" private static boolean isInvalidTaskFormat(String taskType, int taskFormatLength) {","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" return !(taskType.equals(\"T\") \u0026\u0026 taskFormatLength \u003d\u003d 3) \u0026\u0026 !(taskType.equals(\"D\") \u0026\u0026 taskFormatLength \u003d\u003d 4)","lastModifiedDate":"2023-09-17"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" \u0026\u0026 !(taskType.equals(\"E\") \u0026\u0026 taskFormatLength \u003d\u003d 5);","lastModifiedDate":"2023-09-17"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":" * Loads tasks from the file and adds them to the provided TaskList.","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" * @param taskList The TaskList to which tasks should be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" public void loadTasks(TaskList taskList, Ui ui) {","lastModifiedDate":"2023-09-07"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"Loading tasks...\");","lastModifiedDate":"2023-08-29"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" if (!file.exists()) {","lastModifiedDate":"2023-09-17"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" file.getParentFile().mkdirs();","lastModifiedDate":"2023-09-11"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" file.createNewFile();","lastModifiedDate":"2023-09-20"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"No existing duke.txt found. File created!\");","lastModifiedDate":"2023-09-11"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" BufferedReader reader \u003d new BufferedReader(new FileReader(file));","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" String line;","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" while ((line \u003d reader.readLine()) !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" validateString(line);","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":" Task task \u003d convertStringIntoTask(line, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(task);","lastModifiedDate":"2023-08-29"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" reader.close();","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":" } catch (FileNotFoundException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"An error has occurred during file creation. Please check duke.txt in the data folder\");","lastModifiedDate":"2023-09-13"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-09-11"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"An error has occurred during file loading. Please check duke.txt in the data folder\");","lastModifiedDate":"2023-09-13"},{"lineNumber":74,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":76,"author":{"gitId":"lyuanww"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-08-29"},{"lineNumber":77,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-08-29"},{"lineNumber":78,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":79,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"Tasks loaded successfully!\");","lastModifiedDate":"2023-08-29"},{"lineNumber":80,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":81,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":82,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"lyuanww"},"content":" * Converts a data string into a Task object.","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"lyuanww"},"content":" * @param dataString The string containing task data.","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"lyuanww"},"content":" * @return The parsed Task object.","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If parsing encounters an error.","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"lyuanww"},"content":" public Task convertStringIntoTask(String dataString, Ui ui) throws DukeException {","lastModifiedDate":"2023-09-07"},{"lineNumber":90,"author":{"gitId":"lyuanww"},"content":" String[] dataArr \u003d dataString.split(\" \\\\| \");","lastModifiedDate":"2023-08-29"},{"lineNumber":91,"author":{"gitId":"lyuanww"},"content":" String taskType \u003d dataArr[0];","lastModifiedDate":"2023-08-29"},{"lineNumber":92,"author":{"gitId":"lyuanww"},"content":" boolean isDone \u003d dataArr[1].equals(\"1\");","lastModifiedDate":"2023-08-29"},{"lineNumber":93,"author":{"gitId":"lyuanww"},"content":" String taskName \u003d dataArr[2];","lastModifiedDate":"2023-08-29"},{"lineNumber":94,"author":{"gitId":"lyuanww"},"content":" Task task;","lastModifiedDate":"2023-08-29"},{"lineNumber":95,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":96,"author":{"gitId":"lyuanww"},"content":" switch (taskType) {","lastModifiedDate":"2023-08-29"},{"lineNumber":97,"author":{"gitId":"lyuanww"},"content":" case \"T\":","lastModifiedDate":"2023-08-29"},{"lineNumber":98,"author":{"gitId":"lyuanww"},"content":" task \u003d new ToDo(taskName);","lastModifiedDate":"2023-08-29"},{"lineNumber":99,"author":{"gitId":"lyuanww"},"content":" break;","lastModifiedDate":"2023-08-29"},{"lineNumber":100,"author":{"gitId":"lyuanww"},"content":" case \"D\":","lastModifiedDate":"2023-08-29"},{"lineNumber":101,"author":{"gitId":"lyuanww"},"content":" task \u003d new Deadline(taskName, dataArr[3]);","lastModifiedDate":"2023-08-29"},{"lineNumber":102,"author":{"gitId":"lyuanww"},"content":" break;","lastModifiedDate":"2023-08-29"},{"lineNumber":103,"author":{"gitId":"lyuanww"},"content":" case \"E\":","lastModifiedDate":"2023-08-29"},{"lineNumber":104,"author":{"gitId":"lyuanww"},"content":" task \u003d new Event(taskName, dataArr[3], dataArr[4]);","lastModifiedDate":"2023-08-29"},{"lineNumber":105,"author":{"gitId":"lyuanww"},"content":" break;","lastModifiedDate":"2023-08-29"},{"lineNumber":106,"author":{"gitId":"lyuanww"},"content":" default:","lastModifiedDate":"2023-08-29"},{"lineNumber":107,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"Unexpected error\");","lastModifiedDate":"2023-08-29"},{"lineNumber":108,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":109,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":110,"author":{"gitId":"lyuanww"},"content":" if (isDone) {","lastModifiedDate":"2023-08-29"},{"lineNumber":111,"author":{"gitId":"lyuanww"},"content":" task.markAsDone(false, ui);","lastModifiedDate":"2023-09-07"},{"lineNumber":112,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":113,"author":{"gitId":"lyuanww"},"content":" return task;","lastModifiedDate":"2023-08-29"},{"lineNumber":114,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":115,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":116,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":117,"author":{"gitId":"lyuanww"},"content":" * Validates a data string to ensure its format is correct.","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":119,"author":{"gitId":"lyuanww"},"content":" * @param dataString The string to be validated.","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"lyuanww"},"content":" * @throws DukeException If the format is invalid.","lastModifiedDate":"2023-08-30"},{"lineNumber":121,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":122,"author":{"gitId":"lyuanww"},"content":" public void validateString(String dataString) throws DukeException {","lastModifiedDate":"2023-08-30"},{"lineNumber":123,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":124,"author":{"gitId":"lyuanww"},"content":" String[] dataArr \u003d dataString.split(\" \\\\| \");","lastModifiedDate":"2023-08-29"},{"lineNumber":125,"author":{"gitId":"lyuanww"},"content":" int dataLength \u003d dataArr.length;","lastModifiedDate":"2023-08-29"},{"lineNumber":126,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":127,"author":{"gitId":"lyuanww"},"content":" String taskType \u003d dataArr[0];","lastModifiedDate":"2023-08-29"},{"lineNumber":128,"author":{"gitId":"lyuanww"},"content":" String doneFlag \u003d dataArr[1];","lastModifiedDate":"2023-08-29"},{"lineNumber":129,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":130,"author":{"gitId":"lyuanww"},"content":" if (isInvalidTaskType(taskType)) {","lastModifiedDate":"2023-09-13"},{"lineNumber":131,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"Invalid task type\");","lastModifiedDate":"2023-08-29"},{"lineNumber":132,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":133,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":134,"author":{"gitId":"lyuanww"},"content":" if (isInvalidDoneFlag(doneFlag)) {","lastModifiedDate":"2023-09-13"},{"lineNumber":135,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"Invalid done flag\");","lastModifiedDate":"2023-08-29"},{"lineNumber":136,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":137,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":138,"author":{"gitId":"lyuanww"},"content":" if (isInvalidTaskFormat(taskType, dataLength)) {","lastModifiedDate":"2023-09-13"},{"lineNumber":139,"author":{"gitId":"lyuanww"},"content":" throw new DukeException(\"Invalid task format\");","lastModifiedDate":"2023-08-29"},{"lineNumber":140,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":141,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":142,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":143,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":144,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":145,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":146,"author":{"gitId":"lyuanww"},"content":" * Saves a task to the file.","lastModifiedDate":"2023-08-30"},{"lineNumber":147,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":148,"author":{"gitId":"lyuanww"},"content":" * @param task The task to be saved.","lastModifiedDate":"2023-08-30"},{"lineNumber":149,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":150,"author":{"gitId":"lyuanww"},"content":" public void saveTask(Task task) {","lastModifiedDate":"2023-08-30"},{"lineNumber":151,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":152,"author":{"gitId":"lyuanww"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":153,"author":{"gitId":"lyuanww"},"content":" java.io.FileWriter fileWriter \u003d new java.io.FileWriter(file, true);","lastModifiedDate":"2023-08-29"},{"lineNumber":154,"author":{"gitId":"lyuanww"},"content":" fileWriter.write(task.convertTaskToStorageFormat() + \"\\n\");","lastModifiedDate":"2023-09-06"},{"lineNumber":155,"author":{"gitId":"lyuanww"},"content":" fileWriter.close();","lastModifiedDate":"2023-08-29"},{"lineNumber":156,"author":{"gitId":"lyuanww"},"content":" } catch (java.io.IOException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":157,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"Something went wrong: \" + e.getMessage());","lastModifiedDate":"2023-08-29"},{"lineNumber":158,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-08-29"},{"lineNumber":159,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":160,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":161,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":162,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":163,"author":{"gitId":"lyuanww"},"content":" * Modifies an existing task in the file.","lastModifiedDate":"2023-08-30"},{"lineNumber":164,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":165,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The index of the task to be modified.","lastModifiedDate":"2023-08-30"},{"lineNumber":166,"author":{"gitId":"lyuanww"},"content":" * @param newTask The new task to replace the existing task.","lastModifiedDate":"2023-08-30"},{"lineNumber":167,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":168,"author":{"gitId":"lyuanww"},"content":" public void modifyTask(int taskNumber, Task newTask) {","lastModifiedDate":"2023-08-30"},{"lineNumber":169,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":170,"author":{"gitId":"lyuanww"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":171,"author":{"gitId":"lyuanww"},"content":" Scanner scanner \u003d new Scanner(file);","lastModifiedDate":"2023-08-29"},{"lineNumber":172,"author":{"gitId":"lyuanww"},"content":" StringBuilder newContents \u003d new StringBuilder();","lastModifiedDate":"2023-08-29"},{"lineNumber":173,"author":{"gitId":"lyuanww"},"content":" int count \u003d 0;","lastModifiedDate":"2023-08-29"},{"lineNumber":174,"author":{"gitId":"lyuanww"},"content":" while (scanner.hasNext()) {","lastModifiedDate":"2023-08-29"},{"lineNumber":175,"author":{"gitId":"lyuanww"},"content":" String dataString \u003d scanner.nextLine();","lastModifiedDate":"2023-08-29"},{"lineNumber":176,"author":{"gitId":"lyuanww"},"content":" if (count \u003d\u003d taskNumber - 1) {","lastModifiedDate":"2023-08-29"},{"lineNumber":177,"author":{"gitId":"lyuanww"},"content":" newContents.append(newTask.convertTaskToStorageFormat() + \"\\n\");","lastModifiedDate":"2023-09-06"},{"lineNumber":178,"author":{"gitId":"lyuanww"},"content":" } else {","lastModifiedDate":"2023-08-29"},{"lineNumber":179,"author":{"gitId":"lyuanww"},"content":" newContents.append(dataString + \"\\n\");","lastModifiedDate":"2023-08-29"},{"lineNumber":180,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":181,"author":{"gitId":"lyuanww"},"content":" count++;","lastModifiedDate":"2023-08-29"},{"lineNumber":182,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":183,"author":{"gitId":"lyuanww"},"content":" scanner.close();","lastModifiedDate":"2023-08-29"},{"lineNumber":184,"author":{"gitId":"lyuanww"},"content":" FileWriter fileWriter \u003d new FileWriter(file, false);","lastModifiedDate":"2023-08-29"},{"lineNumber":185,"author":{"gitId":"lyuanww"},"content":" fileWriter.write(newContents.toString());","lastModifiedDate":"2023-08-29"},{"lineNumber":186,"author":{"gitId":"lyuanww"},"content":" fileWriter.close();","lastModifiedDate":"2023-08-29"},{"lineNumber":187,"author":{"gitId":"lyuanww"},"content":" } catch (java.io.IOException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":188,"author":{"gitId":"lyuanww"},"content":" System.out.println(\"Something went wrong: \" + e.getMessage());","lastModifiedDate":"2023-08-29"},{"lineNumber":189,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-08-29"},{"lineNumber":190,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":191,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":192,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":193,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":194,"author":{"gitId":"lyuanww"},"content":" * Deletes a task from the file.","lastModifiedDate":"2023-08-30"},{"lineNumber":195,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":196,"author":{"gitId":"lyuanww"},"content":" * @param taskNumber The index of the task to be deleted.","lastModifiedDate":"2023-08-30"},{"lineNumber":197,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":198,"author":{"gitId":"lyuanww"},"content":" public void deleteTask(int taskNumber, Ui ui) {","lastModifiedDate":"2023-09-07"},{"lineNumber":199,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":200,"author":{"gitId":"lyuanww"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":201,"author":{"gitId":"lyuanww"},"content":" BufferedReader reader \u003d new BufferedReader(new FileReader(file));","lastModifiedDate":"2023-08-30"},{"lineNumber":202,"author":{"gitId":"lyuanww"},"content":" StringBuilder newContents \u003d new StringBuilder();","lastModifiedDate":"2023-08-29"},{"lineNumber":203,"author":{"gitId":"lyuanww"},"content":" int count \u003d 0;","lastModifiedDate":"2023-08-29"},{"lineNumber":204,"author":{"gitId":"lyuanww"},"content":" String line;","lastModifiedDate":"2023-08-30"},{"lineNumber":205,"author":{"gitId":"lyuanww"},"content":" while ((line \u003d reader.readLine()) !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":206,"author":{"gitId":"lyuanww"},"content":" if (count !\u003d taskNumber - 1) {","lastModifiedDate":"2023-08-29"},{"lineNumber":207,"author":{"gitId":"lyuanww"},"content":" newContents.append(line + \"\\n\");","lastModifiedDate":"2023-08-30"},{"lineNumber":208,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":209,"author":{"gitId":"lyuanww"},"content":" count++;","lastModifiedDate":"2023-08-29"},{"lineNumber":210,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":211,"author":{"gitId":"lyuanww"},"content":" FileWriter fileWriter \u003d new FileWriter(file, false);","lastModifiedDate":"2023-08-29"},{"lineNumber":212,"author":{"gitId":"lyuanww"},"content":" fileWriter.write(newContents.toString());","lastModifiedDate":"2023-08-29"},{"lineNumber":213,"author":{"gitId":"lyuanww"},"content":" fileWriter.close();","lastModifiedDate":"2023-08-29"},{"lineNumber":214,"author":{"gitId":"lyuanww"},"content":" } catch (java.io.IOException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":215,"author":{"gitId":"lyuanww"},"content":" ui.printMessage(\"Something went wrong: \" + e.getMessage());","lastModifiedDate":"2023-09-07"},{"lineNumber":216,"author":{"gitId":"lyuanww"},"content":" System.exit(1);","lastModifiedDate":"2023-08-29"},{"lineNumber":217,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":218,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":219,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-29"},{"lineNumber":220,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":221,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"lyuanww":221}},{"path":"src/main/java/duke/utility/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":" * Handles interaction with the user by providing input and displaying messages.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"public class Ui {","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":" private StringBuilder output;","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" * Constructs a Ui object.","lastModifiedDate":"2023-09-07"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" public Ui() {","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" this.output \u003d new StringBuilder();","lastModifiedDate":"2023-09-07"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" * Returns the next line of input from the user.","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" * @return The next line of input from the user.","lastModifiedDate":"2023-09-07"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" public String getOutput() {","lastModifiedDate":"2023-09-07"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" return this.output.toString();","lastModifiedDate":"2023-09-07"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" * Clears the output.","lastModifiedDate":"2023-09-07"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" public void clearOutput() {","lastModifiedDate":"2023-09-07"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" this.output \u003d new StringBuilder();","lastModifiedDate":"2023-09-07"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-07"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" * Prints a message to the user.","lastModifiedDate":"2023-09-07"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-07"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" * @param message The message to be printed.","lastModifiedDate":"2023-09-07"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-07"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" public void printMessage(String message) {","lastModifiedDate":"2023-09-07"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" this.output.append(message);","lastModifiedDate":"2023-09-07"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"lyuanww":43}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"\u003cfx:root fx:id\u003d\"root\" HBox.hgrow\u003d\"ALWAYS\" 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\" stylesheets\u003d\"@dialogBox.css\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":" \u003cchildren \u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":" \u003cLabel fx:id\u003d\"dialog\" minHeight\u003d\"-Infinity\" text\u003d\"Label\" wrapText\u003d\"true\" HBox.hgrow\u003d\"ALWAYS\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" \u003cHBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" \u003cInsets bottom\u003d\"10.0\" left\u003d\"10.0\" right\u003d\"10.0\" top\u003d\"10.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" \u003c/HBox.margin\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" \u003c/Label\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\"/\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"15.0\" right\u003d\"15.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":20}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-19"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"\u003cAnchorPane 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\"duke.MainWindow\" stylesheets\u003d\"@mainWindow.css\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" fitToHeight\u003d\"true\" fitToWidth\u003d\"true\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\"","lastModifiedDate":"2023-09-19"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" AnchorPane.bottomAnchor\u003d\"30.0\" AnchorPane.leftAnchor\u003d\"0.0\" AnchorPane.rightAnchor\u003d\"0.0\"","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" AnchorPane.topAnchor\u003d\"0.0\"\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" HBox.hgrow\u003d\"ALWAYS\"/\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" \u003cHBox AnchorPane.bottomAnchor\u003d\"0.0\" AnchorPane.leftAnchor\u003d\"0.0\" AnchorPane.rightAnchor\u003d\"0.0\"\u003e","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" \u003cTextField fx:id\u003d\"userInput\" HBox.hgrow\u003d\"ALWAYS\" minHeight\u003d\"30.0\" minWidth\u003d\"100.0\" prefHeight\u003d\"30.0\" prefWidth\u003d\"200.0\" onAction\u003d\"#handleUserInput\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" \u003cButton fx:id\u003d\"sendButton\" HBox.hgrow\u003d\"ALWAYS\" mnemonicParsing\u003d\"false\" minHeight\u003d\"30.0\" minWidth\u003d\"100.0\" prefHeight\u003d\"30.0\" prefWidth\u003d\"100.0\" onAction\u003d\"#handleUserInput\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" \u003c/HBox\u003e","lastModifiedDate":"2023-09-19"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-07"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"lyuanww":25}},{"path":"src/test/java/duke/task/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.task;","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-06"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import org.junit.jupiter.api.BeforeEach;","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"import duke.utility.StorageStub;","lastModifiedDate":"2023-09-06"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import duke.utility.Ui;","lastModifiedDate":"2023-09-06"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"public class TaskListTest {","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" private TaskList taskList;","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" @BeforeEach","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" public void setUp() {","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" public void testAddTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Buy groceries /by 06-03-2007 13:44\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" assertEquals(1, taskList.getTaskListSize());","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" public void testDeleteTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Buy groceries /by 06-03-2007 13:44\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" taskList.deleteTask(1, new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" assertEquals(0, taskList.getTaskListSize());","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" public void testShowAllTasks() {","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Buy groceries /by 06-03-2007 13:44\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Read book /from 02-09-2022 11:00 /to 02-09-2022 12:00\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Go for a walk\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" assertEquals(3, taskList.getTaskListSize());","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":" Ui ui \u003d new Ui();","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" taskList.showAllTasks(ui, \"sortBy description asc\");","lastModifiedDate":"2023-09-17"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" String expectedOutput \u003d \"\\nHere are the tasks in your list:\\n\"","lastModifiedDate":"2023-09-06"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" + \"1.[D][ ] Buy groceries (by: 06-03-2007 13:44)\\n\"","lastModifiedDate":"2023-09-06"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":" + \"2.[T][ ] Go for a walk\\n\"","lastModifiedDate":"2023-09-17"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" + \"3.[E][ ] Read book (from: 02-09-2022 11:00 to: 02-09-2022 12:00)\\n\\n\";","lastModifiedDate":"2023-09-17"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" assertEquals(expectedOutput, ui.getOutput());","lastModifiedDate":"2023-09-10"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" public void testMarkTaskAsDone() {","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Buy groceries /by 06-03-2007 13:44\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" taskList.markTaskAsDone(1, new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" assertEquals(true, taskList.getTask(0).getIsDone());","lastModifiedDate":"2023-09-06"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":" public void testUnmarkTaskAsDone() {","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" taskList.addTask(\"Buy groceries /by 06-03-2007 13:44\", new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" taskList.markTaskAsDone(1, new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" taskList.unmarkTaskAsDone(1, new StorageStub(), new Ui());","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":" assertEquals(false, taskList.getTask(0).getIsDone());","lastModifiedDate":"2023-09-06"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"lyuanww":63}},{"path":"src/test/java/duke/utility/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"import static org.junit.jupiter.api.Assertions.assertThrows;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"import static org.junit.jupiter.api.Assertions.fail;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"import duke.DukeException;","lastModifiedDate":"2023-09-06"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":"public class ParserTest {","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" public void testValidateToDoCommand() {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" String result \u003d Parser.validateToDoCommand(\"todo Buy groceries\");","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":" assertEquals(\" Buy groceries\", result);","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" fail(\"Unexpected DukeException thrown.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" Parser.validateToDoCommand(\"todo\");","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":" public void testValidateDeadlineCommand() {","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"lyuanww"},"content":" String result \u003d Parser.validateDeadlineCommand(\"deadline Submit report /by 2023-09-01\");","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"lyuanww"},"content":" assertEquals(\" Submit report /by 2023-09-01\", result);","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"lyuanww"},"content":" fail(\"Unexpected DukeException thrown.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"lyuanww"},"content":" Parser.validateDeadlineCommand(\"deadline\");","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"lyuanww"},"content":" Parser.validateDeadlineCommand(\"deadline Submit report /by\");","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"lyuanww"},"content":" Parser.validateDeadlineCommand(\"deadline Submit report /by2023-09-01\");","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"lyuanww"},"content":" public void testValidateEventCommand() {","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"lyuanww"},"content":" String result \u003d Parser.validateEventCommand(\"event Birthday party /from 2023-09-01 /to 2023-09-02\");","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"lyuanww"},"content":" assertEquals(\" Birthday party /from 2023-09-01 /to 2023-09-02\", result);","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"lyuanww"},"content":" fail(\"Unexpected DukeException thrown.\");","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"lyuanww"},"content":" Parser.validateEventCommand(\"event\");","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"lyuanww"},"content":" Parser.validateEventCommand(\"event Birthday party /from\");","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"lyuanww"},"content":" Parser.validateEventCommand(\"event Birthday party /from 2023-09-01 /to\");","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"lyuanww"},"content":" Parser.validateEventCommand(\"event Birthday party /from 2023-09-01 /to 2023-09-02 /from\");","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"lyuanww"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"lyuanww"},"content":" public void testValidateTaskNumberInput() {","lastModifiedDate":"2023-09-20"},{"lineNumber":77,"author":{"gitId":"lyuanww"},"content":" try {","lastModifiedDate":"2023-09-20"},{"lineNumber":78,"author":{"gitId":"lyuanww"},"content":" int result \u003d Parser.validateTaskNumberInput(\"mark 1\");","lastModifiedDate":"2023-09-20"},{"lineNumber":79,"author":{"gitId":"lyuanww"},"content":" assertEquals(1, result);","lastModifiedDate":"2023-09-20"},{"lineNumber":80,"author":{"gitId":"lyuanww"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-09-20"},{"lineNumber":81,"author":{"gitId":"lyuanww"},"content":" fail(\"Unexpected DukeException thrown.\");","lastModifiedDate":"2023-09-20"},{"lineNumber":82,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":83,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"lyuanww"},"content":" assertThrows(DukeException.class, () -\u003e {","lastModifiedDate":"2023-09-20"},{"lineNumber":85,"author":{"gitId":"lyuanww"},"content":" Parser.validateTaskNumberInput(\"mark a\");","lastModifiedDate":"2023-09-20"},{"lineNumber":86,"author":{"gitId":"lyuanww"},"content":" });","lastModifiedDate":"2023-09-20"},{"lineNumber":87,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"lyuanww":89}},{"path":"src/test/java/duke/utility/StorageStub.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"package duke.utility;","lastModifiedDate":"2023-09-06"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"import duke.task.Task;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"/**","lastModifiedDate":"2023-09-06"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":" * A stub class extending Storage for testing purposes.","lastModifiedDate":"2023-09-06"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":" * This class overrides the saveTask method to do nothing.","lastModifiedDate":"2023-09-06"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"public class StorageStub extends Storage {","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-09-06"},{"lineNumber":11,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":12,"author":{"gitId":"lyuanww"},"content":" * Creates a new StorageStub with a default file path.","lastModifiedDate":"2023-09-06"},{"lineNumber":13,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":14,"author":{"gitId":"lyuanww"},"content":" public StorageStub() {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"lyuanww"},"content":" super(\"data/duke.txt\");","lastModifiedDate":"2023-09-06"},{"lineNumber":16,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"lyuanww"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"lyuanww"},"content":" /**","lastModifiedDate":"2023-09-06"},{"lineNumber":19,"author":{"gitId":"lyuanww"},"content":" * Overrides the saveTask method to do nothing.","lastModifiedDate":"2023-09-06"},{"lineNumber":20,"author":{"gitId":"lyuanww"},"content":" * This method is used for testing and does not save tasks.","lastModifiedDate":"2023-09-06"},{"lineNumber":21,"author":{"gitId":"lyuanww"},"content":" *","lastModifiedDate":"2023-09-06"},{"lineNumber":22,"author":{"gitId":"lyuanww"},"content":" * @param task The task to be saved (not saved in this stub implementation).","lastModifiedDate":"2023-09-06"},{"lineNumber":23,"author":{"gitId":"lyuanww"},"content":" */","lastModifiedDate":"2023-09-06"},{"lineNumber":24,"author":{"gitId":"lyuanww"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"lyuanww"},"content":" public void saveTask(Task task) {","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"lyuanww"},"content":" // do nothing","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"lyuanww"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"lyuanww"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"lyuanww":28}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"lyuanww"},"content":"todo read book","lastModifiedDate":"2023-08-23"},{"lineNumber":2,"author":{"gitId":"lyuanww"},"content":"deadline return book /by June 6th","lastModifiedDate":"2023-08-23"},{"lineNumber":3,"author":{"gitId":"lyuanww"},"content":"event project meeting /from Aug 6th 2pm /to 4pm","lastModifiedDate":"2023-08-23"},{"lineNumber":4,"author":{"gitId":"lyuanww"},"content":"todo join sports club","lastModifiedDate":"2023-08-23"},{"lineNumber":5,"author":{"gitId":"lyuanww"},"content":"todo borrow book","lastModifiedDate":"2023-08-23"},{"lineNumber":6,"author":{"gitId":"lyuanww"},"content":"mark 1","lastModifiedDate":"2023-08-23"},{"lineNumber":7,"author":{"gitId":"lyuanww"},"content":"mark 4","lastModifiedDate":"2023-08-23"},{"lineNumber":8,"author":{"gitId":"lyuanww"},"content":"list","lastModifiedDate":"2023-08-23"},{"lineNumber":9,"author":{"gitId":"lyuanww"},"content":"bye","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"lyuanww":9}}] diff --git a/lyuanww_ip_master/commits.json b/lyuanww_ip_master/commits.json index 53a9b976..3f69e359 100644 --- a/lyuanww_ip_master/commits.json +++ b/lyuanww_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"lyuanww":[{"date":"2023-08-22","commitResults":[{"hash":"c6e97e870b538a70e19a2b0fc52153d641c64e3a","isMergeCommit":false,"messageTitle":"Level-0","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":29,"deletions":6}}},{"hash":"0ccc33a6f9b70d7d6ef38c7cd429f46325838a16","isMergeCommit":false,"messageTitle":"Implement Level-1. Echo","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":3}}},{"hash":"967afecd7fbedc17554a0cba5e4a8a8bffa630b9","isMergeCommit":false,"messageTitle":"Implement Level-2. Add, List","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":55,"deletions":3}}}]},{"date":"2023-08-23","commitResults":[{"hash":"fb8e5c805cd2016f09ee94f39285bdd8d986a05d","isMergeCommit":false,"messageTitle":"Implement Level-3. Mark as Done","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":64,"deletions":4}}},{"hash":"9dbce38982529d32d2691b6e9ac65819bcf124b8","isMergeCommit":false,"messageTitle":"Implement Level-4. ToDos, Events, Deadlines","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":68,"deletions":4}}},{"hash":"deaa6778e74a25e9b2a4e4bbbeb42bb4000eadf6","isMergeCommit":false,"messageTitle":"Implement A-TextUiTesting: Automated Text UI Testing","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":9,"deletions":0},"java":{"insertions":4,"deletions":3}}},{"hash":"c3f82d433065944648d3f66103db25bab3264b33","isMergeCommit":false,"messageTitle":"Implement Level-5: Handle Errors","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":96,"deletions":33}}},{"hash":"2bccea029cd9c8a08fdf30622ee9bb8ad3c87c76","isMergeCommit":false,"messageTitle":"Implement Level-6: Delete","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"java":{"insertions":15,"deletions":0}}}]},{"date":"2023-08-29","commitResults":[{"hash":"b12162b9744032d51a415cd4bfc33f4a82f09bd3","isMergeCommit":false,"messageTitle":"Rename storage to tasklist","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":11}}},{"hash":"06c1fba4667299563816b1ca1d2db5deacb0545e","isMergeCommit":false,"messageTitle":"Implement Level7.Save","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":5,"deletions":0},"java":{"insertions":238,"deletions":46}}},{"hash":"be67a7db839501d32cf9abe87e8cea02b27b10cc","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-7\u0027","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{}}]},{"date":"2023-08-30","commitResults":[{"hash":"73b24673b73db15466a14611654b7f263d14cf17","isMergeCommit":false,"messageTitle":"Implement Level8.Dates and Times","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":2},"java":{"insertions":39,"deletions":10}}},{"hash":"e600e9eedb4175a1ed6ae124518c8675c9dd28f4","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-8\u0027","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{}},{"hash":"02d371e8eb1f959fda26241c403d9c9f55b7e5d6","isMergeCommit":false,"messageTitle":"Implement A-MoreOOP","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":164,"deletions":140}}},{"hash":"471c2a43aad01d3062e0f610ae2c360f863bd36b","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-more-oop\u0027","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{}},{"hash":"8e13c21430432a522d027fcebe2f43c551d3be17","isMergeCommit":false,"messageTitle":"Implement A-Packages","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1},"java":{"insertions":17,"deletions":0}}},{"hash":"e7ebe5c3a235a3d584fa5a015eace2608a93a062","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"f248bcda1c04a5a95ecb1692a4202faa92361ee5","isMergeCommit":false,"messageTitle":"Implement A-Gradle: Use Gradle","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":6,"deletions":0},"java":{"insertions":41,"deletions":39}}},{"hash":"da8ecb0d3f25656b5165decfbfdac4abe7e73d2e","isMergeCommit":false,"messageTitle":"Implement A-JUnit","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"txt":{"insertions":1,"deletions":5},"java":{"insertions":182,"deletions":16}}},{"hash":"3ae338292cb812336dd39d01b4e6a4ba0c3a10db","isMergeCommit":false,"messageTitle":"Change file not found message","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"de149f3c4ca2507e3b852ca6529cc6900789946c","isMergeCommit":false,"messageTitle":"Implement JavaDoc","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":236,"deletions":23}}},{"hash":"4e3d25e3968531f28986a08102256f6664e770aa","isMergeCommit":false,"messageTitle":"Implement Follow the Coding Standard","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":19,"deletions":10}}},{"hash":"4a01845e1034326925a46d959fe9a24aa0a50214","isMergeCommit":false,"messageTitle":"Implement Level-9: Find","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":24,"deletions":0}}},{"hash":"70591a5dcce109ff9a73ffcda372489c3d950fcc","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-CodingStandard\u0027","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{}},{"hash":"26dcd4ccb89f7bc19cc70f6330fb4b2e4829de85","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-9\u0027","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{}},{"hash":"c914a1f25cc5e345032dd2ec14949cd23bf71f95","isMergeCommit":true,"messageTitle":"Resolve merge conflicts","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-05","commitResults":[{"hash":"01204e4a0e0b5e025bfc9c0fc3a8cbc85bd7ea91","isMergeCommit":false,"messageTitle":"Restructure files","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":37,"deletions":10}}},{"hash":"26595cef351f427be58f0503efd5f14346eae907","isMergeCommit":false,"messageTitle":"Refactor: add command classes","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":1},"java":{"insertions":173,"deletions":54}}},{"hash":"3eae081ab49761ab47117d3e065a12702462a717","isMergeCommit":false,"messageTitle":"Add comments to Command classes","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":61,"deletions":8}}},{"hash":"de82176a275c8c8918bf01f515b6b802f61f41d6","isMergeCommit":false,"messageTitle":"Modify comment for processInputIntoCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":4}}}]},{"date":"2023-09-06","commitResults":[{"hash":"1099a4432c70270be230a09d0f2c0fc4f5cf7b77","isMergeCommit":false,"messageTitle":"Resolve PR comments","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":36,"deletions":44}}},{"hash":"7a2fb65897e59505edec26fb14840b8aedca9663","isMergeCommit":false,"messageTitle":"Resolve PR comments - part 2","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":27,"deletions":8}}},{"hash":"03002ed0b317897bb2043c339e76924670ec7893","isMergeCommit":false,"messageTitle":"Fix checkstyle","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1},"java":{"insertions":60,"deletions":41}}}]},{"date":"2023-09-07","commitResults":[{"hash":"b7da33e629b1f7f02c26ae71fbf8ee37ab7e521c","isMergeCommit":false,"messageTitle":"Implement Level-10: GUI","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":14,"deletions":0},"fxml":{"insertions":35,"deletions":0},"java":{"insertions":259,"deletions":57}}},{"hash":"039282b64d5ecafa52c0c91421d5c4b2bbfe0d02","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-10\u0027","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-10","commitResults":[{"hash":"da819b56ff13c4d5c4238aa8c178ac878fcfb92c","isMergeCommit":false,"messageTitle":"Fix Junit Test","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":10}}}]},{"date":"2023-09-11","commitResults":[{"hash":"309360a4227fb21c5875d01585303297676562c2","isMergeCommit":false,"messageTitle":"Add necessary changes to build JAR file","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"txt":{"insertions":0,"deletions":1},"java":{"insertions":2,"deletions":2}}},{"hash":"7e701233c61393909f951687f09028b7bc180be9","isMergeCommit":false,"messageTitle":"Add approriate error handling during file creation","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":2}}},{"hash":"d1afff1ea903a54956c123ab4336baefdbc37d51","isMergeCommit":false,"messageTitle":"Add assertions","messageBody":"Some files have pre-existing assumptions that should be verified during\nruntime.\n\nAssertions are added to Duke.java, Parser.java and TaskList.java. More\nassertions are to be added if applicable.\n\nAssertions are used to define assumptions about the program state so that the runtime can verify them.\n","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":0}}}]},{"date":"2023-09-12","commitResults":[{"hash":"2b10ed983fa65f8c3487ce34ea188d4bf730eeb9","isMergeCommit":true,"messageTitle":"Merge pull request #1 from lyuanww/branch-A-Assertions","messageBody":"Add assertions","tags":["A-Assertions"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-13","commitResults":[{"hash":"720e8b849b89e9a99c8a7e9204bb47495222f1dd","isMergeCommit":false,"messageTitle":"Fix bug where message not displayed when task is marked as undone","messageBody":"Remove System.out.println in TaskList.java\n","tags":["A-FullCommitMessage"],"fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":2}}},{"hash":"59f76ffaa24d79c92d5aac9ce4a6e2054184f2fc","isMergeCommit":false,"messageTitle":"Implement A-CodeQuality","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":9}}},{"hash":"617ea734de80de1a73555365ef4ae5c0f3444527","isMergeCommit":true,"messageTitle":"Merge pull request #2 from lyuanww/branch-A-CodeQuality","messageBody":"Implement A-CodeQuality","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{}},{"hash":"ce8129d466365fbfe7ff80d2a82c9107beff17e5","isMergeCommit":false,"messageTitle":"Fix checkstyle","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":3}}},{"hash":"efb33f1304f8f960396173dae91ca17aa9fe00e0","isMergeCommit":false,"messageTitle":"Implement Use Streams","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":9}}},{"hash":"52084a841c0a321e175401c817a76ffbf9a2e5ac","isMergeCommit":true,"messageTitle":"Merge pull request #3 from lyuanww/branch-A-Streams","messageBody":"Implement Use Streams","tags":["A-Streams"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-17","commitResults":[{"hash":"411832aac4885a3522a8e752e8f91cff9f96fa18","isMergeCommit":false,"messageTitle":"Implement C-Sort","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":63,"deletions":12}}},{"hash":"af4bd6575b9c1f44051648a8a38ac4fa0de50f8f","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-C-Sort\u0027","messageBody":"","tags":["BCD-Extension"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-19","commitResults":[{"hash":"8a6329c1f3a67207d78412ca022559b759761cd8","isMergeCommit":false,"messageTitle":"Add styling to chatbot and add resizing property","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":23,"deletions":15},"java":{"insertions":6,"deletions":2}}},{"hash":"fdac561b32970a300b2cec68c32af21934a4adf9","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-BetterGui\u0027","messageBody":"","tags":["A-BetterGui"],"fileTypesAndContributionMap":{}},{"hash":"30f7ee034df1df9b3f22115e7a816a836bd975c4","isMergeCommit":false,"messageTitle":"Implement: add personality","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":6,"deletions":2},"java":{"insertions":4,"deletions":4}}},{"hash":"232c05d6b7a09b36ad579d42132e60da3f8ede18","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Personality\u0027","messageBody":"","tags":["A-Personality"],"fileTypesAndContributionMap":{}},{"hash":"7ccc1db78e9e3449751df82e479cccfd9613b96f","isMergeCommit":false,"messageTitle":"fix: bug where incorrect datetime causes null pointer exception","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":34,"deletions":7}}}]},{"date":"2023-09-20","commitResults":[{"hash":"e10538951fecc8a70c603bd505c34cfc6806df94","isMergeCommit":false,"messageTitle":"fix: styling","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":2,"deletions":4}}},{"hash":"42ca26d13379734df1e3c0a73d0e411213328468","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":125,"deletions":13}}},{"hash":"31e5a4331ec61665e4b272c401f2b109e97765bb","isMergeCommit":false,"messageTitle":"change jar file name and fix minor styling","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"java":{"insertions":1,"deletions":1}}},{"hash":"39ba2e6ba7f9b762ff9348d0a6e11cc73c74818b","isMergeCommit":false,"messageTitle":"fix: bug where program is not exited","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"a4757a5fc3f7af3d3bce3bed30cd75078b08569c","isMergeCommit":false,"messageTitle":"Remove hard-coded file path","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":1}}},{"hash":"e7673038d25094ea32f104e8287d0d279d56c733","isMergeCommit":false,"messageTitle":"Add minor changes","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":31,"deletions":14}}},{"hash":"0d9ef1788a3cc66c22bac6824a14cf2d21c98f44","isMergeCommit":false,"messageTitle":"Fix styling","messageBody":"","tags":["A-Release"],"fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":3}}},{"hash":"70bbe84a9bc070af489a29ef7091d12853f012fc","isMergeCommit":false,"messageTitle":"Refine user guide","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"md":{"insertions":3,"deletions":1}}}]}]},"authorFileTypeContributionMap":{"lyuanww":{"java":1546,"md":120,"fxml":45,"sh":0,"bat":0,"gradle":21,"txt":9}},"authorContributionVariance":{"lyuanww":36747.434},"authorDisplayNameMap":{"lyuanww":"CS2103T-F08-1 WONG..YUAN"}} +{"authorDailyContributionsMap":{"lyuanww":[{"date":"2023-08-22","commitResults":[{"hash":"c6e97e870b538a70e19a2b0fc52153d641c64e3a","isMergeCommit":false,"messageTitle":"Level-0","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":29,"deletions":6}}},{"hash":"0ccc33a6f9b70d7d6ef38c7cd429f46325838a16","isMergeCommit":false,"messageTitle":"Implement Level-1. Echo","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":3}}},{"hash":"967afecd7fbedc17554a0cba5e4a8a8bffa630b9","isMergeCommit":false,"messageTitle":"Implement Level-2. Add, List","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":55,"deletions":3}}}]},{"date":"2023-08-23","commitResults":[{"hash":"fb8e5c805cd2016f09ee94f39285bdd8d986a05d","isMergeCommit":false,"messageTitle":"Implement Level-3. Mark as Done","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":64,"deletions":4}}},{"hash":"9dbce38982529d32d2691b6e9ac65819bcf124b8","isMergeCommit":false,"messageTitle":"Implement Level-4. ToDos, Events, Deadlines","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":68,"deletions":4}}},{"hash":"deaa6778e74a25e9b2a4e4bbbeb42bb4000eadf6","isMergeCommit":false,"messageTitle":"Implement A-TextUiTesting: Automated Text UI Testing","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":9,"deletions":0},"java":{"insertions":4,"deletions":3}}},{"hash":"c3f82d433065944648d3f66103db25bab3264b33","isMergeCommit":false,"messageTitle":"Implement Level-5: Handle Errors","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":96,"deletions":33}}},{"hash":"2bccea029cd9c8a08fdf30622ee9bb8ad3c87c76","isMergeCommit":false,"messageTitle":"Implement Level-6: Delete","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"java":{"insertions":15,"deletions":0}}}]},{"date":"2023-08-29","commitResults":[{"hash":"b12162b9744032d51a415cd4bfc33f4a82f09bd3","isMergeCommit":false,"messageTitle":"Rename storage to tasklist","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":11}}},{"hash":"06c1fba4667299563816b1ca1d2db5deacb0545e","isMergeCommit":false,"messageTitle":"Implement Level7.Save","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":5,"deletions":0},"java":{"insertions":238,"deletions":46}}},{"hash":"be67a7db839501d32cf9abe87e8cea02b27b10cc","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-7\u0027","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{}}]},{"date":"2023-08-30","commitResults":[{"hash":"73b24673b73db15466a14611654b7f263d14cf17","isMergeCommit":false,"messageTitle":"Implement Level8.Dates and Times","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":2},"java":{"insertions":39,"deletions":10}}},{"hash":"e600e9eedb4175a1ed6ae124518c8675c9dd28f4","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-8\u0027","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{}},{"hash":"02d371e8eb1f959fda26241c403d9c9f55b7e5d6","isMergeCommit":false,"messageTitle":"Implement A-MoreOOP","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":164,"deletions":140}}},{"hash":"471c2a43aad01d3062e0f610ae2c360f863bd36b","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-more-oop\u0027","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{}},{"hash":"8e13c21430432a522d027fcebe2f43c551d3be17","isMergeCommit":false,"messageTitle":"Implement A-Packages","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1},"java":{"insertions":17,"deletions":0}}},{"hash":"e7ebe5c3a235a3d584fa5a015eace2608a93a062","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"f248bcda1c04a5a95ecb1692a4202faa92361ee5","isMergeCommit":false,"messageTitle":"Implement A-Gradle: Use Gradle","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":6,"deletions":0},"java":{"insertions":41,"deletions":39}}},{"hash":"da8ecb0d3f25656b5165decfbfdac4abe7e73d2e","isMergeCommit":false,"messageTitle":"Implement A-JUnit","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"txt":{"insertions":1,"deletions":5},"java":{"insertions":182,"deletions":16}}},{"hash":"3ae338292cb812336dd39d01b4e6a4ba0c3a10db","isMergeCommit":false,"messageTitle":"Change file not found message","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"de149f3c4ca2507e3b852ca6529cc6900789946c","isMergeCommit":false,"messageTitle":"Implement JavaDoc","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":236,"deletions":23}}},{"hash":"4e3d25e3968531f28986a08102256f6664e770aa","isMergeCommit":false,"messageTitle":"Implement Follow the Coding Standard","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":19,"deletions":10}}},{"hash":"4a01845e1034326925a46d959fe9a24aa0a50214","isMergeCommit":false,"messageTitle":"Implement Level-9: Find","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":24,"deletions":0}}},{"hash":"70591a5dcce109ff9a73ffcda372489c3d950fcc","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-CodingStandard\u0027","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{}},{"hash":"26dcd4ccb89f7bc19cc70f6330fb4b2e4829de85","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-9\u0027","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{}},{"hash":"c914a1f25cc5e345032dd2ec14949cd23bf71f95","isMergeCommit":true,"messageTitle":"Resolve merge conflicts","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-05","commitResults":[{"hash":"01204e4a0e0b5e025bfc9c0fc3a8cbc85bd7ea91","isMergeCommit":false,"messageTitle":"Restructure files","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":37,"deletions":10}}},{"hash":"26595cef351f427be58f0503efd5f14346eae907","isMergeCommit":false,"messageTitle":"Refactor: add command classes","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":1},"java":{"insertions":173,"deletions":54}}},{"hash":"3eae081ab49761ab47117d3e065a12702462a717","isMergeCommit":false,"messageTitle":"Add comments to Command classes","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":61,"deletions":8}}},{"hash":"de82176a275c8c8918bf01f515b6b802f61f41d6","isMergeCommit":false,"messageTitle":"Modify comment for processInputIntoCommand","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":4}}}]},{"date":"2023-09-06","commitResults":[{"hash":"1099a4432c70270be230a09d0f2c0fc4f5cf7b77","isMergeCommit":false,"messageTitle":"Resolve PR comments","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":36,"deletions":44}}},{"hash":"7a2fb65897e59505edec26fb14840b8aedca9663","isMergeCommit":false,"messageTitle":"Resolve PR comments - part 2","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":27,"deletions":8}}},{"hash":"03002ed0b317897bb2043c339e76924670ec7893","isMergeCommit":false,"messageTitle":"Fix checkstyle","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1},"java":{"insertions":60,"deletions":41}}}]},{"date":"2023-09-07","commitResults":[{"hash":"b7da33e629b1f7f02c26ae71fbf8ee37ab7e521c","isMergeCommit":false,"messageTitle":"Implement Level-10: GUI","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":14,"deletions":0},"fxml":{"insertions":35,"deletions":0},"java":{"insertions":259,"deletions":57}}},{"hash":"039282b64d5ecafa52c0c91421d5c4b2bbfe0d02","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-10\u0027","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-10","commitResults":[{"hash":"da819b56ff13c4d5c4238aa8c178ac878fcfb92c","isMergeCommit":false,"messageTitle":"Fix Junit Test","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":10}}}]},{"date":"2023-09-11","commitResults":[{"hash":"309360a4227fb21c5875d01585303297676562c2","isMergeCommit":false,"messageTitle":"Add necessary changes to build JAR file","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"txt":{"insertions":0,"deletions":1},"java":{"insertions":2,"deletions":2}}},{"hash":"7e701233c61393909f951687f09028b7bc180be9","isMergeCommit":false,"messageTitle":"Add approriate error handling during file creation","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":2}}},{"hash":"d1afff1ea903a54956c123ab4336baefdbc37d51","isMergeCommit":false,"messageTitle":"Add assertions","messageBody":"Some files have pre-existing assumptions that should be verified during\nruntime.\n\nAssertions are added to Duke.java, Parser.java and TaskList.java. More\nassertions are to be added if applicable.\n\nAssertions are used to define assumptions about the program state so that the runtime can verify them.\n","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":0}}}]},{"date":"2023-09-12","commitResults":[{"hash":"2b10ed983fa65f8c3487ce34ea188d4bf730eeb9","isMergeCommit":true,"messageTitle":"Merge pull request #1 from lyuanww/branch-A-Assertions","messageBody":"Add assertions","tags":["A-Assertions"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-13","commitResults":[{"hash":"720e8b849b89e9a99c8a7e9204bb47495222f1dd","isMergeCommit":false,"messageTitle":"Fix bug where message not displayed when task is marked as undone","messageBody":"Remove System.out.println in TaskList.java\n","tags":["A-FullCommitMessage"],"fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":2}}},{"hash":"59f76ffaa24d79c92d5aac9ce4a6e2054184f2fc","isMergeCommit":false,"messageTitle":"Implement A-CodeQuality","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":9}}},{"hash":"617ea734de80de1a73555365ef4ae5c0f3444527","isMergeCommit":true,"messageTitle":"Merge pull request #2 from lyuanww/branch-A-CodeQuality","messageBody":"Implement A-CodeQuality","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{}},{"hash":"ce8129d466365fbfe7ff80d2a82c9107beff17e5","isMergeCommit":false,"messageTitle":"Fix checkstyle","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":3}}},{"hash":"efb33f1304f8f960396173dae91ca17aa9fe00e0","isMergeCommit":false,"messageTitle":"Implement Use Streams","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":9}}},{"hash":"52084a841c0a321e175401c817a76ffbf9a2e5ac","isMergeCommit":true,"messageTitle":"Merge pull request #3 from lyuanww/branch-A-Streams","messageBody":"Implement Use Streams","tags":["A-Streams"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-17","commitResults":[{"hash":"411832aac4885a3522a8e752e8f91cff9f96fa18","isMergeCommit":false,"messageTitle":"Implement C-Sort","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":63,"deletions":12}}},{"hash":"af4bd6575b9c1f44051648a8a38ac4fa0de50f8f","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-C-Sort\u0027","messageBody":"","tags":["BCD-Extension"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-19","commitResults":[{"hash":"8a6329c1f3a67207d78412ca022559b759761cd8","isMergeCommit":false,"messageTitle":"Add styling to chatbot and add resizing property","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":23,"deletions":15},"java":{"insertions":6,"deletions":2}}},{"hash":"fdac561b32970a300b2cec68c32af21934a4adf9","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-BetterGui\u0027","messageBody":"","tags":["A-BetterGui"],"fileTypesAndContributionMap":{}},{"hash":"30f7ee034df1df9b3f22115e7a816a836bd975c4","isMergeCommit":false,"messageTitle":"Implement: add personality","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":6,"deletions":2},"java":{"insertions":4,"deletions":4}}},{"hash":"232c05d6b7a09b36ad579d42132e60da3f8ede18","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Personality\u0027","messageBody":"","tags":["A-Personality"],"fileTypesAndContributionMap":{}},{"hash":"7ccc1db78e9e3449751df82e479cccfd9613b96f","isMergeCommit":false,"messageTitle":"fix: bug where incorrect datetime causes null pointer exception","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":34,"deletions":7}}}]},{"date":"2023-09-20","commitResults":[{"hash":"e10538951fecc8a70c603bd505c34cfc6806df94","isMergeCommit":false,"messageTitle":"fix: styling","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":2,"deletions":4}}},{"hash":"42ca26d13379734df1e3c0a73d0e411213328468","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":125,"deletions":13}}},{"hash":"31e5a4331ec61665e4b272c401f2b109e97765bb","isMergeCommit":false,"messageTitle":"change jar file name and fix minor styling","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"java":{"insertions":1,"deletions":1}}},{"hash":"39ba2e6ba7f9b762ff9348d0a6e11cc73c74818b","isMergeCommit":false,"messageTitle":"fix: bug where program is not exited","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}},{"hash":"a4757a5fc3f7af3d3bce3bed30cd75078b08569c","isMergeCommit":false,"messageTitle":"Remove hard-coded file path","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":1}}},{"hash":"e7673038d25094ea32f104e8287d0d279d56c733","isMergeCommit":false,"messageTitle":"Add minor changes","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":31,"deletions":14}}},{"hash":"0d9ef1788a3cc66c22bac6824a14cf2d21c98f44","isMergeCommit":false,"messageTitle":"Fix styling","messageBody":"","tags":["A-Release"],"fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":3}}},{"hash":"70bbe84a9bc070af489a29ef7091d12853f012fc","isMergeCommit":false,"messageTitle":"Refine user guide","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"md":{"insertions":3,"deletions":1}}}]},{"date":"2023-10-17","commitResults":[{"hash":"aa08798754a0713a712fbe0877597eff2a29d083","isMergeCommit":false,"messageTitle":"Correct datetime format for ug","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":2,"deletions":2}}}]}]},"authorFileTypeContributionMap":{"lyuanww":{"java":1546,"md":120,"fxml":45,"sh":0,"bat":0,"gradle":21,"txt":9}},"authorContributionVariance":{"lyuanww":22559.814},"authorDisplayNameMap":{"lyuanww":"CS2103T-F08-1 WONG..YUAN"}} diff --git a/nathanielcalimag_ip_master/authorship.json b/nathanielcalimag_ip_master/authorship.json index 0e0c3ebf..99e2cd3c 100644 --- a/nathanielcalimag_ip_master/authorship.json +++ b/nathanielcalimag_ip_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# Duke project template","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"This is a project template for a greenfield Java project. It\u0027s named after the","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"1. Open Intellij (if you are not in the welcome screen,","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" click `File` \u003e `Close Project` to close the existing project first)","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":13,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":14,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":15,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"1. Configure the project to use **JDK 11** (not other versions) as explained","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).\u003cbr\u003e","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" In the same dialog, set the **Project language level** field to","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" the `SDK default` option.","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"3. After that, locate the `src/main/java/duke/Duke.java` file, right-click","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" it, and choose `Run Duke.main()` (if the code editor is showing","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" compile errors, try restarting the IDE). If the setup is correct, you should","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" see something like the below as the output:","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" ____ _ ","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" | _ \\ _ _| | _____ ","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" | | | | | | | |/ / _ \\","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":" | |_| | |_| | \u003c __/","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":" |____/ \\__,_|_|\\_\\___|","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"nathanielcalimag":12,"-":19}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2023-09-08"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"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":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"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":"nathanielcalimag"},"content":" mainClass.set(\"duke.ui.Launcher\")","lastModifiedDate":"2023-09-10"},{"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":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" archiveFileName \u003d \u0027duke.jar\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":"checkstyle {","lastModifiedDate":"2023-09-08"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2023-09-08"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-08"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":61,"author":{"gitId":"-"},"content":"run {","lastModifiedDate":"2020-05-25"},{"lineNumber":62,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":63,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":"tasks {","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" compileJava {","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" options.encoding \u003d \u0027UTF-8\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":28,"-":41}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"# ChatNat User Guide","lastModifiedDate":"2023-09-22"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"**ChatNat** is the second-brain tool you need to transform the way you manage","lastModifiedDate":"2023-09-22"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"![Sample Screenshot of ChatNat](Ui.png)","lastModifiedDate":"2023-09-22"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":8,"author":{"gitId":"-"},"content":"## Features","lastModifiedDate":"2019-07-29"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"### Adding a to-do: `todo`","lastModifiedDate":"2023-09-22"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"Adds a todo task to the task list.","lastModifiedDate":"2023-09-22"},{"lineNumber":13,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"Format: `todo DESCRIPTION`","lastModifiedDate":"2023-09-22"},{"lineNumber":15,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":17,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"- `todo Haircut`","lastModifiedDate":"2023-09-22"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"- `todo Groceries`","lastModifiedDate":"2023-09-22"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":"\u003e todo Haircut","lastModifiedDate":"2023-09-22"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":"Got it. I\u0027ve added this task:","lastModifiedDate":"2023-09-22"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" [T][] Haircut","lastModifiedDate":"2023-09-22"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"Now you have 1 task in the list.","lastModifiedDate":"2023-09-22"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":"### Adding a deadline: `deadline`","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":"Adds a deadline task to the task list.","lastModifiedDate":"2023-09-22"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":"Format: `deadline DESCRIPTION /by DATE [TIME]`","lastModifiedDate":"2023-09-22"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":"- Time has to be in 24-hour format. (e.g. `1200`).","lastModifiedDate":"2023-09-22"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":"- Indicating time is optional. Time is `0000` if not indicated.","lastModifiedDate":"2023-09-22"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":"- Use `FullYear-Month-Date` or `Date/Month/FullYear` for DATE.","lastModifiedDate":"2023-09-22"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":"- Indicating the `/by` with a valid date is compulsory.","lastModifiedDate":"2023-09-22"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":"- `deadline CS2103T Quiz /by 2023-09-23 1200`","lastModifiedDate":"2023-09-22"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":"- `deadline CS2105 Assignment /by 24/9/2023`","lastModifiedDate":"2023-09-22"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":"\u003e deadline CS2103T Quiz /by 2023-09-23 1200","lastModifiedDate":"2023-09-22"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":"Got it. I\u0027ve added this task:","lastModifiedDate":"2023-09-22"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" [D][] CS2103T Quiz (by: 23 Sep 2023, 1200)","lastModifiedDate":"2023-09-22"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":"Now you have 2 tasks in the list.","lastModifiedDate":"2023-09-22"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":"### Adding an event: `event`","lastModifiedDate":"2023-09-22"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":"Adds a event task to the task list.","lastModifiedDate":"2023-09-22"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":"Format: `event DESCRIPTION /from DATE [TIME] /to DATE [TIME]`","lastModifiedDate":"2023-09-22"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":"- Time has to be in 24-hour format. (e.g. `1200`).","lastModifiedDate":"2023-09-22"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":"- Indicating time is optional. Time is `0000` if not indicated.","lastModifiedDate":"2023-09-22"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":"- Use `FullYear-Month-Date` or `Date/Month/FullYear` for DATE.","lastModifiedDate":"2023-09-22"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":"- Indicating the `/by` with a valid date is compulsory.","lastModifiedDate":"2023-09-22"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":65,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":"- `event CS2103T meeting /from 2023-09-23 /to 2023-09-23 0100`","lastModifiedDate":"2023-09-22"},{"lineNumber":67,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":"\u003e event CS2103T meeting /from 2023-09-23 /to 2023-09-23 0100","lastModifiedDate":"2023-09-22"},{"lineNumber":70,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":"Got it. I\u0027ve added this task:","lastModifiedDate":"2023-09-22"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" [E][] CS2103T meeting (from: 23 Sep 2023, 0000 to: 23 Sep 2023, 0100)","lastModifiedDate":"2023-09-22"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":"Now you have 3 tasks in the list.","lastModifiedDate":"2023-09-22"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":75,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":"### Listing all tasks: `list`","lastModifiedDate":"2023-09-22"},{"lineNumber":77,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":"Lists all the tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":79,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":"Format: `list`","lastModifiedDate":"2023-09-22"},{"lineNumber":81,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":83,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":"\u003e list","lastModifiedDate":"2023-09-22"},{"lineNumber":86,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":"Here are the tasks in your list:","lastModifiedDate":"2023-09-22"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":"1.[T][] Haircut","lastModifiedDate":"2023-09-22"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":"2.[D][] CS2103T Quiz (by: 23 Sep 2023, 1200)","lastModifiedDate":"2023-09-22"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":"3.[E][] CS2103T meeting (from: 23 Sep 2023, 0000 to: 23 Sep 2023, 0100)","lastModifiedDate":"2023-09-22"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":92,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":"- Tasks appear in the order they were added.","lastModifiedDate":"2023-09-22"},{"lineNumber":94,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":"### Finding tasks: `find`","lastModifiedDate":"2023-09-22"},{"lineNumber":96,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":"Finds matching tasks based on search input.","lastModifiedDate":"2023-09-22"},{"lineNumber":98,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":"Format: `find KEYWORDS`","lastModifiedDate":"2023-09-22"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":"- The keywords are **case-sensitive**.","lastModifiedDate":"2023-09-22"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":105,"author":{"gitId":"nathanielcalimag"},"content":"- `find CS2103T`","lastModifiedDate":"2023-09-22"},{"lineNumber":106,"author":{"gitId":"nathanielcalimag"},"content":"- `find Raffles Hall`","lastModifiedDate":"2023-09-22"},{"lineNumber":107,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":108,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2021-07-17"},{"lineNumber":109,"author":{"gitId":"nathanielcalimag"},"content":"\u003e find CS2103T","lastModifiedDate":"2023-09-22"},{"lineNumber":110,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":111,"author":{"gitId":"nathanielcalimag"},"content":"Here are the matching tasks in your list:","lastModifiedDate":"2023-09-22"},{"lineNumber":112,"author":{"gitId":"nathanielcalimag"},"content":"1.[D][] CS2103T Quiz (by: 23 Sep 2023, 1200)","lastModifiedDate":"2023-09-22"},{"lineNumber":113,"author":{"gitId":"nathanielcalimag"},"content":"2.[E][] CS2103T meeting (from: 23 Sep 2023, 0000 to: 23 Sep 2023, 0100)","lastModifiedDate":"2023-09-22"},{"lineNumber":114,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2021-07-17"},{"lineNumber":115,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":116,"author":{"gitId":"nathanielcalimag"},"content":"- Tasks appear in the order they were added.","lastModifiedDate":"2023-09-22"},{"lineNumber":117,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":118,"author":{"gitId":"nathanielcalimag"},"content":"### Deleting a task: `delete`","lastModifiedDate":"2023-09-22"},{"lineNumber":119,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":120,"author":{"gitId":"nathanielcalimag"},"content":"Deletes the specified task.","lastModifiedDate":"2023-09-22"},{"lineNumber":121,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":122,"author":{"gitId":"nathanielcalimag"},"content":"Format: `delete INDEX`","lastModifiedDate":"2023-09-22"},{"lineNumber":123,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":124,"author":{"gitId":"nathanielcalimag"},"content":"- Deletes the task at the specified index.","lastModifiedDate":"2023-09-22"},{"lineNumber":125,"author":{"gitId":"nathanielcalimag"},"content":"- The index refers to the index number shown in the displayed tasks list.","lastModifiedDate":"2023-09-22"},{"lineNumber":126,"author":{"gitId":"nathanielcalimag"},"content":"- The index must be a positive integer 1, 2, 3, ….","lastModifiedDate":"2023-09-22"},{"lineNumber":127,"author":{"gitId":"nathanielcalimag"},"content":"- The minimum index is 1, and maximum index is the number of tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":128,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":129,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":130,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":131,"author":{"gitId":"nathanielcalimag"},"content":"- `delete 1`","lastModifiedDate":"2023-09-22"},{"lineNumber":132,"author":{"gitId":"nathanielcalimag"},"content":"- `delete 2`","lastModifiedDate":"2023-09-22"},{"lineNumber":133,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":134,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":135,"author":{"gitId":"nathanielcalimag"},"content":"\u003e delete 1","lastModifiedDate":"2023-09-22"},{"lineNumber":136,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":137,"author":{"gitId":"nathanielcalimag"},"content":"Noted. I\u0027ve removed this task:","lastModifiedDate":"2023-09-22"},{"lineNumber":138,"author":{"gitId":"nathanielcalimag"},"content":" [T][] Haircut","lastModifiedDate":"2023-09-22"},{"lineNumber":139,"author":{"gitId":"nathanielcalimag"},"content":"Now you have 2 tasks in the list.","lastModifiedDate":"2023-09-22"},{"lineNumber":140,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":141,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":142,"author":{"gitId":"nathanielcalimag"},"content":"- **WARNING: This action is irreversible.**","lastModifiedDate":"2023-09-22"},{"lineNumber":143,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":144,"author":{"gitId":"nathanielcalimag"},"content":"### Marking a task: `mark`","lastModifiedDate":"2023-09-22"},{"lineNumber":145,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":146,"author":{"gitId":"nathanielcalimag"},"content":"Marks a specified task.","lastModifiedDate":"2023-09-22"},{"lineNumber":147,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":148,"author":{"gitId":"nathanielcalimag"},"content":"Format: `mark INDEX`","lastModifiedDate":"2023-09-22"},{"lineNumber":149,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":150,"author":{"gitId":"nathanielcalimag"},"content":"- Marks the task at the specified index.","lastModifiedDate":"2023-09-22"},{"lineNumber":151,"author":{"gitId":"nathanielcalimag"},"content":"- The index refers to the index number shown in the displayed tasks list.","lastModifiedDate":"2023-09-22"},{"lineNumber":152,"author":{"gitId":"nathanielcalimag"},"content":"- The index must be a positive integer 1, 2, 3, ….","lastModifiedDate":"2023-09-22"},{"lineNumber":153,"author":{"gitId":"nathanielcalimag"},"content":"- The minimum index is 1, and maximum index is the number of tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":154,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":155,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":156,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":157,"author":{"gitId":"nathanielcalimag"},"content":"- `mark 1`","lastModifiedDate":"2023-09-22"},{"lineNumber":158,"author":{"gitId":"nathanielcalimag"},"content":"- `mark 2`","lastModifiedDate":"2023-09-22"},{"lineNumber":159,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":160,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":161,"author":{"gitId":"nathanielcalimag"},"content":"\u003e mark 1","lastModifiedDate":"2023-09-22"},{"lineNumber":162,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":163,"author":{"gitId":"nathanielcalimag"},"content":"Nice! I\u0027ve marked this task as done:","lastModifiedDate":"2023-09-22"},{"lineNumber":164,"author":{"gitId":"nathanielcalimag"},"content":" [D][X] CS2103T Quiz (by: 23 Sep 2023, 1200)","lastModifiedDate":"2023-09-22"},{"lineNumber":165,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":166,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":167,"author":{"gitId":"nathanielcalimag"},"content":"### Unmarking a task: `unmark`","lastModifiedDate":"2023-09-22"},{"lineNumber":168,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":169,"author":{"gitId":"nathanielcalimag"},"content":"Unmarks a specified task.","lastModifiedDate":"2023-09-22"},{"lineNumber":170,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":171,"author":{"gitId":"nathanielcalimag"},"content":"Format: `unmark INDEX`","lastModifiedDate":"2023-09-22"},{"lineNumber":172,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":173,"author":{"gitId":"nathanielcalimag"},"content":"- Unmarks the task at the specified index.","lastModifiedDate":"2023-09-22"},{"lineNumber":174,"author":{"gitId":"nathanielcalimag"},"content":"- The index refers to the index number shown in the displayed tasks list.","lastModifiedDate":"2023-09-22"},{"lineNumber":175,"author":{"gitId":"nathanielcalimag"},"content":"- The index must be a positive integer 1, 2, 3, ….","lastModifiedDate":"2023-09-22"},{"lineNumber":176,"author":{"gitId":"nathanielcalimag"},"content":"- The minimum index is 1, and maximum index is the number of tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":177,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":178,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":179,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":180,"author":{"gitId":"nathanielcalimag"},"content":"- `unmark 1`","lastModifiedDate":"2023-09-22"},{"lineNumber":181,"author":{"gitId":"nathanielcalimag"},"content":"- `unmark 2`","lastModifiedDate":"2023-09-22"},{"lineNumber":182,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":183,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":184,"author":{"gitId":"nathanielcalimag"},"content":"\u003e unmark 1","lastModifiedDate":"2023-09-22"},{"lineNumber":185,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":186,"author":{"gitId":"nathanielcalimag"},"content":"OK, I\u0027ve marked this task as not done yet:","lastModifiedDate":"2023-09-22"},{"lineNumber":187,"author":{"gitId":"nathanielcalimag"},"content":" [D][] CS2103T Quiz (by: 23 Sep 2023, 1200)","lastModifiedDate":"2023-09-22"},{"lineNumber":188,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":189,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":190,"author":{"gitId":"nathanielcalimag"},"content":"### Exiting ChatNat: `bye`","lastModifiedDate":"2023-09-22"},{"lineNumber":191,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":192,"author":{"gitId":"nathanielcalimag"},"content":"Exits the application.","lastModifiedDate":"2023-09-22"},{"lineNumber":193,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":194,"author":{"gitId":"nathanielcalimag"},"content":"Format: `bye`","lastModifiedDate":"2023-09-22"}],"authorContributionMap":{"nathanielcalimag":168,"-":26}},{"path":"src/main/java/duke/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-22"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.UnknownCommandException;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-23"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" * Serves as the entry point to run the application.","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-23"},{"lineNumber":12,"author":{"gitId":"-"},"content":"public class Duke {","lastModifiedDate":"2019-07-29"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" private final TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" private final Parser parser \u003d new Parser();","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code Duke} instance.","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" public Duke() {","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" Storage storage \u003d new DukeStorage();","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" this.taskList.setStorage(storage);","lastModifiedDate":"2023-09-10"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" this.taskList.loadTasks();","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-22"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" this.taskList.saveTasks();","lastModifiedDate":"2023-09-22"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException ioException) {","lastModifiedDate":"2023-09-22"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" System.out.printf(Messages.ERROR_PREFIX + \"%n\", ioException.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException | IllegalArgumentException | StorageCreationException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" System.out.printf(Messages.ERROR_PREFIX + \"%n\", e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the output of a command execution, given an input.","lastModifiedDate":"2023-09-10"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-10"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The input command string.","lastModifiedDate":"2023-09-10"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" * @return The output string.","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" public String getResponse(String input) {","lastModifiedDate":"2023-09-10"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-08-24"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" return parser.executeCommand(input, taskList);","lastModifiedDate":"2023-09-10"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" } catch (UnknownCommandException e) {","lastModifiedDate":"2023-08-24"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX, e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":47,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":48,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"nathanielcalimag":45,"-":3}},{"path":"src/main/java/duke/DukeStorage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.File;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-08"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-08"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * Represents the interface between the application and the storage file.","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" * Allows the application to read and write to a storage txt file.","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"public class DukeStorage implements Storage {","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" private static final String DIRECTORY_PATH \u003d \"data\";","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" private static final String FILE_PATH \u003d \"duke.txt\";","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" public DukeStorage() throws IOException, StorageCreationException {","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" this.initialiseStorage();","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" * Reads the tasks from the storage file, and removes duplicates from storage.","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * If the storage file and directory does not exist, it will be created.","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If there are not enough arguments to create tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DateTimeParseException If the date in storage is formatted wrongly.","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" * @throws StorageCreationException If the storage file and directory creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If the storage file creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" public List\u003cTask\u003e readStorage() throws InsufficientArgumentsException, DateTimeParseException,","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" StorageCreationException, IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" initialiseStorage();","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" List\u003cTask\u003e tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" String storagePath \u003d String.format(\"./%s/%s\", DIRECTORY_PATH, FILE_PATH);","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" File file \u003d new File(storagePath);","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" Scanner scanner \u003d new Scanner(file);","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" boolean hasDuplicates \u003d false;","lastModifiedDate":"2023-09-22"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" while (Objects.requireNonNull(scanner).hasNext()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" String input \u003d scanner.nextLine();","lastModifiedDate":"2023-09-05"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" String taskCode \u003d input.substring(0, 1);","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" String taskInput \u003d input.length() \u003e 4 ? input.substring(4) : \"\";","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d Parser.parse(taskCode, taskInput);","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" if (tasks.contains(task)) {","lastModifiedDate":"2023-09-22"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" hasDuplicates \u003d true;","lastModifiedDate":"2023-09-22"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" continue;","lastModifiedDate":"2023-09-22"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-22"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" tasks.add(task);","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" if (hasDuplicates) {","lastModifiedDate":"2023-09-22"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" this.updateStorage(tasks);","lastModifiedDate":"2023-09-22"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-22"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" return tasks;","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" * Rewrites the storage file from a list of tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" * @param tasks The list of tasks to be written into storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If writing to the file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" public void updateStorage(List\u003cTask\u003e tasks) throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" String storagePath \u003d String.format(\"./%s/%s\", DIRECTORY_PATH, FILE_PATH);","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" FileWriter fw \u003d new FileWriter(storagePath);","lastModifiedDate":"2023-09-05"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" for (Task task : tasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" fw.write(task.encode() + System.lineSeparator());","lastModifiedDate":"2023-09-05"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" fw.close();","lastModifiedDate":"2023-09-05"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" throw new IOException(Messages.FAILED_TO_WRITE_FILE_ERROR_MESSAGE);","lastModifiedDate":"2023-09-05"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":" * Initialises the storage directory and file if they do not exist.","lastModifiedDate":"2023-09-05"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":" * @throws StorageCreationException If the storage file and directory creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If the storage file creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" private void initialiseStorage() throws IOException, StorageCreationException {","lastModifiedDate":"2023-09-05"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" String directoryPath \u003d String.format(\"./%s\", DIRECTORY_PATH);","lastModifiedDate":"2023-09-05"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" String storagePath \u003d String.format(\"./%s/%s\", DIRECTORY_PATH, FILE_PATH);","lastModifiedDate":"2023-09-05"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" File directory \u003d new File(directoryPath);","lastModifiedDate":"2023-09-05"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" if (!directory.exists()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":" if (!directory.mkdir()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" throw new StorageCreationException(Messages.FAILED_TO_CREATE_FOLDER_ERROR_MESSAGE);","lastModifiedDate":"2023-09-05"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":" File file \u003d new File(storagePath);","lastModifiedDate":"2023-09-05"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":" if (!file.exists()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":" if (!file.createNewFile()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":" throw new StorageCreationException(Messages.FAILED_TO_CREATE_FILE_ERROR_MESSAGE);","lastModifiedDate":"2023-09-05"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":105,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":106,"author":{"gitId":"nathanielcalimag"},"content":" throw new IOException(Messages.FAILED_TO_CREATE_FILE_ERROR_MESSAGE);","lastModifiedDate":"2023-09-05"},{"lineNumber":107,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":108,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":109,"author":{"gitId":"nathanielcalimag"},"content":" assert directory.exists() : \"Storage directory must exist\";","lastModifiedDate":"2023-09-20"},{"lineNumber":110,"author":{"gitId":"nathanielcalimag"},"content":" assert file.exists() : \"Storage file must exist\";","lastModifiedDate":"2023-09-20"},{"lineNumber":111,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":112,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":112}},{"path":"src/main/java/duke/Messages.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Stores the string messages of the application.","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public class Messages {","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" // General","lastModifiedDate":"2023-09-22"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" public static final String APPLICATION_NAME \u003d \"ChatNat\";","lastModifiedDate":"2023-09-22"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" // Regular messages","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" public static final String GREETING_MESSAGE \u003d \" Hello! I\u0027m ChatNat!\\n What can I do for you?\";","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" public static final String LIST_MESSAGE \u003d \" Here are the tasks in your list:\";","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" public static final String FIND_MESSAGE \u003d \" Here are the matching tasks in your list:\";","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" public static final String INSERT_MESSAGE \u003d \" Got it. I\u0027ve added this task:\\n %s\\n Now you \"","lastModifiedDate":"2023-09-08"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" + \"have %d %s in the list.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" public static final String MARKED_MESSAGE \u003d \" Nice! I\u0027ve marked this task as done:\\n %s\";","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" public static final String UNMARKED_MESSAGE \u003d \" OK, I\u0027ve marked this task as not done yet:\\n \"","lastModifiedDate":"2023-09-08"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" + \" %s\";","lastModifiedDate":"2023-09-08"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" public static final String DELETE_MESSAGE \u003d \" Noted. I\u0027ve removed this task:\\n %s\\n Now you\"","lastModifiedDate":"2023-09-08"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" + \" have %d tasks in the list.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" public static final String EXIT_MESSAGE \u003d \" Bye. Hope to see you again soon!\";","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" // Error messages","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" public static final String ERROR_PREFIX \u003d \" ☹ OOPS!!! %s\";","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" public static final String INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE \u003d \"The %s of a %s cannot be \"","lastModifiedDate":"2023-09-08"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" + \"empty.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" public static final String UNKNOWN_COMMAND_ERROR_MESSAGE \u003d \"I\u0027m sorry, but I don\u0027t know what \"","lastModifiedDate":"2023-09-08"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" + \"that means :-(\";","lastModifiedDate":"2023-09-08"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" public static final String FAILED_TO_CREATE_FILE_ERROR_MESSAGE \u003d \"We couldn\u0027t create a new \"","lastModifiedDate":"2023-09-08"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" + \"data/duke.txt file.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" public static final String FAILED_TO_WRITE_FILE_ERROR_MESSAGE \u003d \"We couldn\u0027t write to the \"","lastModifiedDate":"2023-09-08"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" + \"data/duke.txt file.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" public static final String FAILED_TO_CREATE_FOLDER_ERROR_MESSAGE \u003d \"We couldn\u0027t create a new \"","lastModifiedDate":"2023-09-08"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" + \"data/duke.txt file.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" public static final String INVALID_DATE_TIME_FORMAT \u003d \"\\\"%s\\\" is not a valid date time format.\";","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" public static final String DUPLICATE_TASKS_ERROR_MESSAGE \u003d \"Task \\\"%s\\\" already exists!\";","lastModifiedDate":"2023-09-22"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" public static final String INVALID_INDEX_ERROR_MESSAGE \u003d \"\\\"%s\\\" is not a valid index!\";","lastModifiedDate":"2023-09-22"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":44}},{"path":"src/main/java/duke/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalTime;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Arrays;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.HashMap;","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.Command;","lastModifiedDate":"2023-09-08"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.DeleteCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.ExitCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.FindCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.InsertCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.ListCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.MarkCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.UnmarkCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-08"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.UnknownCommandException;","lastModifiedDate":"2023-09-08"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Deadline;","lastModifiedDate":"2023-09-08"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Event;","lastModifiedDate":"2023-09-08"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.ToDo;","lastModifiedDate":"2023-09-08"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" * Represents the Application object responsible for storing and executing commands.","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":"public class Parser {","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" public static final String OUTPUT_DATE_TIME_PATTERN \u003d \"d MMM yyyy, HHmm\";","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" public static final String STORAGE_DATE_TIME_PATTERN \u003d \"yyyy-MM-dd HHmm\";","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" * All supported date time formats for our application.","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" private static final List\u003cString\u003e dateTimeFormats \u003d Arrays.asList(","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" \"d/M/yyyy\", \"d/M/yyyy HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" \"d/MM/yyyy\", \"d/MM/yyyy HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" \"dd/M/yyyy\", \"dd/M/yyyy HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" \"dd/MM/yyyy\", \"dd/MM/yyyy HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" \"yyyy-M-d\", \"yyyy-M-d HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" \"yyyy-M-dd\", \"yyyy-M-dd HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" \"yyyy-MM-d\", \"yyyy-MM-d HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" \"yyyy-MM-dd\", \"yyyy-MM-dd HHmm\"","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" );","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" * All commands stored in a map.","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" private final HashMap\u003cString, Command\u003e commandMap \u003d new HashMap\u003c\u003e();","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-08"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code Parser} instance.","lastModifiedDate":"2023-09-08"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-08"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" public Parser() {","lastModifiedDate":"2023-09-05"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(\"delete\", new DeleteCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(\"list\", new ListCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(\"mark\", new MarkCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(\"unmark\", new UnmarkCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(\"find\", new FindCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(new String[]{Deadline.TASK_TYPE, Event.TASK_TYPE, ToDo.TASK_TYPE},","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" new InsertCommand());","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(new String[]{\"bye\", \"exit\", \"leave\", \"quit\"}, new ExitCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" assert !commandMap.isEmpty() : \"Command map cannot be empty\";","lastModifiedDate":"2023-09-20"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" * Parses a date time string to get a local date time object.","lastModifiedDate":"2023-09-05"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" * @param dateTimeString The date time string to be parsed.","lastModifiedDate":"2023-09-05"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" * @return The local date time object based on the string.","lastModifiedDate":"2023-09-05"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" public static LocalDateTime parseDate(String dateTimeString) {","lastModifiedDate":"2023-08-31"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" for (String format : dateTimeFormats) {","lastModifiedDate":"2023-08-31"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTime \u003d Parser.parseDateFormat(dateTimeString, format);","lastModifiedDate":"2023-09-21"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":" if (dateTime !\u003d null) {","lastModifiedDate":"2023-09-21"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":" return dateTime;","lastModifiedDate":"2023-09-21"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" throw new DateTimeParseException(String.format(Messages.INVALID_DATE_TIME_FORMAT,","lastModifiedDate":"2023-09-22"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":" dateTimeString), dateTimeString, 0);","lastModifiedDate":"2023-09-22"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" * Parses a date time string to get a local date time object based on a datetime format.","lastModifiedDate":"2023-09-21"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" * @param dateTimeString The date time string to be parsed.","lastModifiedDate":"2023-09-21"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" * @param format The datetime format.","lastModifiedDate":"2023-09-21"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":" * @return The local date time object based on the string if it is compatible with the format.","lastModifiedDate":"2023-09-21"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":" private static LocalDateTime parseDateFormat(String dateTimeString, String format) {","lastModifiedDate":"2023-09-21"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":" if (format.contains(\"HHmm\")) {","lastModifiedDate":"2023-08-31"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":" return LocalDateTime.parse(dateTimeString, DateTimeFormatter.ofPattern(format));","lastModifiedDate":"2023-08-31"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":" // input without specifying time will default to 0000","lastModifiedDate":"2023-08-31"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":" LocalDate date \u003d LocalDate.parse(dateTimeString,","lastModifiedDate":"2023-08-31"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":" DateTimeFormatter.ofPattern(format));","lastModifiedDate":"2023-08-31"},{"lineNumber":105,"author":{"gitId":"nathanielcalimag"},"content":" return LocalDateTime.of(date, LocalTime.MIDNIGHT);","lastModifiedDate":"2023-08-31"},{"lineNumber":106,"author":{"gitId":"nathanielcalimag"},"content":" } catch (DateTimeParseException ignored) {","lastModifiedDate":"2023-08-31"},{"lineNumber":107,"author":{"gitId":"nathanielcalimag"},"content":" return null;","lastModifiedDate":"2023-09-21"},{"lineNumber":108,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":109,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":110,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":111,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":112,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a task based on task type and input string.","lastModifiedDate":"2023-09-05"},{"lineNumber":113,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":114,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskType The string representing the task type.","lastModifiedDate":"2023-09-05"},{"lineNumber":115,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The input string used for creating a new task.","lastModifiedDate":"2023-09-05"},{"lineNumber":116,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created task.","lastModifiedDate":"2023-09-05"},{"lineNumber":117,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If input is insufficient to create task.","lastModifiedDate":"2023-09-05"},{"lineNumber":118,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":119,"author":{"gitId":"nathanielcalimag"},"content":" public static Task createTask(String taskType, String input)","lastModifiedDate":"2023-09-05"},{"lineNumber":120,"author":{"gitId":"nathanielcalimag"},"content":" throws InsufficientArgumentsException, DateTimeParseException {","lastModifiedDate":"2023-09-05"},{"lineNumber":121,"author":{"gitId":"nathanielcalimag"},"content":" if (Objects.equals(input, \"\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":122,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-05"},{"lineNumber":123,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE, \"description\", taskType));","lastModifiedDate":"2023-09-05"},{"lineNumber":124,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":125,"author":{"gitId":"nathanielcalimag"},"content":" switch (taskType) {","lastModifiedDate":"2023-09-05"},{"lineNumber":126,"author":{"gitId":"nathanielcalimag"},"content":" case Deadline.TASK_TYPE:","lastModifiedDate":"2023-09-21"},{"lineNumber":127,"author":{"gitId":"nathanielcalimag"},"content":" return Deadline.parseUserInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":128,"author":{"gitId":"nathanielcalimag"},"content":" case Event.TASK_TYPE:","lastModifiedDate":"2023-09-21"},{"lineNumber":129,"author":{"gitId":"nathanielcalimag"},"content":" return Event.parseUserInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":130,"author":{"gitId":"nathanielcalimag"},"content":" case ToDo.TASK_TYPE:","lastModifiedDate":"2023-09-21"},{"lineNumber":131,"author":{"gitId":"nathanielcalimag"},"content":" return ToDo.parseUserInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":132,"author":{"gitId":"nathanielcalimag"},"content":" default:","lastModifiedDate":"2023-09-05"},{"lineNumber":133,"author":{"gitId":"nathanielcalimag"},"content":" return null;","lastModifiedDate":"2023-09-05"},{"lineNumber":134,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":135,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":136,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":137,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":138,"author":{"gitId":"nathanielcalimag"},"content":" * Parses an input from storage to create a task.","lastModifiedDate":"2023-09-05"},{"lineNumber":139,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":140,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskCode The char representing the task type.","lastModifiedDate":"2023-09-05"},{"lineNumber":141,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The input string used for creating a new task.","lastModifiedDate":"2023-09-05"},{"lineNumber":142,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created task.","lastModifiedDate":"2023-09-05"},{"lineNumber":143,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If input is insufficient to create task.","lastModifiedDate":"2023-09-05"},{"lineNumber":144,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DateTimeParseException If the date in storage is formatted wrongly.","lastModifiedDate":"2023-09-05"},{"lineNumber":145,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":146,"author":{"gitId":"nathanielcalimag"},"content":" public static Task parse(String taskCode, String input)","lastModifiedDate":"2023-09-05"},{"lineNumber":147,"author":{"gitId":"nathanielcalimag"},"content":" throws InsufficientArgumentsException, DateTimeParseException {","lastModifiedDate":"2023-09-05"},{"lineNumber":148,"author":{"gitId":"nathanielcalimag"},"content":" String taskType;","lastModifiedDate":"2023-09-05"},{"lineNumber":149,"author":{"gitId":"nathanielcalimag"},"content":" switch (taskCode) {","lastModifiedDate":"2023-09-05"},{"lineNumber":150,"author":{"gitId":"nathanielcalimag"},"content":" case Deadline.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":151,"author":{"gitId":"nathanielcalimag"},"content":" taskType \u003d Deadline.TASK_TYPE;","lastModifiedDate":"2023-09-21"},{"lineNumber":152,"author":{"gitId":"nathanielcalimag"},"content":" break;","lastModifiedDate":"2023-09-05"},{"lineNumber":153,"author":{"gitId":"nathanielcalimag"},"content":" case Event.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":154,"author":{"gitId":"nathanielcalimag"},"content":" taskType \u003d Event.TASK_TYPE;","lastModifiedDate":"2023-09-21"},{"lineNumber":155,"author":{"gitId":"nathanielcalimag"},"content":" break;","lastModifiedDate":"2023-09-05"},{"lineNumber":156,"author":{"gitId":"nathanielcalimag"},"content":" case ToDo.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":157,"author":{"gitId":"nathanielcalimag"},"content":" taskType \u003d ToDo.TASK_TYPE;","lastModifiedDate":"2023-09-21"},{"lineNumber":158,"author":{"gitId":"nathanielcalimag"},"content":" break;","lastModifiedDate":"2023-09-05"},{"lineNumber":159,"author":{"gitId":"nathanielcalimag"},"content":" default:","lastModifiedDate":"2023-09-05"},{"lineNumber":160,"author":{"gitId":"nathanielcalimag"},"content":" taskType \u003d \"\";","lastModifiedDate":"2023-09-05"},{"lineNumber":161,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":162,"author":{"gitId":"nathanielcalimag"},"content":" if (Objects.equals(input, \"\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":163,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-05"},{"lineNumber":164,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE,","lastModifiedDate":"2023-09-05"},{"lineNumber":165,"author":{"gitId":"nathanielcalimag"},"content":" \"isDone\", taskType));","lastModifiedDate":"2023-09-05"},{"lineNumber":166,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":167,"author":{"gitId":"nathanielcalimag"},"content":" if (input.length() \u003c 5) {","lastModifiedDate":"2023-09-05"},{"lineNumber":168,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-05"},{"lineNumber":169,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE, \"description\", taskType));","lastModifiedDate":"2023-09-05"},{"lineNumber":170,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":171,"author":{"gitId":"nathanielcalimag"},"content":" switch (taskCode) {","lastModifiedDate":"2023-09-05"},{"lineNumber":172,"author":{"gitId":"nathanielcalimag"},"content":" case Deadline.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":173,"author":{"gitId":"nathanielcalimag"},"content":" return Deadline.parseStorageInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":174,"author":{"gitId":"nathanielcalimag"},"content":" case Event.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":175,"author":{"gitId":"nathanielcalimag"},"content":" return Event.parseStorageInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":176,"author":{"gitId":"nathanielcalimag"},"content":" case ToDo.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":177,"author":{"gitId":"nathanielcalimag"},"content":" return ToDo.parseStorageInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":178,"author":{"gitId":"nathanielcalimag"},"content":" default:","lastModifiedDate":"2023-09-05"},{"lineNumber":179,"author":{"gitId":"nathanielcalimag"},"content":" return null;","lastModifiedDate":"2023-09-05"},{"lineNumber":180,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":181,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":182,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":183,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":184,"author":{"gitId":"nathanielcalimag"},"content":" * Validates arguments in input string.","lastModifiedDate":"2023-09-05"},{"lineNumber":185,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":186,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The input string used to create task.","lastModifiedDate":"2023-09-05"},{"lineNumber":187,"author":{"gitId":"nathanielcalimag"},"content":" * @param parameterName The parameter name to be checked.","lastModifiedDate":"2023-09-05"},{"lineNumber":188,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If input is missing arguments from task.","lastModifiedDate":"2023-09-05"},{"lineNumber":189,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":190,"author":{"gitId":"nathanielcalimag"},"content":" public static void validateContainsArgument(String input, String taskType,","lastModifiedDate":"2023-09-21"},{"lineNumber":191,"author":{"gitId":"nathanielcalimag"},"content":" String parameterName)","lastModifiedDate":"2023-09-05"},{"lineNumber":192,"author":{"gitId":"nathanielcalimag"},"content":" throws InsufficientArgumentsException {","lastModifiedDate":"2023-09-05"},{"lineNumber":193,"author":{"gitId":"nathanielcalimag"},"content":" if (!input.contains(String.format(\"/%s\", parameterName))) {","lastModifiedDate":"2023-09-05"},{"lineNumber":194,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-05"},{"lineNumber":195,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE,","lastModifiedDate":"2023-09-05"},{"lineNumber":196,"author":{"gitId":"nathanielcalimag"},"content":" parameterName, taskType));","lastModifiedDate":"2023-09-05"},{"lineNumber":197,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":198,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":199,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":200,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":201,"author":{"gitId":"nathanielcalimag"},"content":" * Adds a command to the application\u0027s command map.","lastModifiedDate":"2023-09-05"},{"lineNumber":202,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":203,"author":{"gitId":"nathanielcalimag"},"content":" * @param name The name of the command.","lastModifiedDate":"2023-09-05"},{"lineNumber":204,"author":{"gitId":"nathanielcalimag"},"content":" * @param command The associated command.","lastModifiedDate":"2023-09-05"},{"lineNumber":205,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":206,"author":{"gitId":"nathanielcalimag"},"content":" private void addCommand(String name, Command command) {","lastModifiedDate":"2023-09-05"},{"lineNumber":207,"author":{"gitId":"nathanielcalimag"},"content":" assert command !\u003d null : \"Command cannot be null\";","lastModifiedDate":"2023-09-20"},{"lineNumber":208,"author":{"gitId":"nathanielcalimag"},"content":" this.commandMap.put(name, command);","lastModifiedDate":"2023-09-05"},{"lineNumber":209,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":210,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":211,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":212,"author":{"gitId":"nathanielcalimag"},"content":" * Adds a command to the application\u0027s command map.","lastModifiedDate":"2023-09-05"},{"lineNumber":213,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":214,"author":{"gitId":"nathanielcalimag"},"content":" * @param names The names of the command.","lastModifiedDate":"2023-09-05"},{"lineNumber":215,"author":{"gitId":"nathanielcalimag"},"content":" * @param command The associated command.","lastModifiedDate":"2023-09-05"},{"lineNumber":216,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":217,"author":{"gitId":"nathanielcalimag"},"content":" private void addCommand(String[] names, Command command) {","lastModifiedDate":"2023-09-05"},{"lineNumber":218,"author":{"gitId":"nathanielcalimag"},"content":" assert command !\u003d null : \"Command cannot be null\";","lastModifiedDate":"2023-09-20"},{"lineNumber":219,"author":{"gitId":"nathanielcalimag"},"content":" for (String name : names) {","lastModifiedDate":"2023-09-05"},{"lineNumber":220,"author":{"gitId":"nathanielcalimag"},"content":" this.commandMap.put(name, command);","lastModifiedDate":"2023-09-05"},{"lineNumber":221,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":222,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":223,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":224,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":225,"author":{"gitId":"nathanielcalimag"},"content":" * Executes a command given an input.","lastModifiedDate":"2023-09-05"},{"lineNumber":226,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":227,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The input of the user.","lastModifiedDate":"2023-09-05"},{"lineNumber":228,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":229,"author":{"gitId":"nathanielcalimag"},"content":" * @throws UnknownCommandException If no known command can be found from the input.","lastModifiedDate":"2023-09-10"},{"lineNumber":230,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":231,"author":{"gitId":"nathanielcalimag"},"content":" public String executeCommand(String input, TaskList taskList) throws UnknownCommandException {","lastModifiedDate":"2023-09-10"},{"lineNumber":232,"author":{"gitId":"nathanielcalimag"},"content":" // Separate the command name and the command input","lastModifiedDate":"2023-09-05"},{"lineNumber":233,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \");","lastModifiedDate":"2023-09-05"},{"lineNumber":234,"author":{"gitId":"nathanielcalimag"},"content":" String commandName \u003d args[0];","lastModifiedDate":"2023-09-05"},{"lineNumber":235,"author":{"gitId":"nathanielcalimag"},"content":" Command command \u003d this.commandMap.get(commandName);","lastModifiedDate":"2023-09-10"},{"lineNumber":236,"author":{"gitId":"nathanielcalimag"},"content":" if (command !\u003d null) {","lastModifiedDate":"2023-09-05"},{"lineNumber":237,"author":{"gitId":"nathanielcalimag"},"content":" String output \u003d command.run(input, taskList);","lastModifiedDate":"2023-09-20"},{"lineNumber":238,"author":{"gitId":"nathanielcalimag"},"content":" assert !(output \u003d\u003d null) \u0026\u0026 !output.isEmpty() : \"Command output cannot be null or \"","lastModifiedDate":"2023-09-20"},{"lineNumber":239,"author":{"gitId":"nathanielcalimag"},"content":" + \"empty\";","lastModifiedDate":"2023-09-20"},{"lineNumber":240,"author":{"gitId":"nathanielcalimag"},"content":" return output;","lastModifiedDate":"2023-09-20"},{"lineNumber":241,"author":{"gitId":"nathanielcalimag"},"content":" } else {","lastModifiedDate":"2023-09-05"},{"lineNumber":242,"author":{"gitId":"nathanielcalimag"},"content":" throw new UnknownCommandException(Messages.UNKNOWN_COMMAND_ERROR_MESSAGE);","lastModifiedDate":"2023-09-05"},{"lineNumber":243,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":244,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":245,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"nathanielcalimag":245}},{"path":"src/main/java/duke/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-08"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-08"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * Represents the generic interface for the storage of the application.","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"public interface Storage {","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * Reads the tasks from storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If there are not enough arguments to create tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DateTimeParseException If the date in storage is formatted wrongly.","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" * @throws StorageCreationException If the storage and directory creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If the storage creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" List\u003cTask\u003e readStorage() throws InsufficientArgumentsException, DateTimeParseException,","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" StorageCreationException, IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" * Rewrites the storage from a list of tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" * @param tasks The list of tasks to be written into storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If writing to the failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" void updateStorage(List\u003cTask\u003e tasks) throws IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":33}},{"path":"src/main/java/duke/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.DuplicateTaskException;","lastModifiedDate":"2023-09-22"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-08"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-08"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * Contains functionality to read and interact with the application state.","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"public class TaskList {","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" private final List\u003cTask\u003e tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" private Storage storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the number of tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" * @return The number of tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" public int getTaskCount() {","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" return this.tasks.size();","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * Lists out all the tasks into an output string.","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" * @return The output string.","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" public String listTasks() {","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" StringBuilder stringBuilder \u003d new StringBuilder(Messages.LIST_MESSAGE + \"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d tasks.get(i);","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" stringBuilder.append(String.format(\" %d.%s\", i + 1, task));","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" if (i \u003c tasks.size() - 1) {","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" stringBuilder.append(\"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" * Searches for matching tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The search string.","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" * @return The output string.","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" public String searchTasks(String input) {","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" StringBuilder stringBuilder \u003d new StringBuilder(Messages.FIND_MESSAGE + \"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" int filteredCount \u003d 0;","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" for (Task task : this.tasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" if (!task.getDescription().contains(input)) {","lastModifiedDate":"2023-09-05"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" continue;","lastModifiedDate":"2023-09-05"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" filteredCount++;","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" stringBuilder.append(String.format(\" %d.%s\", filteredCount, task));","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" stringBuilder.append(\"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" if (filteredCount \u003e 0) {","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" stringBuilder.setLength(stringBuilder.length() - 1);","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" * Inserts a task into the list of items.","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" * @param task The item to be added.","lastModifiedDate":"2023-09-05"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If saving tasks to file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DuplicateTaskException If the task is a duplicate.","lastModifiedDate":"2023-09-22"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" public void insertTask(Task task) throws IOException, DuplicateTaskException {","lastModifiedDate":"2023-09-22"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" if (this.tasks.contains(task)) {","lastModifiedDate":"2023-09-22"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" throw new DuplicateTaskException(String.format(","lastModifiedDate":"2023-09-22"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" Messages.DUPLICATE_TASKS_ERROR_MESSAGE, task));","lastModifiedDate":"2023-09-22"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-22"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":" this.tasks.add(task);","lastModifiedDate":"2023-09-05"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":" this.saveTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":" * Marks task based on index.","lastModifiedDate":"2023-09-05"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":" * @param index The index of the item to be marked.","lastModifiedDate":"2023-09-05"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" * @return The marked task\u0027s string.","lastModifiedDate":"2023-09-05"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If saving tasks to file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" public String markTask(int index) throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d this.tasks.get(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":" task.mark();","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" this.saveTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":" return task.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":" * Unmarks task based on index.","lastModifiedDate":"2023-09-05"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":" * @param index The index of the item to be unmarked.","lastModifiedDate":"2023-09-05"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":" * @return The unmarked task\u0027s string.","lastModifiedDate":"2023-09-05"},{"lineNumber":105,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If saving tasks to file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":106,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":107,"author":{"gitId":"nathanielcalimag"},"content":" public String unmarkTask(int index) throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":108,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d this.tasks.get(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":109,"author":{"gitId":"nathanielcalimag"},"content":" task.unmark();","lastModifiedDate":"2023-09-05"},{"lineNumber":110,"author":{"gitId":"nathanielcalimag"},"content":" this.saveTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":111,"author":{"gitId":"nathanielcalimag"},"content":" return task.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":112,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":113,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":114,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":115,"author":{"gitId":"nathanielcalimag"},"content":" * Deletes task based on index.","lastModifiedDate":"2023-09-05"},{"lineNumber":116,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":117,"author":{"gitId":"nathanielcalimag"},"content":" * @param index The index of the item to be deleted.","lastModifiedDate":"2023-09-05"},{"lineNumber":118,"author":{"gitId":"nathanielcalimag"},"content":" * @return The deleted task\u0027s string.","lastModifiedDate":"2023-09-05"},{"lineNumber":119,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If saving tasks to file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":120,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":121,"author":{"gitId":"nathanielcalimag"},"content":" public String deleteTask(int index) throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":122,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d this.tasks.remove(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":123,"author":{"gitId":"nathanielcalimag"},"content":" this.saveTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":124,"author":{"gitId":"nathanielcalimag"},"content":" return task.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":125,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":126,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":127,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":128,"author":{"gitId":"nathanielcalimag"},"content":" * Loads all tasks from storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":129,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":130,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If there are not enough arguments to create tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":131,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DateTimeParseException If the date in storage is formatted wrongly.","lastModifiedDate":"2023-09-05"},{"lineNumber":132,"author":{"gitId":"nathanielcalimag"},"content":" * @throws StorageCreationException If the storage file and directory creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":133,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If the storage file creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":134,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":135,"author":{"gitId":"nathanielcalimag"},"content":" public void loadTasks() throws InsufficientArgumentsException, DateTimeParseException,","lastModifiedDate":"2023-09-05"},{"lineNumber":136,"author":{"gitId":"nathanielcalimag"},"content":" StorageCreationException, IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":137,"author":{"gitId":"nathanielcalimag"},"content":" List\u003cTask\u003e tasks \u003d this.storage.readStorage();","lastModifiedDate":"2023-09-05"},{"lineNumber":138,"author":{"gitId":"nathanielcalimag"},"content":" this.tasks.clear();","lastModifiedDate":"2023-09-05"},{"lineNumber":139,"author":{"gitId":"nathanielcalimag"},"content":" this.tasks.addAll(tasks);","lastModifiedDate":"2023-09-05"},{"lineNumber":140,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":141,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":142,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":143,"author":{"gitId":"nathanielcalimag"},"content":" * Saves the tasks into storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":144,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":145,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If writing to the file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":146,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":147,"author":{"gitId":"nathanielcalimag"},"content":" public void saveTasks() throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":148,"author":{"gitId":"nathanielcalimag"},"content":" this.storage.updateStorage(this.tasks);","lastModifiedDate":"2023-09-05"},{"lineNumber":149,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":150,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":151,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":152,"author":{"gitId":"nathanielcalimag"},"content":" * Sets the storage object for the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":153,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":154,"author":{"gitId":"nathanielcalimag"},"content":" * @param storage The storage object.","lastModifiedDate":"2023-09-05"},{"lineNumber":155,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":156,"author":{"gitId":"nathanielcalimag"},"content":" public void setStorage(Storage storage) {","lastModifiedDate":"2023-09-05"},{"lineNumber":157,"author":{"gitId":"nathanielcalimag"},"content":" this.storage \u003d storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":158,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":159,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":159}},{"path":"src/main/java/duke/commands/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-23"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a generic command interface with a run method defining the","lastModifiedDate":"2023-08-29"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" * behaviour of the command.","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-23"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"public interface Command {","lastModifiedDate":"2023-08-23"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-23"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" * Executes the command given an input.","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-23"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The command to be run.","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-23"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" String run(String input, TaskList taskList);","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"nathanielcalimag":18}},{"path":"src/main/java/duke/commands/DeleteCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" * Deletes a task.","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"public class DeleteCommand implements Command {","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * Deletes a task from the application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input of the task to be deleted.","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \", 2);","lastModifiedDate":"2023-08-24"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" String indexString \u003d args[1];","lastModifiedDate":"2023-08-24"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" int index \u003d Integer.parseInt(indexString) - 1;","lastModifiedDate":"2023-09-22"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" String taskString \u003d taskList.deleteTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.DELETE_MESSAGE, taskString, taskList.getTaskCount());","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" } catch (NumberFormatException | IndexOutOfBoundsException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX,","lastModifiedDate":"2023-09-22"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" String.format(Messages.INVALID_INDEX_ERROR_MESSAGE, indexString));","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX, e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":34}},{"path":"src/main/java/duke/commands/ExitCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.application.Platform;","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-23"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" * Terminates the program.","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-23"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"public class ExitCommand implements Command {","lastModifiedDate":"2023-08-23"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * Prints an exit message and terminates the program.","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input.","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-23"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" Platform.exit();","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" return Messages.EXIT_MESSAGE;","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"nathanielcalimag":23}},{"path":"src/main/java/duke/commands/FindCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":" * Finds items from application state.","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"public class FindCommand implements Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" * Searches for tasks from the task list.","lastModifiedDate":"2023-09-20"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input.","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \", 2);","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" return taskList.searchTasks(args[1]);","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":21}},{"path":"src/main/java/duke/commands/InsertCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-22"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Parser;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * Inserts item into the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"public class InsertCommand implements Command {","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * Adds an item to the application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input of the item to add.","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \", 2);","lastModifiedDate":"2023-08-24"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" String taskType \u003d args[0];","lastModifiedDate":"2023-08-24"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" String taskInput \u003d args.length \u003e 1 ? args[1] : \"\";","lastModifiedDate":"2023-08-24"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-08-24"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" // Create a task based on task type","lastModifiedDate":"2023-08-24"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d Parser.createTask(taskType, taskInput);","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" taskList.insertTask(task);","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" int taskCount \u003d taskList.getTaskCount();","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.INSERT_MESSAGE, task, taskCount, taskCount \u003d\u003d 1 ? \"task\"","lastModifiedDate":"2023-09-10"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" : \"tasks\");","lastModifiedDate":"2023-09-10"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IllegalArgumentException | DateTimeParseException | IOException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX, e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":38}},{"path":"src/main/java/duke/commands/ListCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":" * Lists items from the application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"public class ListCommand implements Command {","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" * Lists all the items in the application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input.","lastModifiedDate":"2023-08-24"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" return taskList.listTasks();","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":21}},{"path":"src/main/java/duke/commands/MarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" * Marks a task.","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"public class MarkCommand implements Command {","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * Sets a given task to be marked.","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input of the task to be marked.","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \", 2);","lastModifiedDate":"2023-08-24"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" String indexString \u003d args[1];","lastModifiedDate":"2023-08-24"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" int index \u003d Integer.parseInt(indexString) - 1;","lastModifiedDate":"2023-09-22"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" String taskString \u003d taskList.markTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.MARKED_MESSAGE, taskString);","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" } catch (NumberFormatException | IndexOutOfBoundsException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX,","lastModifiedDate":"2023-09-22"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" String.format(Messages.INVALID_INDEX_ERROR_MESSAGE, indexString));","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX, e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":34}},{"path":"src/main/java/duke/commands/UnmarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" * Unmarks a task.","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"public class UnmarkCommand implements Command {","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * Sets a given task to be unmarked.","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input of the task to be unmarked.","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \", 2);","lastModifiedDate":"2023-08-24"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" String indexString \u003d args[1];","lastModifiedDate":"2023-08-24"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" int index \u003d Integer.parseInt(indexString) - 1;","lastModifiedDate":"2023-09-22"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" String taskString \u003d taskList.unmarkTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.UNMARKED_MESSAGE, taskString);","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" } catch (NumberFormatException | IndexOutOfBoundsException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX,","lastModifiedDate":"2023-09-22"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" String.format(Messages.INVALID_INDEX_ERROR_MESSAGE, indexString));","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX, e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":34}},{"path":"src/main/java/duke/exceptions/DuplicateTaskException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-22"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-22"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Represents an exception when there are duplicate tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-22"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public class DuplicateTaskException extends IllegalArgumentException {","lastModifiedDate":"2023-09-22"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" public DuplicateTaskException(String message) {","lastModifiedDate":"2023-09-22"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" super(message);","lastModifiedDate":"2023-09-22"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-22"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-22"}],"authorContributionMap":{"nathanielcalimag":10}},{"path":"src/main/java/duke/exceptions/InsufficientArgumentsException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Represents an exception when there are insufficient arguments when creating a task.","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public class InsufficientArgumentsException extends IllegalArgumentException {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" public InsufficientArgumentsException(String message) {","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" super(message);","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":10}},{"path":"src/main/java/duke/exceptions/StorageCreationException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Represents an exception when creating the storage directory or storage file fails.","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public class StorageCreationException extends Exception {","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" public StorageCreationException(String message) {","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" super(message);","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":10}},{"path":"src/main/java/duke/exceptions/UnknownCommandException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Represents an exception when an unknown command is passed in.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public class UnknownCommandException extends IllegalArgumentException {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" public UnknownCommandException(String message) {","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" super(message);","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":10}},{"path":"src/main/java/duke/tasks/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Parser;","lastModifiedDate":"2023-09-08"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a task containing a description, and the due time.","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_TYPE \u003d \"deadline\";","lastModifiedDate":"2023-09-21"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_CODE \u003d \"D\";","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" private final LocalDateTime by;","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" public Deadline(String description, LocalDateTime by) {","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" this(description, false, by);","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-08"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code Deadline} instance.","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-08"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" * @param description The description of the deadline.","lastModifiedDate":"2023-09-08"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" * @param isDone The indication of the deadline being marked.","lastModifiedDate":"2023-09-08"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" * @param by The due date of the deadline.","lastModifiedDate":"2023-09-08"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-08"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" public Deadline(String description, boolean isDone, LocalDateTime by) {","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" this.by \u003d by;","lastModifiedDate":"2023-08-24"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" * Parses storage input to create a {@code Deadline} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The storage input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created Deadline.","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If the string input has insufficient arguments to","lastModifiedDate":"2023-09-21"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" * create an {@code Deadline}.","lastModifiedDate":"2023-09-21"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" public static Deadline parseStorageInput(String input) throws InsufficientArgumentsException {","lastModifiedDate":"2023-09-21"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" boolean isDone \u003d input.charAt(0) \u003d\u003d \u00271\u0027;","lastModifiedDate":"2023-09-21"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" String processedInput \u003d input.substring(4);","lastModifiedDate":"2023-09-21"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" String description \u003d processedInput.substring(0, processedInput.indexOf(\" | \"));","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" String substring \u003d processedInput.substring(processedInput.indexOf(\" | \") + 3);","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" if (Objects.equals(substring, \"\")) {","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE, \"by\", Deadline.TASK_TYPE));","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime by \u003d Parser.parseDate(substring);","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" return new Deadline(description, isDone, by);","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" * Parses user input to create a {@code Deadline} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created Deadline.","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If the string input has insufficient arguments to","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" * create an {@code Deadline}.","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" public static Deadline parseUserInput(String input) throws InsufficientArgumentsException {","lastModifiedDate":"2023-09-21"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" Parser.validateContainsArgument(input, Deadline.TASK_TYPE, \"by\");","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\"/by\");","lastModifiedDate":"2023-09-21"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" String description \u003d args[0].trim();","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime by \u003d Parser.parseDate(args[1].trim());","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" return new Deadline(description, by);","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" * {@inheritDoc}","lastModifiedDate":"2023-08-31"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" public String encode() {","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"%s | %d | %s | %s\", Deadline.TASK_CODE, this.isDone ? 1 : 0,","lastModifiedDate":"2023-09-21"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" this.description,","lastModifiedDate":"2023-09-21"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" this.by.format(DateTimeFormatter.ofPattern(Parser.STORAGE_DATE_TIME_PATTERN)));","lastModifiedDate":"2023-09-05"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"[%s]\", Deadline.TASK_CODE) + super.toString() + \" (by: \" + this.by.format(","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":" DateTimeFormatter.ofPattern(Parser.OUTPUT_DATE_TIME_PATTERN)) + \")\";","lastModifiedDate":"2023-09-05"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-21"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":" public boolean equals(Object obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" if (this \u003d\u003d obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" return true;","lastModifiedDate":"2023-09-21"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" if (obj instanceof Deadline) {","lastModifiedDate":"2023-09-21"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" Deadline otherDeadline \u003d (Deadline) obj;","lastModifiedDate":"2023-09-21"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":" return this.description.equals(otherDeadline.description)","lastModifiedDate":"2023-09-21"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" \u0026\u0026 this.isDone \u003d\u003d otherDeadline.isDone \u0026\u0026 this.by.equals(otherDeadline.by);","lastModifiedDate":"2023-09-21"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" return false;","lastModifiedDate":"2023-09-21"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":100}},{"path":"src/main/java/duke/tasks/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Parser;","lastModifiedDate":"2023-09-08"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a task containing the start and end time.","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"public class Event extends Task {","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_TYPE \u003d \"event\";","lastModifiedDate":"2023-09-21"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_CODE \u003d \"E\";","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" private final LocalDateTime from;","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" private final LocalDateTime to;","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" public Event(String description, LocalDateTime from, LocalDateTime to) {","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" this(description, false, from, to);","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-08"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code Event} instance.","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-08"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" * @param description The description of the event.","lastModifiedDate":"2023-09-08"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" * @param isDone The indication of the event being marked.","lastModifiedDate":"2023-09-08"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" * @param from The starting datetime of the event.","lastModifiedDate":"2023-09-08"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * @param to The ending datetime of the event.","lastModifiedDate":"2023-09-08"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-08"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" public Event(String description, boolean isDone, LocalDateTime from, LocalDateTime to) {","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" this.from \u003d from;","lastModifiedDate":"2023-08-24"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" this.to \u003d to;","lastModifiedDate":"2023-08-24"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" * Parses storage input to create an {@code Event} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The storage input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created Event.","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If the string input has insufficient arguments to","lastModifiedDate":"2023-09-21"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" * create an {@code Event}.","lastModifiedDate":"2023-09-21"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" public static Event parseStorageInput(String input) throws InsufficientArgumentsException {","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" boolean isDone \u003d input.charAt(0) \u003d\u003d \u00271\u0027;","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" String processedInput \u003d input.substring(4);","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" String description \u003d processedInput.substring(0, processedInput.indexOf(\" | \"));","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" processedInput \u003d processedInput.substring(processedInput.indexOf(\" | \") + 3);","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" if (processedInput.length() \u003c Parser.OUTPUT_DATE_TIME_PATTERN.length()) {","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE, \"from\", Event.TASK_TYPE));","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" if (processedInput.length() \u003c Parser.STORAGE_DATE_TIME_PATTERN.length() * 2 + 1) {","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE, \"to\", Event.TASK_TYPE));","lastModifiedDate":"2023-09-21"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" // dates in storage should be formatted consistently","lastModifiedDate":"2023-09-21"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime from \u003d","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" Parser.parseDate(processedInput.substring(0,","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" Parser.OUTPUT_DATE_TIME_PATTERN.length() - 1));","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime to \u003d","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" Parser.parseDate(processedInput.substring(Parser.OUTPUT_DATE_TIME_PATTERN.length()));","lastModifiedDate":"2023-09-21"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" return new Event(description, isDone, from, to);","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" * Parses user input to create an {@code Event} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created Event.","lastModifiedDate":"2023-09-21"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If the string input has insufficient arguments to","lastModifiedDate":"2023-09-21"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" * create an {@code Event}.","lastModifiedDate":"2023-09-21"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" public static Event parseUserInput(String input) throws InsufficientArgumentsException {","lastModifiedDate":"2023-09-21"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" Parser.validateContainsArgument(input, Event.TASK_TYPE, \"from\");","lastModifiedDate":"2023-09-21"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" Parser.validateContainsArgument(input, Event.TASK_TYPE, \"to\");","lastModifiedDate":"2023-09-21"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\"/from|/to\");","lastModifiedDate":"2023-09-21"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" String description \u003d args[0].trim();","lastModifiedDate":"2023-09-21"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime from \u003d Parser.parseDate(args[1].trim());","lastModifiedDate":"2023-09-21"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime to \u003d Parser.parseDate(args[2].trim());","lastModifiedDate":"2023-09-21"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":" return new Event(description, from, to);","lastModifiedDate":"2023-09-21"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":" * {@inheritDoc}","lastModifiedDate":"2023-08-31"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" public String encode() {","lastModifiedDate":"2023-08-30"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"%s | %d | %s | %s-%s\", Event.TASK_CODE, this.isDone ? 1 : 0,","lastModifiedDate":"2023-09-21"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" this.description, this.from.format(DateTimeFormatter.ofPattern(","lastModifiedDate":"2023-08-31"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" Parser.STORAGE_DATE_TIME_PATTERN)),","lastModifiedDate":"2023-09-05"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" this.to.format(DateTimeFormatter.ofPattern(","lastModifiedDate":"2023-08-31"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":" Parser.STORAGE_DATE_TIME_PATTERN)));","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"[%s]\", Event.TASK_CODE) + super.toString()","lastModifiedDate":"2023-09-21"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":" + \" (from: \" + this.from.format(DateTimeFormatter.ofPattern(","lastModifiedDate":"2023-09-08"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":" Parser.OUTPUT_DATE_TIME_PATTERN)) + \" to: \" + this.to.format(","lastModifiedDate":"2023-09-05"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":" DateTimeFormatter.ofPattern(Parser.OUTPUT_DATE_TIME_PATTERN)) + \")\";","lastModifiedDate":"2023-09-05"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":105,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":106,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-21"},{"lineNumber":107,"author":{"gitId":"nathanielcalimag"},"content":" public boolean equals(Object obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":108,"author":{"gitId":"nathanielcalimag"},"content":" if (this \u003d\u003d obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":109,"author":{"gitId":"nathanielcalimag"},"content":" return true;","lastModifiedDate":"2023-09-21"},{"lineNumber":110,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":111,"author":{"gitId":"nathanielcalimag"},"content":" if (obj instanceof Event) {","lastModifiedDate":"2023-09-21"},{"lineNumber":112,"author":{"gitId":"nathanielcalimag"},"content":" Event otherEvent \u003d (Event) obj;","lastModifiedDate":"2023-09-21"},{"lineNumber":113,"author":{"gitId":"nathanielcalimag"},"content":" return this.description.equals(otherEvent.description)","lastModifiedDate":"2023-09-21"},{"lineNumber":114,"author":{"gitId":"nathanielcalimag"},"content":" \u0026\u0026 this.isDone \u003d\u003d otherEvent.isDone \u0026\u0026 this.from.equals(otherEvent.from)","lastModifiedDate":"2023-09-21"},{"lineNumber":115,"author":{"gitId":"nathanielcalimag"},"content":" \u0026\u0026 this.to.equals(otherEvent.to);","lastModifiedDate":"2023-09-21"},{"lineNumber":116,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":117,"author":{"gitId":"nathanielcalimag"},"content":" return false;","lastModifiedDate":"2023-09-21"},{"lineNumber":118,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":119,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":119}},{"path":"src/main/java/duke/tasks/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a generic task containing the description and own task state.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public abstract class Task {","lastModifiedDate":"2023-08-24"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" protected final String description;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" protected Task(String description) {","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" this(description, false);","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" protected Task(String description, boolean isDone) {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" this.isDone \u003d isDone;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" * Encodes a Task into the string representation to save into storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string representing a task for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" public abstract String encode();","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the description of the task.","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" * @return The description of the task.","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" return this.description;","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the appropriate status icon string for the task.","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" * @return The status icon for the task.","lastModifiedDate":"2023-08-24"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-24"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" return (this.isDone ? \"X\" : \" \"); // mark done task with X","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" * Marks a task as done.","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" public void mark() {","lastModifiedDate":"2023-08-24"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-24"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" * Unmarks a task.","lastModifiedDate":"2023-08-29"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" public void unmark() {","lastModifiedDate":"2023-08-24"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-24"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"[%s] %s\", this.getStatusIcon(), this.description);","lastModifiedDate":"2023-08-24"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":62}},{"path":"src/main/java/duke/tasks/ToDo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a task with a description.","lastModifiedDate":"2023-08-29"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_TYPE \u003d \"todo\";","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_CODE \u003d \"T\";","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-08"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code ToDo} instance.","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-08"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @param description The description of the to-do.","lastModifiedDate":"2023-09-08"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * @param isDone The indication of the event being to-do.","lastModifiedDate":"2023-09-08"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-08"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" public ToDo(String description, boolean isDone) {","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" public ToDo(String description) {","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" this(description, false);","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" * Parses storage input to create a {@code ToDo} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The storage input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created ToDo.","lastModifiedDate":"2023-09-21"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If the string input has insufficient arguments to","lastModifiedDate":"2023-09-21"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" * create an {@code ToDo}.","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" public static ToDo parseStorageInput(String input) {","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" boolean isDone \u003d input.charAt(0) \u003d\u003d \u00271\u0027;","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" String description \u003d input.substring(4);","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" return new ToDo(description, isDone);","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" * Parses user input to create a {@code ToDo} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created ToDo.","lastModifiedDate":"2023-09-21"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" public static ToDo parseUserInput(String input) {","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" return new ToDo(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" * {@inheritDoc}","lastModifiedDate":"2023-08-31"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" public String encode() {","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"%s | %d | %s\", ToDo.TASK_CODE, this.isDone ? 1 : 0, this.description);","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"[%s]\", TASK_CODE) + super.toString();","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-21"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" public boolean equals(Object obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" if (this \u003d\u003d obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" return true;","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" if (obj instanceof ToDo) {","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" ToDo otherTodo \u003d (ToDo) obj;","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" return this.description.equals(otherTodo.description) \u0026\u0026 this.isDone \u003d\u003d otherTodo.isDone;","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" return false;","lastModifiedDate":"2023-09-21"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":75}},{"path":"src/main/java/duke/ui/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.ui;","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-10"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" private Label dialog;","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code DialogBox} instance.","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * @param text The text in the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" * @param img The image for the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-10"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-10"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox\"","lastModifiedDate":"2023-09-10"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" + \".fxml\"));","lastModifiedDate":"2023-09-10"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-10"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-10"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-10"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-10"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-10"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-10"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the dialog box for the user.","lastModifiedDate":"2023-09-10"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-10"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" * @param text The text in the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" * @param img The image for the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" * @return The dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-10"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" return new DialogBox(text, img);","lastModifiedDate":"2023-09-10"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the dialog box for the bot.","lastModifiedDate":"2023-09-10"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-10"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" * @param text The text in the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" * @param img The image for the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" * @return The dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-10"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-10"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" db.flip();","lastModifiedDate":"2023-09-10"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" return db;","lastModifiedDate":"2023-09-10"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-10"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" private void flip() {","lastModifiedDate":"2023-09-10"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-10"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-10"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-10"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-10"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":81}},{"path":"src/main/java/duke/ui/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.ui;","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a launcher class for the application GUI.","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"public class Launcher {","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":12}},{"path":"src/main/java/duke/ui/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.ui;","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Duke;","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-22"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * Serves as the entry point to run the application\u0027s GUI.","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" private final Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" stage.setTitle(Messages.APPLICATION_NAME);","lastModifiedDate":"2023-09-22"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" stage.show();","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-10"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":33}},{"path":"src/main/java/duke/ui/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.ui;","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Duke;","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-10"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * Represents the main window for the application GUI.","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" private final Image userImage \u003d","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" new Image(Objects.requireNonNull(this.getClass().getResourceAsStream(\"/images\"","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" + \"/UserPic\"","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" + \".png\")));","lastModifiedDate":"2023-09-10"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" private final Image dukeImage \u003d","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" new Image(Objects.requireNonNull(this.getClass().getResourceAsStream(\"/images/BotPic\"","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" + \".png\")));","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-10"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-10"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" private Duke duke;","lastModifiedDate":"2023-09-10"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" * Initialises the main window.","lastModifiedDate":"2023-09-10"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" public void initialize() {","lastModifiedDate":"2023-09-10"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-10"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-10"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" DialogBox.getDukeDialog(Messages.GREETING_MESSAGE, dukeImage)","lastModifiedDate":"2023-09-10"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" );","lastModifiedDate":"2023-09-10"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-10"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-10"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and","lastModifiedDate":"2023-09-10"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" * then appends them to the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-10"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-10"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-10"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-10"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-10"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-10"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-10"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" );","lastModifiedDate":"2023-09-10"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" userInput.clear();","lastModifiedDate":"2023-09-10"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":66}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"\u003cfx:root xmlns:fx\u003d\"http://javafx.com/fxml/1\" alignment\u003d\"TOP_RIGHT\"","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\"","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\"","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" xmlns\u003d\"http://javafx.com/javafx/17\"\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\"","lastModifiedDate":"2023-09-22"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" minHeight\u003d\"-Infinity\"","lastModifiedDate":"2023-09-22"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" style\u003d\"-fx-border-color:black; -fx-padding: 8px; -fx-border-radius: 6px;\"/\u003e","lastModifiedDate":"2023-09-22"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"50.0\" fitWidth\u003d\"50.0\"","lastModifiedDate":"2023-09-22"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\"/\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\"/\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":22}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"\u003cAnchorPane xmlns:fx\u003d\"http://javafx.com/fxml/1\" maxHeight\u003d\"-Infinity\"","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" maxWidth\u003d\"-Infinity\"","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" prefWidth\u003d\"400.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" xmlns\u003d\"http://javafx.com/javafx/17\"","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" fx:controller\u003d\"duke.ui.MainWindow\"\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\"","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" prefHeight\u003d\"41.0\" prefWidth\u003d\"324.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" AnchorPane.bottomAnchor\u003d\"1.0\"/\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\"","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\"/\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"552.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" prefWidth\u003d\"388.0\"/\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":30}},{"path":"src/test/java/duke/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import static org.junit.jupiter.api.Assertions.fail;","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-08"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Deadline;","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Event;","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.ToDo;","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * Tests the {@code Parser} class.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"public class ParserTest {","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether the {@code parseDate} appropriately parses all allowed date time formats.","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" public void parseDate() {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTimeMidnight \u003d LocalDateTime.of(2023, 9, 5, 0, 0);","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTimeNoon \u003d LocalDateTime.of(2023, 9, 5, 12, 0);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"5/9/2023\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"5/09/2023\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"05/9/2023\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"05/09/2023\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"2023-9-5\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"2023-9-05\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"2023-09-5\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"2023-09-05\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"5/9/2023 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"5/09/2023 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"05/9/2023 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"05/09/2023 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"2023-9-5 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"2023-9-05 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"2023-09-5 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"2023-09-05 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether the {@code createTask} appropriately parses user input when creating tasks.","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" public void createTask() {","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" ToDo expectedTodo \u003d new ToDo(\"Re-watch CS2103T lecture\");","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" Deadline expectedDeadline \u003d new Deadline(\"Finish CS2103T quiz\",","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime.of(2023, 9, 30, 12, 0));","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" Event expectedEvent1 \u003d new Event(\"CS2103T project meeting\", LocalDateTime.of(2023,","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" 9, 30, 14, 30), LocalDateTime.of(2023, 9, 30, 16, 30));","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" Event expectedEvent2 \u003d new Event(\"Level supper\", LocalDateTime.of(2023,","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" 9, 30, 0, 0), LocalDateTime.of(2023, 9, 30, 0, 30));","lastModifiedDate":"2023-09-21"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedTodo, Parser.createTask(ToDo.TASK_TYPE, \"Re-watch CS2103T lecture\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedDeadline, Parser.createTask(Deadline.TASK_TYPE, \"Finish CS2103T quiz\"","lastModifiedDate":"2023-09-21"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" + \" /by 2023-9-30 1200\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedEvent1, Parser.createTask(Event.TASK_TYPE, \"CS2103T project \"","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" + \"meeting /from 2023-09-30 1430 /to 2023-9-30 \" + \"1630\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedEvent2, Parser.createTask(Event.TASK_TYPE, \"Level supper /from \"","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" + \"2023-9-30 0000 /to 2023-09-30 0030\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether the {@code createTask} appropriately parses tasks from the storage file.","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" public void parse() {","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" ToDo expectedTodo \u003d new ToDo(\"Re-watch CS2103T lecture\");","lastModifiedDate":"2023-09-21"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" Deadline expectedDeadline \u003d new Deadline(\"Finish CS2103T quiz\", true,","lastModifiedDate":"2023-09-21"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime.of(2023, 9, 30, 12, 0));","lastModifiedDate":"2023-09-21"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" Event expectedEvent1 \u003d new Event(\"CS2103T project meeting\", true, LocalDateTime.of(2023,","lastModifiedDate":"2023-09-21"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" 9, 30, 14, 30), LocalDateTime.of(2023, 9, 30, 16, 30));","lastModifiedDate":"2023-09-21"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" Event expectedEvent2 \u003d new Event(\"Level supper\", LocalDateTime.of(2023,","lastModifiedDate":"2023-09-21"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" 9, 30, 0, 0), LocalDateTime.of(2023, 9, 30, 0, 30));","lastModifiedDate":"2023-09-21"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedTodo, Parser.parse(ToDo.TASK_CODE, \"0 | Re-watch CS2103T lecture\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedDeadline, Parser.parse(Deadline.TASK_CODE, \"1 | Finish CS2103T quiz \"","lastModifiedDate":"2023-09-21"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":" + \"| 2023-09-30 1200\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedEvent1, Parser.parse(Event.TASK_CODE, \"1 | CS2103T project meeting |\"","lastModifiedDate":"2023-09-21"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":" + \" 2023-09-30 1430-2023-09-30 \" + \"1630\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedEvent2, Parser.parse(Event.TASK_CODE, \"0 | Level supper | 2023-09-30\"","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":" + \" 0000-2023-09-30 0030\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether the {@code parseDate} appropriately throws exception for invalid formats.","lastModifiedDate":"2023-09-05"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-05"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" public void parseDate_invalidFormat_exceptionThrown() {","lastModifiedDate":"2023-09-05"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" String dateTimeString \u003d \"2023-09-05, 1200\";","lastModifiedDate":"2023-09-05"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTimeNoon \u003d LocalDateTime.of(2023, 9, 5, 12, 0);","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(dateTimeString));","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" fail();","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(String.format(Messages.INVALID_DATE_TIME_FORMAT, dateTimeString),","lastModifiedDate":"2023-09-22"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":" e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":104}},{"path":"src/test/java/duke/StorageStub.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Arrays;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-08"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-08"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Deadline;","lastModifiedDate":"2023-09-08"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Event;","lastModifiedDate":"2023-09-08"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.ToDo;","lastModifiedDate":"2023-09-08"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a stub class for storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"public class StorageStub implements Storage {","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" private final List\u003cTask\u003e storage;","lastModifiedDate":"2023-09-08"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-08"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code StorageStub} instance.","lastModifiedDate":"2023-09-08"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-08"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" public StorageStub() {","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTimeMidnight \u003d LocalDateTime.of(2023, 9, 5, 0, 0);","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTimeNoon \u003d LocalDateTime.of(2023, 9, 5, 12, 0);","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" this.storage \u003d new ArrayList\u003c\u003e(Arrays.asList(","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" new ToDo(\"Go for health checkup\"),","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" new Deadline(\"CS2103T quiz\", dateTimeNoon),","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" new Event(\"CS2103T meeting\", dateTimeMidnight, dateTimeNoon)","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" ));","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" * Retrieves a list of tasks stored within this storage stub.","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" * @return The list of task stored in this stub.","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException Never thrown by stub implementation.","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DateTimeParseException Never thrown by stub implementation.","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" * @throws StorageCreationException Never thrown by stub implementation.","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException Never thrown by stub implementation.","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" public List\u003cTask\u003e readStorage() throws InsufficientArgumentsException, DateTimeParseException,","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" StorageCreationException, IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" return this.storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" * Updates the storage stub in the storage instance.","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException Never thrown by stub implementation.","lastModifiedDate":"2023-09-05"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" public void updateStorage(List\u003cTask\u003e tasks) throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" this.storage.clear();","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" this.storage.addAll(tasks);","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":63}},{"path":"src/test/java/duke/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import static org.junit.jupiter.api.Assertions.fail;","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-22"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-08"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-08"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * Tests the {@code TaskList} class.","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"public class TaskListTest {","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether {@code listTasks} appropriately lists tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" public void listTasks() {","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" Storage storage \u003d new StorageStub();","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" taskList.setStorage(storage);","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" taskList.loadTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(\" Here are the tasks in your list:\\n 1.[T][ ] Go for health checkup\\n 2\"","lastModifiedDate":"2023-09-08"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" + \".[D][ ] CS2103T quiz (by: 5 Sep 2023, 1200)\\n 3.[E][ ] CS2103T meeting \"","lastModifiedDate":"2023-09-08"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" + \"(from: 5 Sep 2023, 0000 to: 5 Sep 2023, 1200)\", taskList.listTasks());","lastModifiedDate":"2023-09-08"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException | DateTimeParseException | StorageCreationException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" fail(e);","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether {@code listTasks} appropriately handles no tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" public void listTasks_emptyList() {","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" List\u003cTask\u003e tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" Storage storage \u003d new StorageStub();","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" storage.updateStorage(tasks);","lastModifiedDate":"2023-09-05"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" taskList.setStorage(storage);","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" taskList.loadTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(\" Here are the tasks in your list:\\n\", taskList.listTasks());","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException | DateTimeParseException | StorageCreationException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" fail(e);","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":55}},{"path":"text-ui-test/data/duke.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"D | 0 | return book | 2023-09-30 1200","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | project meeting | 2023-08-03 1430-2023-08-30 1630","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"D | 0 | ma2001 hw | 2023-08-03 0000","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"D | 0 | ma1521 hw | 2023-08-03 0100","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | code | 2023-08-03 0000-2023-08-03 0030","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | run | 2023-08-03 0000-2023-08-03 0045","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | yoga | 2023-08-03 0000-2023-08-03 0145","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | nap | 2023-08-03 0000-2023-08-03 0230","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | dorm workshop | 2023-08-03 0000-2023-08-03 0315","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | walk around nus | 2023-08-03 0000-2023-08-03 0400","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | buy supper | 2023-08-03 0000-2023-08-03 0445","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | sleep | 2023-08-03 0000-2023-08-03 0530","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":12}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"todo borrow book","lastModifiedDate":"2023-08-24"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"list","lastModifiedDate":"2023-08-24"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"deadline return book /by 30/09/2023 1200","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"event project meeting /from 3/8/2023 1430 /to 2023-8-30 1630","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"mark 1","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"mark 2","lastModifiedDate":"2023-08-24"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"list","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"unmark 2","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"list","lastModifiedDate":"2023-08-24"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"todo","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"event math lecture","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"event math lecture /from 2023-08-30","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"deadline math homework /from 2/12/2019 1500","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"generate report","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"delete 1","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"list","lastModifiedDate":"2023-08-24"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":"deadline ma2001 hw /by 3/8/2023","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"deadline ma1521 hw /by 03/8/2023 0100","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"event code /from 3/8/2023 /to 3/8/2023 0030","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"event run /from 3/08/2023 /to 3/08/2023 0045","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"event yoga /from 03/8/2023 /to 03/8/2023 0145","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":"event nap /from 03/08/2023 /to 03/08/2023 0230","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"event dorm workshop /from 2023-8-3 /to 2023-8-3 0315","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":"event walk around nus /from 2023-8-03 /to 2023-8-03 0400","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":"event buy supper /from 2023-08-3 /to 2023-08-3 0445","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"event sleep /from 2023-08-03 /to 2023-08-3 0530","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":"list","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":"find hw","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":"bye","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":29}},{"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":"nathanielcalimag"},"content":"javac -cp ..\\src\\main\\java -Xlint:none -d ..\\bin ..\\src\\main\\java\\duke\\*.java","lastModifiedDate":"2023-09-05"},{"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":"-"},"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":{"nathanielcalimag":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":"nathanielcalimag"},"content":"# delete data directory","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"if [ -d \"./data\" ]","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"then","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" # Remove the directory","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" rm -r \"./data\"","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"fi","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"-"},"content":"# delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"if [ -e \"./ACTUAL.TXT\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" rm ACTUAL.TXT","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":"# compile the code into the bin folder, terminates if error occurred","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"if ! javac -encoding UTF-8 -cp ../src/main/java -Xlint:none -d ../bin ../src/main/java/duke/*.java","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" echo \"********** BUILD FAILURE **********\"","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"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":30,"author":{"gitId":"nathanielcalimag"},"content":"java -classpath ../bin duke.Duke \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"# convert to UNIX format","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":"cp EXPECTED.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"dos2unix ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"# compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":"diff ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"if [ $? -eq 0 ]","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" echo \"Test result: PASSED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" exit 0","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":"else","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" echo \"Test result: FAILED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"nathanielcalimag":9,"-":36}}] +[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# Duke project template","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"This is a project template for a greenfield Java project. It\u0027s named after the","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"1. Open Intellij (if you are not in the welcome screen,","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" click `File` \u003e `Close Project` to close the existing project first)","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":13,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":14,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":15,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"1. Configure the project to use **JDK 11** (not other versions) as explained","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).\u003cbr\u003e","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" In the same dialog, set the **Project language level** field to","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" the `SDK default` option.","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"3. After that, locate the `src/main/java/duke/Duke.java` file, right-click","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" it, and choose `Run Duke.main()` (if the code editor is showing","lastModifiedDate":"2023-08-29"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" compile errors, try restarting the IDE). If the setup is correct, you should","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" see something like the below as the output:","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" ____ _ ","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" | _ \\ _ _| | _____ ","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" | | | | | | | |/ / _ \\","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":" | |_| | |_| | \u003c __/","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":" |____/ \\__,_|_|\\_\\___|","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"nathanielcalimag":12,"-":19}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2023-09-08"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"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":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"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":"nathanielcalimag"},"content":" mainClass.set(\"duke.ui.Launcher\")","lastModifiedDate":"2023-09-10"},{"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":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" archiveFileName \u003d \u0027duke.jar\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":"checkstyle {","lastModifiedDate":"2023-09-08"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2023-09-08"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-08"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":61,"author":{"gitId":"-"},"content":"run {","lastModifiedDate":"2020-05-25"},{"lineNumber":62,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":63,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":"tasks {","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" compileJava {","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" options.encoding \u003d \u0027UTF-8\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":28,"-":41}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"# ChatNat User Guide","lastModifiedDate":"2023-09-22"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"**ChatNat** is the second-brain tool you need to transform the way you manage","lastModifiedDate":"2023-09-22"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"![Sample Screenshot of ChatNat](Ui.png)","lastModifiedDate":"2023-09-22"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":8,"author":{"gitId":"-"},"content":"## Features","lastModifiedDate":"2019-07-29"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"### Adding a to-do: `todo`","lastModifiedDate":"2023-09-22"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"Adds a todo task to the task list.","lastModifiedDate":"2023-09-22"},{"lineNumber":13,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"Format: `todo DESCRIPTION`","lastModifiedDate":"2023-09-22"},{"lineNumber":15,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":17,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"- `todo Haircut`","lastModifiedDate":"2023-09-22"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"- `todo Groceries`","lastModifiedDate":"2023-09-22"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":"\u003e todo Haircut","lastModifiedDate":"2023-09-22"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":"Got it. I\u0027ve added this task:","lastModifiedDate":"2023-09-22"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" [T][] Haircut","lastModifiedDate":"2023-09-22"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"Now you have 1 task in the list.","lastModifiedDate":"2023-09-22"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":"### Adding a deadline: `deadline`","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":"Adds a deadline task to the task list.","lastModifiedDate":"2023-09-22"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":"Format: `deadline DESCRIPTION /by DATE [TIME]`","lastModifiedDate":"2023-09-22"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":"- Time has to be in 24-hour format. (e.g. `1200`).","lastModifiedDate":"2023-09-22"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":"- Indicating time is optional. Time is `0000` if not indicated.","lastModifiedDate":"2023-09-22"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":"- Use `FullYear-Month-Date` or `Date/Month/FullYear` for DATE.","lastModifiedDate":"2023-09-22"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":"- Indicating the `/by` with a valid date is compulsory.","lastModifiedDate":"2023-09-22"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":"- `deadline CS2103T Quiz /by 2023-09-23 1200`","lastModifiedDate":"2023-09-22"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":"- `deadline CS2105 Assignment /by 24/9/2023`","lastModifiedDate":"2023-09-22"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":"\u003e deadline CS2103T Quiz /by 2023-09-23 1200","lastModifiedDate":"2023-09-22"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":"Got it. I\u0027ve added this task:","lastModifiedDate":"2023-09-22"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" [D][] CS2103T Quiz (by: 23 Sep 2023, 1200)","lastModifiedDate":"2023-09-22"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":"Now you have 2 tasks in the list.","lastModifiedDate":"2023-09-22"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":"### Adding an event: `event`","lastModifiedDate":"2023-09-22"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":"Adds a event task to the task list.","lastModifiedDate":"2023-09-22"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":"Format: `event DESCRIPTION /from DATE [TIME] /to DATE [TIME]`","lastModifiedDate":"2023-09-22"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":"- Time has to be in 24-hour format. (e.g. `1200`).","lastModifiedDate":"2023-09-22"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":"- Indicating time is optional. Time is `0000` if not indicated.","lastModifiedDate":"2023-09-22"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":"- Use `FullYear-Month-Date` or `Date/Month/FullYear` for DATE.","lastModifiedDate":"2023-09-22"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":"- Indicating the `/by` with a valid date is compulsory.","lastModifiedDate":"2023-09-22"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":65,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":"- `event CS2103T meeting /from 2023-09-23 /to 2023-09-23 0100`","lastModifiedDate":"2023-09-22"},{"lineNumber":67,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":"\u003e event CS2103T meeting /from 2023-09-23 /to 2023-09-23 0100","lastModifiedDate":"2023-09-22"},{"lineNumber":70,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":"Got it. I\u0027ve added this task:","lastModifiedDate":"2023-09-22"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" [E][] CS2103T meeting (from: 23 Sep 2023, 0000 to: 23 Sep 2023, 0100)","lastModifiedDate":"2023-09-22"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":"Now you have 3 tasks in the list.","lastModifiedDate":"2023-09-22"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":75,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":"### Listing all tasks: `list`","lastModifiedDate":"2023-09-22"},{"lineNumber":77,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":"Lists all the tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":79,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":"Format: `list`","lastModifiedDate":"2023-09-22"},{"lineNumber":81,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":83,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":"\u003e list","lastModifiedDate":"2023-09-22"},{"lineNumber":86,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":"Here are the tasks in your list:","lastModifiedDate":"2023-09-22"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":"1.[T][] Haircut","lastModifiedDate":"2023-09-22"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":"2.[D][] CS2103T Quiz (by: 23 Sep 2023, 1200)","lastModifiedDate":"2023-09-22"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":"3.[E][] CS2103T meeting (from: 23 Sep 2023, 0000 to: 23 Sep 2023, 0100)","lastModifiedDate":"2023-09-22"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":92,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":"- Tasks appear in the order they were added.","lastModifiedDate":"2023-09-22"},{"lineNumber":94,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":"### Finding tasks: `find`","lastModifiedDate":"2023-09-22"},{"lineNumber":96,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":"Finds matching tasks based on search input.","lastModifiedDate":"2023-09-22"},{"lineNumber":98,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":"Format: `find KEYWORDS`","lastModifiedDate":"2023-09-22"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":"- The keywords are **case-sensitive**.","lastModifiedDate":"2023-09-22"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":105,"author":{"gitId":"nathanielcalimag"},"content":"- `find CS2103T`","lastModifiedDate":"2023-09-22"},{"lineNumber":106,"author":{"gitId":"nathanielcalimag"},"content":"- `find Raffles Hall`","lastModifiedDate":"2023-09-22"},{"lineNumber":107,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":108,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2021-07-17"},{"lineNumber":109,"author":{"gitId":"nathanielcalimag"},"content":"\u003e find CS2103T","lastModifiedDate":"2023-09-22"},{"lineNumber":110,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":111,"author":{"gitId":"nathanielcalimag"},"content":"Here are the matching tasks in your list:","lastModifiedDate":"2023-09-22"},{"lineNumber":112,"author":{"gitId":"nathanielcalimag"},"content":"1.[D][] CS2103T Quiz (by: 23 Sep 2023, 1200)","lastModifiedDate":"2023-09-22"},{"lineNumber":113,"author":{"gitId":"nathanielcalimag"},"content":"2.[E][] CS2103T meeting (from: 23 Sep 2023, 0000 to: 23 Sep 2023, 0100)","lastModifiedDate":"2023-09-22"},{"lineNumber":114,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2021-07-17"},{"lineNumber":115,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":116,"author":{"gitId":"nathanielcalimag"},"content":"- Tasks appear in the order they were added.","lastModifiedDate":"2023-09-22"},{"lineNumber":117,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":118,"author":{"gitId":"nathanielcalimag"},"content":"### Deleting a task: `delete`","lastModifiedDate":"2023-09-22"},{"lineNumber":119,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":120,"author":{"gitId":"nathanielcalimag"},"content":"Deletes the specified task.","lastModifiedDate":"2023-09-22"},{"lineNumber":121,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":122,"author":{"gitId":"nathanielcalimag"},"content":"Format: `delete INDEX`","lastModifiedDate":"2023-09-22"},{"lineNumber":123,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":124,"author":{"gitId":"nathanielcalimag"},"content":"- Deletes the task at the specified index.","lastModifiedDate":"2023-09-22"},{"lineNumber":125,"author":{"gitId":"nathanielcalimag"},"content":"- The index refers to the index number shown in the full tasks list after","lastModifiedDate":"2023-10-18"},{"lineNumber":126,"author":{"gitId":"nathanielcalimag"},"content":" entering the `list` command.","lastModifiedDate":"2023-10-18"},{"lineNumber":127,"author":{"gitId":"nathanielcalimag"},"content":"- The index must be a positive integer 1, 2, 3, ….","lastModifiedDate":"2023-09-22"},{"lineNumber":128,"author":{"gitId":"nathanielcalimag"},"content":"- The minimum index is 1, and maximum index is the number of tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":129,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":130,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":131,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":132,"author":{"gitId":"nathanielcalimag"},"content":"- `delete 1`","lastModifiedDate":"2023-09-22"},{"lineNumber":133,"author":{"gitId":"nathanielcalimag"},"content":"- `delete 2`","lastModifiedDate":"2023-09-22"},{"lineNumber":134,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":135,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":136,"author":{"gitId":"nathanielcalimag"},"content":"\u003e delete 1","lastModifiedDate":"2023-09-22"},{"lineNumber":137,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":138,"author":{"gitId":"nathanielcalimag"},"content":"Noted. I\u0027ve removed this task:","lastModifiedDate":"2023-09-22"},{"lineNumber":139,"author":{"gitId":"nathanielcalimag"},"content":" [T][] Haircut","lastModifiedDate":"2023-09-22"},{"lineNumber":140,"author":{"gitId":"nathanielcalimag"},"content":"Now you have 2 tasks in the list.","lastModifiedDate":"2023-09-22"},{"lineNumber":141,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":142,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":143,"author":{"gitId":"nathanielcalimag"},"content":"- **WARNING: This action is irreversible.**","lastModifiedDate":"2023-09-22"},{"lineNumber":144,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":145,"author":{"gitId":"nathanielcalimag"},"content":"### Marking a task: `mark`","lastModifiedDate":"2023-09-22"},{"lineNumber":146,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":147,"author":{"gitId":"nathanielcalimag"},"content":"Marks a specified task.","lastModifiedDate":"2023-09-22"},{"lineNumber":148,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":149,"author":{"gitId":"nathanielcalimag"},"content":"Format: `mark INDEX`","lastModifiedDate":"2023-09-22"},{"lineNumber":150,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":151,"author":{"gitId":"nathanielcalimag"},"content":"- Marks the task at the specified index.","lastModifiedDate":"2023-09-22"},{"lineNumber":152,"author":{"gitId":"nathanielcalimag"},"content":"- The index refers to the index number shown in the full tasks list after","lastModifiedDate":"2023-10-18"},{"lineNumber":153,"author":{"gitId":"nathanielcalimag"},"content":" entering the `list` command.","lastModifiedDate":"2023-10-18"},{"lineNumber":154,"author":{"gitId":"nathanielcalimag"},"content":"- The index must be a positive integer 1, 2, 3, ….","lastModifiedDate":"2023-09-22"},{"lineNumber":155,"author":{"gitId":"nathanielcalimag"},"content":"- The minimum index is 1, and maximum index is the number of tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":156,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":157,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":158,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":159,"author":{"gitId":"nathanielcalimag"},"content":"- `mark 1`","lastModifiedDate":"2023-09-22"},{"lineNumber":160,"author":{"gitId":"nathanielcalimag"},"content":"- `mark 2`","lastModifiedDate":"2023-09-22"},{"lineNumber":161,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":162,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":163,"author":{"gitId":"nathanielcalimag"},"content":"\u003e mark 1","lastModifiedDate":"2023-09-22"},{"lineNumber":164,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":165,"author":{"gitId":"nathanielcalimag"},"content":"Nice! I\u0027ve marked this task as done:","lastModifiedDate":"2023-09-22"},{"lineNumber":166,"author":{"gitId":"nathanielcalimag"},"content":" [D][X] CS2103T Quiz (by: 23 Sep 2023, 1200)","lastModifiedDate":"2023-09-22"},{"lineNumber":167,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":168,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":169,"author":{"gitId":"nathanielcalimag"},"content":"### Unmarking a task: `unmark`","lastModifiedDate":"2023-09-22"},{"lineNumber":170,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":171,"author":{"gitId":"nathanielcalimag"},"content":"Unmarks a specified task.","lastModifiedDate":"2023-09-22"},{"lineNumber":172,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":173,"author":{"gitId":"nathanielcalimag"},"content":"Format: `unmark INDEX`","lastModifiedDate":"2023-09-22"},{"lineNumber":174,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":175,"author":{"gitId":"nathanielcalimag"},"content":"- Unmarks the task at the specified index.","lastModifiedDate":"2023-09-22"},{"lineNumber":176,"author":{"gitId":"nathanielcalimag"},"content":"- The index refers to the index number shown in the full tasks list after","lastModifiedDate":"2023-10-18"},{"lineNumber":177,"author":{"gitId":"nathanielcalimag"},"content":" entering the `list` command.","lastModifiedDate":"2023-10-18"},{"lineNumber":178,"author":{"gitId":"nathanielcalimag"},"content":"- The index must be a positive integer 1, 2, 3, ….","lastModifiedDate":"2023-09-22"},{"lineNumber":179,"author":{"gitId":"nathanielcalimag"},"content":"- The minimum index is 1, and maximum index is the number of tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":180,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":181,"author":{"gitId":"nathanielcalimag"},"content":"Examples:","lastModifiedDate":"2023-09-22"},{"lineNumber":182,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":183,"author":{"gitId":"nathanielcalimag"},"content":"- `unmark 1`","lastModifiedDate":"2023-09-22"},{"lineNumber":184,"author":{"gitId":"nathanielcalimag"},"content":"- `unmark 2`","lastModifiedDate":"2023-09-22"},{"lineNumber":185,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":186,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":187,"author":{"gitId":"nathanielcalimag"},"content":"\u003e unmark 1","lastModifiedDate":"2023-09-22"},{"lineNumber":188,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":189,"author":{"gitId":"nathanielcalimag"},"content":"OK, I\u0027ve marked this task as not done yet:","lastModifiedDate":"2023-09-22"},{"lineNumber":190,"author":{"gitId":"nathanielcalimag"},"content":" [D][] CS2103T Quiz (by: 23 Sep 2023, 1200)","lastModifiedDate":"2023-09-22"},{"lineNumber":191,"author":{"gitId":"nathanielcalimag"},"content":"```","lastModifiedDate":"2023-09-22"},{"lineNumber":192,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":193,"author":{"gitId":"nathanielcalimag"},"content":"### Exiting ChatNat: `bye`","lastModifiedDate":"2023-09-22"},{"lineNumber":194,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":195,"author":{"gitId":"nathanielcalimag"},"content":"Exits the application.","lastModifiedDate":"2023-09-22"},{"lineNumber":196,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":197,"author":{"gitId":"nathanielcalimag"},"content":"Format: `bye`","lastModifiedDate":"2023-09-22"}],"authorContributionMap":{"nathanielcalimag":171,"-":26}},{"path":"src/main/java/duke/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-22"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.UnknownCommandException;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-23"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" * Serves as the entry point to run the application.","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-23"},{"lineNumber":12,"author":{"gitId":"-"},"content":"public class Duke {","lastModifiedDate":"2019-07-29"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" private final TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" private final Parser parser \u003d new Parser();","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code Duke} instance.","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" public Duke() {","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" Storage storage \u003d new DukeStorage();","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" this.taskList.setStorage(storage);","lastModifiedDate":"2023-09-10"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" this.taskList.loadTasks();","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-22"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" this.taskList.saveTasks();","lastModifiedDate":"2023-09-22"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException ioException) {","lastModifiedDate":"2023-09-22"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" System.out.printf(Messages.ERROR_PREFIX + \"%n\", ioException.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException | IllegalArgumentException | StorageCreationException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" System.out.printf(Messages.ERROR_PREFIX + \"%n\", e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-23"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the output of a command execution, given an input.","lastModifiedDate":"2023-09-10"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-10"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The input command string.","lastModifiedDate":"2023-09-10"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" * @return The output string.","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" public String getResponse(String input) {","lastModifiedDate":"2023-09-10"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-08-24"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" return parser.executeCommand(input, taskList);","lastModifiedDate":"2023-09-10"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" } catch (UnknownCommandException e) {","lastModifiedDate":"2023-08-24"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX, e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":47,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":48,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"nathanielcalimag":45,"-":3}},{"path":"src/main/java/duke/DukeStorage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.File;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-08"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-08"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * Represents the interface between the application and the storage file.","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" * Allows the application to read and write to a storage txt file.","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"public class DukeStorage implements Storage {","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" private static final String DIRECTORY_PATH \u003d \"data\";","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" private static final String FILE_PATH \u003d \"duke.txt\";","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" public DukeStorage() throws IOException, StorageCreationException {","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" this.initialiseStorage();","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" * Reads the tasks from the storage file, and removes duplicates from storage.","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * If the storage file and directory does not exist, it will be created.","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If there are not enough arguments to create tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DateTimeParseException If the date in storage is formatted wrongly.","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" * @throws StorageCreationException If the storage file and directory creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If the storage file creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" public List\u003cTask\u003e readStorage() throws InsufficientArgumentsException, DateTimeParseException,","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" StorageCreationException, IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" initialiseStorage();","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" List\u003cTask\u003e tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" String storagePath \u003d String.format(\"./%s/%s\", DIRECTORY_PATH, FILE_PATH);","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" File file \u003d new File(storagePath);","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" Scanner scanner \u003d new Scanner(file);","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" boolean hasDuplicates \u003d false;","lastModifiedDate":"2023-09-22"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" while (Objects.requireNonNull(scanner).hasNext()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" String input \u003d scanner.nextLine();","lastModifiedDate":"2023-09-05"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" String taskCode \u003d input.substring(0, 1);","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" String taskInput \u003d input.length() \u003e 4 ? input.substring(4) : \"\";","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d Parser.parse(taskCode, taskInput);","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" if (tasks.contains(task)) {","lastModifiedDate":"2023-09-22"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" hasDuplicates \u003d true;","lastModifiedDate":"2023-09-22"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" continue;","lastModifiedDate":"2023-09-22"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-22"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" tasks.add(task);","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" if (hasDuplicates) {","lastModifiedDate":"2023-09-22"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" this.updateStorage(tasks);","lastModifiedDate":"2023-09-22"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-22"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" return tasks;","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" * Rewrites the storage file from a list of tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" * @param tasks The list of tasks to be written into storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If writing to the file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" public void updateStorage(List\u003cTask\u003e tasks) throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" String storagePath \u003d String.format(\"./%s/%s\", DIRECTORY_PATH, FILE_PATH);","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" FileWriter fw \u003d new FileWriter(storagePath);","lastModifiedDate":"2023-09-05"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" for (Task task : tasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" fw.write(task.encode() + System.lineSeparator());","lastModifiedDate":"2023-09-05"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" fw.close();","lastModifiedDate":"2023-09-05"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" throw new IOException(Messages.FAILED_TO_WRITE_FILE_ERROR_MESSAGE);","lastModifiedDate":"2023-09-05"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":" * Initialises the storage directory and file if they do not exist.","lastModifiedDate":"2023-09-05"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":" * @throws StorageCreationException If the storage file and directory creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If the storage file creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" private void initialiseStorage() throws IOException, StorageCreationException {","lastModifiedDate":"2023-09-05"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" String directoryPath \u003d String.format(\"./%s\", DIRECTORY_PATH);","lastModifiedDate":"2023-09-05"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" String storagePath \u003d String.format(\"./%s/%s\", DIRECTORY_PATH, FILE_PATH);","lastModifiedDate":"2023-09-05"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" File directory \u003d new File(directoryPath);","lastModifiedDate":"2023-09-05"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" if (!directory.exists()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":" if (!directory.mkdir()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" throw new StorageCreationException(Messages.FAILED_TO_CREATE_FOLDER_ERROR_MESSAGE);","lastModifiedDate":"2023-09-05"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":" File file \u003d new File(storagePath);","lastModifiedDate":"2023-09-05"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":" if (!file.exists()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":" if (!file.createNewFile()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":" throw new StorageCreationException(Messages.FAILED_TO_CREATE_FILE_ERROR_MESSAGE);","lastModifiedDate":"2023-09-05"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":105,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":106,"author":{"gitId":"nathanielcalimag"},"content":" throw new IOException(Messages.FAILED_TO_CREATE_FILE_ERROR_MESSAGE);","lastModifiedDate":"2023-09-05"},{"lineNumber":107,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":108,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":109,"author":{"gitId":"nathanielcalimag"},"content":" assert directory.exists() : \"Storage directory must exist\";","lastModifiedDate":"2023-09-20"},{"lineNumber":110,"author":{"gitId":"nathanielcalimag"},"content":" assert file.exists() : \"Storage file must exist\";","lastModifiedDate":"2023-09-20"},{"lineNumber":111,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":112,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":112}},{"path":"src/main/java/duke/Messages.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Stores the string messages of the application.","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public class Messages {","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" // General","lastModifiedDate":"2023-09-22"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" public static final String APPLICATION_NAME \u003d \"ChatNat\";","lastModifiedDate":"2023-09-22"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" // Regular messages","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" public static final String GREETING_MESSAGE \u003d \" Hello! I\u0027m ChatNat!\\n What can I do for you?\";","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" public static final String LIST_MESSAGE \u003d \" Here are the tasks in your list:\";","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" public static final String FIND_MESSAGE \u003d \" Here are the matching tasks in your list:\";","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" public static final String INSERT_MESSAGE \u003d \" Got it. I\u0027ve added this task:\\n %s\\n Now you \"","lastModifiedDate":"2023-09-08"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" + \"have %d %s in the list.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" public static final String MARKED_MESSAGE \u003d \" Nice! I\u0027ve marked this task as done:\\n %s\";","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" public static final String UNMARKED_MESSAGE \u003d \" OK, I\u0027ve marked this task as not done yet:\\n \"","lastModifiedDate":"2023-09-08"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" + \" %s\";","lastModifiedDate":"2023-09-08"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" public static final String DELETE_MESSAGE \u003d \" Noted. I\u0027ve removed this task:\\n %s\\n Now you\"","lastModifiedDate":"2023-09-08"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" + \" have %d tasks in the list.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" public static final String EXIT_MESSAGE \u003d \" Bye. Hope to see you again soon!\";","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" // Error messages","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" public static final String ERROR_PREFIX \u003d \" ☹ OOPS!!! %s\";","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" public static final String INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE \u003d \"The %s of a %s cannot be \"","lastModifiedDate":"2023-09-08"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" + \"empty.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" public static final String UNKNOWN_COMMAND_ERROR_MESSAGE \u003d \"I\u0027m sorry, but I don\u0027t know what \"","lastModifiedDate":"2023-09-08"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" + \"that means :-(\";","lastModifiedDate":"2023-09-08"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" public static final String FAILED_TO_CREATE_FILE_ERROR_MESSAGE \u003d \"We couldn\u0027t create a new \"","lastModifiedDate":"2023-09-08"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" + \"data/duke.txt file.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" public static final String FAILED_TO_WRITE_FILE_ERROR_MESSAGE \u003d \"We couldn\u0027t write to the \"","lastModifiedDate":"2023-09-08"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" + \"data/duke.txt file.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" public static final String FAILED_TO_CREATE_FOLDER_ERROR_MESSAGE \u003d \"We couldn\u0027t create a new \"","lastModifiedDate":"2023-09-08"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" + \"data/duke.txt file.\";","lastModifiedDate":"2023-09-08"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" public static final String INVALID_DATE_TIME_FORMAT \u003d \"\\\"%s\\\" is not a valid date time format.\";","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" public static final String DUPLICATE_TASKS_ERROR_MESSAGE \u003d \"Task \\\"%s\\\" already exists!\";","lastModifiedDate":"2023-09-22"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" public static final String INVALID_INDEX_ERROR_MESSAGE \u003d \"\\\"%s\\\" is not a valid index!\";","lastModifiedDate":"2023-09-22"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":44}},{"path":"src/main/java/duke/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalTime;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Arrays;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.HashMap;","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.Command;","lastModifiedDate":"2023-09-08"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.DeleteCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.ExitCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.FindCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.InsertCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.ListCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.MarkCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"import duke.commands.UnmarkCommand;","lastModifiedDate":"2023-09-08"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-08"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.UnknownCommandException;","lastModifiedDate":"2023-09-08"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Deadline;","lastModifiedDate":"2023-09-08"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Event;","lastModifiedDate":"2023-09-08"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.ToDo;","lastModifiedDate":"2023-09-08"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" * Represents the Application object responsible for storing and executing commands.","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":"public class Parser {","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" public static final String OUTPUT_DATE_TIME_PATTERN \u003d \"d MMM yyyy, HHmm\";","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" public static final String STORAGE_DATE_TIME_PATTERN \u003d \"yyyy-MM-dd HHmm\";","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" * All supported date time formats for our application.","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" private static final List\u003cString\u003e dateTimeFormats \u003d Arrays.asList(","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" \"d/M/yyyy\", \"d/M/yyyy HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" \"d/MM/yyyy\", \"d/MM/yyyy HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" \"dd/M/yyyy\", \"dd/M/yyyy HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" \"dd/MM/yyyy\", \"dd/MM/yyyy HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" \"yyyy-M-d\", \"yyyy-M-d HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" \"yyyy-M-dd\", \"yyyy-M-dd HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" \"yyyy-MM-d\", \"yyyy-MM-d HHmm\",","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" \"yyyy-MM-dd\", \"yyyy-MM-dd HHmm\"","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" );","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" * All commands stored in a map.","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" private final HashMap\u003cString, Command\u003e commandMap \u003d new HashMap\u003c\u003e();","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-08"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code Parser} instance.","lastModifiedDate":"2023-09-08"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-08"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" public Parser() {","lastModifiedDate":"2023-09-05"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(\"delete\", new DeleteCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(\"list\", new ListCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(\"mark\", new MarkCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(\"unmark\", new UnmarkCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(\"find\", new FindCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(new String[]{Deadline.TASK_TYPE, Event.TASK_TYPE, ToDo.TASK_TYPE},","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" new InsertCommand());","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" this.addCommand(new String[]{\"bye\", \"exit\", \"leave\", \"quit\"}, new ExitCommand());","lastModifiedDate":"2023-09-05"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" assert !commandMap.isEmpty() : \"Command map cannot be empty\";","lastModifiedDate":"2023-09-20"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" * Parses a date time string to get a local date time object.","lastModifiedDate":"2023-09-05"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" * @param dateTimeString The date time string to be parsed.","lastModifiedDate":"2023-09-05"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" * @return The local date time object based on the string.","lastModifiedDate":"2023-09-05"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" public static LocalDateTime parseDate(String dateTimeString) {","lastModifiedDate":"2023-08-31"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" for (String format : dateTimeFormats) {","lastModifiedDate":"2023-08-31"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTime \u003d Parser.parseDateFormat(dateTimeString, format);","lastModifiedDate":"2023-09-21"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":" if (dateTime !\u003d null) {","lastModifiedDate":"2023-09-21"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":" return dateTime;","lastModifiedDate":"2023-09-21"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" throw new DateTimeParseException(String.format(Messages.INVALID_DATE_TIME_FORMAT,","lastModifiedDate":"2023-09-22"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":" dateTimeString), dateTimeString, 0);","lastModifiedDate":"2023-09-22"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" * Parses a date time string to get a local date time object based on a datetime format.","lastModifiedDate":"2023-09-21"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" * @param dateTimeString The date time string to be parsed.","lastModifiedDate":"2023-09-21"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" * @param format The datetime format.","lastModifiedDate":"2023-09-21"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":" * @return The local date time object based on the string if it is compatible with the format.","lastModifiedDate":"2023-09-21"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":" private static LocalDateTime parseDateFormat(String dateTimeString, String format) {","lastModifiedDate":"2023-09-21"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":" if (format.contains(\"HHmm\")) {","lastModifiedDate":"2023-08-31"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":" return LocalDateTime.parse(dateTimeString, DateTimeFormatter.ofPattern(format));","lastModifiedDate":"2023-08-31"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":" // input without specifying time will default to 0000","lastModifiedDate":"2023-08-31"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":" LocalDate date \u003d LocalDate.parse(dateTimeString,","lastModifiedDate":"2023-08-31"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":" DateTimeFormatter.ofPattern(format));","lastModifiedDate":"2023-08-31"},{"lineNumber":105,"author":{"gitId":"nathanielcalimag"},"content":" return LocalDateTime.of(date, LocalTime.MIDNIGHT);","lastModifiedDate":"2023-08-31"},{"lineNumber":106,"author":{"gitId":"nathanielcalimag"},"content":" } catch (DateTimeParseException ignored) {","lastModifiedDate":"2023-08-31"},{"lineNumber":107,"author":{"gitId":"nathanielcalimag"},"content":" return null;","lastModifiedDate":"2023-09-21"},{"lineNumber":108,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":109,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":110,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":111,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":112,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a task based on task type and input string.","lastModifiedDate":"2023-09-05"},{"lineNumber":113,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":114,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskType The string representing the task type.","lastModifiedDate":"2023-09-05"},{"lineNumber":115,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The input string used for creating a new task.","lastModifiedDate":"2023-09-05"},{"lineNumber":116,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created task.","lastModifiedDate":"2023-09-05"},{"lineNumber":117,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If input is insufficient to create task.","lastModifiedDate":"2023-09-05"},{"lineNumber":118,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":119,"author":{"gitId":"nathanielcalimag"},"content":" public static Task createTask(String taskType, String input)","lastModifiedDate":"2023-09-05"},{"lineNumber":120,"author":{"gitId":"nathanielcalimag"},"content":" throws InsufficientArgumentsException, DateTimeParseException {","lastModifiedDate":"2023-09-05"},{"lineNumber":121,"author":{"gitId":"nathanielcalimag"},"content":" if (Objects.equals(input, \"\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":122,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-05"},{"lineNumber":123,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE, \"description\", taskType));","lastModifiedDate":"2023-09-05"},{"lineNumber":124,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":125,"author":{"gitId":"nathanielcalimag"},"content":" switch (taskType) {","lastModifiedDate":"2023-09-05"},{"lineNumber":126,"author":{"gitId":"nathanielcalimag"},"content":" case Deadline.TASK_TYPE:","lastModifiedDate":"2023-09-21"},{"lineNumber":127,"author":{"gitId":"nathanielcalimag"},"content":" return Deadline.parseUserInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":128,"author":{"gitId":"nathanielcalimag"},"content":" case Event.TASK_TYPE:","lastModifiedDate":"2023-09-21"},{"lineNumber":129,"author":{"gitId":"nathanielcalimag"},"content":" return Event.parseUserInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":130,"author":{"gitId":"nathanielcalimag"},"content":" case ToDo.TASK_TYPE:","lastModifiedDate":"2023-09-21"},{"lineNumber":131,"author":{"gitId":"nathanielcalimag"},"content":" return ToDo.parseUserInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":132,"author":{"gitId":"nathanielcalimag"},"content":" default:","lastModifiedDate":"2023-09-05"},{"lineNumber":133,"author":{"gitId":"nathanielcalimag"},"content":" return null;","lastModifiedDate":"2023-09-05"},{"lineNumber":134,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":135,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":136,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":137,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":138,"author":{"gitId":"nathanielcalimag"},"content":" * Parses an input from storage to create a task.","lastModifiedDate":"2023-09-05"},{"lineNumber":139,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":140,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskCode The char representing the task type.","lastModifiedDate":"2023-09-05"},{"lineNumber":141,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The input string used for creating a new task.","lastModifiedDate":"2023-09-05"},{"lineNumber":142,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created task.","lastModifiedDate":"2023-09-05"},{"lineNumber":143,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If input is insufficient to create task.","lastModifiedDate":"2023-09-05"},{"lineNumber":144,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DateTimeParseException If the date in storage is formatted wrongly.","lastModifiedDate":"2023-09-05"},{"lineNumber":145,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":146,"author":{"gitId":"nathanielcalimag"},"content":" public static Task parse(String taskCode, String input)","lastModifiedDate":"2023-09-05"},{"lineNumber":147,"author":{"gitId":"nathanielcalimag"},"content":" throws InsufficientArgumentsException, DateTimeParseException {","lastModifiedDate":"2023-09-05"},{"lineNumber":148,"author":{"gitId":"nathanielcalimag"},"content":" String taskType;","lastModifiedDate":"2023-09-05"},{"lineNumber":149,"author":{"gitId":"nathanielcalimag"},"content":" switch (taskCode) {","lastModifiedDate":"2023-09-05"},{"lineNumber":150,"author":{"gitId":"nathanielcalimag"},"content":" case Deadline.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":151,"author":{"gitId":"nathanielcalimag"},"content":" taskType \u003d Deadline.TASK_TYPE;","lastModifiedDate":"2023-09-21"},{"lineNumber":152,"author":{"gitId":"nathanielcalimag"},"content":" break;","lastModifiedDate":"2023-09-05"},{"lineNumber":153,"author":{"gitId":"nathanielcalimag"},"content":" case Event.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":154,"author":{"gitId":"nathanielcalimag"},"content":" taskType \u003d Event.TASK_TYPE;","lastModifiedDate":"2023-09-21"},{"lineNumber":155,"author":{"gitId":"nathanielcalimag"},"content":" break;","lastModifiedDate":"2023-09-05"},{"lineNumber":156,"author":{"gitId":"nathanielcalimag"},"content":" case ToDo.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":157,"author":{"gitId":"nathanielcalimag"},"content":" taskType \u003d ToDo.TASK_TYPE;","lastModifiedDate":"2023-09-21"},{"lineNumber":158,"author":{"gitId":"nathanielcalimag"},"content":" break;","lastModifiedDate":"2023-09-05"},{"lineNumber":159,"author":{"gitId":"nathanielcalimag"},"content":" default:","lastModifiedDate":"2023-09-05"},{"lineNumber":160,"author":{"gitId":"nathanielcalimag"},"content":" taskType \u003d \"\";","lastModifiedDate":"2023-09-05"},{"lineNumber":161,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":162,"author":{"gitId":"nathanielcalimag"},"content":" if (Objects.equals(input, \"\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":163,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-05"},{"lineNumber":164,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE,","lastModifiedDate":"2023-09-05"},{"lineNumber":165,"author":{"gitId":"nathanielcalimag"},"content":" \"isDone\", taskType));","lastModifiedDate":"2023-09-05"},{"lineNumber":166,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":167,"author":{"gitId":"nathanielcalimag"},"content":" if (input.length() \u003c 5) {","lastModifiedDate":"2023-09-05"},{"lineNumber":168,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-05"},{"lineNumber":169,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE, \"description\", taskType));","lastModifiedDate":"2023-09-05"},{"lineNumber":170,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":171,"author":{"gitId":"nathanielcalimag"},"content":" switch (taskCode) {","lastModifiedDate":"2023-09-05"},{"lineNumber":172,"author":{"gitId":"nathanielcalimag"},"content":" case Deadline.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":173,"author":{"gitId":"nathanielcalimag"},"content":" return Deadline.parseStorageInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":174,"author":{"gitId":"nathanielcalimag"},"content":" case Event.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":175,"author":{"gitId":"nathanielcalimag"},"content":" return Event.parseStorageInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":176,"author":{"gitId":"nathanielcalimag"},"content":" case ToDo.TASK_CODE:","lastModifiedDate":"2023-09-21"},{"lineNumber":177,"author":{"gitId":"nathanielcalimag"},"content":" return ToDo.parseStorageInput(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":178,"author":{"gitId":"nathanielcalimag"},"content":" default:","lastModifiedDate":"2023-09-05"},{"lineNumber":179,"author":{"gitId":"nathanielcalimag"},"content":" return null;","lastModifiedDate":"2023-09-05"},{"lineNumber":180,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":181,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":182,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":183,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":184,"author":{"gitId":"nathanielcalimag"},"content":" * Validates arguments in input string.","lastModifiedDate":"2023-09-05"},{"lineNumber":185,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":186,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The input string used to create task.","lastModifiedDate":"2023-09-05"},{"lineNumber":187,"author":{"gitId":"nathanielcalimag"},"content":" * @param parameterName The parameter name to be checked.","lastModifiedDate":"2023-09-05"},{"lineNumber":188,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If input is missing arguments from task.","lastModifiedDate":"2023-09-05"},{"lineNumber":189,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":190,"author":{"gitId":"nathanielcalimag"},"content":" public static void validateContainsArgument(String input, String taskType,","lastModifiedDate":"2023-09-21"},{"lineNumber":191,"author":{"gitId":"nathanielcalimag"},"content":" String parameterName)","lastModifiedDate":"2023-09-05"},{"lineNumber":192,"author":{"gitId":"nathanielcalimag"},"content":" throws InsufficientArgumentsException {","lastModifiedDate":"2023-09-05"},{"lineNumber":193,"author":{"gitId":"nathanielcalimag"},"content":" if (!input.contains(String.format(\"/%s\", parameterName))) {","lastModifiedDate":"2023-09-05"},{"lineNumber":194,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-05"},{"lineNumber":195,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE,","lastModifiedDate":"2023-09-05"},{"lineNumber":196,"author":{"gitId":"nathanielcalimag"},"content":" parameterName, taskType));","lastModifiedDate":"2023-09-05"},{"lineNumber":197,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":198,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":199,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":200,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":201,"author":{"gitId":"nathanielcalimag"},"content":" * Adds a command to the application\u0027s command map.","lastModifiedDate":"2023-09-05"},{"lineNumber":202,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":203,"author":{"gitId":"nathanielcalimag"},"content":" * @param name The name of the command.","lastModifiedDate":"2023-09-05"},{"lineNumber":204,"author":{"gitId":"nathanielcalimag"},"content":" * @param command The associated command.","lastModifiedDate":"2023-09-05"},{"lineNumber":205,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":206,"author":{"gitId":"nathanielcalimag"},"content":" private void addCommand(String name, Command command) {","lastModifiedDate":"2023-09-05"},{"lineNumber":207,"author":{"gitId":"nathanielcalimag"},"content":" assert command !\u003d null : \"Command cannot be null\";","lastModifiedDate":"2023-09-20"},{"lineNumber":208,"author":{"gitId":"nathanielcalimag"},"content":" this.commandMap.put(name, command);","lastModifiedDate":"2023-09-05"},{"lineNumber":209,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":210,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":211,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":212,"author":{"gitId":"nathanielcalimag"},"content":" * Adds a command to the application\u0027s command map.","lastModifiedDate":"2023-09-05"},{"lineNumber":213,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":214,"author":{"gitId":"nathanielcalimag"},"content":" * @param names The names of the command.","lastModifiedDate":"2023-09-05"},{"lineNumber":215,"author":{"gitId":"nathanielcalimag"},"content":" * @param command The associated command.","lastModifiedDate":"2023-09-05"},{"lineNumber":216,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":217,"author":{"gitId":"nathanielcalimag"},"content":" private void addCommand(String[] names, Command command) {","lastModifiedDate":"2023-09-05"},{"lineNumber":218,"author":{"gitId":"nathanielcalimag"},"content":" assert command !\u003d null : \"Command cannot be null\";","lastModifiedDate":"2023-09-20"},{"lineNumber":219,"author":{"gitId":"nathanielcalimag"},"content":" for (String name : names) {","lastModifiedDate":"2023-09-05"},{"lineNumber":220,"author":{"gitId":"nathanielcalimag"},"content":" this.commandMap.put(name, command);","lastModifiedDate":"2023-09-05"},{"lineNumber":221,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":222,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":223,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":224,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":225,"author":{"gitId":"nathanielcalimag"},"content":" * Executes a command given an input.","lastModifiedDate":"2023-09-05"},{"lineNumber":226,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":227,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The input of the user.","lastModifiedDate":"2023-09-05"},{"lineNumber":228,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":229,"author":{"gitId":"nathanielcalimag"},"content":" * @throws UnknownCommandException If no known command can be found from the input.","lastModifiedDate":"2023-09-10"},{"lineNumber":230,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":231,"author":{"gitId":"nathanielcalimag"},"content":" public String executeCommand(String input, TaskList taskList) throws UnknownCommandException {","lastModifiedDate":"2023-09-10"},{"lineNumber":232,"author":{"gitId":"nathanielcalimag"},"content":" // Separate the command name and the command input","lastModifiedDate":"2023-09-05"},{"lineNumber":233,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \");","lastModifiedDate":"2023-09-05"},{"lineNumber":234,"author":{"gitId":"nathanielcalimag"},"content":" String commandName \u003d args[0];","lastModifiedDate":"2023-09-05"},{"lineNumber":235,"author":{"gitId":"nathanielcalimag"},"content":" Command command \u003d this.commandMap.get(commandName);","lastModifiedDate":"2023-09-10"},{"lineNumber":236,"author":{"gitId":"nathanielcalimag"},"content":" if (command !\u003d null) {","lastModifiedDate":"2023-09-05"},{"lineNumber":237,"author":{"gitId":"nathanielcalimag"},"content":" String output \u003d command.run(input, taskList);","lastModifiedDate":"2023-09-20"},{"lineNumber":238,"author":{"gitId":"nathanielcalimag"},"content":" assert !(output \u003d\u003d null) \u0026\u0026 !output.isEmpty() : \"Command output cannot be null or \"","lastModifiedDate":"2023-09-20"},{"lineNumber":239,"author":{"gitId":"nathanielcalimag"},"content":" + \"empty\";","lastModifiedDate":"2023-09-20"},{"lineNumber":240,"author":{"gitId":"nathanielcalimag"},"content":" return output;","lastModifiedDate":"2023-09-20"},{"lineNumber":241,"author":{"gitId":"nathanielcalimag"},"content":" } else {","lastModifiedDate":"2023-09-05"},{"lineNumber":242,"author":{"gitId":"nathanielcalimag"},"content":" throw new UnknownCommandException(Messages.UNKNOWN_COMMAND_ERROR_MESSAGE);","lastModifiedDate":"2023-09-05"},{"lineNumber":243,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":244,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":245,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"nathanielcalimag":245}},{"path":"src/main/java/duke/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-08"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-08"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * Represents the generic interface for the storage of the application.","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"public interface Storage {","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * Reads the tasks from storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If there are not enough arguments to create tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DateTimeParseException If the date in storage is formatted wrongly.","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" * @throws StorageCreationException If the storage and directory creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If the storage creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" List\u003cTask\u003e readStorage() throws InsufficientArgumentsException, DateTimeParseException,","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" StorageCreationException, IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" * Rewrites the storage from a list of tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" * @param tasks The list of tasks to be written into storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If writing to the failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" void updateStorage(List\u003cTask\u003e tasks) throws IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":33}},{"path":"src/main/java/duke/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.DuplicateTaskException;","lastModifiedDate":"2023-09-22"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-08"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-08"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * Contains functionality to read and interact with the application state.","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"public class TaskList {","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" private final List\u003cTask\u003e tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" private Storage storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the number of tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" * @return The number of tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" public int getTaskCount() {","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" return this.tasks.size();","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * Lists out all the tasks into an output string.","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" * @return The output string.","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" public String listTasks() {","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" StringBuilder stringBuilder \u003d new StringBuilder(Messages.LIST_MESSAGE + \"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d tasks.get(i);","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" stringBuilder.append(String.format(\" %d.%s\", i + 1, task));","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" if (i \u003c tasks.size() - 1) {","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" stringBuilder.append(\"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" * Searches for matching tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The search string.","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" * @return The output string.","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" public String searchTasks(String input) {","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" StringBuilder stringBuilder \u003d new StringBuilder(Messages.FIND_MESSAGE + \"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" int filteredCount \u003d 0;","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" for (Task task : this.tasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" if (!task.getDescription().contains(input)) {","lastModifiedDate":"2023-09-05"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" continue;","lastModifiedDate":"2023-09-05"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" filteredCount++;","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" stringBuilder.append(String.format(\" %d.%s\", filteredCount, task));","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" stringBuilder.append(\"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" if (filteredCount \u003e 0) {","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" stringBuilder.setLength(stringBuilder.length() - 1);","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" * Inserts a task into the list of items.","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" * @param task The item to be added.","lastModifiedDate":"2023-09-05"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If saving tasks to file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DuplicateTaskException If the task is a duplicate.","lastModifiedDate":"2023-09-22"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" public void insertTask(Task task) throws IOException, DuplicateTaskException {","lastModifiedDate":"2023-09-22"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" if (this.tasks.contains(task)) {","lastModifiedDate":"2023-09-22"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" throw new DuplicateTaskException(String.format(","lastModifiedDate":"2023-09-22"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" Messages.DUPLICATE_TASKS_ERROR_MESSAGE, task));","lastModifiedDate":"2023-09-22"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-22"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":" this.tasks.add(task);","lastModifiedDate":"2023-09-05"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":" this.saveTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":" * Marks task based on index.","lastModifiedDate":"2023-09-05"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":" * @param index The index of the item to be marked.","lastModifiedDate":"2023-09-05"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" * @return The marked task\u0027s string.","lastModifiedDate":"2023-09-05"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If saving tasks to file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" public String markTask(int index) throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d this.tasks.get(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":" task.mark();","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" this.saveTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":" return task.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":" * Unmarks task based on index.","lastModifiedDate":"2023-09-05"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":" * @param index The index of the item to be unmarked.","lastModifiedDate":"2023-09-05"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":" * @return The unmarked task\u0027s string.","lastModifiedDate":"2023-09-05"},{"lineNumber":105,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If saving tasks to file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":106,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":107,"author":{"gitId":"nathanielcalimag"},"content":" public String unmarkTask(int index) throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":108,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d this.tasks.get(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":109,"author":{"gitId":"nathanielcalimag"},"content":" task.unmark();","lastModifiedDate":"2023-09-05"},{"lineNumber":110,"author":{"gitId":"nathanielcalimag"},"content":" this.saveTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":111,"author":{"gitId":"nathanielcalimag"},"content":" return task.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":112,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":113,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":114,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":115,"author":{"gitId":"nathanielcalimag"},"content":" * Deletes task based on index.","lastModifiedDate":"2023-09-05"},{"lineNumber":116,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":117,"author":{"gitId":"nathanielcalimag"},"content":" * @param index The index of the item to be deleted.","lastModifiedDate":"2023-09-05"},{"lineNumber":118,"author":{"gitId":"nathanielcalimag"},"content":" * @return The deleted task\u0027s string.","lastModifiedDate":"2023-09-05"},{"lineNumber":119,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If saving tasks to file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":120,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":121,"author":{"gitId":"nathanielcalimag"},"content":" public String deleteTask(int index) throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":122,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d this.tasks.remove(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":123,"author":{"gitId":"nathanielcalimag"},"content":" this.saveTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":124,"author":{"gitId":"nathanielcalimag"},"content":" return task.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":125,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":126,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":127,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":128,"author":{"gitId":"nathanielcalimag"},"content":" * Loads all tasks from storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":129,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":130,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If there are not enough arguments to create tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":131,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DateTimeParseException If the date in storage is formatted wrongly.","lastModifiedDate":"2023-09-05"},{"lineNumber":132,"author":{"gitId":"nathanielcalimag"},"content":" * @throws StorageCreationException If the storage file and directory creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":133,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If the storage file creation failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":134,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":135,"author":{"gitId":"nathanielcalimag"},"content":" public void loadTasks() throws InsufficientArgumentsException, DateTimeParseException,","lastModifiedDate":"2023-09-05"},{"lineNumber":136,"author":{"gitId":"nathanielcalimag"},"content":" StorageCreationException, IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":137,"author":{"gitId":"nathanielcalimag"},"content":" List\u003cTask\u003e tasks \u003d this.storage.readStorage();","lastModifiedDate":"2023-09-05"},{"lineNumber":138,"author":{"gitId":"nathanielcalimag"},"content":" this.tasks.clear();","lastModifiedDate":"2023-09-05"},{"lineNumber":139,"author":{"gitId":"nathanielcalimag"},"content":" this.tasks.addAll(tasks);","lastModifiedDate":"2023-09-05"},{"lineNumber":140,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":141,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":142,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":143,"author":{"gitId":"nathanielcalimag"},"content":" * Saves the tasks into storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":144,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":145,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException If writing to the file failed.","lastModifiedDate":"2023-09-05"},{"lineNumber":146,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":147,"author":{"gitId":"nathanielcalimag"},"content":" public void saveTasks() throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":148,"author":{"gitId":"nathanielcalimag"},"content":" this.storage.updateStorage(this.tasks);","lastModifiedDate":"2023-09-05"},{"lineNumber":149,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":150,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":151,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":152,"author":{"gitId":"nathanielcalimag"},"content":" * Sets the storage object for the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":153,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":154,"author":{"gitId":"nathanielcalimag"},"content":" * @param storage The storage object.","lastModifiedDate":"2023-09-05"},{"lineNumber":155,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":156,"author":{"gitId":"nathanielcalimag"},"content":" public void setStorage(Storage storage) {","lastModifiedDate":"2023-09-05"},{"lineNumber":157,"author":{"gitId":"nathanielcalimag"},"content":" this.storage \u003d storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":158,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":159,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":159}},{"path":"src/main/java/duke/commands/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-23"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a generic command interface with a run method defining the","lastModifiedDate":"2023-08-29"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" * behaviour of the command.","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-23"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"public interface Command {","lastModifiedDate":"2023-08-23"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-23"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" * Executes the command given an input.","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-23"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The command to be run.","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-23"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" String run(String input, TaskList taskList);","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"nathanielcalimag":18}},{"path":"src/main/java/duke/commands/DeleteCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" * Deletes a task.","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"public class DeleteCommand implements Command {","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * Deletes a task from the application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input of the task to be deleted.","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \", 2);","lastModifiedDate":"2023-08-24"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" String indexString \u003d args[1];","lastModifiedDate":"2023-08-24"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" int index \u003d Integer.parseInt(indexString) - 1;","lastModifiedDate":"2023-09-22"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" String taskString \u003d taskList.deleteTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.DELETE_MESSAGE, taskString, taskList.getTaskCount());","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" } catch (NumberFormatException | IndexOutOfBoundsException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX,","lastModifiedDate":"2023-09-22"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" String.format(Messages.INVALID_INDEX_ERROR_MESSAGE, indexString));","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX, e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":34}},{"path":"src/main/java/duke/commands/ExitCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.application.Platform;","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-23"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" * Terminates the program.","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-23"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"public class ExitCommand implements Command {","lastModifiedDate":"2023-08-23"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * Prints an exit message and terminates the program.","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input.","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-23"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" Platform.exit();","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" return Messages.EXIT_MESSAGE;","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-23"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-23"}],"authorContributionMap":{"nathanielcalimag":23}},{"path":"src/main/java/duke/commands/FindCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":" * Finds items from application state.","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"public class FindCommand implements Command {","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" * Searches for tasks from the task list.","lastModifiedDate":"2023-09-20"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input.","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \", 2);","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" return taskList.searchTasks(args[1]);","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":21}},{"path":"src/main/java/duke/commands/InsertCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-22"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Parser;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * Inserts item into the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"public class InsertCommand implements Command {","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * Adds an item to the application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input of the item to add.","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \", 2);","lastModifiedDate":"2023-08-24"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" String taskType \u003d args[0];","lastModifiedDate":"2023-08-24"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" String taskInput \u003d args.length \u003e 1 ? args[1] : \"\";","lastModifiedDate":"2023-08-24"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-08-24"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" // Create a task based on task type","lastModifiedDate":"2023-08-24"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" Task task \u003d Parser.createTask(taskType, taskInput);","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" taskList.insertTask(task);","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" int taskCount \u003d taskList.getTaskCount();","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.INSERT_MESSAGE, task, taskCount, taskCount \u003d\u003d 1 ? \"task\"","lastModifiedDate":"2023-09-10"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" : \"tasks\");","lastModifiedDate":"2023-09-10"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IllegalArgumentException | DateTimeParseException | IOException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX, e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":38}},{"path":"src/main/java/duke/commands/ListCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":" * Lists items from the application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"public class ListCommand implements Command {","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" * Lists all the items in the application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input.","lastModifiedDate":"2023-08-24"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" return taskList.listTasks();","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":21}},{"path":"src/main/java/duke/commands/MarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" * Marks a task.","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"public class MarkCommand implements Command {","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * Sets a given task to be marked.","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input of the task to be marked.","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \", 2);","lastModifiedDate":"2023-08-24"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" String indexString \u003d args[1];","lastModifiedDate":"2023-08-24"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" int index \u003d Integer.parseInt(indexString) - 1;","lastModifiedDate":"2023-09-22"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" String taskString \u003d taskList.markTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.MARKED_MESSAGE, taskString);","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" } catch (NumberFormatException | IndexOutOfBoundsException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX,","lastModifiedDate":"2023-09-22"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" String.format(Messages.INVALID_INDEX_ERROR_MESSAGE, indexString));","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX, e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":34}},{"path":"src/main/java/duke/commands/UnmarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.commands;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.TaskList;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" * Unmarks a task.","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"public class UnmarkCommand implements Command {","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * Sets a given task to be unmarked.","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input of the task to be unmarked.","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * @param taskList The application\u0027s task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string output of the command\u0027s execution.","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" public String run(String input, TaskList taskList) {","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\" \", 2);","lastModifiedDate":"2023-08-24"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" String indexString \u003d args[1];","lastModifiedDate":"2023-08-24"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" int index \u003d Integer.parseInt(indexString) - 1;","lastModifiedDate":"2023-09-22"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" String taskString \u003d taskList.unmarkTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.UNMARKED_MESSAGE, taskString);","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" } catch (NumberFormatException | IndexOutOfBoundsException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX,","lastModifiedDate":"2023-09-22"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" String.format(Messages.INVALID_INDEX_ERROR_MESSAGE, indexString));","lastModifiedDate":"2023-09-22"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(Messages.ERROR_PREFIX, e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":34}},{"path":"src/main/java/duke/exceptions/DuplicateTaskException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-22"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-22"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-22"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Represents an exception when there are duplicate tasks.","lastModifiedDate":"2023-09-22"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-22"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public class DuplicateTaskException extends IllegalArgumentException {","lastModifiedDate":"2023-09-22"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" public DuplicateTaskException(String message) {","lastModifiedDate":"2023-09-22"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" super(message);","lastModifiedDate":"2023-09-22"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-22"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-22"}],"authorContributionMap":{"nathanielcalimag":10}},{"path":"src/main/java/duke/exceptions/InsufficientArgumentsException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Represents an exception when there are insufficient arguments when creating a task.","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public class InsufficientArgumentsException extends IllegalArgumentException {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" public InsufficientArgumentsException(String message) {","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" super(message);","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":10}},{"path":"src/main/java/duke/exceptions/StorageCreationException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Represents an exception when creating the storage directory or storage file fails.","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public class StorageCreationException extends Exception {","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" public StorageCreationException(String message) {","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" super(message);","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":10}},{"path":"src/main/java/duke/exceptions/UnknownCommandException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.exceptions;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Represents an exception when an unknown command is passed in.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public class UnknownCommandException extends IllegalArgumentException {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" public UnknownCommandException(String message) {","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" super(message);","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":10}},{"path":"src/main/java/duke/tasks/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Parser;","lastModifiedDate":"2023-09-08"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a task containing a description, and the due time.","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_TYPE \u003d \"deadline\";","lastModifiedDate":"2023-09-21"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_CODE \u003d \"D\";","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" private final LocalDateTime by;","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" public Deadline(String description, LocalDateTime by) {","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" this(description, false, by);","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-08"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code Deadline} instance.","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-08"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" * @param description The description of the deadline.","lastModifiedDate":"2023-09-08"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" * @param isDone The indication of the deadline being marked.","lastModifiedDate":"2023-09-08"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" * @param by The due date of the deadline.","lastModifiedDate":"2023-09-08"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-08"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" public Deadline(String description, boolean isDone, LocalDateTime by) {","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" this.by \u003d by;","lastModifiedDate":"2023-08-24"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" * Parses storage input to create a {@code Deadline} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The storage input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created Deadline.","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If the string input has insufficient arguments to","lastModifiedDate":"2023-09-21"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" * create an {@code Deadline}.","lastModifiedDate":"2023-09-21"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" public static Deadline parseStorageInput(String input) throws InsufficientArgumentsException {","lastModifiedDate":"2023-09-21"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" boolean isDone \u003d input.charAt(0) \u003d\u003d \u00271\u0027;","lastModifiedDate":"2023-09-21"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" String processedInput \u003d input.substring(4);","lastModifiedDate":"2023-09-21"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" String description \u003d processedInput.substring(0, processedInput.indexOf(\" | \"));","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" String substring \u003d processedInput.substring(processedInput.indexOf(\" | \") + 3);","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" if (Objects.equals(substring, \"\")) {","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE, \"by\", Deadline.TASK_TYPE));","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime by \u003d Parser.parseDate(substring);","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" return new Deadline(description, isDone, by);","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" * Parses user input to create a {@code Deadline} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created Deadline.","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If the string input has insufficient arguments to","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" * create an {@code Deadline}.","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" public static Deadline parseUserInput(String input) throws InsufficientArgumentsException {","lastModifiedDate":"2023-09-21"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" Parser.validateContainsArgument(input, Deadline.TASK_TYPE, \"by\");","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\"/by\");","lastModifiedDate":"2023-09-21"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" String description \u003d args[0].trim();","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime by \u003d Parser.parseDate(args[1].trim());","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" return new Deadline(description, by);","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" * {@inheritDoc}","lastModifiedDate":"2023-08-31"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" public String encode() {","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"%s | %d | %s | %s\", Deadline.TASK_CODE, this.isDone ? 1 : 0,","lastModifiedDate":"2023-09-21"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" this.description,","lastModifiedDate":"2023-09-21"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" this.by.format(DateTimeFormatter.ofPattern(Parser.STORAGE_DATE_TIME_PATTERN)));","lastModifiedDate":"2023-09-05"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"[%s]\", Deadline.TASK_CODE) + super.toString() + \" (by: \" + this.by.format(","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":" DateTimeFormatter.ofPattern(Parser.OUTPUT_DATE_TIME_PATTERN)) + \")\";","lastModifiedDate":"2023-09-05"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-21"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":" public boolean equals(Object obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" if (this \u003d\u003d obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" return true;","lastModifiedDate":"2023-09-21"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" if (obj instanceof Deadline) {","lastModifiedDate":"2023-09-21"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" Deadline otherDeadline \u003d (Deadline) obj;","lastModifiedDate":"2023-09-21"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":" return this.description.equals(otherDeadline.description)","lastModifiedDate":"2023-09-21"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" \u0026\u0026 this.isDone \u003d\u003d otherDeadline.isDone \u0026\u0026 this.by.equals(otherDeadline.by);","lastModifiedDate":"2023-09-21"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" return false;","lastModifiedDate":"2023-09-21"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":100}},{"path":"src/main/java/duke/tasks/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Parser;","lastModifiedDate":"2023-09-08"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a task containing the start and end time.","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"public class Event extends Task {","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_TYPE \u003d \"event\";","lastModifiedDate":"2023-09-21"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_CODE \u003d \"E\";","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" private final LocalDateTime from;","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" private final LocalDateTime to;","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" public Event(String description, LocalDateTime from, LocalDateTime to) {","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" this(description, false, from, to);","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-08"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code Event} instance.","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-08"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" * @param description The description of the event.","lastModifiedDate":"2023-09-08"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" * @param isDone The indication of the event being marked.","lastModifiedDate":"2023-09-08"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" * @param from The starting datetime of the event.","lastModifiedDate":"2023-09-08"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * @param to The ending datetime of the event.","lastModifiedDate":"2023-09-08"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-08"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" public Event(String description, boolean isDone, LocalDateTime from, LocalDateTime to) {","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" this.from \u003d from;","lastModifiedDate":"2023-08-24"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" this.to \u003d to;","lastModifiedDate":"2023-08-24"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" * Parses storage input to create an {@code Event} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The storage input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created Event.","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If the string input has insufficient arguments to","lastModifiedDate":"2023-09-21"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" * create an {@code Event}.","lastModifiedDate":"2023-09-21"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" public static Event parseStorageInput(String input) throws InsufficientArgumentsException {","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" boolean isDone \u003d input.charAt(0) \u003d\u003d \u00271\u0027;","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" String processedInput \u003d input.substring(4);","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" String description \u003d processedInput.substring(0, processedInput.indexOf(\" | \"));","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" processedInput \u003d processedInput.substring(processedInput.indexOf(\" | \") + 3);","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" if (processedInput.length() \u003c Parser.OUTPUT_DATE_TIME_PATTERN.length()) {","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE, \"from\", Event.TASK_TYPE));","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" if (processedInput.length() \u003c Parser.STORAGE_DATE_TIME_PATTERN.length() * 2 + 1) {","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" throw new InsufficientArgumentsException(String.format(","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" Messages.INSUFFICIENT_ARGUMENTS_ERROR_MESSAGE, \"to\", Event.TASK_TYPE));","lastModifiedDate":"2023-09-21"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" // dates in storage should be formatted consistently","lastModifiedDate":"2023-09-21"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime from \u003d","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" Parser.parseDate(processedInput.substring(0,","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" Parser.OUTPUT_DATE_TIME_PATTERN.length() - 1));","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime to \u003d","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" Parser.parseDate(processedInput.substring(Parser.OUTPUT_DATE_TIME_PATTERN.length()));","lastModifiedDate":"2023-09-21"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" return new Event(description, isDone, from, to);","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" * Parses user input to create an {@code Event} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created Event.","lastModifiedDate":"2023-09-21"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If the string input has insufficient arguments to","lastModifiedDate":"2023-09-21"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" * create an {@code Event}.","lastModifiedDate":"2023-09-21"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" public static Event parseUserInput(String input) throws InsufficientArgumentsException {","lastModifiedDate":"2023-09-21"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" Parser.validateContainsArgument(input, Event.TASK_TYPE, \"from\");","lastModifiedDate":"2023-09-21"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" Parser.validateContainsArgument(input, Event.TASK_TYPE, \"to\");","lastModifiedDate":"2023-09-21"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" String[] args \u003d input.split(\"/from|/to\");","lastModifiedDate":"2023-09-21"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" String description \u003d args[0].trim();","lastModifiedDate":"2023-09-21"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime from \u003d Parser.parseDate(args[1].trim());","lastModifiedDate":"2023-09-21"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime to \u003d Parser.parseDate(args[2].trim());","lastModifiedDate":"2023-09-21"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":" return new Event(description, from, to);","lastModifiedDate":"2023-09-21"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":" * {@inheritDoc}","lastModifiedDate":"2023-08-31"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" public String encode() {","lastModifiedDate":"2023-08-30"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"%s | %d | %s | %s-%s\", Event.TASK_CODE, this.isDone ? 1 : 0,","lastModifiedDate":"2023-09-21"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" this.description, this.from.format(DateTimeFormatter.ofPattern(","lastModifiedDate":"2023-08-31"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" Parser.STORAGE_DATE_TIME_PATTERN)),","lastModifiedDate":"2023-09-05"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" this.to.format(DateTimeFormatter.ofPattern(","lastModifiedDate":"2023-08-31"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":" Parser.STORAGE_DATE_TIME_PATTERN)));","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"[%s]\", Event.TASK_CODE) + super.toString()","lastModifiedDate":"2023-09-21"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":" + \" (from: \" + this.from.format(DateTimeFormatter.ofPattern(","lastModifiedDate":"2023-09-08"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":" Parser.OUTPUT_DATE_TIME_PATTERN)) + \" to: \" + this.to.format(","lastModifiedDate":"2023-09-05"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":" DateTimeFormatter.ofPattern(Parser.OUTPUT_DATE_TIME_PATTERN)) + \")\";","lastModifiedDate":"2023-09-05"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":105,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":106,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-21"},{"lineNumber":107,"author":{"gitId":"nathanielcalimag"},"content":" public boolean equals(Object obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":108,"author":{"gitId":"nathanielcalimag"},"content":" if (this \u003d\u003d obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":109,"author":{"gitId":"nathanielcalimag"},"content":" return true;","lastModifiedDate":"2023-09-21"},{"lineNumber":110,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":111,"author":{"gitId":"nathanielcalimag"},"content":" if (obj instanceof Event) {","lastModifiedDate":"2023-09-21"},{"lineNumber":112,"author":{"gitId":"nathanielcalimag"},"content":" Event otherEvent \u003d (Event) obj;","lastModifiedDate":"2023-09-21"},{"lineNumber":113,"author":{"gitId":"nathanielcalimag"},"content":" return this.description.equals(otherEvent.description)","lastModifiedDate":"2023-09-21"},{"lineNumber":114,"author":{"gitId":"nathanielcalimag"},"content":" \u0026\u0026 this.isDone \u003d\u003d otherEvent.isDone \u0026\u0026 this.from.equals(otherEvent.from)","lastModifiedDate":"2023-09-21"},{"lineNumber":115,"author":{"gitId":"nathanielcalimag"},"content":" \u0026\u0026 this.to.equals(otherEvent.to);","lastModifiedDate":"2023-09-21"},{"lineNumber":116,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":117,"author":{"gitId":"nathanielcalimag"},"content":" return false;","lastModifiedDate":"2023-09-21"},{"lineNumber":118,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":119,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":119}},{"path":"src/main/java/duke/tasks/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a generic task containing the description and own task state.","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"public abstract class Task {","lastModifiedDate":"2023-08-24"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" protected final String description;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" protected Task(String description) {","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" this(description, false);","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" protected Task(String description, boolean isDone) {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" this.isDone \u003d isDone;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" * Encodes a Task into the string representation to save into storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" * @return The string representing a task for storage.","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" public abstract String encode();","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the description of the task.","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" * @return The description of the task.","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" return this.description;","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the appropriate status icon string for the task.","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-08-24"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" * @return The status icon for the task.","lastModifiedDate":"2023-08-24"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-24"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" return (this.isDone ? \"X\" : \" \"); // mark done task with X","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" * Marks a task as done.","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" public void mark() {","lastModifiedDate":"2023-08-24"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-24"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-24"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" * Unmarks a task.","lastModifiedDate":"2023-08-29"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" public void unmark() {","lastModifiedDate":"2023-08-24"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-24"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"[%s] %s\", this.getStatusIcon(), this.description);","lastModifiedDate":"2023-08-24"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":62}},{"path":"src/main/java/duke/tasks/ToDo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.tasks;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a task with a description.","lastModifiedDate":"2023-08-29"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_TYPE \u003d \"todo\";","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" public static final String TASK_CODE \u003d \"T\";","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-08"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code ToDo} instance.","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-08"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" * @param description The description of the to-do.","lastModifiedDate":"2023-09-08"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * @param isDone The indication of the event being to-do.","lastModifiedDate":"2023-09-08"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-08"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" public ToDo(String description, boolean isDone) {","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" public ToDo(String description) {","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" this(description, false);","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" * Parses storage input to create a {@code ToDo} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The storage input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created ToDo.","lastModifiedDate":"2023-09-21"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException If the string input has insufficient arguments to","lastModifiedDate":"2023-09-21"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" * create an {@code ToDo}.","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" public static ToDo parseStorageInput(String input) {","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" boolean isDone \u003d input.charAt(0) \u003d\u003d \u00271\u0027;","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" String description \u003d input.substring(4);","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" return new ToDo(description, isDone);","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" * Parses user input to create a {@code ToDo} instance.","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-21"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" * @param input The user input string.","lastModifiedDate":"2023-09-21"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" * @return The created ToDo.","lastModifiedDate":"2023-09-21"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" public static ToDo parseUserInput(String input) {","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" return new ToDo(input);","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-08-31"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" * {@inheritDoc}","lastModifiedDate":"2023-08-31"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-08-31"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" public String encode() {","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"%s | %d | %s\", ToDo.TASK_CODE, this.isDone ? 1 : 0, this.description);","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" return String.format(\"[%s]\", TASK_CODE) + super.toString();","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-21"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" public boolean equals(Object obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" if (this \u003d\u003d obj) {","lastModifiedDate":"2023-09-21"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" return true;","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" if (obj instanceof ToDo) {","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" ToDo otherTodo \u003d (ToDo) obj;","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" return this.description.equals(otherTodo.description) \u0026\u0026 this.isDone \u003d\u003d otherTodo.isDone;","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" return false;","lastModifiedDate":"2023-09-21"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":75}},{"path":"src/main/java/duke/ui/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.ui;","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-10"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" private Label dialog;","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code DialogBox} instance.","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" * @param text The text in the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" * @param img The image for the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-10"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-10"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox\"","lastModifiedDate":"2023-09-10"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" + \".fxml\"));","lastModifiedDate":"2023-09-10"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-10"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-10"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-10"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-10"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-10"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-10"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the dialog box for the user.","lastModifiedDate":"2023-09-10"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-10"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" * @param text The text in the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" * @param img The image for the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" * @return The dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-10"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" return new DialogBox(text, img);","lastModifiedDate":"2023-09-10"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" * Gets the dialog box for the bot.","lastModifiedDate":"2023-09-10"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-10"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" * @param text The text in the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" * @param img The image for the dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" * @return The dialog box.","lastModifiedDate":"2023-09-10"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-10"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-10"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" db.flip();","lastModifiedDate":"2023-09-10"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" return db;","lastModifiedDate":"2023-09-10"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-10"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" private void flip() {","lastModifiedDate":"2023-09-10"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-10"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-10"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-10"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-10"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":81}},{"path":"src/main/java/duke/ui/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.ui;","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a launcher class for the application GUI.","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"public class Launcher {","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":12}},{"path":"src/main/java/duke/ui/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.ui;","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Duke;","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-22"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" * Serves as the entry point to run the application\u0027s GUI.","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" private final Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" stage.setTitle(Messages.APPLICATION_NAME);","lastModifiedDate":"2023-09-22"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" stage.show();","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-10"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":33}},{"path":"src/main/java/duke/ui/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke.ui;","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Duke;","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import duke.Messages;","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-10"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * Represents the main window for the application GUI.","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" private final Image userImage \u003d","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" new Image(Objects.requireNonNull(this.getClass().getResourceAsStream(\"/images\"","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" + \"/UserPic\"","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" + \".png\")));","lastModifiedDate":"2023-09-10"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" private final Image dukeImage \u003d","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" new Image(Objects.requireNonNull(this.getClass().getResourceAsStream(\"/images/BotPic\"","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" + \".png\")));","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-10"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-10"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" private Duke duke;","lastModifiedDate":"2023-09-10"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" * Initialises the main window.","lastModifiedDate":"2023-09-10"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" public void initialize() {","lastModifiedDate":"2023-09-10"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-10"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-10"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" DialogBox.getDukeDialog(Messages.GREETING_MESSAGE, dukeImage)","lastModifiedDate":"2023-09-10"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" );","lastModifiedDate":"2023-09-10"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-10"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-10"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-10"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and","lastModifiedDate":"2023-09-10"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" * then appends them to the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-10"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-10"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" @FXML","lastModifiedDate":"2023-09-10"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-10"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-10"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-10"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-10"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-10"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-10"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" );","lastModifiedDate":"2023-09-10"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" userInput.clear();","lastModifiedDate":"2023-09-10"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-10"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":66}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"\u003cfx:root xmlns:fx\u003d\"http://javafx.com/fxml/1\" alignment\u003d\"TOP_RIGHT\"","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\"","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\"","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" xmlns\u003d\"http://javafx.com/javafx/17\"\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\"","lastModifiedDate":"2023-09-22"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" minHeight\u003d\"-Infinity\"","lastModifiedDate":"2023-09-22"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" style\u003d\"-fx-border-color:black; -fx-padding: 8px; -fx-border-radius: 6px;\"/\u003e","lastModifiedDate":"2023-09-22"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"50.0\" fitWidth\u003d\"50.0\"","lastModifiedDate":"2023-09-22"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\"/\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\"/\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":22}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-10"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"\u003cAnchorPane xmlns:fx\u003d\"http://javafx.com/fxml/1\" maxHeight\u003d\"-Infinity\"","lastModifiedDate":"2023-09-10"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":" maxWidth\u003d\"-Infinity\"","lastModifiedDate":"2023-09-10"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" prefWidth\u003d\"400.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" xmlns\u003d\"http://javafx.com/javafx/17\"","lastModifiedDate":"2023-09-10"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":" fx:controller\u003d\"duke.ui.MainWindow\"\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\"","lastModifiedDate":"2023-09-10"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" prefHeight\u003d\"41.0\" prefWidth\u003d\"324.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" AnchorPane.bottomAnchor\u003d\"1.0\"/\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\"","lastModifiedDate":"2023-09-10"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\"/\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"552.0\"","lastModifiedDate":"2023-09-10"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" prefWidth\u003d\"388.0\"/\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-10"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-10"}],"authorContributionMap":{"nathanielcalimag":30}},{"path":"src/test/java/duke/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import static org.junit.jupiter.api.Assertions.fail;","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-08"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Deadline;","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Event;","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.ToDo;","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":" * Tests the {@code Parser} class.","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"public class ParserTest {","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether the {@code parseDate} appropriately parses all allowed date time formats.","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" public void parseDate() {","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTimeMidnight \u003d LocalDateTime.of(2023, 9, 5, 0, 0);","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTimeNoon \u003d LocalDateTime.of(2023, 9, 5, 12, 0);","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"5/9/2023\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"5/09/2023\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"05/9/2023\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"05/09/2023\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"2023-9-5\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"2023-9-05\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"2023-09-5\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeMidnight, Parser.parseDate(\"2023-09-05\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"5/9/2023 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"5/09/2023 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"05/9/2023 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"05/09/2023 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"2023-9-5 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"2023-9-05 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"2023-09-5 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(\"2023-09-05 1200\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether the {@code createTask} appropriately parses user input when creating tasks.","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" public void createTask() {","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" ToDo expectedTodo \u003d new ToDo(\"Re-watch CS2103T lecture\");","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" Deadline expectedDeadline \u003d new Deadline(\"Finish CS2103T quiz\",","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime.of(2023, 9, 30, 12, 0));","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" Event expectedEvent1 \u003d new Event(\"CS2103T project meeting\", LocalDateTime.of(2023,","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" 9, 30, 14, 30), LocalDateTime.of(2023, 9, 30, 16, 30));","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" Event expectedEvent2 \u003d new Event(\"Level supper\", LocalDateTime.of(2023,","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" 9, 30, 0, 0), LocalDateTime.of(2023, 9, 30, 0, 30));","lastModifiedDate":"2023-09-21"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedTodo, Parser.createTask(ToDo.TASK_TYPE, \"Re-watch CS2103T lecture\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedDeadline, Parser.createTask(Deadline.TASK_TYPE, \"Finish CS2103T quiz\"","lastModifiedDate":"2023-09-21"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" + \" /by 2023-9-30 1200\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedEvent1, Parser.createTask(Event.TASK_TYPE, \"CS2103T project \"","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" + \"meeting /from 2023-09-30 1430 /to 2023-9-30 \" + \"1630\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedEvent2, Parser.createTask(Event.TASK_TYPE, \"Level supper /from \"","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"nathanielcalimag"},"content":" + \"2023-9-30 0000 /to 2023-09-30 0030\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":65,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":67,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether the {@code createTask} appropriately parses tasks from the storage file.","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"nathanielcalimag"},"content":" public void parse() {","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"nathanielcalimag"},"content":" ToDo expectedTodo \u003d new ToDo(\"Re-watch CS2103T lecture\");","lastModifiedDate":"2023-09-21"},{"lineNumber":73,"author":{"gitId":"nathanielcalimag"},"content":" Deadline expectedDeadline \u003d new Deadline(\"Finish CS2103T quiz\", true,","lastModifiedDate":"2023-09-21"},{"lineNumber":74,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime.of(2023, 9, 30, 12, 0));","lastModifiedDate":"2023-09-21"},{"lineNumber":75,"author":{"gitId":"nathanielcalimag"},"content":" Event expectedEvent1 \u003d new Event(\"CS2103T project meeting\", true, LocalDateTime.of(2023,","lastModifiedDate":"2023-09-21"},{"lineNumber":76,"author":{"gitId":"nathanielcalimag"},"content":" 9, 30, 14, 30), LocalDateTime.of(2023, 9, 30, 16, 30));","lastModifiedDate":"2023-09-21"},{"lineNumber":77,"author":{"gitId":"nathanielcalimag"},"content":" Event expectedEvent2 \u003d new Event(\"Level supper\", LocalDateTime.of(2023,","lastModifiedDate":"2023-09-21"},{"lineNumber":78,"author":{"gitId":"nathanielcalimag"},"content":" 9, 30, 0, 0), LocalDateTime.of(2023, 9, 30, 0, 30));","lastModifiedDate":"2023-09-21"},{"lineNumber":79,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedTodo, Parser.parse(ToDo.TASK_CODE, \"0 | Re-watch CS2103T lecture\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":80,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedDeadline, Parser.parse(Deadline.TASK_CODE, \"1 | Finish CS2103T quiz \"","lastModifiedDate":"2023-09-21"},{"lineNumber":81,"author":{"gitId":"nathanielcalimag"},"content":" + \"| 2023-09-30 1200\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":82,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedEvent1, Parser.parse(Event.TASK_CODE, \"1 | CS2103T project meeting |\"","lastModifiedDate":"2023-09-21"},{"lineNumber":83,"author":{"gitId":"nathanielcalimag"},"content":" + \" 2023-09-30 1430-2023-09-30 \" + \"1630\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":84,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(expectedEvent2, Parser.parse(Event.TASK_CODE, \"0 | Level supper | 2023-09-30\"","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"nathanielcalimag"},"content":" + \" 0000-2023-09-30 0030\"));","lastModifiedDate":"2023-09-21"},{"lineNumber":86,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-21"},{"lineNumber":87,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":88,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":89,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether the {@code parseDate} appropriately throws exception for invalid formats.","lastModifiedDate":"2023-09-05"},{"lineNumber":90,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":91,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-05"},{"lineNumber":92,"author":{"gitId":"nathanielcalimag"},"content":" public void parseDate_invalidFormat_exceptionThrown() {","lastModifiedDate":"2023-09-05"},{"lineNumber":93,"author":{"gitId":"nathanielcalimag"},"content":" String dateTimeString \u003d \"2023-09-05, 1200\";","lastModifiedDate":"2023-09-05"},{"lineNumber":94,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTimeNoon \u003d LocalDateTime.of(2023, 9, 5, 12, 0);","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":97,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(dateTimeNoon, Parser.parseDate(dateTimeString));","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"nathanielcalimag"},"content":" fail();","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"nathanielcalimag"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-05"},{"lineNumber":100,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(String.format(Messages.INVALID_DATE_TIME_FORMAT, dateTimeString),","lastModifiedDate":"2023-09-22"},{"lineNumber":101,"author":{"gitId":"nathanielcalimag"},"content":" e.getMessage());","lastModifiedDate":"2023-09-22"},{"lineNumber":102,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":103,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":104,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":104}},{"path":"src/test/java/duke/StorageStub.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.Arrays;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.InsufficientArgumentsException;","lastModifiedDate":"2023-09-08"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-08"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Deadline;","lastModifiedDate":"2023-09-08"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Event;","lastModifiedDate":"2023-09-08"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.ToDo;","lastModifiedDate":"2023-09-08"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-08"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" * Represents a stub class for storage.","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"public class StorageStub implements Storage {","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" private final List\u003cTask\u003e storage;","lastModifiedDate":"2023-09-08"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-08"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" * Creates a new {@code StorageStub} instance.","lastModifiedDate":"2023-09-08"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-08"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" public StorageStub() {","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTimeMidnight \u003d LocalDateTime.of(2023, 9, 5, 0, 0);","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" LocalDateTime dateTimeNoon \u003d LocalDateTime.of(2023, 9, 5, 12, 0);","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" this.storage \u003d new ArrayList\u003c\u003e(Arrays.asList(","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" new ToDo(\"Go for health checkup\"),","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" new Deadline(\"CS2103T quiz\", dateTimeNoon),","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" new Event(\"CS2103T meeting\", dateTimeMidnight, dateTimeNoon)","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" ));","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" * Retrieves a list of tasks stored within this storage stub.","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" * @return The list of task stored in this stub.","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" * @throws InsufficientArgumentsException Never thrown by stub implementation.","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" * @throws DateTimeParseException Never thrown by stub implementation.","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" * @throws StorageCreationException Never thrown by stub implementation.","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException Never thrown by stub implementation.","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" public List\u003cTask\u003e readStorage() throws InsufficientArgumentsException, DateTimeParseException,","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" StorageCreationException, IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" return this.storage;","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" * Updates the storage stub in the storage instance.","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"nathanielcalimag"},"content":" * @throws IOException Never thrown by stub implementation.","lastModifiedDate":"2023-09-05"},{"lineNumber":57,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":58,"author":{"gitId":"nathanielcalimag"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":59,"author":{"gitId":"nathanielcalimag"},"content":" public void updateStorage(List\u003cTask\u003e tasks) throws IOException {","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"nathanielcalimag"},"content":" this.storage.clear();","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"nathanielcalimag"},"content":" this.storage.addAll(tasks);","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":63}},{"path":"src/test/java/duke/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-08"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"import static org.junit.jupiter.api.Assertions.fail;","lastModifiedDate":"2023-09-08"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-22"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"import java.util.List;","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-08"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"import duke.exceptions.StorageCreationException;","lastModifiedDate":"2023-09-08"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"import duke.tasks.Task;","lastModifiedDate":"2023-09-08"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":" * Tests the {@code TaskList} class.","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"public class TaskListTest {","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether {@code listTasks} appropriately lists tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":" public void listTasks() {","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":" Storage storage \u003d new StorageStub();","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":" taskList.setStorage(storage);","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":" taskList.loadTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(\" Here are the tasks in your list:\\n 1.[T][ ] Go for health checkup\\n 2\"","lastModifiedDate":"2023-09-08"},{"lineNumber":31,"author":{"gitId":"nathanielcalimag"},"content":" + \".[D][ ] CS2103T quiz (by: 5 Sep 2023, 1200)\\n 3.[E][ ] CS2103T meeting \"","lastModifiedDate":"2023-09-08"},{"lineNumber":32,"author":{"gitId":"nathanielcalimag"},"content":" + \"(from: 5 Sep 2023, 0000 to: 5 Sep 2023, 1200)\", taskList.listTasks());","lastModifiedDate":"2023-09-08"},{"lineNumber":33,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException | DateTimeParseException | StorageCreationException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":34,"author":{"gitId":"nathanielcalimag"},"content":" fail(e);","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"nathanielcalimag"},"content":" /**","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"nathanielcalimag"},"content":" * Tests whether {@code listTasks} appropriately handles no tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"nathanielcalimag"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"nathanielcalimag"},"content":" @Test","lastModifiedDate":"2023-09-05"},{"lineNumber":42,"author":{"gitId":"nathanielcalimag"},"content":" public void listTasks_emptyList() {","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"nathanielcalimag"},"content":" List\u003cTask\u003e tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-05"},{"lineNumber":44,"author":{"gitId":"nathanielcalimag"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-05"},{"lineNumber":45,"author":{"gitId":"nathanielcalimag"},"content":" Storage storage \u003d new StorageStub();","lastModifiedDate":"2023-09-05"},{"lineNumber":46,"author":{"gitId":"nathanielcalimag"},"content":" try {","lastModifiedDate":"2023-09-05"},{"lineNumber":47,"author":{"gitId":"nathanielcalimag"},"content":" storage.updateStorage(tasks);","lastModifiedDate":"2023-09-05"},{"lineNumber":48,"author":{"gitId":"nathanielcalimag"},"content":" taskList.setStorage(storage);","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"nathanielcalimag"},"content":" taskList.loadTasks();","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"nathanielcalimag"},"content":" assertEquals(\" Here are the tasks in your list:\\n\", taskList.listTasks());","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"nathanielcalimag"},"content":" } catch (IOException | DateTimeParseException | StorageCreationException e) {","lastModifiedDate":"2023-09-22"},{"lineNumber":52,"author":{"gitId":"nathanielcalimag"},"content":" fail(e);","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"nathanielcalimag"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"nathanielcalimag"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":55}},{"path":"text-ui-test/data/duke.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"D | 0 | return book | 2023-09-30 1200","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | project meeting | 2023-08-03 1430-2023-08-30 1630","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"D | 0 | ma2001 hw | 2023-08-03 0000","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"D | 0 | ma1521 hw | 2023-08-03 0100","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | code | 2023-08-03 0000-2023-08-03 0030","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | run | 2023-08-03 0000-2023-08-03 0045","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | yoga | 2023-08-03 0000-2023-08-03 0145","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | nap | 2023-08-03 0000-2023-08-03 0230","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | dorm workshop | 2023-08-03 0000-2023-08-03 0315","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | walk around nus | 2023-08-03 0000-2023-08-03 0400","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | buy supper | 2023-08-03 0000-2023-08-03 0445","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"E | 0 | sleep | 2023-08-03 0000-2023-08-03 0530","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"nathanielcalimag":12}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"nathanielcalimag"},"content":"todo borrow book","lastModifiedDate":"2023-08-24"},{"lineNumber":2,"author":{"gitId":"nathanielcalimag"},"content":"list","lastModifiedDate":"2023-08-24"},{"lineNumber":3,"author":{"gitId":"nathanielcalimag"},"content":"deadline return book /by 30/09/2023 1200","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"nathanielcalimag"},"content":"event project meeting /from 3/8/2023 1430 /to 2023-8-30 1630","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"nathanielcalimag"},"content":"mark 1","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"nathanielcalimag"},"content":"mark 2","lastModifiedDate":"2023-08-24"},{"lineNumber":7,"author":{"gitId":"nathanielcalimag"},"content":"list","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"nathanielcalimag"},"content":"unmark 2","lastModifiedDate":"2023-08-24"},{"lineNumber":9,"author":{"gitId":"nathanielcalimag"},"content":"list","lastModifiedDate":"2023-08-24"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"todo","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"event math lecture","lastModifiedDate":"2023-08-24"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":"event math lecture /from 2023-08-30","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":"deadline math homework /from 2/12/2019 1500","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"generate report","lastModifiedDate":"2023-08-24"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"delete 1","lastModifiedDate":"2023-08-24"},{"lineNumber":16,"author":{"gitId":"nathanielcalimag"},"content":"list","lastModifiedDate":"2023-08-24"},{"lineNumber":17,"author":{"gitId":"nathanielcalimag"},"content":"deadline ma2001 hw /by 3/8/2023","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"nathanielcalimag"},"content":"deadline ma1521 hw /by 03/8/2023 0100","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"nathanielcalimag"},"content":"event code /from 3/8/2023 /to 3/8/2023 0030","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"nathanielcalimag"},"content":"event run /from 3/08/2023 /to 3/08/2023 0045","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"nathanielcalimag"},"content":"event yoga /from 03/8/2023 /to 03/8/2023 0145","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"nathanielcalimag"},"content":"event nap /from 03/08/2023 /to 03/08/2023 0230","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"event dorm workshop /from 2023-8-3 /to 2023-8-3 0315","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"nathanielcalimag"},"content":"event walk around nus /from 2023-8-03 /to 2023-8-03 0400","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"nathanielcalimag"},"content":"event buy supper /from 2023-08-3 /to 2023-08-3 0445","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"nathanielcalimag"},"content":"event sleep /from 2023-08-03 /to 2023-08-3 0530","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"nathanielcalimag"},"content":"list","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"nathanielcalimag"},"content":"find hw","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"nathanielcalimag"},"content":"bye","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"nathanielcalimag":29}},{"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":"nathanielcalimag"},"content":"javac -cp ..\\src\\main\\java -Xlint:none -d ..\\bin ..\\src\\main\\java\\duke\\*.java","lastModifiedDate":"2023-09-05"},{"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":"-"},"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":{"nathanielcalimag":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":"nathanielcalimag"},"content":"# delete data directory","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"nathanielcalimag"},"content":"if [ -d \"./data\" ]","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"nathanielcalimag"},"content":"then","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"nathanielcalimag"},"content":" # Remove the directory","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"nathanielcalimag"},"content":" rm -r \"./data\"","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"nathanielcalimag"},"content":"fi","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"nathanielcalimag"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"-"},"content":"# delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"if [ -e \"./ACTUAL.TXT\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" rm ACTUAL.TXT","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":"# compile the code into the bin folder, terminates if error occurred","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"nathanielcalimag"},"content":"if ! javac -encoding UTF-8 -cp ../src/main/java -Xlint:none -d ../bin ../src/main/java/duke/*.java","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" echo \"********** BUILD FAILURE **********\"","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"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":30,"author":{"gitId":"nathanielcalimag"},"content":"java -classpath ../bin duke.Duke \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"# convert to UNIX format","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":"cp EXPECTED.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"dos2unix ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"# compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":"diff ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"if [ $? -eq 0 ]","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" echo \"Test result: PASSED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" exit 0","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":"else","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" echo \"Test result: FAILED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"nathanielcalimag":9,"-":36}}] diff --git a/nathanielcalimag_ip_master/commits.json b/nathanielcalimag_ip_master/commits.json index 50a8c77a..dd95aeed 100644 --- a/nathanielcalimag_ip_master/commits.json +++ b/nathanielcalimag_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"nathanielcalimag":[{"date":"2023-08-23","commitResults":[{"hash":"d768d4131ddcc40937b110f27064cc2d425f4ac6","isMergeCommit":false,"messageTitle":"Add greeting and exit messages","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":14,"deletions":6}}},{"hash":"4d466b219713abb17768e15b722d61c653048734","isMergeCommit":false,"messageTitle":"Add application structure and commands","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":90,"deletions":11}}}]},{"date":"2023-08-24","commitResults":[{"hash":"abafb330a1d10ab299ca5e9aa00a68da4d9ff75a","isMergeCommit":false,"messageTitle":"Implement application state, insert command and list command","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":95,"deletions":17}}},{"hash":"8121bef6f14a1f2a125527759c03f734c5e8269d","isMergeCommit":false,"messageTitle":"Implement tasks and marking functionalities","messageBody":"","tags":["Level-3","A-Classes"],"fileTypesAndContributionMap":{"java":{"insertions":139,"deletions":26}}},{"hash":"a0e646a7ac8ab7252b3cac9fb7ae1fc4f3901d8d","isMergeCommit":false,"messageTitle":"Implement deadline, event, and todo tasks","messageBody":"","tags":["Level-4","A-Inheritance"],"fileTypesAndContributionMap":{"java":{"insertions":132,"deletions":24}}},{"hash":"ace7605fe1381edae4177714c4c31b5c4d90d031","isMergeCommit":false,"messageTitle":"Update automated input and output text files","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":10,"deletions":0}}},{"hash":"481f7b30d4219b627a884480277325ca094e240b","isMergeCommit":false,"messageTitle":"Implement error handling","messageBody":"","tags":["Level-5","A-Exceptions"],"fileTypesAndContributionMap":{"txt":{"insertions":5,"deletions":0},"java":{"insertions":73,"deletions":19},"sh":{"insertions":1,"deletions":1}}},{"hash":"631a95907affc5bade5f164111d26130ea0030a6","isMergeCommit":false,"messageTitle":"Add deletion command","messageBody":"","tags":["Level-6","A-Collections"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":70,"deletions":15}}}]},{"date":"2023-08-29","commitResults":[{"hash":"d4949f423c1263d5392dec1c277216c1db9facfd","isMergeCommit":false,"messageTitle":"Update javadoc comments","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":71,"deletions":58}}},{"hash":"2bc04a26d3da34e6038924faf54b3c5d4330c9ae","isMergeCommit":false,"messageTitle":"Organise codebase into packages","messageBody":"All classes are stored in a flat manner under the same folder.\n\nThe lack of grouping of related classes makes the codebase messy.\n\nUtilising packages can create structure and improve the development\nprocess.\n\nLet\u0027s use packages to group similar classes together. Specifically,\ncommands, exceptions and tasks.\n","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":79,"deletions":4},"bat":{"insertions":1,"deletions":1},"sh":{"insertions":1,"deletions":1},"md":{"insertions":15,"deletions":8}}}]},{"date":"2023-08-30","commitResults":[{"hash":"0c5fb082d993b6781082edd267bc994b3f9dbafa","isMergeCommit":false,"messageTitle":"Add storage functionality","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":258,"deletions":31},"sh":{"insertions":8,"deletions":1}}},{"hash":"1f29f5784ba0e803e1b5badd1f107ac9d4c0e640","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-7\u0027","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{}}]},{"date":"2023-08-31","commitResults":[{"hash":"c152d8278ce971f3b55d773b0bf39c66dd2b6d98","isMergeCommit":false,"messageTitle":"Update fields of tasks to contain datetime","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":27,"deletions":6},"java":{"insertions":120,"deletions":55}}},{"hash":"6ffcdf3469d3a90db8576f4e75180dae31af46c9","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-8\u0027","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-05","commitResults":[{"hash":"49266fea874cc91020fb5c11661205b297d6dc3f","isMergeCommit":false,"messageTitle":"Implement Ui, Storage, Parser and TaskList classes","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{"java":{"insertions":699,"deletions":540}}},{"hash":"d6bea82e01a801ae6fccc2b00b7142740cf49729","isMergeCommit":false,"messageTitle":"Bump gradle and lib version","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":5,"deletions":4}}},{"hash":"ba76a6d38038d6daf54ceb36d0d4eae4e9276e65","isMergeCommit":false,"messageTitle":"Rename main class in gradle build file","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1}}},{"hash":"6242e074b1b5813bb59220ee360616f74aaed4da","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Gradle\u0027","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"e83ccc9726d723ad02fde7e36a24eb810774bbe1","isMergeCommit":false,"messageTitle":"Rename dukeapp class to duke","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"txt":{"insertions":0,"deletions":12},"java":{"insertions":66,"deletions":66},"bat":{"insertions":1,"deletions":1},"sh":{"insertions":2,"deletions":2},"md":{"insertions":1,"deletions":1}}},{"hash":"69f4c1941b1ec1b1e089b03cd544374243b714f6","isMergeCommit":false,"messageTitle":"Add tests for task list and parser","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":6,"deletions":0},"java":{"insertions":285,"deletions":78}}},{"hash":"6d1b40cba66f78e5f3e4a2e36b7262f14d3e8ec3","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JUnit\u0027","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{}},{"hash":"f7e42270735622cfaefe89f090f675221af67c63","isMergeCommit":false,"messageTitle":"Update JavaDoc comments","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":12,"deletions":0},"java":{"insertions":62,"deletions":28}}},{"hash":"02a6ce8c3f1059b35cf747cd69b1612e3371841f","isMergeCommit":false,"messageTitle":"Update code to meet coding standards","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":54}}},{"hash":"3ad62950d6db462cc15c224f2ec889cbda4927f0","isMergeCommit":false,"messageTitle":"Implement functionality to find tasks","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":13,"deletions":0},"java":{"insertions":61,"deletions":7}}},{"hash":"744e279698e99a67b5d9eeb6ce130c93472bdfb2","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-9\u0027","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{}},{"hash":"d3e30d0b448c98e7171b4235c4e520c0577d0206","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JavaDoc\u0027","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{}},{"hash":"33b9ab2ba7483b927fd1a8c4d42ae312a321e788","isMergeCommit":true,"messageTitle":"Merge branch \u0027A-CodingStandard\u0027","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{}},{"hash":"d1f32a3c1fdef45a714dca010e7d377b17632310","isMergeCommit":false,"messageTitle":"Update Gradle to use Shadow","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0}}}]},{"date":"2023-09-08","commitResults":[{"hash":"d065ed14ed492cd02cca291e82a03c77ee264c56","isMergeCommit":false,"messageTitle":"Setup CheckStyle with Gradle","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":5,"deletions":0}}},{"hash":"5b556e5d6f4ed68ee39f95b34aa604579b96a371","isMergeCommit":false,"messageTitle":"Improve code standards to pass checkstyle format","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":126,"deletions":90}}},{"hash":"f3a85b321d92fc7645ab12331da5f46f91c1f38e","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-CheckStyle\u0027","messageBody":"","tags":["A-CheckStyle"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-16","commitResults":[{"hash":"6398876e2e7ec4e205cd5881662ef8b30212cffc","isMergeCommit":false,"messageTitle":"Add GUI integration","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":17,"deletions":2},"fxml":{"insertions":50,"deletions":0},"java":{"insertions":250,"deletions":160}}},{"hash":"457c6d6f47049d4b42f33ed99249a35b903c236b","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-10\u0027","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-20","commitResults":[{"hash":"ae36a6c76bfc53b0a5a93759760cc29fbc7af592","isMergeCommit":false,"messageTitle":"Implement assertions in the storage and parser classes","messageBody":"The current state of the codebase does not leverage assertions.\n\nUsing assertions in the codebase can improve the maintainability of the project and help signal to developers potential problems with their code in the future.\n\nLet\u0027s,\n* use assertions in the storage class to assert that the storage file exists before the user can use the application\n* use assertions in the parser class to assert that a valid set of commands exists before the user can use the application\n","tags":["A-FullCommitMessage"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":3}}}]},{"date":"2023-09-21","commitResults":[{"hash":"8275ce96023a79f8b9957982b47d890f23e70562","isMergeCommit":false,"messageTitle":"Refactor parser and task classes for code quality improvements","messageBody":"The Parser class had deeply nested code and violations in the single level of abstraction principle.\n\nThese issues can impede future code maintainence.\n\nExtracting some of the logic in task creation and input parsing can improve readability and\ncode quality.\n\nLet\u0027s,\n* extract out string parsing for task creation into smaller functions\n* create a helper function for date parsing to reduce nested code\n","fileTypesAndContributionMap":{"java":{"insertions":261,"deletions":79}}}]},{"date":"2023-09-22","commitResults":[{"hash":"40b18ef4a2c694d41a1fe1bf512a509c89248160","isMergeCommit":true,"messageTitle":"Merge pull request #2 from nathanielcalimag/branch-A-Assertions","messageBody":"Implement assertions in the storage and parser classes","tags":["A-Assertions"],"fileTypesAndContributionMap":{}},{"hash":"49480170ccf48775fffd29b4027deda35b259262","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into branch-A-CodeQuality","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"80cf051820920b6d8096905e7484a82bce1641a2","isMergeCommit":true,"messageTitle":"Merge pull request #3 from nathanielcalimag/branch-A-CodeQuality","messageBody":"Refactor parser and task classes for code quality improvements","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{}},{"hash":"d882a839047a253896834985b14d13ec768e5999","isMergeCommit":false,"messageTitle":"Implement checks to detect duplicate tasks","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":33,"deletions":13}}},{"hash":"c31d7404cccc7ed9f62110a3d4d74d05ddc5f9db","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-C-DetectDuplicates\u0027","messageBody":"","tags":["C-DetectDuplicates","BCD-Extension"],"fileTypesAndContributionMap":{}},{"hash":"ad82e09ff4a29dfdab36a3561b615aa7f5b305ae","isMergeCommit":false,"messageTitle":"Add a User Guide","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":179,"deletions":14}}},{"hash":"201bb9fa04893d606e361b1e5d950599cc0858a9","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-UserGuide\u0027","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{}},{"hash":"71d98b09871d161832f0b92d9976d5a8d96781de","isMergeCommit":false,"messageTitle":"Update screenshot in user guide","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":0},"md":{"insertions":2,"deletions":2}}},{"hash":"20d10028edc091f21870ba49b4cc07bbf1847227","isMergeCommit":false,"messageTitle":"Update error message formatting","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":8}}},{"hash":"da9fd315aeedceac7a4557a52dd0207e06420f71","isMergeCommit":false,"messageTitle":"Improve the styling of the dialog box","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":4,"deletions":2}}},{"hash":"c7e511e69f0b08d854eec8814d71f72420672809","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-BetterGui\u0027","messageBody":"","tags":["A-BetterGui"],"fileTypesAndContributionMap":{}},{"hash":"98b25c69d37ad09bb111b520371646ed233a43fe","isMergeCommit":false,"messageTitle":"Improve error handling for datetime string parsing","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":12,"deletions":3}}},{"hash":"a8a82e44741df40016bf3cd8961d4a7058fb77df","isMergeCommit":false,"messageTitle":"Improve error handling on index-based commands","messageBody":"","tags":["A-Release"],"fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":3}}}]}]},"authorFileTypeContributionMap":{"nathanielcalimag":{"java":1671,"md":180,"fxml":52,"sh":9,"bat":1,"gradle":28,"txt":41}},"authorContributionVariance":{"nathanielcalimag":126841.766},"authorDisplayNameMap":{"nathanielcalimag":"CS2103T-W17-3 NATH..IMAG"}} +{"authorDailyContributionsMap":{"nathanielcalimag":[{"date":"2023-08-23","commitResults":[{"hash":"d768d4131ddcc40937b110f27064cc2d425f4ac6","isMergeCommit":false,"messageTitle":"Add greeting and exit messages","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":14,"deletions":6}}},{"hash":"4d466b219713abb17768e15b722d61c653048734","isMergeCommit":false,"messageTitle":"Add application structure and commands","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":90,"deletions":11}}}]},{"date":"2023-08-24","commitResults":[{"hash":"abafb330a1d10ab299ca5e9aa00a68da4d9ff75a","isMergeCommit":false,"messageTitle":"Implement application state, insert command and list command","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":95,"deletions":17}}},{"hash":"8121bef6f14a1f2a125527759c03f734c5e8269d","isMergeCommit":false,"messageTitle":"Implement tasks and marking functionalities","messageBody":"","tags":["Level-3","A-Classes"],"fileTypesAndContributionMap":{"java":{"insertions":139,"deletions":26}}},{"hash":"a0e646a7ac8ab7252b3cac9fb7ae1fc4f3901d8d","isMergeCommit":false,"messageTitle":"Implement deadline, event, and todo tasks","messageBody":"","tags":["Level-4","A-Inheritance"],"fileTypesAndContributionMap":{"java":{"insertions":132,"deletions":24}}},{"hash":"ace7605fe1381edae4177714c4c31b5c4d90d031","isMergeCommit":false,"messageTitle":"Update automated input and output text files","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":10,"deletions":0}}},{"hash":"481f7b30d4219b627a884480277325ca094e240b","isMergeCommit":false,"messageTitle":"Implement error handling","messageBody":"","tags":["Level-5","A-Exceptions"],"fileTypesAndContributionMap":{"txt":{"insertions":5,"deletions":0},"java":{"insertions":73,"deletions":19},"sh":{"insertions":1,"deletions":1}}},{"hash":"631a95907affc5bade5f164111d26130ea0030a6","isMergeCommit":false,"messageTitle":"Add deletion command","messageBody":"","tags":["Level-6","A-Collections"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":70,"deletions":15}}}]},{"date":"2023-08-29","commitResults":[{"hash":"d4949f423c1263d5392dec1c277216c1db9facfd","isMergeCommit":false,"messageTitle":"Update javadoc comments","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":71,"deletions":58}}},{"hash":"2bc04a26d3da34e6038924faf54b3c5d4330c9ae","isMergeCommit":false,"messageTitle":"Organise codebase into packages","messageBody":"All classes are stored in a flat manner under the same folder.\n\nThe lack of grouping of related classes makes the codebase messy.\n\nUtilising packages can create structure and improve the development\nprocess.\n\nLet\u0027s use packages to group similar classes together. Specifically,\ncommands, exceptions and tasks.\n","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":79,"deletions":4},"bat":{"insertions":1,"deletions":1},"sh":{"insertions":1,"deletions":1},"md":{"insertions":15,"deletions":8}}}]},{"date":"2023-08-30","commitResults":[{"hash":"0c5fb082d993b6781082edd267bc994b3f9dbafa","isMergeCommit":false,"messageTitle":"Add storage functionality","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":258,"deletions":31},"sh":{"insertions":8,"deletions":1}}},{"hash":"1f29f5784ba0e803e1b5badd1f107ac9d4c0e640","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-7\u0027","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{}}]},{"date":"2023-08-31","commitResults":[{"hash":"c152d8278ce971f3b55d773b0bf39c66dd2b6d98","isMergeCommit":false,"messageTitle":"Update fields of tasks to contain datetime","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":27,"deletions":6},"java":{"insertions":120,"deletions":55}}},{"hash":"6ffcdf3469d3a90db8576f4e75180dae31af46c9","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-8\u0027","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-05","commitResults":[{"hash":"49266fea874cc91020fb5c11661205b297d6dc3f","isMergeCommit":false,"messageTitle":"Implement Ui, Storage, Parser and TaskList classes","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{"java":{"insertions":699,"deletions":540}}},{"hash":"d6bea82e01a801ae6fccc2b00b7142740cf49729","isMergeCommit":false,"messageTitle":"Bump gradle and lib version","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":5,"deletions":4}}},{"hash":"ba76a6d38038d6daf54ceb36d0d4eae4e9276e65","isMergeCommit":false,"messageTitle":"Rename main class in gradle build file","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1}}},{"hash":"6242e074b1b5813bb59220ee360616f74aaed4da","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Gradle\u0027","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"e83ccc9726d723ad02fde7e36a24eb810774bbe1","isMergeCommit":false,"messageTitle":"Rename dukeapp class to duke","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"txt":{"insertions":0,"deletions":12},"java":{"insertions":66,"deletions":66},"bat":{"insertions":1,"deletions":1},"sh":{"insertions":2,"deletions":2},"md":{"insertions":1,"deletions":1}}},{"hash":"69f4c1941b1ec1b1e089b03cd544374243b714f6","isMergeCommit":false,"messageTitle":"Add tests for task list and parser","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":6,"deletions":0},"java":{"insertions":285,"deletions":78}}},{"hash":"6d1b40cba66f78e5f3e4a2e36b7262f14d3e8ec3","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JUnit\u0027","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{}},{"hash":"f7e42270735622cfaefe89f090f675221af67c63","isMergeCommit":false,"messageTitle":"Update JavaDoc comments","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":12,"deletions":0},"java":{"insertions":62,"deletions":28}}},{"hash":"02a6ce8c3f1059b35cf747cd69b1612e3371841f","isMergeCommit":false,"messageTitle":"Update code to meet coding standards","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":54}}},{"hash":"3ad62950d6db462cc15c224f2ec889cbda4927f0","isMergeCommit":false,"messageTitle":"Implement functionality to find tasks","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":13,"deletions":0},"java":{"insertions":61,"deletions":7}}},{"hash":"744e279698e99a67b5d9eeb6ce130c93472bdfb2","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-9\u0027","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{}},{"hash":"d3e30d0b448c98e7171b4235c4e520c0577d0206","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JavaDoc\u0027","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{}},{"hash":"33b9ab2ba7483b927fd1a8c4d42ae312a321e788","isMergeCommit":true,"messageTitle":"Merge branch \u0027A-CodingStandard\u0027","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{}},{"hash":"d1f32a3c1fdef45a714dca010e7d377b17632310","isMergeCommit":false,"messageTitle":"Update Gradle to use Shadow","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0}}}]},{"date":"2023-09-08","commitResults":[{"hash":"d065ed14ed492cd02cca291e82a03c77ee264c56","isMergeCommit":false,"messageTitle":"Setup CheckStyle with Gradle","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":5,"deletions":0}}},{"hash":"5b556e5d6f4ed68ee39f95b34aa604579b96a371","isMergeCommit":false,"messageTitle":"Improve code standards to pass checkstyle format","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":126,"deletions":90}}},{"hash":"f3a85b321d92fc7645ab12331da5f46f91c1f38e","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-CheckStyle\u0027","messageBody":"","tags":["A-CheckStyle"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-16","commitResults":[{"hash":"6398876e2e7ec4e205cd5881662ef8b30212cffc","isMergeCommit":false,"messageTitle":"Add GUI integration","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":17,"deletions":2},"fxml":{"insertions":50,"deletions":0},"java":{"insertions":250,"deletions":160}}},{"hash":"457c6d6f47049d4b42f33ed99249a35b903c236b","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-10\u0027","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-20","commitResults":[{"hash":"ae36a6c76bfc53b0a5a93759760cc29fbc7af592","isMergeCommit":false,"messageTitle":"Implement assertions in the storage and parser classes","messageBody":"The current state of the codebase does not leverage assertions.\n\nUsing assertions in the codebase can improve the maintainability of the project and help signal to developers potential problems with their code in the future.\n\nLet\u0027s,\n* use assertions in the storage class to assert that the storage file exists before the user can use the application\n* use assertions in the parser class to assert that a valid set of commands exists before the user can use the application\n","tags":["A-FullCommitMessage"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":3}}}]},{"date":"2023-09-21","commitResults":[{"hash":"8275ce96023a79f8b9957982b47d890f23e70562","isMergeCommit":false,"messageTitle":"Refactor parser and task classes for code quality improvements","messageBody":"The Parser class had deeply nested code and violations in the single level of abstraction principle.\n\nThese issues can impede future code maintainence.\n\nExtracting some of the logic in task creation and input parsing can improve readability and\ncode quality.\n\nLet\u0027s,\n* extract out string parsing for task creation into smaller functions\n* create a helper function for date parsing to reduce nested code\n","fileTypesAndContributionMap":{"java":{"insertions":261,"deletions":79}}}]},{"date":"2023-09-22","commitResults":[{"hash":"40b18ef4a2c694d41a1fe1bf512a509c89248160","isMergeCommit":true,"messageTitle":"Merge pull request #2 from nathanielcalimag/branch-A-Assertions","messageBody":"Implement assertions in the storage and parser classes","tags":["A-Assertions"],"fileTypesAndContributionMap":{}},{"hash":"49480170ccf48775fffd29b4027deda35b259262","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into branch-A-CodeQuality","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"80cf051820920b6d8096905e7484a82bce1641a2","isMergeCommit":true,"messageTitle":"Merge pull request #3 from nathanielcalimag/branch-A-CodeQuality","messageBody":"Refactor parser and task classes for code quality improvements","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{}},{"hash":"d882a839047a253896834985b14d13ec768e5999","isMergeCommit":false,"messageTitle":"Implement checks to detect duplicate tasks","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":33,"deletions":13}}},{"hash":"c31d7404cccc7ed9f62110a3d4d74d05ddc5f9db","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-C-DetectDuplicates\u0027","messageBody":"","tags":["C-DetectDuplicates","BCD-Extension"],"fileTypesAndContributionMap":{}},{"hash":"ad82e09ff4a29dfdab36a3561b615aa7f5b305ae","isMergeCommit":false,"messageTitle":"Add a User Guide","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":179,"deletions":14}}},{"hash":"201bb9fa04893d606e361b1e5d950599cc0858a9","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-UserGuide\u0027","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{}},{"hash":"71d98b09871d161832f0b92d9976d5a8d96781de","isMergeCommit":false,"messageTitle":"Update screenshot in user guide","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":0},"md":{"insertions":2,"deletions":2}}},{"hash":"20d10028edc091f21870ba49b4cc07bbf1847227","isMergeCommit":false,"messageTitle":"Update error message formatting","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":8}}},{"hash":"da9fd315aeedceac7a4557a52dd0207e06420f71","isMergeCommit":false,"messageTitle":"Improve the styling of the dialog box","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":4,"deletions":2}}},{"hash":"c7e511e69f0b08d854eec8814d71f72420672809","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-BetterGui\u0027","messageBody":"","tags":["A-BetterGui"],"fileTypesAndContributionMap":{}},{"hash":"98b25c69d37ad09bb111b520371646ed233a43fe","isMergeCommit":false,"messageTitle":"Improve error handling for datetime string parsing","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":12,"deletions":3}}},{"hash":"a8a82e44741df40016bf3cd8961d4a7058fb77df","isMergeCommit":false,"messageTitle":"Improve error handling on index-based commands","messageBody":"","tags":["A-Release"],"fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":3}}}]},{"date":"2023-10-18","commitResults":[{"hash":"bf2e2ee7fbf1be86462623736aaa4589cad3eea4","isMergeCommit":false,"messageTitle":"Update user guide to reflect true behaviour","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":6,"deletions":3}}}]}]},"authorFileTypeContributionMap":{"nathanielcalimag":{"java":1671,"md":183,"fxml":52,"sh":9,"bat":1,"gradle":28,"txt":41}},"authorContributionVariance":{"nathanielcalimag":78113.86},"authorDisplayNameMap":{"nathanielcalimag":"CS2103T-W17-3 NATH..IMAG"}} diff --git a/reposense-logs/reposense.log.0 b/reposense-logs/reposense.log.0 index d20a6b73..ef88ecb0 100644 --- a/reposense-logs/reposense.log.0 +++ b/reposense-logs/reposense.log.0 @@ -1,70 +1,70 @@ -Oct 17, 2023 1:15:01 AM reposense.system.LogsManager addFileHandler +Oct 18, 2023 1:14:45 AM reposense.system.LogsManager addFileHandler INFO: Log temp folder has been successfully created -Oct 17, 2023 1:15:01 AM reposense.parser.CsvParser validateHeader +Oct 18, 2023 1:14:45 AM reposense.parser.CsvParser validateHeader INFO: Parsed header of CSV file, repo-config.csv, and recognized columns: Ignore Standalone Config, Repository's Location, Branch, Shallow Cloning, File formats, Ignore Glob List, Ignore Authors List, Find Previous Authors, Ignore Commits List -Oct 17, 2023 1:15:02 AM reposense.parser.CsvParser validateHeader +Oct 18, 2023 1:14:46 AM reposense.parser.CsvParser validateHeader INFO: Parsed header of CSV file, author-config.csv, and recognized columns: Author's Emails, Repository's Location, Author's GitHub ID, Branch, Author's Display Name, Ignore Glob List, Author's Git Author Name -Oct 17, 2023 1:15:02 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias scarletblanks found. The alias will belong to the last author - ScarletBlanks -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kb-tay found. The alias will belong to the last author - Kb-Tay -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias ryam found. The alias will belong to the last author - ryamgoh -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jason found. The alias will belong to the last author - jason-raiin -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias h1410101 found. The alias will belong to the last author - H1410101 -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias shashahchk found. The alias will belong to the last author - shashahchk -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yucongkoo found. The alias will belong to the last author - yucongkoo -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kokseng1 found. The alias will belong to the last author - Kokseng1 -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias vanessamae23 found. The alias will belong to the last author - Vanessamae23 -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias singa-pirate found. The alias will belong to the last author - Singa-pirate -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kurt found. The alias will belong to the last author - Kurtyjlee -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nicholastng010601 found. The alias will belong to the last author - nicholastng010601 -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias weiennn found. The alias will belong to the last author - Weiennn -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias inez kok found. The alias will belong to the last author - inezkok -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:46 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias adammangzijun found. The alias will belong to the last author - adammangzijun -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias scarletblanks found. The alias will belong to the last author - ScarletBlanks -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kb-tay found. The alias will belong to the last author - Kb-Tay -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias ryam found. The alias will belong to the last author - ryamgoh -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jason found. The alias will belong to the last author - jason-raiin -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias h1410101 found. The alias will belong to the last author - H1410101 -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias shashahchk found. The alias will belong to the last author - shashahchk -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yucongkoo found. The alias will belong to the last author - yucongkoo -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kokseng1 found. The alias will belong to the last author - Kokseng1 -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias vanessamae23 found. The alias will belong to the last author - Vanessamae23 -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias singa-pirate found. The alias will belong to the last author - Singa-pirate -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kurt found. The alias will belong to the last author - Kurtyjlee -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nicholastng010601 found. The alias will belong to the last author - nicholastng010601 -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias weiennn found. The alias will belong to the last author - Weiennn -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias inez kok found. The alias will belong to the last author - inezkok -Oct 17, 2023 1:15:03 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 18, 2023 1:14:47 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias adammangzijun found. The alias will belong to the last author - adammangzijun -Oct 17, 2023 1:15:03 AM reposense.git.GitConfig getGlobalGitLfsConfig +Oct 18, 2023 1:14:47 AM reposense.git.GitConfig getGlobalGitLfsConfig WARNING: Could not get global git lfs config java.lang.RuntimeException: reposense.system.CommandRunnerProcessException: Error returned from command git config --global --list on path . : fatal: unable to read config file '/home/runner/.gitconfig': No such file or directory @@ -80,8611 +80,8611 @@ fatal: unable to read config file '/home/runner/.gitconfig': No such file or dir at reposense.system.CommandRunner.runCommand(CommandRunner.java:21) ... 3 more -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/emzm2023/ip.git... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/siqirua/ip.git... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/emzm2023/ip.git... +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/CJ-Lee01/ip.git... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/thaddeusong/ip.git... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/thaddeusong/ip.git to complete... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/emzm2023/ip.git to complete... +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/CJ-Lee01/ip.git to complete... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/siqirua/ip.git to complete... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/emzm2023/ip.git to complete... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/CJ-Lee01/ip.git completed! -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/emzm2023/ip.git completed! -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/siqirua/ip.git completed! -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/CJ-Lee01/ip.git completed! +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tanteckfang/ip.git... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/thaddeusong/ip.git completed! -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/ph-nathan/ip.git... -Oct 17, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepos -INFO: [1/478] Analyzing https://github.com/emzm2023/ip.git (master)... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tanteckfang/ip.git to complete... -Oct 17, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:14:47 AM reposense.report.ReportGenerator analyzeRepos +INFO: [1/478] Analyzing https://github.com/emzm2023/ip.git (master)... +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/ph-nathan/ip.git... +Oct 18, 2023 1:14:47 AM reposense.report.ReportGenerator analyzeRepos INFO: [2/478] Analyzing https://github.com/CJ-Lee01/ip.git (master)... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/siqirua/ip.git completed! +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ph-nathan/ip.git to complete... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/butteredyakiimo/ip.git... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/yuxunn/ip.git... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/yuxunn/ip.git to complete... -Oct 17, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/butteredyakiimo/ip.git to complete... -Oct 17, 2023 1:15:03 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:14:48 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/emzm2023/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:14:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/emzm2023/ip.git (master)... -Oct 17, 2023 1:15:03 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:14:48 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/CJ-Lee01/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:14:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/CJ-Lee01/ip.git (master)... -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/thaddeusong/ip.git completed! +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/yuxunn/ip.git... +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/yuxunn/ip.git to complete... +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ph-nathan/ip.git completed! -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/butteredyakiimo/ip.git completed! -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/yuxunn/ip.git completed! -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tanteckfang/ip.git completed! +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/RB9823/ip.git... -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/TyrusLye/ip.git... -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/butteredyakiimo/ip.git completed! +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/RB9823/ip.git to complete... -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/cxo05/ip.git... -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/TyrusLye/ip.git to complete... -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/cxo05/ip.git to complete... -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tanteckfang/ip.git completed! -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/yuxunn/ip.git completed! +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/shyanyong/ip.git... -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/shyanyong/ip.git to complete... -Oct 17, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/cxo05/ip.git completed! -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/howenc/ip.git... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/CJ-Lee01/ip.git (master)... +Oct 18, 2023 1:14:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/emzm2023/ip.git (master)... +Oct 18, 2023 1:14:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/emzm2023/ip.git (master)... +Oct 18, 2023 1:14:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/CJ-Lee01/ip.git (master)... +Oct 18, 2023 1:14:49 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/emzm2023/ip.git (master) completed! +Oct 18, 2023 1:14:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [3/478] Analyzing https://github.com/siqirua/ip.git (master)... +Oct 18, 2023 1:14:49 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/CJ-Lee01/ip.git (master) completed! +Oct 18, 2023 1:14:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [4/478] Analyzing https://github.com/thaddeusong/ip.git (master)... +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/RB9823/ip.git completed! -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/TyrusLye/ip.git completed! -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/shyanyong/ip.git completed! +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/howenc/ip.git... +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/howenc/ip.git to complete... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/cxo05/ip.git completed! +Oct 18, 2023 1:14:49 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/siqirua/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/siqirua/ip.git (master)... +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Kurtyjlee/ip.git... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/TyrusLye/ip.git completed! +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/josepholim/ip.git... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/shyanyong/ip.git completed! -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/geoffong11/ip.git... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:49 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/thaddeusong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/thaddeusong/ip.git (master)... +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Kurtyjlee/ip.git to complete... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/geoffong11/ip.git to complete... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/josepholim/ip.git to complete... -Oct 17, 2023 1:15:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/CJ-Lee01/ip.git (master)... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/geoffong11/ip.git... +Oct 18, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/geoffong11/ip.git to complete... +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/howenc/ip.git completed! -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jianrong7/ip.git... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jianrong7/ip.git to complete... -Oct 17, 2023 1:15:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/emzm2023/ip.git (master)... -Oct 17, 2023 1:15:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/CJ-Lee01/ip.git (master)... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Kurtyjlee/ip.git completed! -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/geoffong11/ip.git completed! -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/josepholim/ip.git completed! -Oct 17, 2023 1:15:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/emzm2023/ip.git (master)... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/A1WAYSD/ip.git... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/geoffong11/ip.git completed! +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/NgChunMan/ip.git... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/A1WAYSD/ip.git to complete... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/limjunxian1/ip.git... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/NgChunMan/ip.git to complete... -Oct 17, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/limjunxian1/ip.git... +Oct 18, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/limjunxian1/ip.git to complete... -Oct 17, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/CJ-Lee01/ip.git (master) completed! -Oct 17, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/emzm2023/ip.git (master) completed! -Oct 17, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepos -INFO: [3/478] Analyzing https://github.com/siqirua/ip.git (master)... -Oct 17, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepos -INFO: [4/478] Analyzing https://github.com/thaddeusong/ip.git (master)... -Oct 17, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/thaddeusong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/thaddeusong/ip.git (master)... -Oct 17, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/siqirua/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/siqirua/ip.git (master)... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/thaddeusong/ip.git (master)... +Oct 18, 2023 1:14:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/siqirua/ip.git (master)... +Oct 18, 2023 1:14:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/thaddeusong/ip.git (master)... +Oct 18, 2023 1:14:50 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/thaddeusong/ip.git (master) completed! +Oct 18, 2023 1:14:50 AM reposense.report.ReportGenerator analyzeRepos +INFO: [5/478] Analyzing https://github.com/tanteckfang/ip.git (master)... +Oct 18, 2023 1:14:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/siqirua/ip.git (master)... +Oct 18, 2023 1:14:50 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tanteckfang/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tanteckfang/ip.git (master)... +Oct 18, 2023 1:14:51 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/siqirua/ip.git (master) completed! +Oct 18, 2023 1:14:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [6/478] Analyzing https://github.com/ph-nathan/ip.git (master)... +Oct 18, 2023 1:14:51 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ph-nathan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ph-nathan/ip.git (master)... +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/NgChunMan/ip.git completed! +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jianrong7/ip.git completed! -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/A1WAYSD/ip.git completed! +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jack1e0/ip.git... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jack1e0/ip.git to complete... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/NgChunMan/ip.git completed! -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/hjoneweek/ip.git... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jack1e0/ip.git to complete... +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/limjunxian1/ip.git completed! -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/hjoneweek/ip.git to complete... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/A1WAYSD/ip.git completed! -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dishenggg/ip.git... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/zhyuhan/ip.git... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/hjoneweek/ip.git to complete... +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dishenggg/ip.git to complete... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zhyuhan/ip.git to complete... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ph-nathan/ip.git (master)... +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jack1e0/ip.git completed! -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Dioclei/ip.git... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ph-nathan/ip.git (master)... +Oct 18, 2023 1:14:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tanteckfang/ip.git (master)... +Oct 18, 2023 1:14:52 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ph-nathan/ip.git (master) completed! +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Dioclei/ip.git to complete... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [7/478] Analyzing https://github.com/butteredyakiimo/ip.git (master)... +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/hjoneweek/ip.git completed! -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/dishenggg/ip.git completed! +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Daphne789/ip.git... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Daphne789/ip.git to complete... -Oct 17, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/zhyuhan/ip.git completed! -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/WinstonLeonard/ip.git... -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/dishenggg/ip.git completed! -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/peiran18/ip.git... -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:52 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/butteredyakiimo/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/butteredyakiimo/ip.git (master)... +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/zhyuhan/ip.git completed! +Oct 18, 2023 1:14:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tanteckfang/ip.git (master)... +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/WinstonLeonard/ip.git to complete... -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Daphne789/ip.git to complete... +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/peiran18/ip.git... +Oct 18, 2023 1:14:52 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tanteckfang/ip.git (master) completed! +Oct 18, 2023 1:14:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [8/478] Analyzing https://github.com/yuxunn/ip.git (master)... +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/peiran18/ip.git to complete... -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:52 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/yuxunn/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/yuxunn/ip.git (master)... +Oct 18, 2023 1:14:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yuxunn/ip.git (master)... +Oct 18, 2023 1:14:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/yuxunn/ip.git (master)... +Oct 18, 2023 1:14:52 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/yuxunn/ip.git (master) completed! +Oct 18, 2023 1:14:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [9/478] Analyzing https://github.com/RB9823/ip.git (master)... +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Dioclei/ip.git completed! -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AriellaCallista/ip.git... -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/RB9823/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/RB9823/ip.git (master)... +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AriellaCallista/ip.git to complete... -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Daphne789/ip.git completed! -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/migfoo02/ip.git... -Oct 17, 2023 1:15:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/thaddeusong/ip.git (master)... -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/migfoo02/ip.git to complete... -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/WinstonLeonard/ip.git completed! -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/peiran18/ip.git completed! -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/WinstonLeonard/ip.git completed! +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Jonyxzx/ip.git... -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/SynapseProgramming/ip.git... -Oct 17, 2023 1:15:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/thaddeusong/ip.git (master)... -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Jonyxzx/ip.git to complete... -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/SynapseProgramming/ip.git to complete... -Oct 17, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/thaddeusong/ip.git (master) completed! -Oct 17, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepos -INFO: [5/478] Analyzing https://github.com/ph-nathan/ip.git (master)... -Oct 17, 2023 1:15:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/siqirua/ip.git (master)... -Oct 17, 2023 1:15:07 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ph-nathan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ph-nathan/ip.git (master)... -Oct 17, 2023 1:15:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/siqirua/ip.git (master)... -Oct 17, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/siqirua/ip.git (master) completed! -Oct 17, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/butteredyakiimo/ip.git (master)... +Oct 18, 2023 1:14:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/butteredyakiimo/ip.git (master)... +Oct 18, 2023 1:14:53 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/butteredyakiimo/ip.git (master) completed! +Oct 18, 2023 1:14:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [10/478] Analyzing https://github.com/shyanyong/ip.git (master)... +Oct 18, 2023 1:14:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/shyanyong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/shyanyong/ip.git (master)... +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Jonyxzx/ip.git completed! +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AriellaCallista/ip.git completed! -Oct 17, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepos -INFO: [6/478] Analyzing https://github.com/butteredyakiimo/ip.git (master)... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Darren159/ip.git... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Darren159/ip.git to complete... -Oct 17, 2023 1:15:08 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/butteredyakiimo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/butteredyakiimo/ip.git (master)... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/migfoo02/ip.git completed! -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Darren159/ip.git... +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/imkwokyong/ip.git... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/imkwokyong/ip.git to complete... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Jonyxzx/ip.git completed! -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/joeng03/ip.git... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/joeng03/ip.git to complete... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/SynapseProgramming/ip.git completed! -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/joeng03/ip.git to complete... +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/imkwokyong/ip.git to complete... +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Darren159/ip.git to complete... +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/vijay-shankaranand/ip.git... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/vijay-shankaranand/ip.git to complete... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Darren159/ip.git completed! -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/RB9823/ip.git (master)... +Oct 18, 2023 1:14:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/RB9823/ip.git (master)... +Oct 18, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/RB9823/ip.git (master) completed! +Oct 18, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [11/478] Analyzing https://github.com/cxo05/ip.git (master)... +Oct 18, 2023 1:14:54 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/cxo05/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/cxo05/ip.git (master)... +Oct 18, 2023 1:14:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/shyanyong/ip.git (master)... +Oct 18, 2023 1:14:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/shyanyong/ip.git (master)... +Oct 18, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/shyanyong/ip.git (master) completed! +Oct 18, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [12/478] Analyzing https://github.com/TyrusLye/ip.git (master)... +Oct 18, 2023 1:14:54 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/TyrusLye/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/TyrusLye/ip.git (master)... +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/joeng03/ip.git completed! +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/SelwynAng/ip.git... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/SelwynAng/ip.git to complete... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/imkwokyong/ip.git completed! -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/SelwynAng/ip.git to complete... +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jeffrey-jian/ip.git... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/vijay-shankaranand/ip.git completed! +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Darren159/ip.git completed! +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jeffrey-jian/ip.git to complete... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/joeng03/ip.git completed! -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tanyyyming/ip.git... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/tanyyyming/ip.git to complete... -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/vijay-shankaranand/ip.git completed! -Oct 17, 2023 1:15:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/JCSnap/ip.git... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/JCSnap/ip.git to complete... -Oct 17, 2023 1:15:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ph-nathan/ip.git (master)... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/SelwynAng/ip.git completed! -Oct 17, 2023 1:15:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ph-nathan/ip.git (master)... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AprupKale/ip.git... -Oct 17, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ph-nathan/ip.git (master) completed! -Oct 17, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepos -INFO: [7/478] Analyzing https://github.com/yuxunn/ip.git (master)... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AprupKale/ip.git to complete... -Oct 17, 2023 1:15:09 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/yuxunn/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/yuxunn/ip.git (master)... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/tanyyyming/ip.git to complete... +Oct 18, 2023 1:14:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/TyrusLye/ip.git (master)... +Oct 18, 2023 1:14:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/TyrusLye/ip.git (master)... +Oct 18, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/TyrusLye/ip.git (master) completed! +Oct 18, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [13/478] Analyzing https://github.com/howenc/ip.git (master)... +Oct 18, 2023 1:14:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/howenc/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/howenc/ip.git (master)... +Oct 18, 2023 1:14:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/cxo05/ip.git (master)... +Oct 18, 2023 1:14:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/cxo05/ip.git (master)... +Oct 18, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/cxo05/ip.git (master) completed! +Oct 18, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [14/478] Analyzing https://github.com/Kurtyjlee/ip.git (master)... +Oct 18, 2023 1:14:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Kurtyjlee/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Kurtyjlee/ip.git (master)... +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jeffrey-jian/ip.git completed! -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/JCSnap/ip.git completed! +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AprupKale/ip.git... +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/SelwynAng/ip.git completed! +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/tanyyyming/ip.git completed! -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/woojiahao/ip.git... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/PetrichorPrecipice/ip.git... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AprupKale/ip.git to complete... +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/woojiahao/ip.git to complete... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/PetrichorPrecipice/ip.git to complete... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/JCSnap/ip.git completed! -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/PetrichorPrecipice/ip.git... +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/syamfarh/ip.git... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/PetrichorPrecipice/ip.git to complete... +Oct 18, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/syamfarh/ip.git to complete... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/howenc/ip.git (master)... +Oct 18, 2023 1:14:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/howenc/ip.git (master)... +Oct 18, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/howenc/ip.git (master) completed! +Oct 18, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [15/478] Analyzing https://github.com/josepholim/ip.git (master)... +Oct 18, 2023 1:14:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/josepholim/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/josepholim/ip.git (master)... +Oct 18, 2023 1:14:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Kurtyjlee/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Kurtyjlee/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Kurtyjlee/ip.git (master) completed! +Oct 18, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [16/478] Analyzing https://github.com/geoffong11/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/geoffong11/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/geoffong11/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AprupKale/ip.git completed! -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/D-Limiter/ip.git... -Oct 17, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/D-Limiter/ip.git to complete... -Oct 17, 2023 1:15:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/butteredyakiimo/ip.git (master)... -Oct 17, 2023 1:15:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/butteredyakiimo/ip.git (master)... -Oct 17, 2023 1:15:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yuxunn/ip.git (master)... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/syamfarh/ip.git completed! +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/PetrichorPrecipice/ip.git completed! -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/D-Limiter/ip.git... +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/coderhuang559/ip.git... -Oct 17, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/butteredyakiimo/ip.git (master) completed! -Oct 17, 2023 1:15:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/yuxunn/ip.git (master)... -Oct 17, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepos -INFO: [8/478] Analyzing https://github.com/tanteckfang/ip.git (master)... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/LINCHENYU2030S/ip.git... +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/LINCHENYU2030S/ip.git to complete... +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/coderhuang559/ip.git to complete... -Oct 17, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/yuxunn/ip.git (master) completed! -Oct 17, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepos -INFO: [9/478] Analyzing https://github.com/cxo05/ip.git (master)... -Oct 17, 2023 1:15:10 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tanteckfang/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tanteckfang/ip.git (master)... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/syamfarh/ip.git completed! -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/D-Limiter/ip.git to complete... +Oct 18, 2023 1:14:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/josepholim/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/josepholim/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/josepholim/ip.git (master) completed! +Oct 18, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [17/478] Analyzing https://github.com/NgChunMan/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/NgChunMan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/NgChunMan/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/geoffong11/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/geoffong11/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/geoffong11/ip.git (master) completed! +Oct 18, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [18/478] Analyzing https://github.com/jianrong7/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jianrong7/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jianrong7/ip.git (master)... +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/woojiahao/ip.git completed! -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/LINCHENYU2030S/ip.git... -Oct 17, 2023 1:15:10 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/cxo05/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/cxo05/ip.git (master)... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LINCHENYU2030S/ip.git completed! +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/pra-navi/ip.git... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/LINCHENYU2030S/ip.git to complete... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/pra-navi/ip.git to complete... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/D-Limiter/ip.git completed! -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:56 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/phiphi-tan/ip.git... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/phiphi-tan/ip.git to complete... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/coderhuang559/ip.git completed! -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/phiphi-tan/ip.git to complete... +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/pra-navi/ip.git to complete... +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ktzy0305/ip.git... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/D-Limiter/ip.git completed! +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ktzy0305/ip.git to complete... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/pra-navi/ip.git completed! -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LINCHENYU2030S/ip.git completed! -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LordSaumya/ip.git... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Chen1x/ip.git... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LordSaumya/ip.git to complete... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Chen1x/ip.git to complete... -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jianrong7/ip.git (master)... +Oct 18, 2023 1:14:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jianrong7/ip.git (master)... +Oct 18, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jianrong7/ip.git (master) completed! +Oct 18, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [19/478] Analyzing https://github.com/A1WAYSD/ip.git (master)... +Oct 18, 2023 1:14:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/A1WAYSD/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/A1WAYSD/ip.git (master)... +Oct 18, 2023 1:14:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/NgChunMan/ip.git (master)... +Oct 18, 2023 1:14:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/NgChunMan/ip.git (master)... +Oct 18, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/NgChunMan/ip.git (master) completed! +Oct 18, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [20/478] Analyzing https://github.com/limjunxian1/ip.git (master)... +Oct 18, 2023 1:14:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/limjunxian1/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/limjunxian1/ip.git (master)... +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LordSaumya/ip.git completed! +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/phiphi-tan/ip.git completed! -Oct 17, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/yanghengtang/ip.git... -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/yanghengtang/ip.git to complete... -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ktzy0305/ip.git completed! -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LordSaumya/ip.git completed! -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Chen1x/ip.git... +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/yanghengtang/ip.git... +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/johnnythesnake12/ip.git... -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/johnnythesnake12/ip.git to complete... -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/pra-navi/ip.git completed! +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/yanghengtang/ip.git to complete... +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Chen1x/ip.git to complete... +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/oeggy03/ip.git... -Oct 17, 2023 1:15:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tanteckfang/ip.git (master)... -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Chen1x/ip.git completed! -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/p-xp/ip.git... -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/johnnythesnake12/ip.git to complete... +Oct 18, 2023 1:14:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/oeggy03/ip.git to complete... -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/p-xp/ip.git to complete... -Oct 17, 2023 1:15:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tanteckfang/ip.git (master)... -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/A1WAYSD/ip.git (master)... +Oct 18, 2023 1:14:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/A1WAYSD/ip.git (master)... +Oct 18, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/A1WAYSD/ip.git (master) completed! +Oct 18, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [21/478] Analyzing https://github.com/jack1e0/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jack1e0/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jack1e0/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/limjunxian1/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/limjunxian1/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/limjunxian1/ip.git (master) completed! +Oct 18, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [22/478] Analyzing https://github.com/hjoneweek/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/hjoneweek/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/hjoneweek/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/yanghengtang/ip.git completed! -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:58 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/p-xp/ip.git... +Oct 18, 2023 1:14:58 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/oeggy03/ip.git completed! +Oct 18, 2023 1:14:58 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/p-xp/ip.git to complete... +Oct 18, 2023 1:14:58 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/matochichap/ip.git... -Oct 17, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tanteckfang/ip.git (master) completed! -Oct 17, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepos -INFO: [10/478] Analyzing https://github.com/TyrusLye/ip.git (master)... -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:58 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/matochichap/ip.git to complete... -Oct 17, 2023 1:15:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/cxo05/ip.git (master)... -Oct 17, 2023 1:15:11 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/TyrusLye/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/TyrusLye/ip.git (master)... -Oct 17, 2023 1:15:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/cxo05/ip.git (master)... -Oct 17, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/cxo05/ip.git (master) completed! -Oct 17, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepos -INFO: [11/478] Analyzing https://github.com/RB9823/ip.git (master)... -Oct 17, 2023 1:15:11 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/RB9823/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/RB9823/ip.git (master)... -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/oeggy03/ip.git completed! -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:58 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/johnnythesnake12/ip.git completed! -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/p-xp/ip.git completed! -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jack1e0/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/applepiofmyeye/ip.git... -Oct 17, 2023 1:15:11 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/TiwKangXu/ip.git... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:58 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/applepiofmyeye/ip.git to complete... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jack1e0/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jack1e0/ip.git (master) completed! +Oct 18, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [23/478] Analyzing https://github.com/dishenggg/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/dishenggg/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/dishenggg/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/hjoneweek/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/hjoneweek/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/hjoneweek/ip.git (master) completed! +Oct 18, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [24/478] Analyzing https://github.com/zhyuhan/ip.git (master)... +Oct 18, 2023 1:14:58 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/zhyuhan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/zhyuhan/ip.git (master)... +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/matochichap/ip.git completed! +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/TiwKangXu/ip.git... +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/p-xp/ip.git completed! +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ScarletBlanks/ip.git... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/TiwKangXu/ip.git to complete... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/matochichap/ip.git completed! -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ScarletBlanks/ip.git to complete... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/dishenggg/ip.git (master)... +Oct 18, 2023 1:14:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/dishenggg/ip.git (master)... +Oct 18, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/dishenggg/ip.git (master) completed! +Oct 18, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [25/478] Analyzing https://github.com/Dioclei/ip.git (master)... +Oct 18, 2023 1:14:59 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Dioclei/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Dioclei/ip.git (master)... +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Chen1x/ip.git completed! +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/chiayunrong/ip.git... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/chiayunrong/ip.git to complete... -Oct 17, 2023 1:15:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/TyrusLye/ip.git (master)... -Oct 17, 2023 1:15:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/TyrusLye/ip.git (master)... -Oct 17, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/TyrusLye/ip.git (master) completed! -Oct 17, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepos -INFO: [12/478] Analyzing https://github.com/shyanyong/ip.git (master)... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/zhyuhan/ip.git (master)... +Oct 18, 2023 1:14:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zhyuhan/ip.git (master)... +Oct 18, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/zhyuhan/ip.git (master) completed! +Oct 18, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [26/478] Analyzing https://github.com/Daphne789/ip.git (master)... +Oct 18, 2023 1:14:59 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Daphne789/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:14:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Daphne789/ip.git (master)... +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ScarletBlanks/ip.git completed! +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/TiwKangXu/ip.git completed! -Oct 17, 2023 1:15:12 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/shyanyong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/shyanyong/ip.git (master)... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/devanshubisht/ip.git... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/devanshubisht/ip.git to complete... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/chiayunrong/ip.git completed! -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ScarletBlanks/ip.git completed! -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jx124/ip.git... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jx124/ip.git to complete... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:14:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/devanshubisht/ip.git to complete... +Oct 18, 2023 1:15:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Dioclei/ip.git (master)... +Oct 18, 2023 1:15:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Dioclei/ip.git (master)... +Oct 18, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Dioclei/ip.git (master) completed! +Oct 18, 2023 1:15:00 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/chiayunrong/ip.git completed! +Oct 18, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [27/478] Analyzing https://github.com/peiran18/ip.git (master)... +Oct 18, 2023 1:15:00 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Clin-lyx/ip.git... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Clin-lyx/ip.git to complete... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:00 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/peiran18/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/peiran18/ip.git (master)... +Oct 18, 2023 1:15:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/devanshubisht/ip.git completed! -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Daphne789/ip.git (master)... +Oct 18, 2023 1:15:00 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AryanG01/ip.git... -Oct 17, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AryanG01/ip.git to complete... -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jx124/ip.git completed! -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:00 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AryanG01/ip.git to complete... +Oct 18, 2023 1:15:00 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kayabuttertoastt/ip.git... -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Daphne789/ip.git (master)... +Oct 18, 2023 1:15:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kayabuttertoastt/ip.git to complete... -Oct 17, 2023 1:15:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/RB9823/ip.git (master)... -Oct 17, 2023 1:15:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/RB9823/ip.git (master)... -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Daphne789/ip.git (master) completed! +Oct 18, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [28/478] Analyzing https://github.com/WinstonLeonard/ip.git (master)... +Oct 18, 2023 1:15:00 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/WinstonLeonard/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/WinstonLeonard/ip.git (master)... +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Clin-lyx/ip.git completed! -Oct 17, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/RB9823/ip.git (master) completed! -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/sheryew/ip.git... -Oct 17, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepos -INFO: [13/478] Analyzing https://github.com/howenc/ip.git (master)... -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AryanG01/ip.git completed! -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/sheryew/ip.git to complete... -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/peiran18/ip.git (master)... +Oct 18, 2023 1:15:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/peiran18/ip.git (master)... +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/applepiofmyeye/ip.git completed! +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jonasongg/ip.git... -Oct 17, 2023 1:15:13 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/howenc/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/howenc/ip.git (master)... -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/peiran18/ip.git (master) completed! +Oct 18, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [29/478] Analyzing https://github.com/Jonyxzx/ip.git (master)... +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jonasongg/ip.git to complete... -Oct 17, 2023 1:15:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/shyanyong/ip.git (master)... -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:01 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Jonyxzx/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Jonyxzx/ip.git (master)... +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/kayabuttertoastt/ip.git completed! -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yiwen101/ip.git... -Oct 17, 2023 1:15:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/shyanyong/ip.git (master)... -Oct 17, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yiwen101/ip.git to complete... -Oct 17, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/shyanyong/ip.git (master) completed! -Oct 17, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepos -INFO: [14/478] Analyzing https://github.com/josepholim/ip.git (master)... -Oct 17, 2023 1:15:13 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/josepholim/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/josepholim/ip.git (master)... -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/sheryew/ip.git completed! -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jonasongg/ip.git completed! -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AryanG01/ip.git completed! +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tiongMax/ip.git... -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/chuababyy/ip.git... -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tiongMax/ip.git to complete... -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/WinstonLeonard/ip.git (master)... +Oct 18, 2023 1:15:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/WinstonLeonard/ip.git (master)... +Oct 18, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/WinstonLeonard/ip.git (master) completed! +Oct 18, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [30/478] Analyzing https://github.com/migfoo02/ip.git (master)... +Oct 18, 2023 1:15:01 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/migfoo02/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/migfoo02/ip.git (master)... +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/sheryew/ip.git completed! +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/chuababyy/ip.git... +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/chuababyy/ip.git to complete... -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/yiwen101/ip.git completed! -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jonasongg/ip.git completed! +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/supermii2/ip.git... -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/supermii2/ip.git to complete... -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tiongMax/ip.git completed! -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Jonyxzx/ip.git (master)... +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/yiwen101/ip.git completed! +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/remuslum/ip.git... -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/chuababyy/ip.git completed! -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/remuslum/ip.git to complete... +Oct 18, 2023 1:15:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Jonyxzx/ip.git (master)... +Oct 18, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Jonyxzx/ip.git (master) completed! +Oct 18, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepos +INFO: [31/478] Analyzing https://github.com/AriellaCallista/ip.git (master)... +Oct 18, 2023 1:15:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/migfoo02/ip.git (master)... +Oct 18, 2023 1:15:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/migfoo02/ip.git (master)... +Oct 18, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/migfoo02/ip.git (master) completed! +Oct 18, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepos +INFO: [32/478] Analyzing https://github.com/SynapseProgramming/ip.git (master)... +Oct 18, 2023 1:15:02 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AriellaCallista/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AriellaCallista/ip.git (master)... +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tiongMax/ip.git completed! +Oct 18, 2023 1:15:02 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/SynapseProgramming/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/SynapseProgramming/ip.git (master)... +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kanna-1/ip.git... -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kanna-1/ip.git to complete... -Oct 17, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/remuslum/ip.git to complete... -Oct 17, 2023 1:15:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/howenc/ip.git (master)... -Oct 17, 2023 1:15:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/howenc/ip.git (master)... -Oct 17, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/howenc/ip.git (master) completed! -Oct 17, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepos -INFO: [15/478] Analyzing https://github.com/Kurtyjlee/ip.git (master)... -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/supermii2/ip.git completed! -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/chuababyy/ip.git completed! +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nicolengk/ip.git... -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/remuslum/ip.git completed! -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/newway1814/ip.git... -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nicolengk/ip.git to complete... -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/supermii2/ip.git completed! +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/newway1814/ip.git... +Oct 18, 2023 1:15:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/SynapseProgramming/ip.git (master)... +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/newway1814/ip.git to complete... -Oct 17, 2023 1:15:15 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Kurtyjlee/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Kurtyjlee/ip.git (master)... -Oct 17, 2023 1:15:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/josepholim/ip.git (master)... -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/applepiofmyeye/ip.git completed! -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/remuslum/ip.git completed! +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/glenngnng/ip.git... -Oct 17, 2023 1:15:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/josepholim/ip.git (master)... -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/SynapseProgramming/ip.git (master)... +Oct 18, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/SynapseProgramming/ip.git (master) completed! +Oct 18, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepos +INFO: [33/478] Analyzing https://github.com/joeng03/ip.git (master)... +Oct 18, 2023 1:15:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/glenngnng/ip.git to complete... -Oct 17, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/josepholim/ip.git (master) completed! -Oct 17, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepos -INFO: [16/478] Analyzing https://github.com/geoffong11/ip.git (master)... -Oct 17, 2023 1:15:15 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/geoffong11/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/geoffong11/ip.git (master)... -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/newway1814/ip.git completed! -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/zsh-eng/ip.git... -Oct 17, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:03 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/joeng03/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/joeng03/ip.git (master)... +Oct 18, 2023 1:15:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AriellaCallista/ip.git (master)... +Oct 18, 2023 1:15:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AriellaCallista/ip.git (master)... +Oct 18, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AriellaCallista/ip.git (master) completed! +Oct 18, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepos +INFO: [34/478] Analyzing https://github.com/imkwokyong/ip.git (master)... +Oct 18, 2023 1:15:03 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/imkwokyong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/imkwokyong/ip.git (master)... +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/nicolengk/ip.git completed! -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/zsh-eng/ip.git... +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zsh-eng/ip.git to complete... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kanna-1/ip.git completed! +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/mingyuanc/ip.git... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/mingyuanc/ip.git to complete... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/glenngnng/ip.git completed! -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LamJiuFong/ip.git... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LamJiuFong/ip.git to complete... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kanna-1/ip.git completed! -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/newway1814/ip.git completed! +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/GlendaChong/ip.git... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/GlendaChong/ip.git to complete... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/joeng03/ip.git (master)... +Oct 18, 2023 1:15:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/joeng03/ip.git (master)... +Oct 18, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/joeng03/ip.git (master) completed! +Oct 18, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepos +INFO: [35/478] Analyzing https://github.com/vijay-shankaranand/ip.git (master)... +Oct 18, 2023 1:15:03 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/vijay-shankaranand/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/vijay-shankaranand/ip.git (master)... +Oct 18, 2023 1:15:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/zsh-eng/ip.git completed! -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/starrylight99/ip.git... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/starrylight99/ip.git to complete... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/imkwokyong/ip.git (master)... +Oct 18, 2023 1:15:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/imkwokyong/ip.git (master)... +Oct 18, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/imkwokyong/ip.git (master) completed! +Oct 18, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [36/478] Analyzing https://github.com/Darren159/ip.git (master)... +Oct 18, 2023 1:15:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Darren159/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Darren159/ip.git (master)... +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/mingyuanc/ip.git completed! -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AustinHuang1203/ip.git... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AustinHuang1203/ip.git to complete... -Oct 17, 2023 1:15:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/geoffong11/ip.git (master)... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/LamJiuFong/ip.git completed! -Oct 17, 2023 1:15:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Kurtyjlee/ip.git (master)... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/seewhyjay/ip.git... -Oct 17, 2023 1:15:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/geoffong11/ip.git (master)... -Oct 17, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/geoffong11/ip.git (master) completed! -Oct 17, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepos -INFO: [17/478] Analyzing https://github.com/jianrong7/ip.git (master)... -Oct 17, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/seewhyjay/ip.git to complete... -Oct 17, 2023 1:15:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Kurtyjlee/ip.git (master)... -Oct 17, 2023 1:15:16 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jianrong7/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jianrong7/ip.git (master)... -Oct 17, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Kurtyjlee/ip.git (master) completed! -Oct 17, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepos -INFO: [18/478] Analyzing https://github.com/NgChunMan/ip.git (master)... -Oct 17, 2023 1:15:17 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/NgChunMan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/NgChunMan/ip.git (master)... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/starrylight99/ip.git completed! -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/ruth-lim/ip.git... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/vijay-shankaranand/ip.git (master)... +Oct 18, 2023 1:15:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/vijay-shankaranand/ip.git (master)... +Oct 18, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/vijay-shankaranand/ip.git (master) completed! +Oct 18, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [37/478] Analyzing https://github.com/jeffrey-jian/ip.git (master)... +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/GlendaChong/ip.git completed! -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/ruth-lim/ip.git... +Oct 18, 2023 1:15:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jeffrey-jian/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jeffrey-jian/ip.git (master)... +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ruth-lim/ip.git to complete... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/starrylight99/ip.git completed! +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/limzhenwy/ip.git... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/seewhyjay/ip.git completed! -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/limzhenwy/ip.git to complete... +Oct 18, 2023 1:15:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Darren159/ip.git (master)... +Oct 18, 2023 1:15:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Darren159/ip.git (master)... +Oct 18, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Darren159/ip.git (master) completed! +Oct 18, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [38/478] Analyzing https://github.com/JCSnap/ip.git (master)... +Oct 18, 2023 1:15:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AustinHuang1203/ip.git completed! -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/JCSnap/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/JCSnap/ip.git (master)... +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/xCOLOURx/ip.git... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/zacwong2151/ip.git... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/limzhenwy/ip.git to complete... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/xCOLOURx/ip.git to complete... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/seewhyjay/ip.git completed! +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/zacwong2151/ip.git... +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zacwong2151/ip.git to complete... -Oct 17, 2023 1:15:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jianrong7/ip.git (master)... -Oct 17, 2023 1:15:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jianrong7/ip.git (master)... -Oct 17, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jianrong7/ip.git (master) completed! -Oct 17, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepos -INFO: [19/478] Analyzing https://github.com/limjunxian1/ip.git (master)... -Oct 17, 2023 1:15:17 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/limjunxian1/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/limjunxian1/ip.git (master)... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/xCOLOURx/ip.git completed! -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ruth-lim/ip.git completed! +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Zjinnnn/ip.git... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/zacwong2151/ip.git completed! -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Zjinnnn/ip.git to complete... +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/limzhenwy/ip.git completed! -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jeffrey-jian/ip.git (master)... +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/awhb/ip.git... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/teoks0199/ip.git... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Zjinnnn/ip.git to complete... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ruth-lim/ip.git completed! -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/awhb/ip.git to complete... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jeffrey-jian/ip.git (master)... +Oct 18, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jeffrey-jian/ip.git (master) completed! +Oct 18, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [39/478] Analyzing https://github.com/tanyyyming/ip.git (master)... +Oct 18, 2023 1:15:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/JCSnap/ip.git (master)... +Oct 18, 2023 1:15:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tanyyyming/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tanyyyming/ip.git (master)... +Oct 18, 2023 1:15:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/JCSnap/ip.git (master)... +Oct 18, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/JCSnap/ip.git (master) completed! +Oct 18, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [40/478] Analyzing https://github.com/SelwynAng/ip.git (master)... +Oct 18, 2023 1:15:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/SelwynAng/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/SelwynAng/ip.git (master)... +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/zacwong2151/ip.git completed! +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/teoks0199/ip.git... +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/teoks0199/ip.git to complete... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/xCOLOURx/ip.git completed! +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/qz1004/ip.git... -Oct 17, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/qz1004/ip.git to complete... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/awhb/ip.git completed! -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/pangyyen/ip.git... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Zjinnnn/ip.git completed! -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/pangyyen/ip.git... +Oct 18, 2023 1:15:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/pangyyen/ip.git to complete... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/teoks0199/ip.git completed! -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/awhb/ip.git completed! +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Mahidharah/ip.git... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jason-raiin/ip.git... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Mahidharah/ip.git to complete... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tanyyyming/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tanyyyming/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tanyyyming/ip.git (master) completed! +Oct 18, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [41/478] Analyzing https://github.com/AprupKale/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AprupKale/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AprupKale/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/teoks0199/ip.git completed! +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jason-raiin/ip.git... +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jason-raiin/ip.git to complete... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/SelwynAng/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/SelwynAng/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/SelwynAng/ip.git (master) completed! +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/qz1004/ip.git completed! -Oct 17, 2023 1:15:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/NgChunMan/ip.git (master)... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [42/478] Analyzing https://github.com/syamfarh/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ravern/ip.git... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ravern/ip.git to complete... -Oct 17, 2023 1:15:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/NgChunMan/ip.git (master)... -Oct 17, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/NgChunMan/ip.git (master) completed! -Oct 17, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepos -INFO: [20/478] Analyzing https://github.com/A1WAYSD/ip.git (master)... -Oct 17, 2023 1:15:18 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/A1WAYSD/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/A1WAYSD/ip.git (master)... -Oct 17, 2023 1:15:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/limjunxian1/ip.git (master)... -Oct 17, 2023 1:15:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/limjunxian1/ip.git (master)... -Oct 17, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/limjunxian1/ip.git (master) completed! -Oct 17, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepos -INFO: [21/478] Analyzing https://github.com/jack1e0/ip.git (master)... -Oct 17, 2023 1:15:18 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jack1e0/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jack1e0/ip.git (master)... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Mahidharah/ip.git completed! -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/pangyyen/ip.git completed! +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/bobscodedump/ip.git... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/syamfarh/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/syamfarh/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/bobscodedump/ip.git to complete... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/pangyyen/ip.git completed! -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/nixonwidjaja/ip.git... -Oct 17, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AprupKale/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AprupKale/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AprupKale/ip.git (master) completed! +Oct 18, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [43/478] Analyzing https://github.com/PetrichorPrecipice/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/PetrichorPrecipice/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/PetrichorPrecipice/ip.git (master)... +Oct 18, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/syamfarh/ip.git (master)... +Oct 18, 2023 1:15:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/syamfarh/ip.git (master)... +Oct 18, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/syamfarh/ip.git (master) completed! +Oct 18, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [44/478] Analyzing https://github.com/woojiahao/ip.git (master)... +Oct 18, 2023 1:15:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/woojiahao/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/woojiahao/ip.git (master)... +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jason-raiin/ip.git completed! -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/nixonwidjaja/ip.git... +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nixonwidjaja/ip.git to complete... -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/bobscodedump/ip.git completed! +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/techjay-c/ip.git... -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/techjay-c/ip.git to complete... -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ravern/ip.git completed! -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/techjay-c/ip.git to complete... +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ryanozx/ip.git... -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ryanozx/ip.git to complete... -Oct 17, 2023 1:15:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/A1WAYSD/ip.git (master)... -Oct 17, 2023 1:15:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/A1WAYSD/ip.git (master)... -Oct 17, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/A1WAYSD/ip.git (master) completed! -Oct 17, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepos -INFO: [22/478] Analyzing https://github.com/hjoneweek/ip.git (master)... -Oct 17, 2023 1:15:19 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/hjoneweek/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/hjoneweek/ip.git (master)... -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ryanozx/ip.git completed! -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Mahidharah/ip.git completed! +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LuahJunYang/ip.git... -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LuahJunYang/ip.git to complete... -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/techjay-c/ip.git completed! -Oct 17, 2023 1:15:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jack1e0/ip.git (master)... -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/PetrichorPrecipice/ip.git (master)... +Oct 18, 2023 1:15:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/PetrichorPrecipice/ip.git (master)... +Oct 18, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/PetrichorPrecipice/ip.git (master) completed! +Oct 18, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [45/478] Analyzing https://github.com/LINCHENYU2030S/ip.git (master)... +Oct 18, 2023 1:15:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LINCHENYU2030S/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LINCHENYU2030S/ip.git (master)... +Oct 18, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ryanozx/ip.git completed! +Oct 18, 2023 1:15:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/woojiahao/ip.git (master)... +Oct 18, 2023 1:15:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/HEEaZ/ip.git... -Oct 17, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/HEEaZ/ip.git to complete... -Oct 17, 2023 1:15:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jack1e0/ip.git (master)... -Oct 17, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jack1e0/ip.git (master) completed! -Oct 17, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepos -INFO: [23/478] Analyzing https://github.com/zhyuhan/ip.git (master)... -Oct 17, 2023 1:15:20 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/zhyuhan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/zhyuhan/ip.git (master)... -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/bobscodedump/ip.git completed! -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LuahJunYang/ip.git completed! +Oct 18, 2023 1:15:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dom-buri/ip.git... -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dom-buri/ip.git to complete... -Oct 17, 2023 1:15:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/hjoneweek/ip.git (master)... -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LuahJunYang/ip.git completed! -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nixonwidjaja/ip.git completed! +Oct 18, 2023 1:15:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/woojiahao/ip.git (master)... +Oct 18, 2023 1:15:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AlainS87/ip.git... -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/woojiahao/ip.git (master) completed! +Oct 18, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [46/478] Analyzing https://github.com/coderhuang559/ip.git (master)... +Oct 18, 2023 1:15:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AlainS87/ip.git to complete... -Oct 17, 2023 1:15:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/hjoneweek/ip.git (master)... -Oct 17, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/hjoneweek/ip.git (master) completed! -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/HEEaZ/ip.git completed! -Oct 17, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepos -INFO: [24/478] Analyzing https://github.com/dishenggg/ip.git (master)... -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/coderhuang559/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/coderhuang559/ip.git (master)... +Oct 18, 2023 1:15:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LINCHENYU2030S/ip.git (master)... +Oct 18, 2023 1:15:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LINCHENYU2030S/ip.git (master)... +Oct 18, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LINCHENYU2030S/ip.git (master) completed! +Oct 18, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/techjay-c/ip.git completed! +Oct 18, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [47/478] Analyzing https://github.com/D-Limiter/ip.git (master)... +Oct 18, 2023 1:15:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tiongjjyi/ip.git... -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tiongjjyi/ip.git to complete... -Oct 17, 2023 1:15:20 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/dishenggg/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/dishenggg/ip.git (master)... -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/dom-buri/ip.git completed! -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nixonwidjaja/ip.git completed! -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/D-Limiter/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/D-Limiter/ip.git (master)... +Oct 18, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/HEEaZ/ip.git completed! +Oct 18, 2023 1:15:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Vanessamae23/ip.git... -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/fuyiqiao/ip.git... -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Vanessamae23/ip.git to complete... -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/dom-buri/ip.git completed! +Oct 18, 2023 1:15:09 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/fuyiqiao/ip.git... +Oct 18, 2023 1:15:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/fuyiqiao/ip.git to complete... -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/coderhuang559/ip.git (master)... +Oct 18, 2023 1:15:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/coderhuang559/ip.git (master)... +Oct 18, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/coderhuang559/ip.git (master) completed! +Oct 18, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [48/478] Analyzing https://github.com/ktzy0305/ip.git (master)... +Oct 18, 2023 1:15:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ktzy0305/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ktzy0305/ip.git (master)... +Oct 18, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/tiongjjyi/ip.git completed! -Oct 17, 2023 1:15:20 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/spatuly/ip.git... -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/spatuly/ip.git to complete... -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Vanessamae23/ip.git completed! -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tanshiyu1999/ip.git... -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tanshiyu1999/ip.git to complete... -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/fuyiqiao/ip.git completed! -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Kb-Tay/ip.git... -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Kb-Tay/ip.git to complete... -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/D-Limiter/ip.git (master)... +Oct 18, 2023 1:15:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/D-Limiter/ip.git (master)... +Oct 18, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/D-Limiter/ip.git (master) completed! +Oct 18, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [49/478] Analyzing https://github.com/LordSaumya/ip.git (master)... +Oct 18, 2023 1:15:10 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LordSaumya/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LordSaumya/ip.git (master)... +Oct 18, 2023 1:15:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/spatuly/ip.git completed! -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/beatricecst/ip.git... -Oct 17, 2023 1:15:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/zhyuhan/ip.git (master)... -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/beatricecst/ip.git to complete... -Oct 17, 2023 1:15:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zhyuhan/ip.git (master)... -Oct 17, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/zhyuhan/ip.git (master) completed! -Oct 17, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepos -INFO: [25/478] Analyzing https://github.com/Dioclei/ip.git (master)... -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tanshiyu1999/ip.git completed! -Oct 17, 2023 1:15:21 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Dioclei/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Dioclei/ip.git (master)... -Oct 17, 2023 1:15:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/dishenggg/ip.git (master)... -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Kb-Tay/ip.git completed! +Oct 18, 2023 1:15:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tanveersingh10/ip.git... -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tanveersingh10/ip.git to complete... -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Kb-Tay/ip.git completed! -Oct 17, 2023 1:15:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/dishenggg/ip.git (master)... -Oct 17, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/dishenggg/ip.git (master) completed! -Oct 17, 2023 1:15:21 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tanshiyu1999/ip.git completed! +Oct 18, 2023 1:15:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/thienmy0/ip.git... -Oct 17, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepos -INFO: [26/478] Analyzing https://github.com/Daphne789/ip.git (master)... -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/thienmy0/ip.git to complete... -Oct 17, 2023 1:15:22 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Daphne789/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Daphne789/ip.git (master)... -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/beatricecst/ip.git completed! -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ktzy0305/ip.git (master)... +Oct 18, 2023 1:15:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ktzy0305/ip.git (master)... +Oct 18, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ktzy0305/ip.git (master) completed! +Oct 18, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [50/478] Analyzing https://github.com/phiphi-tan/ip.git (master)... +Oct 18, 2023 1:15:11 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/phiphi-tan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/phiphi-tan/ip.git (master)... +Oct 18, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tanveersingh10/ip.git completed! +Oct 18, 2023 1:15:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/s0ngyang/ip.git... -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/s0ngyang/ip.git to complete... -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tanveersingh10/ip.git completed! -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/ldinghan/ip.git... -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ldinghan/ip.git to complete... -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/thienmy0/ip.git completed! -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/beatricecst/ip.git completed! +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/ldinghan/ip.git... +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/feifeiraindrops/ip.git... -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ldinghan/ip.git to complete... +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/feifeiraindrops/ip.git to complete... -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LordSaumya/ip.git (master)... +Oct 18, 2023 1:15:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LordSaumya/ip.git (master)... +Oct 18, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LordSaumya/ip.git (master) completed! +Oct 18, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [51/478] Analyzing https://github.com/pra-navi/ip.git (master)... +Oct 18, 2023 1:15:12 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/pra-navi/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/pra-navi/ip.git (master)... +Oct 18, 2023 1:15:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/phiphi-tan/ip.git (master)... +Oct 18, 2023 1:15:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/phiphi-tan/ip.git (master)... +Oct 18, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/phiphi-tan/ip.git (master) completed! +Oct 18, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [52/478] Analyzing https://github.com/yanghengtang/ip.git (master)... +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/s0ngyang/ip.git completed! -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/ryanongwx/ip.git... -Oct 17, 2023 1:15:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Dioclei/ip.git (master)... -Oct 17, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ryanongwx/ip.git to complete... -Oct 17, 2023 1:15:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Dioclei/ip.git (master)... -Oct 17, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Dioclei/ip.git (master) completed! -Oct 17, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepos -INFO: [27/478] Analyzing https://github.com/peiran18/ip.git (master)... -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ldinghan/ip.git completed! -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/ryanongwx/ip.git... +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kwangthiag/ip.git... -Oct 17, 2023 1:15:23 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/peiran18/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/peiran18/ip.git (master)... -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/kwangthiag/ip.git to complete... -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/feifeiraindrops/ip.git completed! -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/kwangthiag/ip.git to complete... +Oct 18, 2023 1:15:12 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/yanghengtang/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/yanghengtang/ip.git (master)... +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ryanongwx/ip.git to complete... +Oct 18, 2023 1:15:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/elhy1999/ip.git... -Oct 17, 2023 1:15:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Daphne789/ip.git (master)... -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/elhy1999/ip.git to complete... -Oct 17, 2023 1:15:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Daphne789/ip.git (master)... -Oct 17, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Daphne789/ip.git (master) completed! -Oct 17, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepos -INFO: [28/478] Analyzing https://github.com/WinstonLeonard/ip.git (master)... -Oct 17, 2023 1:15:23 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/WinstonLeonard/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/WinstonLeonard/ip.git (master)... -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ryanongwx/ip.git completed! -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/pra-navi/ip.git (master)... +Oct 18, 2023 1:15:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/pra-navi/ip.git (master)... +Oct 18, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/pra-navi/ip.git (master) completed! +Oct 18, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [53/478] Analyzing https://github.com/oeggy03/ip.git (master)... +Oct 18, 2023 1:15:13 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/oeggy03/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/oeggy03/ip.git (master)... +Oct 18, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kwangthiag/ip.git completed! +Oct 18, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/elhy1999/ip.git completed! +Oct 18, 2023 1:15:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/songgthu/ip.git... -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/songgthu/ip.git to complete... -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kwangthiag/ip.git completed! -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/GohTengFong/ip.git... -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/GohTengFong/ip.git to complete... -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/elhy1999/ip.git completed! -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ryanongwx/ip.git completed! +Oct 18, 2023 1:15:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/simbayippy/ip.git... -Oct 17, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/simbayippy/ip.git to complete... -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/songgthu/ip.git completed! -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AlainS87/ip.git completed! +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Khaleelur-Rahman/ip.git... -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Khaleelur-Rahman/ip.git to complete... -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/GohTengFong/ip.git completed! -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yanghengtang/ip.git (master)... +Oct 18, 2023 1:15:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/yanghengtang/ip.git (master)... +Oct 18, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/yanghengtang/ip.git (master) completed! +Oct 18, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [54/478] Analyzing https://github.com/johnnythesnake12/ip.git (master)... +Oct 18, 2023 1:15:14 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/johnnythesnake12/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/johnnythesnake12/ip.git (master)... +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/songgthu/ip.git completed! +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/proto-aiken-13/ip.git... -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/GohTengFong/ip.git completed! +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/proto-aiken-13/ip.git to complete... -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/simbayippy/ip.git completed! -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/bwangpj/ip.git... -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/bwangpj/ip.git to complete... -Oct 17, 2023 1:15:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/peiran18/ip.git (master)... -Oct 17, 2023 1:15:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/peiran18/ip.git (master)... -Oct 17, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/peiran18/ip.git (master) completed! -Oct 17, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepos -INFO: [29/478] Analyzing https://github.com/AriellaCallista/ip.git (master)... -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Khaleelur-Rahman/ip.git completed! -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/oeggy03/ip.git (master)... +Oct 18, 2023 1:15:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/oeggy03/ip.git (master)... +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/simbayippy/ip.git completed! +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/weeweh/ip.git... -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/oeggy03/ip.git (master) completed! +Oct 18, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [55/478] Analyzing https://github.com/matochichap/ip.git (master)... +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/weeweh/ip.git to complete... -Oct 17, 2023 1:15:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/WinstonLeonard/ip.git (master)... -Oct 17, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AriellaCallista/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AriellaCallista/ip.git (master)... -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/bwangpj/ip.git completed! -Oct 17, 2023 1:15:24 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:14 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/matochichap/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/matochichap/ip.git (master)... +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Khaleelur-Rahman/ip.git completed! +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/s-peiran/ip.git... -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/s-peiran/ip.git to complete... -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/johnnythesnake12/ip.git (master)... +Oct 18, 2023 1:15:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/johnnythesnake12/ip.git (master)... +Oct 18, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/johnnythesnake12/ip.git (master) completed! +Oct 18, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [56/478] Analyzing https://github.com/p-xp/ip.git (master)... +Oct 18, 2023 1:15:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/p-xp/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/p-xp/ip.git (master)... +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/proto-aiken-13/ip.git completed! -Oct 17, 2023 1:15:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/WinstonLeonard/ip.git (master)... -Oct 17, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/WinstonLeonard/ip.git (master) completed! -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/bwangpj/ip.git completed! +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jylow/ip.git... -Oct 17, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepos -INFO: [30/478] Analyzing https://github.com/migfoo02/ip.git (master)... -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jylow/ip.git to complete... -Oct 17, 2023 1:15:25 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/migfoo02/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/migfoo02/ip.git (master)... -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/weeweh/ip.git completed! -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lawruixi/ip.git... -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lawruixi/ip.git to complete... -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jylow/ip.git completed! -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/weeweh/ip.git completed! +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/JeremyYong128/ip.git... -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/s-peiran/ip.git completed! -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/JeremyYong128/ip.git to complete... -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/s-peiran/ip.git completed! +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/brandon-nam/ip.git... -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/brandon-nam/ip.git to complete... -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/matochichap/ip.git (master)... +Oct 18, 2023 1:15:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/p-xp/ip.git (master)... +Oct 18, 2023 1:15:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/p-xp/ip.git (master)... +Oct 18, 2023 1:15:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/matochichap/ip.git (master)... +Oct 18, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/p-xp/ip.git (master) completed! +Oct 18, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/matochichap/ip.git (master) completed! +Oct 18, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [57/478] Analyzing https://github.com/Chen1x/ip.git (master)... +Oct 18, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [58/478] Analyzing https://github.com/ScarletBlanks/ip.git (master)... +Oct 18, 2023 1:15:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Chen1x/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Chen1x/ip.git (master)... +Oct 18, 2023 1:15:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ScarletBlanks/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ScarletBlanks/ip.git (master)... +Oct 18, 2023 1:15:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/lawruixi/ip.git completed! -Oct 17, 2023 1:15:25 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LHeng1/ip.git... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LHeng1/ip.git to complete... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/JeremyYong128/ip.git completed! -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Leb14/ip.git... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jylow/ip.git completed! +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Leb14/ip.git to complete... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/brandon-nam/ip.git completed! -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/B-enguin/ip.git... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/B-enguin/ip.git to complete... -Oct 17, 2023 1:15:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AriellaCallista/ip.git (master)... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AlainS87/ip.git completed! -Oct 17, 2023 1:15:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/migfoo02/ip.git (master)... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ScarletBlanks/ip.git (master)... +Oct 18, 2023 1:15:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ScarletBlanks/ip.git (master)... +Oct 18, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ScarletBlanks/ip.git (master) completed! +Oct 18, 2023 1:15:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Chen1x/ip.git (master)... +Oct 18, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepos +INFO: [59/478] Analyzing https://github.com/TiwKangXu/ip.git (master)... +Oct 18, 2023 1:15:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Chen1x/ip.git (master)... +Oct 18, 2023 1:15:16 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/TiwKangXu/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/TiwKangXu/ip.git (master)... +Oct 18, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Chen1x/ip.git (master) completed! +Oct 18, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepos +INFO: [60/478] Analyzing https://github.com/chiayunrong/ip.git (master)... +Oct 18, 2023 1:15:16 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/chiayunrong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/chiayunrong/ip.git (master)... +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/brandon-nam/ip.git completed! +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/s-kybound/ip.git... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/s-kybound/ip.git to complete... -Oct 17, 2023 1:15:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/migfoo02/ip.git (master)... -Oct 17, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/migfoo02/ip.git (master) completed! -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/LHeng1/ip.git completed! -Oct 17, 2023 1:15:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AriellaCallista/ip.git (master)... -Oct 17, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AriellaCallista/ip.git (master) completed! -Oct 17, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepos -INFO: [31/478] Analyzing https://github.com/Jonyxzx/ip.git (master)... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wesho1107/ip.git... -Oct 17, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepos -INFO: [32/478] Analyzing https://github.com/SynapseProgramming/ip.git (master)... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wesho1107/ip.git to complete... -Oct 17, 2023 1:15:26 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Jonyxzx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Jonyxzx/ip.git (master)... -Oct 17, 2023 1:15:26 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/SynapseProgramming/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/SynapseProgramming/ip.git (master)... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Leb14/ip.git completed! +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/B-enguin/ip.git completed! -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yihfei/ip.git... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Leb14/ip.git completed! -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AaronJT1/ip.git... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yihfei/ip.git to complete... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AaronJT1/ip.git to complete... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/chiayunrong/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/TiwKangXu/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/chiayunrong/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/chiayunrong/ip.git (master) completed! +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [61/478] Analyzing https://github.com/devanshubisht/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/TiwKangXu/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/TiwKangXu/ip.git (master) completed! +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/devanshubisht/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/devanshubisht/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [62/478] Analyzing https://github.com/jx124/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jx124/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jx124/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/s-kybound/ip.git completed! -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dlathyun/ip.git... -Oct 17, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dlathyun/ip.git to complete... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/wesho1107/ip.git completed! -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/ricketytoc/ip.git... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ricketytoc/ip.git to complete... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/yihfei/ip.git completed! -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/ricketytoc/ip.git... +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Angelyxx/ip.git... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ricketytoc/ip.git to complete... +Oct 18, 2023 1:15:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/devanshubisht/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Angelyxx/ip.git to complete... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/devanshubisht/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/devanshubisht/ip.git (master) completed! +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [63/478] Analyzing https://github.com/Clin-lyx/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AaronJT1/ip.git completed! -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jingting1412/ip.git... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jingting1412/ip.git to complete... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/dlathyun/ip.git completed! -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/SinhaVedant/ip.git... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ricketytoc/ip.git completed! -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/freddychenyouren2/ip.git... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Angelyxx/ip.git completed! -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/SinhaVedant/ip.git to complete... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/freddychenyouren2/ip.git to complete... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jx124/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Clin-lyx/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Clin-lyx/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jx124/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jx124/ip.git (master) completed! +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [64/478] Analyzing https://github.com/applepiofmyeye/ip.git (master)... +Oct 18, 2023 1:15:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/applepiofmyeye/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/applepiofmyeye/ip.git (master)... +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/dlathyun/ip.git completed! +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/SinhaVedant/ip.git... +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/SinhaVedant/ip.git to complete... +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Angelyxx/ip.git completed! +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ricketytoc/ip.git completed! +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/freddychenyouren2/ip.git... +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jordankanghm/ip.git... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jordankanghm/ip.git to complete... -Oct 17, 2023 1:15:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/SynapseProgramming/ip.git (master)... -Oct 17, 2023 1:15:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/SynapseProgramming/ip.git (master)... -Oct 17, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/SynapseProgramming/ip.git (master) completed! -Oct 17, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepos -INFO: [33/478] Analyzing https://github.com/Darren159/ip.git (master)... -Oct 17, 2023 1:15:27 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Darren159/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Darren159/ip.git (master)... -Oct 17, 2023 1:15:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Jonyxzx/ip.git (master)... -Oct 17, 2023 1:15:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Jonyxzx/ip.git (master)... -Oct 17, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Jonyxzx/ip.git (master) completed! -Oct 17, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepos -INFO: [34/478] Analyzing https://github.com/imkwokyong/ip.git (master)... -Oct 17, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/SinhaVedant/ip.git completed! -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/freddychenyouren2/ip.git to complete... +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jingting1412/ip.git completed! -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jordankanghm/ip.git to complete... +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/adhigop13/ip.git... -Oct 17, 2023 1:15:28 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/imkwokyong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/imkwokyong/ip.git (master)... -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/waseemingly/ip.git... -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/adhigop13/ip.git to complete... -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Clin-lyx/ip.git (master)... +Oct 18, 2023 1:15:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Clin-lyx/ip.git (master)... +Oct 18, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Clin-lyx/ip.git (master) completed! +Oct 18, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [65/478] Analyzing https://github.com/kayabuttertoastt/ip.git (master)... +Oct 18, 2023 1:15:18 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kayabuttertoastt/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kayabuttertoastt/ip.git (master)... +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/SinhaVedant/ip.git completed! +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/waseemingly/ip.git... +Oct 18, 2023 1:15:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/waseemingly/ip.git to complete... -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/applepiofmyeye/ip.git (master)... +Oct 18, 2023 1:15:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/applepiofmyeye/ip.git (master)... +Oct 18, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/applepiofmyeye/ip.git (master) completed! +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/adhigop13/ip.git completed! +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jordankanghm/ip.git completed! -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [66/478] Analyzing https://github.com/AryanG01/ip.git (master)... +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/raydenlim/ip.git... -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/raydenlim/ip.git to complete... -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/adhigop13/ip.git completed! -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jingyu987/ip.git... -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:19 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AryanG01/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AryanG01/ip.git (master)... +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jingyu987/ip.git to complete... -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kayabuttertoastt/ip.git (master)... +Oct 18, 2023 1:15:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kayabuttertoastt/ip.git (master)... +Oct 18, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kayabuttertoastt/ip.git (master) completed! +Oct 18, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [67/478] Analyzing https://github.com/sheryew/ip.git (master)... +Oct 18, 2023 1:15:19 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/sheryew/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/sheryew/ip.git (master)... +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/raydenlim/ip.git completed! -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/freddychenyouren2/ip.git completed! +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/FerdiHS/ip.git... -Oct 17, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jrchoo/ip.git... +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/FerdiHS/ip.git to complete... -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/freddychenyouren2/ip.git completed! -Oct 17, 2023 1:15:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Darren159/ip.git (master)... -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jingyu987/ip.git completed! -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jrchoo/ip.git... -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/RiyaMehta2211/ip.git... -Oct 17, 2023 1:15:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Darren159/ip.git (master)... -Oct 17, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Darren159/ip.git (master) completed! -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jrchoo/ip.git to complete... -Oct 17, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepos -INFO: [35/478] Analyzing https://github.com/joeng03/ip.git (master)... -Oct 17, 2023 1:15:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/imkwokyong/ip.git (master)... -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:19 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/RiyaMehta2211/ip.git... +Oct 18, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/RiyaMehta2211/ip.git to complete... -Oct 17, 2023 1:15:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/imkwokyong/ip.git (master)... -Oct 17, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/imkwokyong/ip.git (master) completed! -Oct 17, 2023 1:15:29 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/joeng03/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/joeng03/ip.git (master)... -Oct 17, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepos -INFO: [36/478] Analyzing https://github.com/vijay-shankaranand/ip.git (master)... -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/sheryew/ip.git (master)... +Oct 18, 2023 1:15:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/sheryew/ip.git (master)... +Oct 18, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/sheryew/ip.git (master) completed! +Oct 18, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepos +INFO: [68/478] Analyzing https://github.com/jonasongg/ip.git (master)... +Oct 18, 2023 1:15:20 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jonasongg/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jonasongg/ip.git (master)... +Oct 18, 2023 1:15:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AryanG01/ip.git (master)... +Oct 18, 2023 1:15:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AryanG01/ip.git (master)... +Oct 18, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AryanG01/ip.git (master) completed! +Oct 18, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepos +INFO: [69/478] Analyzing https://github.com/yiwen101/ip.git (master)... +Oct 18, 2023 1:15:20 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/yiwen101/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/yiwen101/ip.git (master)... +Oct 18, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/FerdiHS/ip.git completed! -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:20 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/leezhanpeng/ip.git... -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/leezhanpeng/ip.git to complete... -Oct 17, 2023 1:15:29 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/vijay-shankaranand/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/vijay-shankaranand/ip.git (master)... -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jrchoo/ip.git completed! -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:20 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/juzzztinsoong/ip.git... -Oct 17, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/juzzztinsoong/ip.git to complete... -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/RiyaMehta2211/ip.git completed! -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/leezhanpeng/ip.git completed! -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/juzzztinsoong/ip.git to complete... +Oct 18, 2023 1:15:20 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/darrentfy/ip.git... -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/redtailedfox/ip.git... -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/darrentfy/ip.git to complete... -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/redtailedfox/ip.git to complete... -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jonasongg/ip.git (master)... +Oct 18, 2023 1:15:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jonasongg/ip.git (master)... +Oct 18, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jonasongg/ip.git (master) completed! +Oct 18, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepos +INFO: [70/478] Analyzing https://github.com/tiongMax/ip.git (master)... +Oct 18, 2023 1:15:21 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tiongMax/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tiongMax/ip.git (master)... +Oct 18, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/darrentfy/ip.git completed! +Oct 18, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/juzzztinsoong/ip.git completed! -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:21 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/redtailedfox/ip.git... +Oct 18, 2023 1:15:21 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Fallman2/ip.git... -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/redtailedfox/ip.git to complete... +Oct 18, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Fallman2/ip.git to complete... -Oct 17, 2023 1:15:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/vijay-shankaranand/ip.git (master)... -Oct 17, 2023 1:15:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/vijay-shankaranand/ip.git (master)... -Oct 17, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/vijay-shankaranand/ip.git (master) completed! -Oct 17, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepos -INFO: [37/478] Analyzing https://github.com/SelwynAng/ip.git (master)... -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/darrentfy/ip.git completed! -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/redtailedfox/ip.git completed! -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yiwen101/ip.git (master)... +Oct 18, 2023 1:15:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/yiwen101/ip.git (master)... +Oct 18, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/yiwen101/ip.git (master) completed! +Oct 18, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepos +INFO: [71/478] Analyzing https://github.com/chuababyy/ip.git (master)... +Oct 18, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/waseemingly/ip.git completed! +Oct 18, 2023 1:15:21 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/chuababyy/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/chuababyy/ip.git (master)... +Oct 18, 2023 1:15:21 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Heran9/ip.git... -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Heran9/ip.git to complete... +Oct 18, 2023 1:15:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tiongMax/ip.git (master)... +Oct 18, 2023 1:15:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tiongMax/ip.git (master)... +Oct 18, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tiongMax/ip.git (master) completed! +Oct 18, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepos +INFO: [72/478] Analyzing https://github.com/supermii2/ip.git (master)... +Oct 18, 2023 1:15:22 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/supermii2/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/supermii2/ip.git (master)... +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/redtailedfox/ip.git completed! +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/VN-Hao/ip.git... -Oct 17, 2023 1:15:30 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/SelwynAng/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/SelwynAng/ip.git (master)... -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/VN-Hao/ip.git to complete... -Oct 17, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Heran9/ip.git to complete... -Oct 17, 2023 1:15:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/joeng03/ip.git (master)... -Oct 17, 2023 1:15:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/joeng03/ip.git (master)... -Oct 17, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/joeng03/ip.git (master) completed! -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Fallman2/ip.git completed! -Oct 17, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepos -INFO: [38/478] Analyzing https://github.com/jeffrey-jian/ip.git (master)... -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jingjie88/ip.git... -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/chuababyy/ip.git (master)... +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jingjie88/ip.git to complete... -Oct 17, 2023 1:15:31 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jeffrey-jian/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jeffrey-jian/ip.git (master)... -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Heran9/ip.git completed! -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/leezhanpeng/ip.git completed! +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/H1410101/ip.git... -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/H1410101/ip.git to complete... -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jingjie88/ip.git completed! -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/chuababyy/ip.git (master)... +Oct 18, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/chuababyy/ip.git (master) completed! +Oct 18, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepos +INFO: [73/478] Analyzing https://github.com/remuslum/ip.git (master)... +Oct 18, 2023 1:15:22 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/remuslum/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/remuslum/ip.git (master)... +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Heran9/ip.git completed! +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kimshitong/ip.git... -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/VN-Hao/ip.git completed! -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:22 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kimshitong/ip.git to complete... -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/supermii2/ip.git (master)... +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jingjie88/ip.git completed! +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ivanleekk/ip.git... -Oct 17, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ivanleekk/ip.git to complete... -Oct 17, 2023 1:15:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/SelwynAng/ip.git (master)... -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kimshitong/ip.git completed! -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/supermii2/ip.git (master)... +Oct 18, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/supermii2/ip.git (master) completed! +Oct 18, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [74/478] Analyzing https://github.com/nicolengk/ip.git (master)... +Oct 18, 2023 1:15:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nicolengk/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nicolengk/ip.git (master)... +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/VN-Hao/ip.git completed! +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lamchenghou/ip.git... -Oct 17, 2023 1:15:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/SelwynAng/ip.git (master)... -Oct 17, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/SelwynAng/ip.git (master) completed! -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lamchenghou/ip.git to complete... -Oct 17, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepos -INFO: [39/478] Analyzing https://github.com/tanyyyming/ip.git (master)... -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ivanleekk/ip.git completed! -Oct 17, 2023 1:15:32 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tanyyyming/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tanyyyming/ip.git (master)... -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/remuslum/ip.git (master)... +Oct 18, 2023 1:15:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/remuslum/ip.git (master)... +Oct 18, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/remuslum/ip.git (master) completed! +Oct 18, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [75/478] Analyzing https://github.com/kanna-1/ip.git (master)... +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kimshitong/ip.git completed! +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tayruxin/ip.git... -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kanna-1/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kanna-1/ip.git (master)... +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tayruxin/ip.git to complete... -Oct 17, 2023 1:15:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jeffrey-jian/ip.git (master)... -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/waseemingly/ip.git completed! -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ivanleekk/ip.git completed! +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/raynertjx/ip.git... -Oct 17, 2023 1:15:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jeffrey-jian/ip.git (master)... -Oct 17, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jeffrey-jian/ip.git (master) completed! -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/raynertjx/ip.git to complete... -Oct 17, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepos -INFO: [40/478] Analyzing https://github.com/JCSnap/ip.git (master)... -Oct 17, 2023 1:15:32 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/JCSnap/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/JCSnap/ip.git (master)... -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lamchenghou/ip.git completed! -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/H1410101/ip.git completed! +Oct 18, 2023 1:15:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nicolengk/ip.git (master)... +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/zhengyup/ip.git... -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zhengyup/ip.git to complete... -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/H1410101/ip.git completed! -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nicolengk/ip.git (master)... +Oct 18, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nicolengk/ip.git (master) completed! +Oct 18, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [76/478] Analyzing https://github.com/glenngnng/ip.git (master)... +Oct 18, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/glenngnng/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/glenngnng/ip.git (master)... +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lamchenghou/ip.git completed! +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/tayruxin/ip.git completed! -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/larrywang0701/ip.git... -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Carlintyj/ip.git... -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/larrywang0701/ip.git to complete... -Oct 17, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Carlintyj/ip.git to complete... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/raynertjx/ip.git completed! -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kanna-1/ip.git (master)... +Oct 18, 2023 1:15:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kanna-1/ip.git (master)... +Oct 18, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kanna-1/ip.git (master) completed! +Oct 18, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepos +INFO: [77/478] Analyzing https://github.com/newway1814/ip.git (master)... +Oct 18, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/newway1814/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/newway1814/ip.git (master)... +Oct 18, 2023 1:15:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/glenngnng/ip.git (master)... +Oct 18, 2023 1:15:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/glenngnng/ip.git (master)... +Oct 18, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/glenngnng/ip.git (master) completed! +Oct 18, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepos +INFO: [78/478] Analyzing https://github.com/zsh-eng/ip.git (master)... +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/zhengyup/ip.git completed! +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wxwern/ip.git... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wxwern/ip.git to complete... -Oct 17, 2023 1:15:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/JCSnap/ip.git (master)... -Oct 17, 2023 1:15:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/JCSnap/ip.git (master)... -Oct 17, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/JCSnap/ip.git (master) completed! -Oct 17, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepos -INFO: [41/478] Analyzing https://github.com/AprupKale/ip.git (master)... -Oct 17, 2023 1:15:33 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AprupKale/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AprupKale/ip.git (master)... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/larrywang0701/ip.git completed! -Oct 17, 2023 1:15:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tanyyyming/ip.git (master)... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/zhengyup/ip.git completed! -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/zsh-eng/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/zsh-eng/ip.git (master)... +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/raynertjx/ip.git completed! +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nubnubyas/ip.git... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nubnubyas/ip.git to complete... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/larrywang0701/ip.git completed! +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Carlintyj/ip.git completed! +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/aslam341/ip.git... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/aslam341/ip.git to complete... -Oct 17, 2023 1:15:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tanyyyming/ip.git (master)... -Oct 17, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tanyyyming/ip.git (master) completed! -Oct 17, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepos -INFO: [42/478] Analyzing https://github.com/PetrichorPrecipice/ip.git (master)... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Carlintyj/ip.git completed! -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LWZ19/ip.git... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wxwern/ip.git completed! -Oct 17, 2023 1:15:33 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/PetrichorPrecipice/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/PetrichorPrecipice/ip.git (master)... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LWZ19/ip.git to complete... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/newway1814/ip.git (master)... +Oct 18, 2023 1:15:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/newway1814/ip.git (master)... +Oct 18, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/newway1814/ip.git (master) completed! +Oct 18, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepos +INFO: [79/478] Analyzing https://github.com/mingyuanc/ip.git (master)... +Oct 18, 2023 1:15:25 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/mingyuanc/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/mingyuanc/ip.git (master)... +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wxwern/ip.git completed! +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/timleow/ip.git... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/timleow/ip.git to complete... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/aslam341/ip.git completed! -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/zsh-eng/ip.git (master)... +Oct 18, 2023 1:15:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zsh-eng/ip.git (master)... +Oct 18, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/zsh-eng/ip.git (master) completed! +Oct 18, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepos +INFO: [80/478] Analyzing https://github.com/LamJiuFong/ip.git (master)... +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/nubnubyas/ip.git completed! -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/aslam341/ip.git completed! +Oct 18, 2023 1:15:25 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LamJiuFong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LamJiuFong/ip.git (master)... +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/rayshawntan/ip.git... -Oct 17, 2023 1:15:33 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/aexolate/ip.git... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/aexolate/ip.git to complete... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/rayshawntan/ip.git to complete... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/LWZ19/ip.git completed! -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/rayshawntan/ip.git to complete... +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Sheeepen/ip.git... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/aexolate/ip.git to complete... +Oct 18, 2023 1:15:25 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Sheeepen/ip.git to complete... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/mingyuanc/ip.git (master)... +Oct 18, 2023 1:15:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/mingyuanc/ip.git (master)... +Oct 18, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/mingyuanc/ip.git (master) completed! +Oct 18, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepos +INFO: [81/478] Analyzing https://github.com/GlendaChong/ip.git (master)... +Oct 18, 2023 1:15:25 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/GlendaChong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/GlendaChong/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LamJiuFong/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/timleow/ip.git completed! -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/shuyangk/ip.git... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/rayshawntan/ip.git completed! +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/shuyangk/ip.git to complete... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/aexolate/ip.git completed! -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ncmathan/ip.git... -Oct 17, 2023 1:15:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AprupKale/ip.git (master)... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LamJiuFong/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LamJiuFong/ip.git (master) completed! +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ncmathan/ip.git to complete... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/rayshawntan/ip.git completed! -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/iyioon/ip.git... -Oct 17, 2023 1:15:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AprupKale/ip.git (master)... -Oct 17, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AprupKale/ip.git (master) completed! -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/iyioon/ip.git to complete... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepos +INFO: [82/478] Analyzing https://github.com/starrylight99/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/aexolate/ip.git completed! +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Sheeepen/ip.git completed! -Oct 17, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos -INFO: [43/478] Analyzing https://github.com/syamfarh/ip.git (master)... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/iyioon/ip.git... +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kiwibang/ip.git... -Oct 17, 2023 1:15:34 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/syamfarh/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/syamfarh/ip.git (master)... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:26 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/starrylight99/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/starrylight99/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/iyioon/ip.git to complete... +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kiwibang/ip.git to complete... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/starrylight99/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/GlendaChong/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/starrylight99/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/starrylight99/ip.git (master) completed! +Oct 18, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepos +INFO: [83/478] Analyzing https://github.com/AustinHuang1203/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/GlendaChong/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/GlendaChong/ip.git (master) completed! +Oct 18, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepos +INFO: [84/478] Analyzing https://github.com/seewhyjay/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/seewhyjay/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/seewhyjay/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AustinHuang1203/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AustinHuang1203/ip.git (master)... +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/shuyangk/ip.git completed! -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/mingyu-wan/ip.git... -Oct 17, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kiwibang/ip.git completed! +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/mingyu-wan/ip.git to complete... -Oct 17, 2023 1:15:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/PetrichorPrecipice/ip.git (master)... -Oct 17, 2023 1:15:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/PetrichorPrecipice/ip.git (master)... -Oct 17, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/PetrichorPrecipice/ip.git (master) completed! -Oct 17, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos -INFO: [44/478] Analyzing https://github.com/woojiahao/ip.git (master)... -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/LuoZYi/ip.git... +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/LuoZYi/ip.git to complete... +Oct 18, 2023 1:15:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/iyioon/ip.git completed! -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kiwibang/ip.git completed! -Oct 17, 2023 1:15:35 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/woojiahao/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/woojiahao/ip.git (master)... -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/LuoZYi/ip.git... -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:27 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/asdfghjkxd/ip.git... -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/LuoZYi/ip.git to complete... -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/asdfghjkxd/ip.git to complete... -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AustinHuang1203/ip.git (master)... +Oct 18, 2023 1:15:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AustinHuang1203/ip.git (master)... +Oct 18, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AustinHuang1203/ip.git (master) completed! +Oct 18, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepos +INFO: [85/478] Analyzing https://github.com/ruth-lim/ip.git (master)... +Oct 18, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ncmathan/ip.git completed! -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:27 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/sushiyade/ip.git... -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/seewhyjay/ip.git (master)... +Oct 18, 2023 1:15:27 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ruth-lim/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ruth-lim/ip.git (master)... +Oct 18, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/sushiyade/ip.git to complete... -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/seewhyjay/ip.git (master)... +Oct 18, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/seewhyjay/ip.git (master) completed! +Oct 18, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepos +INFO: [86/478] Analyzing https://github.com/limzhenwy/ip.git (master)... +Oct 18, 2023 1:15:27 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/limzhenwy/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/limzhenwy/ip.git (master)... +Oct 18, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/LuoZYi/ip.git completed! -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:27 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Nid21cs/ip.git... -Oct 17, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Nid21cs/ip.git to complete... -Oct 17, 2023 1:15:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/syamfarh/ip.git (master)... -Oct 17, 2023 1:15:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/syamfarh/ip.git (master)... -Oct 17, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/syamfarh/ip.git (master) completed! -Oct 17, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepos -INFO: [45/478] Analyzing https://github.com/D-Limiter/ip.git (master)... -Oct 17, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Nid21cs/ip.git completed! -Oct 17, 2023 1:15:36 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/asdfghjkxd/ip.git completed! +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/McNaBry/ip.git... -Oct 17, 2023 1:15:36 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/D-Limiter/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/D-Limiter/ip.git (master)... -Oct 17, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/McNaBry/ip.git to complete... -Oct 17, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/asdfghjkxd/ip.git completed! -Oct 17, 2023 1:15:36 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/limzhenwy/ip.git (master)... +Oct 18, 2023 1:15:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/limzhenwy/ip.git (master)... +Oct 18, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/limzhenwy/ip.git (master) completed! +Oct 18, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepos +INFO: [87/478] Analyzing https://github.com/zacwong2151/ip.git (master)... +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Nid21cs/ip.git completed! +Oct 18, 2023 1:15:28 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/zacwong2151/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/zacwong2151/ip.git (master)... +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/miljyy/ip.git... -Oct 17, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/miljyy/ip.git to complete... -Oct 17, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/McNaBry/ip.git completed! -Oct 17, 2023 1:15:36 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ncduy0303/ip.git... -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/mingyu-wan/ip.git completed! +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ncduy0303/ip.git to complete... -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/miljyy/ip.git completed! -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/eyelessrhyme7/ip.git... -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/mingyu-wan/ip.git completed! -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/eyelessrhyme7/ip.git to complete... -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ruth-lim/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ruth-lim/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ruth-lim/ip.git (master) completed! +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepos +INFO: [88/478] Analyzing https://github.com/xCOLOURx/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/xCOLOURx/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/xCOLOURx/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/zacwong2151/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zacwong2151/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/zacwong2151/ip.git (master) completed! +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepos +INFO: [89/478] Analyzing https://github.com/Zjinnnn/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/sushiyade/ip.git completed! +Oct 18, 2023 1:15:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ruishanteo/ip.git... -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ruishanteo/ip.git to complete... -Oct 17, 2023 1:15:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/woojiahao/ip.git (master)... -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ncduy0303/ip.git completed! -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Zjinnnn/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Zjinnnn/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/eyelessrhyme7/ip.git completed! -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/m1oojv/ip.git... -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/m1oojv/ip.git to complete... +Oct 18, 2023 1:15:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/xCOLOURx/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Zjinnnn/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/xCOLOURx/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/xCOLOURx/ip.git (master) completed! +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepos +INFO: [90/478] Analyzing https://github.com/awhb/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Zjinnnn/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Zjinnnn/ip.git (master) completed! +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepos +INFO: [91/478] Analyzing https://github.com/teoks0199/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ncduy0303/ip.git completed! +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/awhb/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Nixx162/ip.git... -Oct 17, 2023 1:15:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/woojiahao/ip.git (master)... -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/awhb/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Nixx162/ip.git to complete... -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/m1oojv/ip.git to complete... -Oct 17, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/woojiahao/ip.git (master) completed! -Oct 17, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepos -INFO: [46/478] Analyzing https://github.com/coderhuang559/ip.git (master)... -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:29 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/teoks0199/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/teoks0199/ip.git (master)... +Oct 18, 2023 1:15:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ruishanteo/ip.git completed! -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Gabriel4357/ip.git... -Oct 17, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Gabriel4357/ip.git to complete... -Oct 17, 2023 1:15:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/D-Limiter/ip.git (master)... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/sushiyade/ip.git completed! -Oct 17, 2023 1:15:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/D-Limiter/ip.git (master)... -Oct 17, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/D-Limiter/ip.git (master) completed! -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/m1oojv/ip.git completed! +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/mfjkri/ip.git... -Oct 17, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepos -INFO: [47/478] Analyzing https://github.com/pra-navi/ip.git (master)... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/teoks0199/ip.git (master)... +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/mfjkri/ip.git to complete... -Oct 17, 2023 1:15:38 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/coderhuang559/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/coderhuang559/ip.git (master)... -Oct 17, 2023 1:15:38 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/pra-navi/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/pra-navi/ip.git (master)... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Nixx162/ip.git completed! -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/miljyy/ip.git completed! +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/junhonglow/ip.git... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/m1oojv/ip.git completed! -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/junhonglow/ip.git to complete... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/teoks0199/ip.git (master)... +Oct 18, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/teoks0199/ip.git (master) completed! +Oct 18, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [92/478] Analyzing https://github.com/qz1004/ip.git (master)... +Oct 18, 2023 1:15:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/awhb/ip.git (master)... +Oct 18, 2023 1:15:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/awhb/ip.git (master)... +Oct 18, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/awhb/ip.git (master) completed! +Oct 18, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [93/478] Analyzing https://github.com/pangyyen/ip.git (master)... +Oct 18, 2023 1:15:30 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/qz1004/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/qz1004/ip.git (master)... +Oct 18, 2023 1:15:30 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/pangyyen/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/pangyyen/ip.git (master)... +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Nixx162/ip.git completed! +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/RoeReRe/ip.git... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/RoeReRe/ip.git to complete... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/mfjkri/ip.git completed! -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Badatprogrammiing/ip.git... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Gabriel4357/ip.git completed! -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Badatprogrammiing/ip.git... +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Badatprogrammiing/ip.git to complete... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/mfjkri/ip.git completed! +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nknguyenhc/ip.git... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nknguyenhc/ip.git to complete... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/junhonglow/ip.git completed! -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/qz1004/ip.git (master)... +Oct 18, 2023 1:15:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/qz1004/ip.git (master)... +Oct 18, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/qz1004/ip.git (master) completed! +Oct 18, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [94/478] Analyzing https://github.com/jason-raiin/ip.git (master)... +Oct 18, 2023 1:15:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/pangyyen/ip.git (master)... +Oct 18, 2023 1:15:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jason-raiin/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jason-raiin/ip.git (master)... +Oct 18, 2023 1:15:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/pangyyen/ip.git (master)... +Oct 18, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/pangyyen/ip.git (master) completed! +Oct 18, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepos +INFO: [95/478] Analyzing https://github.com/bobscodedump/ip.git (master)... +Oct 18, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/RoeReRe/ip.git completed! +Oct 18, 2023 1:15:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/bobscodedump/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/bobscodedump/ip.git (master)... +Oct 18, 2023 1:15:31 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/winson8222/ip.git... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/winson8222/ip.git to complete... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/RoeReRe/ip.git completed! -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Badatprogrammiing/ip.git completed! +Oct 18, 2023 1:15:31 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wujy28/ip.git... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wujy28/ip.git to complete... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Badatprogrammiing/ip.git completed! -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jason-raiin/ip.git (master)... +Oct 18, 2023 1:15:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jason-raiin/ip.git (master)... +Oct 18, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jason-raiin/ip.git (master) completed! +Oct 18, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepos +INFO: [96/478] Analyzing https://github.com/ravern/ip.git (master)... +Oct 18, 2023 1:15:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ravern/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ravern/ip.git (master)... +Oct 18, 2023 1:15:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/winson8222/ip.git completed! +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/junhonglow/ip.git completed! +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/SimWPEric/ip.git... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/SimWPEric/ip.git to complete... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nknguyenhc/ip.git completed! -Oct 17, 2023 1:15:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/coderhuang559/ip.git (master)... -Oct 17, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/HugeNoob/ip.git... -Oct 17, 2023 1:15:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/pra-navi/ip.git (master)... -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/HugeNoob/ip.git to complete... -Oct 17, 2023 1:15:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/coderhuang559/ip.git (master)... -Oct 17, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/coderhuang559/ip.git (master) completed! -Oct 17, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepos -INFO: [48/478] Analyzing https://github.com/LINCHENYU2030S/ip.git (master)... -Oct 17, 2023 1:15:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/pra-navi/ip.git (master)... -Oct 17, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/pra-navi/ip.git (master) completed! -Oct 17, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepos -INFO: [49/478] Analyzing https://github.com/phiphi-tan/ip.git (master)... -Oct 17, 2023 1:15:39 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LINCHENYU2030S/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LINCHENYU2030S/ip.git (master)... -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/winson8222/ip.git completed! -Oct 17, 2023 1:15:39 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/phiphi-tan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/phiphi-tan/ip.git (master)... -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wujy28/ip.git completed! +Oct 18, 2023 1:15:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/bobscodedump/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lerxuann/ip.git... -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lerxuann/ip.git to complete... -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wujy28/ip.git completed! -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/bobscodedump/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/bobscodedump/ip.git (master) completed! +Oct 18, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [97/478] Analyzing https://github.com/Mahidharah/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Mahidharah/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Mahidharah/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ravern/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ravern/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ravern/ip.git (master) completed! +Oct 18, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [98/478] Analyzing https://github.com/ryanozx/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ryanozx/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ryanozx/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nknguyenhc/ip.git completed! +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Weiennn/ip.git... -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Weiennn/ip.git to complete... -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Mahidharah/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/SimWPEric/ip.git completed! -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Mahidharah/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Mahidharah/ip.git (master) completed! +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/maj0-0/ip.git... -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [99/478] Analyzing https://github.com/LuahJunYang/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/maj0-0/ip.git to complete... -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/HugeNoob/ip.git completed! -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/qyaner/ip.git... -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/qyaner/ip.git to complete... -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/lerxuann/ip.git completed! -Oct 17, 2023 1:15:39 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/qyaner/ip.git... +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ruiyangzh/ip.git... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LuahJunYang/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LuahJunYang/ip.git (master)... +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ruiyangzh/ip.git to complete... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/qyaner/ip.git to complete... +Oct 18, 2023 1:15:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LuahJunYang/ip.git (master)... +Oct 18, 2023 1:15:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LuahJunYang/ip.git (master)... +Oct 18, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LuahJunYang/ip.git (master) completed! +Oct 18, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepos +INFO: [100/478] Analyzing https://github.com/nixonwidjaja/ip.git (master)... +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Weiennn/ip.git completed! -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/maj0-0/ip.git completed! -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ryanozx/ip.git (master)... +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Bombbird2001/ip.git... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/hyc17003/ip.git... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/hyc17003/ip.git to complete... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Bombbird2001/ip.git to complete... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ryanozx/ip.git (master)... +Oct 18, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ryanozx/ip.git (master) completed! +Oct 18, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepos +INFO: [101/478] Analyzing https://github.com/techjay-c/ip.git (master)... +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/maj0-0/ip.git completed! +Oct 18, 2023 1:15:33 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nixonwidjaja/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nixonwidjaja/ip.git (master)... +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/qyaner/ip.git completed! -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/hyc17003/ip.git... +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/adammangzijun/ip.git... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/hyc17003/ip.git to complete... +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/adammangzijun/ip.git to complete... -Oct 17, 2023 1:15:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/phiphi-tan/ip.git (master)... -Oct 17, 2023 1:15:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/phiphi-tan/ip.git (master)... -Oct 17, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/phiphi-tan/ip.git (master) completed! -Oct 17, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepos -INFO: [50/478] Analyzing https://github.com/ktzy0305/ip.git (master)... -Oct 17, 2023 1:15:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LINCHENYU2030S/ip.git (master)... -Oct 17, 2023 1:15:40 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ktzy0305/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ktzy0305/ip.git (master)... -Oct 17, 2023 1:15:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LINCHENYU2030S/ip.git (master)... -Oct 17, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LINCHENYU2030S/ip.git (master) completed! -Oct 17, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepos -INFO: [51/478] Analyzing https://github.com/LordSaumya/ip.git (master)... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:33 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/techjay-c/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/techjay-c/ip.git (master)... +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ruiyangzh/ip.git completed! -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/andytoh1/ip.git... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/andytoh1/ip.git to complete... -Oct 17, 2023 1:15:40 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LordSaumya/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LordSaumya/ip.git (master)... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Bombbird2001/ip.git completed! -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/adammangzijun/ip.git completed! -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Originalidk/ip.git... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/quzhetao01/ip.git... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Originalidk/ip.git to complete... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/adammangzijun/ip.git completed! +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/quzhetao01/ip.git... +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/quzhetao01/ip.git to complete... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/hyc17003/ip.git completed! -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/InfiBeyond/ip.git... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/InfiBeyond/ip.git to complete... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/andytoh1/ip.git completed! -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/techjay-c/ip.git (master)... +Oct 18, 2023 1:15:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/techjay-c/ip.git (master)... +Oct 18, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/techjay-c/ip.git (master) completed! +Oct 18, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [102/478] Analyzing https://github.com/HEEaZ/ip.git (master)... +Oct 18, 2023 1:15:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/HEEaZ/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/HEEaZ/ip.git (master)... +Oct 18, 2023 1:15:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nixonwidjaja/ip.git (master)... +Oct 18, 2023 1:15:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nixonwidjaja/ip.git (master)... +Oct 18, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nixonwidjaja/ip.git (master) completed! +Oct 18, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [103/478] Analyzing https://github.com/dom-buri/ip.git (master)... +Oct 18, 2023 1:15:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/dom-buri/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/dom-buri/ip.git (master)... +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Originalidk/ip.git completed! +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Bearypop/ip.git... -Oct 17, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Bearypop/ip.git to complete... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Originalidk/ip.git completed! -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/HEEaZ/ip.git (master)... +Oct 18, 2023 1:15:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/HEEaZ/ip.git (master)... +Oct 18, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/HEEaZ/ip.git (master) completed! +Oct 18, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [104/478] Analyzing https://github.com/tiongjjyi/ip.git (master)... +Oct 18, 2023 1:15:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tiongjjyi/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tiongjjyi/ip.git (master)... +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/quzhetao01/ip.git completed! +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/sp4ce-cowboy/ip.git... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/sp4ce-cowboy/ip.git to complete... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/quzhetao01/ip.git completed! -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/InfiBeyond/ip.git completed! +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/JasonLCY-Temp/ip.git... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Bearypop/ip.git completed! -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/JasonLCY-Temp/ip.git to complete... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/andytoh1/ip.git completed! +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wjayee/ip.git... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/InfiBeyond/ip.git completed! -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wjayee/ip.git to complete... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/dom-buri/ip.git (master)... +Oct 18, 2023 1:15:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/dom-buri/ip.git (master)... +Oct 18, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/dom-buri/ip.git (master) completed! +Oct 18, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [105/478] Analyzing https://github.com/Vanessamae23/ip.git (master)... +Oct 18, 2023 1:15:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tiongjjyi/ip.git (master)... +Oct 18, 2023 1:15:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Vanessamae23/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Vanessamae23/ip.git (master)... +Oct 18, 2023 1:15:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tiongjjyi/ip.git (master)... +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Bearypop/ip.git completed! +Oct 18, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tiongjjyi/ip.git (master) completed! +Oct 18, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [106/478] Analyzing https://github.com/fuyiqiao/ip.git (master)... +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/vivienherq/ip.git... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/vivienherq/ip.git to complete... -Oct 17, 2023 1:15:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LordSaumya/ip.git (master)... -Oct 17, 2023 1:15:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LordSaumya/ip.git (master)... -Oct 17, 2023 1:15:41 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LordSaumya/ip.git (master) completed! -Oct 17, 2023 1:15:41 AM reposense.report.ReportGenerator analyzeRepos -INFO: [52/478] Analyzing https://github.com/Chen1x/ip.git (master)... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/sp4ce-cowboy/ip.git completed! -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/fuyiqiao/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/fuyiqiao/ip.git (master)... +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/JasonLCY-Temp/ip.git completed! +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jamesebond/ip.git... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/sp4ce-cowboy/ip.git completed! +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jamesebond/ip.git to complete... -Oct 17, 2023 1:15:41 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Chen1x/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Chen1x/ip.git (master)... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/JasonLCY-Temp/ip.git completed! -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jonyeokj/ip.git... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jonyeokj/ip.git to complete... -Oct 17, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/wjayee/ip.git completed! -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/victorlaiyeeteng/ip.git... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/vivienherq/ip.git completed! -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/victorlaiyeeteng/ip.git to complete... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/fuyiqiao/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Vanessamae23/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/fuyiqiao/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/fuyiqiao/ip.git (master) completed! +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [107/478] Analyzing https://github.com/spatuly/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Vanessamae23/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Vanessamae23/ip.git (master) completed! +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [108/478] Analyzing https://github.com/Kb-Tay/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/spatuly/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/spatuly/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Kb-Tay/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Kb-Tay/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/vivienherq/ip.git completed! +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lyuanww/ip.git... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lyuanww/ip.git to complete... -Oct 17, 2023 1:15:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ktzy0305/ip.git (master)... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jamesebond/ip.git completed! -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yongning0310/ip.git... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/yongning0310/ip.git to complete... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jonyeokj/ip.git completed! -Oct 17, 2023 1:15:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ktzy0305/ip.git (master)... -Oct 17, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ktzy0305/ip.git (master) completed! -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/yongning0310/ip.git to complete... +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Cloud7050/ip.git... -Oct 17, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepos -INFO: [53/478] Analyzing https://github.com/yanghengtang/ip.git (master)... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Cloud7050/ip.git to complete... -Oct 17, 2023 1:15:42 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/yanghengtang/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/yanghengtang/ip.git (master)... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/victorlaiyeeteng/ip.git completed! -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LoMaply/ip.git... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LoMaply/ip.git to complete... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/spatuly/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/spatuly/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/spatuly/ip.git (master) completed! +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [109/478] Analyzing https://github.com/tanshiyu1999/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Kb-Tay/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Kb-Tay/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tanshiyu1999/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tanshiyu1999/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/lyuanww/ip.git completed! -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tllshan/ip.git... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Kb-Tay/ip.git (master) completed! +Oct 18, 2023 1:15:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tllshan/ip.git to complete... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [110/478] Analyzing https://github.com/tanveersingh10/ip.git (master)... +Oct 18, 2023 1:15:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tanveersingh10/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tanveersingh10/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/yongning0310/ip.git completed! -Oct 17, 2023 1:15:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Chen1x/ip.git (master)... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Cloud7050/ip.git completed! -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Gavino3o/ip.git... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LoMaply/ip.git completed! +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Gavino3o/ip.git to complete... -Oct 17, 2023 1:15:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Chen1x/ip.git (master)... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Cloud7050/ip.git completed! +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/HollaG/ip.git... -Oct 17, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Chen1x/ip.git (master) completed! -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/HollaG/ip.git to complete... -Oct 17, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepos -INFO: [54/478] Analyzing https://github.com/oeggy03/ip.git (master)... -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LoMaply/ip.git completed! -Oct 17, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/cheeggered/ip.git... -Oct 17, 2023 1:15:43 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/oeggy03/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/oeggy03/ip.git (master)... -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tanshiyu1999/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/cheeggered/ip.git to complete... -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tanshiyu1999/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tanshiyu1999/ip.git (master) completed! +Oct 18, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [111/478] Analyzing https://github.com/thienmy0/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tanveersingh10/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/thienmy0/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/thienmy0/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tanveersingh10/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tanveersingh10/ip.git (master) completed! +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/tllshan/ip.git completed! -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [112/478] Analyzing https://github.com/beatricecst/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/xenosf/ip.git... -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/xenosf/ip.git to complete... -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:37 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/beatricecst/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/beatricecst/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Gavino3o/ip.git completed! -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/thienmy0/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/TehOPanas/ip.git... -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/HollaG/ip.git completed! -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/TehOPanas/ip.git to complete... -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/thienmy0/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/thienmy0/ip.git (master) completed! +Oct 18, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [113/478] Analyzing https://github.com/ldinghan/ip.git (master)... +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/HollaG/ip.git completed! +Oct 18, 2023 1:15:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/neyapraveen/ip.git... -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/cheeggered/ip.git completed! -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/neyapraveen/ip.git to complete... -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/beatricecst/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ldinghan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ldinghan/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/beatricecst/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/beatricecst/ip.git (master) completed! +Oct 18, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [114/478] Analyzing https://github.com/s0ngyang/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/s0ngyang/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/s0ngyang/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/cheeggered/ip.git completed! +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/richiehx/ip.git... -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/richiehx/ip.git to complete... -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/xenosf/ip.git completed! -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AlyssaPng/ip.git... -Oct 17, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AlyssaPng/ip.git to complete... -Oct 17, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yanghengtang/ip.git (master)... -Oct 17, 2023 1:15:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/yanghengtang/ip.git (master)... -Oct 17, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/yanghengtang/ip.git (master) completed! -Oct 17, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepos -INFO: [55/478] Analyzing https://github.com/johnnythesnake12/ip.git (master)... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/s0ngyang/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/s0ngyang/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/s0ngyang/ip.git (master) completed! +Oct 18, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [115/478] Analyzing https://github.com/feifeiraindrops/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/feifeiraindrops/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/feifeiraindrops/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/TehOPanas/ip.git completed! -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/leezhengjing/ip.git... -Oct 17, 2023 1:15:44 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/johnnythesnake12/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/johnnythesnake12/ip.git (master)... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/leezhengjing/ip.git to complete... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/richiehx/ip.git completed! -Oct 17, 2023 1:15:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/oeggy03/ip.git (master)... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/neyapraveen/ip.git completed! -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ldinghan/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/seantehds/ip.git... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/seantehds/ip.git to complete... +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/richiehx/ip.git completed! +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lihongguang00/ip.git... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lihongguang00/ip.git to complete... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ldinghan/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ldinghan/ip.git (master) completed! +Oct 18, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [116/478] Analyzing https://github.com/kwangthiag/ip.git (master)... +Oct 18, 2023 1:15:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AlyssaPng/ip.git completed! -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/seantehds/ip.git to complete... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Singa-pirate/ip.git... -Oct 17, 2023 1:15:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/oeggy03/ip.git (master)... -Oct 17, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/oeggy03/ip.git (master) completed! -Oct 17, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepos -INFO: [56/478] Analyzing https://github.com/p-xp/ip.git (master)... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Singa-pirate/ip.git to complete... -Oct 17, 2023 1:15:44 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/p-xp/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/p-xp/ip.git (master)... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kwangthiag/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kwangthiag/ip.git (master)... +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/leezhengjing/ip.git completed! -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/songfangyl/ip.git... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/songfangyl/ip.git to complete... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/seantehds/ip.git completed! -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/vansh284/ip.git... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/vansh284/ip.git to complete... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kwangthiag/ip.git (master)... +Oct 18, 2023 1:15:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kwangthiag/ip.git (master)... +Oct 18, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kwangthiag/ip.git (master) completed! +Oct 18, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [117/478] Analyzing https://github.com/elhy1999/ip.git (master)... +Oct 18, 2023 1:15:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/feifeiraindrops/ip.git (master)... +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Singa-pirate/ip.git completed! -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/YeoBohShin/ip.git... -Oct 17, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/YeoBohShin/ip.git to complete... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/vansh284/ip.git completed! -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/songfangyl/ip.git completed! -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/feifeiraindrops/ip.git (master)... +Oct 18, 2023 1:15:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/elhy1999/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/elhy1999/ip.git (master)... +Oct 18, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/feifeiraindrops/ip.git (master) completed! +Oct 18, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [118/478] Analyzing https://github.com/ryanongwx/ip.git (master)... +Oct 18, 2023 1:15:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ryanongwx/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ryanongwx/ip.git (master)... +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lihongguang00/ip.git completed! +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/shuenj/ip.git... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:39 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/shuenj/ip.git to complete... +Oct 18, 2023 1:15:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ryanongwx/ip.git (master)... +Oct 18, 2023 1:15:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ryanongwx/ip.git (master)... +Oct 18, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ryanongwx/ip.git (master) completed! +Oct 18, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [119/478] Analyzing https://github.com/AlainS87/ip.git (master)... +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/vansh284/ip.git completed! +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lunaroddity/ip.git... -Oct 17, 2023 1:15:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/johnnythesnake12/ip.git (master)... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lunaroddity/ip.git to complete... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/shuenj/ip.git to complete... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lihongguang00/ip.git completed! -Oct 17, 2023 1:15:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/johnnythesnake12/ip.git (master)... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/songfangyl/ip.git completed! +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/andrechuakj/ip.git... -Oct 17, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/johnnythesnake12/ip.git (master) completed! -Oct 17, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepos -INFO: [57/478] Analyzing https://github.com/matochichap/ip.git (master)... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/andrechuakj/ip.git to complete... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/YeoBohShin/ip.git completed! -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/WeeMingQing/ip.git... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/WeeMingQing/ip.git to complete... -Oct 17, 2023 1:15:45 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/matochichap/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/matochichap/ip.git (master)... -Oct 17, 2023 1:15:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/p-xp/ip.git (master)... -Oct 17, 2023 1:15:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/p-xp/ip.git (master)... -Oct 17, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/p-xp/ip.git (master) completed! -Oct 17, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepos -INFO: [58/478] Analyzing https://github.com/TiwKangXu/ip.git (master)... -Oct 17, 2023 1:15:45 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/TiwKangXu/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/TiwKangXu/ip.git (master)... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lunaroddity/ip.git completed! -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/shuenj/ip.git completed! +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/aliciamichellew/ip.git... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/aliciamichellew/ip.git to complete... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/shuenj/ip.git completed! -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/elhy1999/ip.git (master)... +Oct 18, 2023 1:15:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/elhy1999/ip.git (master)... +Oct 18, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/elhy1999/ip.git (master) completed! +Oct 18, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [120/478] Analyzing https://github.com/songgthu/ip.git (master)... +Oct 18, 2023 1:15:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AlainS87/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AlainS87/ip.git (master)... +Oct 18, 2023 1:15:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/songgthu/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/songgthu/ip.git (master)... +Oct 18, 2023 1:15:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/andrechuakj/ip.git completed! -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lunaroddity/ip.git completed! +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/samuelmui8/ip.git... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/antonTan96/ip.git... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/samuelmui8/ip.git to complete... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/antonTan96/ip.git to complete... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/samuelmui8/ip.git to complete... +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/WeeMingQing/ip.git completed! -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/owenyeo/ip.git... -Oct 17, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/owenyeo/ip.git to complete... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/antonTan96/ip.git completed! -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/aliciamichellew/ip.git completed! +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/gongg21/ip.git... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/samuelmui8/ip.git completed! -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/gongg21/ip.git to complete... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/songgthu/ip.git (master)... +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/antonTan96/ip.git completed! +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nabonitasen/ip.git... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/samuelmui8/ip.git completed! +Oct 18, 2023 1:15:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/songgthu/ip.git (master)... +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nabonitasen/ip.git to complete... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/owenyeo/ip.git completed! -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/erohsikivar/ip.git... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/songgthu/ip.git (master) completed! +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/erohsikivar/ip.git to complete... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/aliciamichellew/ip.git completed! -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:41 AM reposense.report.ReportGenerator analyzeRepos +INFO: [121/478] Analyzing https://github.com/GohTengFong/ip.git (master)... +Oct 18, 2023 1:15:41 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/GohTengFong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/GohTengFong/ip.git (master)... +Oct 18, 2023 1:15:41 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/owenyeo/ip.git completed! +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/pzl111/ip.git... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/pzl111/ip.git to complete... -Oct 17, 2023 1:15:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/TiwKangXu/ip.git (master)... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/gongg21/ip.git completed! -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/teozern1/ip.git... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/teozern1/ip.git to complete... -Oct 17, 2023 1:15:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/TiwKangXu/ip.git (master)... -Oct 17, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/TiwKangXu/ip.git (master) completed! -Oct 17, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepos -INFO: [59/478] Analyzing https://github.com/chiayunrong/ip.git (master)... -Oct 17, 2023 1:15:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/matochichap/ip.git (master)... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/GohTengFong/ip.git (master)... +Oct 18, 2023 1:15:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/GohTengFong/ip.git (master)... +Oct 18, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/GohTengFong/ip.git (master) completed! +Oct 18, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [122/478] Analyzing https://github.com/simbayippy/ip.git (master)... +Oct 18, 2023 1:15:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/simbayippy/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/simbayippy/ip.git (master)... +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/erohsikivar/ip.git completed! -Oct 17, 2023 1:15:46 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/chiayunrong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/chiayunrong/ip.git (master)... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Elijah5399/ip.git... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nabonitasen/ip.git completed! -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Elijah5399/ip.git to complete... -Oct 17, 2023 1:15:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/matochichap/ip.git (master)... -Oct 17, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/matochichap/ip.git (master) completed! -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nabonitasen/ip.git completed! +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nicleongyj/ip.git... -Oct 17, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepos -INFO: [60/478] Analyzing https://github.com/ScarletBlanks/ip.git (master)... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nicleongyj/ip.git to complete... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/pzl111/ip.git completed! -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/WinSheng1/ip.git... -Oct 17, 2023 1:15:46 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ScarletBlanks/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ScarletBlanks/ip.git (master)... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/WinSheng1/ip.git to complete... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/teozern1/ip.git completed! -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ryamgoh/ip.git... -Oct 17, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ryamgoh/ip.git to complete... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/simbayippy/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AlainS87/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Elijah5399/ip.git completed! -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AlainS87/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yucongkoo/ip.git... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/yucongkoo/ip.git to complete... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/simbayippy/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/nicleongyj/ip.git completed! -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/simbayippy/ip.git (master) completed! +Oct 18, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AlainS87/ip.git (master) completed! +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/yucongkoo/ip.git to complete... +Oct 18, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [123/478] Analyzing https://github.com/Khaleelur-Rahman/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Chen-Kuei/ip.git... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/WinSheng1/ip.git completed! -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Chen-Kuei/ip.git to complete... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [124/478] Analyzing https://github.com/proto-aiken-13/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Khaleelur-Rahman/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Khaleelur-Rahman/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/proto-aiken-13/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/proto-aiken-13/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/WinSheng1/ip.git completed! +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/conradsoon/ip.git... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/conradsoon/ip.git to complete... +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ryamgoh/ip.git completed! -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/GSgiansen/ip.git... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/conradsoon/ip.git to complete... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/GSgiansen/ip.git to complete... -Oct 17, 2023 1:15:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/chiayunrong/ip.git (master)... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Khaleelur-Rahman/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/yucongkoo/ip.git completed! -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/et-irl/ip.git... -Oct 17, 2023 1:15:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/chiayunrong/ip.git (master)... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/et-irl/ip.git to complete... -Oct 17, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/chiayunrong/ip.git (master) completed! -Oct 17, 2023 1:15:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ScarletBlanks/ip.git (master)... -Oct 17, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepos -INFO: [61/478] Analyzing https://github.com/devanshubisht/ip.git (master)... -Oct 17, 2023 1:15:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ScarletBlanks/ip.git (master)... -Oct 17, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ScarletBlanks/ip.git (master) completed! -Oct 17, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepos -INFO: [62/478] Analyzing https://github.com/jx124/ip.git (master)... -Oct 17, 2023 1:15:47 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/devanshubisht/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/devanshubisht/ip.git (master)... -Oct 17, 2023 1:15:47 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jx124/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jx124/ip.git (master)... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Khaleelur-Rahman/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Khaleelur-Rahman/ip.git (master) completed! +Oct 18, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [125/478] Analyzing https://github.com/bwangpj/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Chen-Kuei/ip.git completed! -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/marioalvaro/ip.git... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/marioalvaro/ip.git to complete... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/bwangpj/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/bwangpj/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/proto-aiken-13/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/proto-aiken-13/ip.git (master)... +Oct 18, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/proto-aiken-13/ip.git (master) completed! +Oct 18, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [126/478] Analyzing https://github.com/weeweh/ip.git (master)... +Oct 18, 2023 1:15:44 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/weeweh/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/weeweh/ip.git (master)... +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/conradsoon/ip.git completed! -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/GSgiansen/ip.git completed! -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Seonlo99/ip.git... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Seonlo99/ip.git to complete... +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/GSgiansen/ip.git completed! +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/joel-foo/ip.git... -Oct 17, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/bwangpj/ip.git (master)... +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/joel-foo/ip.git to complete... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Seonlo99/ip.git to complete... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/bwangpj/ip.git (master)... +Oct 18, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/bwangpj/ip.git (master) completed! +Oct 18, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [127/478] Analyzing https://github.com/s-peiran/ip.git (master)... +Oct 18, 2023 1:15:44 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/s-peiran/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/s-peiran/ip.git (master)... +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/marioalvaro/ip.git completed! +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/et-irl/ip.git completed! -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tim-pipi/ip.git... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/tim-pipi/ip.git to complete... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/marioalvaro/ip.git completed! -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Seonlo99/ip.git completed! -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/marcellaantania/ip.git... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/tim-pipi/ip.git to complete... +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/marcellaantania/ip.git to complete... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/weeweh/ip.git (master)... +Oct 18, 2023 1:15:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/weeweh/ip.git (master)... +Oct 18, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/weeweh/ip.git (master) completed! +Oct 18, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [128/478] Analyzing https://github.com/lawruixi/ip.git (master)... +Oct 18, 2023 1:15:44 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lawruixi/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Seonlo99/ip.git completed! +Oct 18, 2023 1:15:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lawruixi/ip.git (master)... +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/brendanneojw/ip.git... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/brendanneojw/ip.git to complete... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tim-pipi/ip.git completed! -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/li-rongzhi/ip.git... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/joel-foo/ip.git completed! -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/KamiliArsyad/ip.git... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/li-rongzhi/ip.git... +Oct 18, 2023 1:15:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/li-rongzhi/ip.git to complete... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/KamiliArsyad/ip.git to complete... -Oct 17, 2023 1:15:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/devanshubisht/ip.git (master)... -Oct 17, 2023 1:15:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jx124/ip.git (master)... -Oct 17, 2023 1:15:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/devanshubisht/ip.git (master)... -Oct 17, 2023 1:15:48 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/devanshubisht/ip.git (master) completed! -Oct 17, 2023 1:15:48 AM reposense.report.ReportGenerator analyzeRepos -INFO: [63/478] Analyzing https://github.com/Clin-lyx/ip.git (master)... -Oct 17, 2023 1:15:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jx124/ip.git (master)... -Oct 17, 2023 1:15:48 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jx124/ip.git (master) completed! -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/s-peiran/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/s-peiran/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/s-peiran/ip.git (master) completed! +Oct 18, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [129/478] Analyzing https://github.com/JeremyYong128/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/JeremyYong128/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/JeremyYong128/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tim-pipi/ip.git completed! +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/marcellaantania/ip.git completed! -Oct 17, 2023 1:15:48 AM reposense.report.ReportGenerator analyzeRepos -INFO: [64/478] Analyzing https://github.com/AryanG01/ip.git (master)... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/KamiliArsyad/ip.git... +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/seraphimstreets/ip.git... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/KamiliArsyad/ip.git to complete... +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/seraphimstreets/ip.git to complete... -Oct 17, 2023 1:15:48 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Clin-lyx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Clin-lyx/ip.git (master)... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/brendanneojw/ip.git completed! -Oct 17, 2023 1:15:48 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AryanG01/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AryanG01/ip.git (master)... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/trgao/ip.git... -Oct 17, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/trgao/ip.git to complete... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lawruixi/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lawruixi/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lawruixi/ip.git (master) completed! +Oct 18, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [130/478] Analyzing https://github.com/jylow/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jylow/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jylow/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/li-rongzhi/ip.git completed! -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lilozz2/ip.git... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/KamiliArsyad/ip.git completed! -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/JeremyYong128/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lilozz2/ip.git to complete... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/JeremyYong128/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/JeremyYong128/ip.git (master) completed! +Oct 18, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [131/478] Analyzing https://github.com/brandon-nam/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/brandon-nam/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/brandon-nam/ip.git (master)... +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/seraphimstreets/ip.git completed! +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jean-cq/ip.git... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jean-cq/ip.git to complete... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/seraphimstreets/ip.git completed! -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/KamiliArsyad/ip.git completed! +Oct 18, 2023 1:15:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jedkohjk/ip.git... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jedkohjk/ip.git to complete... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/trgao/ip.git completed! -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yytan25/ip.git... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yytan25/ip.git to complete... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/lilozz2/ip.git completed! -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ryantzr1/ip.git... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jean-cq/ip.git completed! -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ryantzr1/ip.git to complete... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/maypfv/ip.git... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jylow/ip.git (master)... +Oct 18, 2023 1:15:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jylow/ip.git (master)... +Oct 18, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jylow/ip.git (master) completed! +Oct 18, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [132/478] Analyzing https://github.com/LHeng1/ip.git (master)... +Oct 18, 2023 1:15:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LHeng1/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LHeng1/ip.git (master)... +Oct 18, 2023 1:15:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/brandon-nam/ip.git (master)... +Oct 18, 2023 1:15:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/brandon-nam/ip.git (master)... +Oct 18, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/brandon-nam/ip.git (master) completed! +Oct 18, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [133/478] Analyzing https://github.com/Leb14/ip.git (master)... +Oct 18, 2023 1:15:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Leb14/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Leb14/ip.git (master)... +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jean-cq/ip.git completed! +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jedkohjk/ip.git completed! -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/maypfv/ip.git... +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/TohLiYuan/ip.git... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/maypfv/ip.git to complete... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/TohLiYuan/ip.git to complete... -Oct 17, 2023 1:15:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Clin-lyx/ip.git (master)... -Oct 17, 2023 1:15:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Clin-lyx/ip.git (master)... -Oct 17, 2023 1:15:49 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Clin-lyx/ip.git (master) completed! -Oct 17, 2023 1:15:49 AM reposense.report.ReportGenerator analyzeRepos -INFO: [65/478] Analyzing https://github.com/kayabuttertoastt/ip.git (master)... -Oct 17, 2023 1:15:49 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kayabuttertoastt/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kayabuttertoastt/ip.git (master)... -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/yytan25/ip.git completed! -Oct 17, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/JizhuoChen/ip.git... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/JizhuoChen/ip.git to complete... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ryantzr1/ip.git completed! -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ChongWeiJie29/ip.git... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ChongWeiJie29/ip.git to complete... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/TohLiYuan/ip.git completed! -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Goh-Li-Ting/ip.git... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Goh-Li-Ting/ip.git to complete... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LHeng1/ip.git (master)... +Oct 18, 2023 1:15:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LHeng1/ip.git (master)... +Oct 18, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LHeng1/ip.git (master) completed! +Oct 18, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepos +INFO: [134/478] Analyzing https://github.com/B-enguin/ip.git (master)... +Oct 18, 2023 1:15:47 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/B-enguin/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/B-enguin/ip.git (master)... +Oct 18, 2023 1:15:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Leb14/ip.git (master)... +Oct 18, 2023 1:15:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Leb14/ip.git (master)... +Oct 18, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Leb14/ip.git (master) completed! +Oct 18, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepos +INFO: [135/478] Analyzing https://github.com/s-kybound/ip.git (master)... +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/TohLiYuan/ip.git completed! +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Goh-Li-Ting/ip.git... +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/JizhuoChen/ip.git completed! +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Goh-Li-Ting/ip.git to complete... +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/maypfv/ip.git completed! -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kristayeo/ip.git... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kristayeo/ip.git to complete... -Oct 17, 2023 1:15:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AryanG01/ip.git (master)... -Oct 17, 2023 1:15:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AryanG01/ip.git (master)... -Oct 17, 2023 1:15:50 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AryanG01/ip.git (master) completed! -Oct 17, 2023 1:15:50 AM reposense.report.ReportGenerator analyzeRepos -INFO: [66/478] Analyzing https://github.com/sheryew/ip.git (master)... -Oct 17, 2023 1:15:50 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/sheryew/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/sheryew/ip.git (master)... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/JizhuoChen/ip.git completed! -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/derekjxtan/ip.git... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/derekjxtan/ip.git to complete... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:47 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/s-kybound/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/s-kybound/ip.git (master)... +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ChongWeiJie29/ip.git completed! -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Goh-Li-Ting/ip.git completed! -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/shashahchk/ip.git... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Chandan8186/ip.git... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Chandan8186/ip.git to complete... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/shashahchk/ip.git to complete... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/B-enguin/ip.git (master)... +Oct 18, 2023 1:15:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/B-enguin/ip.git (master)... +Oct 18, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/B-enguin/ip.git (master) completed! +Oct 18, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepos +INFO: [136/478] Analyzing https://github.com/yihfei/ip.git (master)... +Oct 18, 2023 1:15:47 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/yihfei/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/yihfei/ip.git (master)... +Oct 18, 2023 1:15:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/s-kybound/ip.git (master)... +Oct 18, 2023 1:15:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/s-kybound/ip.git (master)... +Oct 18, 2023 1:15:48 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/s-kybound/ip.git (master) completed! +Oct 18, 2023 1:15:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [137/478] Analyzing https://github.com/wesho1107/ip.git (master)... +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Goh-Li-Ting/ip.git completed! +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/derekjxtan/ip.git completed! +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Chandan8186/ip.git... +Oct 18, 2023 1:15:48 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wesho1107/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wesho1107/ip.git (master)... +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/kristayeo/ip.git completed! -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/alyssaongyx/ip.git... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/alyssaongyx/ip.git to complete... -Oct 17, 2023 1:15:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kayabuttertoastt/ip.git (master)... -Oct 17, 2023 1:15:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kayabuttertoastt/ip.git (master)... -Oct 17, 2023 1:15:50 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kayabuttertoastt/ip.git (master) completed! -Oct 17, 2023 1:15:50 AM reposense.report.ReportGenerator analyzeRepos -INFO: [67/478] Analyzing https://github.com/jonasongg/ip.git (master)... -Oct 17, 2023 1:15:50 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jonasongg/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jonasongg/ip.git (master)... -Oct 17, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/derekjxtan/ip.git completed! -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Chandan8186/ip.git to complete... +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AndrewJanong/ip.git... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/alyssaongyx/ip.git to complete... +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AndrewJanong/ip.git to complete... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Chandan8186/ip.git completed! -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/alyssaongyx/ip.git completed! -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/shashahchk/ip.git completed! +Oct 18, 2023 1:15:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yihfei/ip.git (master)... +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Kailash201/ip.git... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/laurenlim2112/ip.git... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Kailash201/ip.git to complete... -Oct 17, 2023 1:15:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/sheryew/ip.git (master)... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/yihfei/ip.git (master)... +Oct 18, 2023 1:15:48 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/yihfei/ip.git (master) completed! +Oct 18, 2023 1:15:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [138/478] Analyzing https://github.com/AaronJT1/ip.git (master)... +Oct 18, 2023 1:15:48 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AaronJT1/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AaronJT1/ip.git (master)... +Oct 18, 2023 1:15:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/wesho1107/ip.git (master)... +Oct 18, 2023 1:15:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wesho1107/ip.git (master)... +Oct 18, 2023 1:15:48 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wesho1107/ip.git (master) completed! +Oct 18, 2023 1:15:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [139/478] Analyzing https://github.com/dlathyun/ip.git (master)... +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Chandan8186/ip.git completed! +Oct 18, 2023 1:15:49 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/dlathyun/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/dlathyun/ip.git (master)... +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/laurenlim2112/ip.git... +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/alyssaongyx/ip.git completed! +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/laurenlim2112/ip.git to complete... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/shashahchk/ip.git completed! -Oct 17, 2023 1:15:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/sheryew/ip.git (master)... -Oct 17, 2023 1:15:51 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/sheryew/ip.git (master) completed! -Oct 17, 2023 1:15:51 AM reposense.report.ReportGenerator analyzeRepos -INFO: [68/478] Analyzing https://github.com/yiwen101/ip.git (master)... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lambraydon/ip.git... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lambraydon/ip.git to complete... -Oct 17, 2023 1:15:51 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/yiwen101/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/yiwen101/ip.git (master)... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AndrewJanong/ip.git completed! -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/sk2001git/ip.git... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/sk2001git/ip.git to complete... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/laurenlim2112/ip.git completed! -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Kailash201/ip.git completed! +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/chonguschonguschongus/ip.git... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/chonguschonguschongus/ip.git to complete... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Kailash201/ip.git completed! -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/lshaoqin/ip.git... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/lshaoqin/ip.git to complete... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AaronJT1/ip.git (master)... +Oct 18, 2023 1:15:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AaronJT1/ip.git (master)... +Oct 18, 2023 1:15:49 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AaronJT1/ip.git (master) completed! +Oct 18, 2023 1:15:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [140/478] Analyzing https://github.com/Angelyxx/ip.git (master)... +Oct 18, 2023 1:15:49 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Angelyxx/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Angelyxx/ip.git (master)... +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/lambraydon/ip.git completed! -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/laurenlim2112/ip.git completed! +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/lshaoqin/ip.git... +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/peasantbird/ip.git... -Oct 17, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/lshaoqin/ip.git to complete... +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/peasantbird/ip.git to complete... -Oct 17, 2023 1:15:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jonasongg/ip.git (master)... -Oct 17, 2023 1:15:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jonasongg/ip.git (master)... -Oct 17, 2023 1:15:52 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jonasongg/ip.git (master) completed! -Oct 17, 2023 1:15:52 AM reposense.report.ReportGenerator analyzeRepos -INFO: [69/478] Analyzing https://github.com/tiongMax/ip.git (master)... -Oct 17, 2023 1:15:52 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tiongMax/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tiongMax/ip.git (master)... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Angelyxx/ip.git (master)... +Oct 18, 2023 1:15:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Angelyxx/ip.git (master)... +Oct 18, 2023 1:15:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/chonguschonguschongus/ip.git completed! -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lshaoqin/ip.git completed! -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:49 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Angelyxx/ip.git (master) completed! +Oct 18, 2023 1:15:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [141/478] Analyzing https://github.com/ricketytoc/ip.git (master)... +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/WangCheng0116/ip.git... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/teozhengyang/ip.git... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/WangCheng0116/ip.git to complete... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:50 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ricketytoc/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ricketytoc/ip.git (master)... +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/sk2001git/ip.git completed! +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/teozhengyang/ip.git... +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/teozhengyang/ip.git to complete... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/dlathyun/ip.git (master)... +Oct 18, 2023 1:15:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/dlathyun/ip.git (master)... +Oct 18, 2023 1:15:50 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/dlathyun/ip.git (master) completed! +Oct 18, 2023 1:15:50 AM reposense.report.ReportGenerator analyzeRepos +INFO: [142/478] Analyzing https://github.com/jingting1412/ip.git (master)... +Oct 18, 2023 1:15:50 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jingting1412/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jingting1412/ip.git (master)... +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/peasantbird/ip.git completed! -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/chewjh1234/ip.git... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lshaoqin/ip.git completed! +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/chewjh1234/ip.git to complete... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/sk2001git/ip.git completed! -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/elaineshijie/ip.git... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/elaineshijie/ip.git to complete... -Oct 17, 2023 1:15:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yiwen101/ip.git (master)... -Oct 17, 2023 1:15:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/yiwen101/ip.git (master)... -Oct 17, 2023 1:15:52 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/yiwen101/ip.git (master) completed! -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/WangCheng0116/ip.git completed! -Oct 17, 2023 1:15:52 AM reposense.report.ReportGenerator analyzeRepos -INFO: [70/478] Analyzing https://github.com/chuababyy/ip.git (master)... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lynnlow175/ip.git... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lynnlow175/ip.git to complete... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/chewjh1234/ip.git completed! -Oct 17, 2023 1:15:52 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/chuababyy/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/chuababyy/ip.git (master)... -Oct 17, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ricketytoc/ip.git (master)... +Oct 18, 2023 1:15:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ricketytoc/ip.git (master)... +Oct 18, 2023 1:15:50 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ricketytoc/ip.git (master) completed! +Oct 18, 2023 1:15:50 AM reposense.report.ReportGenerator analyzeRepos +INFO: [143/478] Analyzing https://github.com/SinhaVedant/ip.git (master)... +Oct 18, 2023 1:15:50 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/SinhaVedant/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/SinhaVedant/ip.git (master)... +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/elaineshijie/ip.git completed! +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lordidiot/ip.git... -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lordidiot/ip.git to complete... -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/elaineshijie/ip.git completed! -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jingting1412/ip.git (master)... +Oct 18, 2023 1:15:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jingting1412/ip.git (master)... +Oct 18, 2023 1:15:51 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jingting1412/ip.git (master) completed! +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/chewjh1234/ip.git completed! +Oct 18, 2023 1:15:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [144/478] Analyzing https://github.com/adhigop13/ip.git (master)... +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/chew01/ip.git... -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/chew01/ip.git to complete... -Oct 17, 2023 1:15:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tiongMax/ip.git (master)... -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/lynnlow175/ip.git completed! -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/RSXIX/ip.git... -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lordidiot/ip.git completed! -Oct 17, 2023 1:15:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tiongMax/ip.git (master)... -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:51 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/adhigop13/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/adhigop13/ip.git (master)... +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/RSXIX/ip.git to complete... -Oct 17, 2023 1:15:53 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tiongMax/ip.git (master) completed! -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/SinhaVedant/ip.git (master)... +Oct 18, 2023 1:15:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/SinhaVedant/ip.git (master)... +Oct 18, 2023 1:15:51 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/SinhaVedant/ip.git (master) completed! +Oct 18, 2023 1:15:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [145/478] Analyzing https://github.com/jordankanghm/ip.git (master)... +Oct 18, 2023 1:15:51 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jordankanghm/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jordankanghm/ip.git (master)... +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/teozhengyang/ip.git completed! +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/juliusgambe/ip.git... -Oct 17, 2023 1:15:53 AM reposense.report.ReportGenerator analyzeRepos -INFO: [71/478] Analyzing https://github.com/supermii2/ip.git (master)... -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/juliusgambe/ip.git to complete... -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/chew01/ip.git completed! -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lordidiot/ip.git completed! +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/zhonghan721/ip.git... -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zhonghan721/ip.git to complete... -Oct 17, 2023 1:15:53 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/supermii2/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/supermii2/ip.git (master)... -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/teozhengyang/ip.git completed! -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/adhigop13/ip.git (master)... +Oct 18, 2023 1:15:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/adhigop13/ip.git (master)... +Oct 18, 2023 1:15:52 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/adhigop13/ip.git (master) completed! +Oct 18, 2023 1:15:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [146/478] Analyzing https://github.com/raydenlim/ip.git (master)... +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/chew01/ip.git completed! +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/WZWren/ip.git... -Oct 17, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/WZWren/ip.git to complete... -Oct 17, 2023 1:15:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/chuababyy/ip.git (master)... -Oct 17, 2023 1:15:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/chuababyy/ip.git (master)... -Oct 17, 2023 1:15:54 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/chuababyy/ip.git (master) completed! -Oct 17, 2023 1:15:54 AM reposense.report.ReportGenerator analyzeRepos -INFO: [72/478] Analyzing https://github.com/remuslum/ip.git (master)... -Oct 17, 2023 1:15:54 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/remuslum/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/remuslum/ip.git (master)... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:52 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/raydenlim/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/raydenlim/ip.git (master)... +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/RSXIX/ip.git completed! -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/inezkok/ip.git... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/inezkok/ip.git to complete... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/juliusgambe/ip.git completed! -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/WZWren/ip.git completed! -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wasjoe1/ip.git... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/wasjoe1/ip.git to complete... +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/zhonghan721/ip.git completed! -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kokrui/ip.git... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/wasjoe1/ip.git to complete... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jinyang628/ip.git... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kokrui/ip.git to complete... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jinyang628/ip.git to complete... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jordankanghm/ip.git (master)... +Oct 18, 2023 1:15:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jordankanghm/ip.git (master)... +Oct 18, 2023 1:15:52 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jordankanghm/ip.git (master) completed! +Oct 18, 2023 1:15:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [147/478] Analyzing https://github.com/freddychenyouren2/ip.git (master)... +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/WZWren/ip.git completed! +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jinyang628/ip.git... +Oct 18, 2023 1:15:52 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/freddychenyouren2/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/freddychenyouren2/ip.git (master)... +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/inezkok/ip.git completed! -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jinyang628/ip.git to complete... +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nananakx-x/ip.git... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nananakx-x/ip.git to complete... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jinyang628/ip.git completed! -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wasjoe1/ip.git completed! +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ylyma/ip.git... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ylyma/ip.git to complete... -Oct 17, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wasjoe1/ip.git completed! -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/raydenlim/ip.git (master)... +Oct 18, 2023 1:15:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/raydenlim/ip.git (master)... +Oct 18, 2023 1:15:53 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/raydenlim/ip.git (master) completed! +Oct 18, 2023 1:15:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [148/478] Analyzing https://github.com/jingyu987/ip.git (master)... +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kokrui/ip.git completed! +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AnnabelTing/ip.git... -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AnnabelTing/ip.git to complete... -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nananakx-x/ip.git completed! -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kokrui/ip.git completed! -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jingyu987/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jingyu987/ip.git (master)... +Oct 18, 2023 1:15:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/freddychenyouren2/ip.git (master)... +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jinyang628/ip.git completed! +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/timetraveller-123/ip.git... -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/freddychenyouren2/ip.git (master)... +Oct 18, 2023 1:15:53 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/freddychenyouren2/ip.git (master) completed! +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/timetraveller-123/ip.git to complete... +Oct 18, 2023 1:15:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [149/478] Analyzing https://github.com/FerdiHS/ip.git (master)... +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nananakx-x/ip.git completed! +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LicongHuang/ip.git... -Oct 17, 2023 1:15:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/supermii2/ip.git (master)... -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LicongHuang/ip.git to complete... -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/timetraveller-123/ip.git to complete... -Oct 17, 2023 1:15:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/supermii2/ip.git (master)... -Oct 17, 2023 1:15:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/remuslum/ip.git (master)... -Oct 17, 2023 1:15:55 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/supermii2/ip.git (master) completed! -Oct 17, 2023 1:15:55 AM reposense.report.ReportGenerator analyzeRepos -INFO: [73/478] Analyzing https://github.com/applepiofmyeye/ip.git (master)... -Oct 17, 2023 1:15:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/remuslum/ip.git (master)... -Oct 17, 2023 1:15:55 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/remuslum/ip.git (master) completed! -Oct 17, 2023 1:15:55 AM reposense.report.ReportGenerator analyzeRepos -INFO: [74/478] Analyzing https://github.com/newway1814/ip.git (master)... -Oct 17, 2023 1:15:55 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/newway1814/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/newway1814/ip.git (master)... -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/timetraveller-123/ip.git completed! -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/FerdiHS/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/FerdiHS/ip.git (master)... +Oct 18, 2023 1:15:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jingyu987/ip.git (master)... +Oct 18, 2023 1:15:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jingyu987/ip.git (master)... +Oct 18, 2023 1:15:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jingyu987/ip.git (master) completed! +Oct 18, 2023 1:15:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [150/478] Analyzing https://github.com/jrchoo/ip.git (master)... +Oct 18, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AnnabelTing/ip.git completed! -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:54 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jrchoo/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jrchoo/ip.git (master)... +Oct 18, 2023 1:15:54 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Jweng88/ip.git... -Oct 17, 2023 1:15:55 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/applepiofmyeye/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/applepiofmyeye/ip.git (master)... -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/timetraveller-123/ip.git completed! +Oct 18, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Jweng88/ip.git to complete... -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:54 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/EricXiong420/ip.git... -Oct 17, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/EricXiong420/ip.git to complete... -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Jweng88/ip.git completed! -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/FerdiHS/ip.git (master)... +Oct 18, 2023 1:15:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/FerdiHS/ip.git (master)... +Oct 18, 2023 1:15:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/FerdiHS/ip.git (master) completed! +Oct 18, 2023 1:15:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [151/478] Analyzing https://github.com/RiyaMehta2211/ip.git (master)... +Oct 18, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ylyma/ip.git completed! +Oct 18, 2023 1:15:54 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/RiyaMehta2211/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/RiyaMehta2211/ip.git (master)... +Oct 18, 2023 1:15:54 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jovkusuma/ip.git... -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jovkusuma/ip.git to complete... -Oct 17, 2023 1:15:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/newway1814/ip.git (master)... -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/EricXiong420/ip.git completed! -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ylyma/ip.git completed! -Oct 17, 2023 1:15:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/newway1814/ip.git (master)... -Oct 17, 2023 1:15:56 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/newway1814/ip.git (master) completed! -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Jweng88/ip.git completed! +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/bhnuka/ip.git... -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/J-hta-n/ip.git... -Oct 17, 2023 1:15:56 AM reposense.report.ReportGenerator analyzeRepos -INFO: [75/478] Analyzing https://github.com/nicolengk/ip.git (master)... -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/bhnuka/ip.git to complete... -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/J-hta-n/ip.git to complete... -Oct 17, 2023 1:15:56 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nicolengk/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nicolengk/ip.git (master)... -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jrchoo/ip.git (master)... +Oct 18, 2023 1:15:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jrchoo/ip.git (master)... +Oct 18, 2023 1:15:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jrchoo/ip.git (master) completed! +Oct 18, 2023 1:15:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [152/478] Analyzing https://github.com/juzzztinsoong/ip.git (master)... +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jovkusuma/ip.git completed! -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/J-hta-n/ip.git... +Oct 18, 2023 1:15:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/juzzztinsoong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/juzzztinsoong/ip.git (master)... +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/J-hta-n/ip.git to complete... +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/EricXiong420/ip.git completed! +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Tim-Siu/ip.git... -Oct 17, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Tim-Siu/ip.git to complete... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/bhnuka/ip.git completed! -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/RiyaMehta2211/ip.git (master)... +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yarnmengnus/ip.git... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/J-hta-n/ip.git completed! -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yarnmengnus/ip.git to complete... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/sopa301/ip.git... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/sopa301/ip.git to complete... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/RiyaMehta2211/ip.git (master)... +Oct 18, 2023 1:15:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/RiyaMehta2211/ip.git (master) completed! +Oct 18, 2023 1:15:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [153/478] Analyzing https://github.com/darrentfy/ip.git (master)... +Oct 18, 2023 1:15:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/darrentfy/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/darrentfy/ip.git (master)... +Oct 18, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Tim-Siu/ip.git completed! -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/J-hta-n/ip.git completed! +Oct 18, 2023 1:15:56 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/sopa301/ip.git... +Oct 18, 2023 1:15:56 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ngeeyonglim/ip.git... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/sopa301/ip.git to complete... +Oct 18, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ngeeyonglim/ip.git to complete... -Oct 17, 2023 1:15:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nicolengk/ip.git (master)... -Oct 17, 2023 1:15:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nicolengk/ip.git (master)... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/yarnmengnus/ip.git completed! -Oct 17, 2023 1:15:57 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nicolengk/ip.git (master) completed! -Oct 17, 2023 1:15:57 AM reposense.report.ReportGenerator analyzeRepos -INFO: [76/478] Analyzing https://github.com/glenngnng/ip.git (master)... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:56 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/flexibo/ip.git... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/flexibo/ip.git to complete... -Oct 17, 2023 1:15:57 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/glenngnng/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/glenngnng/ip.git (master)... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/juzzztinsoong/ip.git (master)... +Oct 18, 2023 1:15:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/juzzztinsoong/ip.git (master)... +Oct 18, 2023 1:15:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/juzzztinsoong/ip.git (master) completed! +Oct 18, 2023 1:15:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [154/478] Analyzing https://github.com/waseemingly/ip.git (master)... +Oct 18, 2023 1:15:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/darrentfy/ip.git (master)... +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ngeeyonglim/ip.git completed! +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/sopa301/ip.git completed! -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ItsTYtan/ip.git... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ngeeyonglim/ip.git completed! -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ItsTYtan/ip.git to complete... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/javinchua/ip.git... -Oct 17, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/javinchua/ip.git to complete... -Oct 17, 2023 1:15:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/applepiofmyeye/ip.git (master)... -Oct 17, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/javinchua/ip.git completed! -Oct 17, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ItsTYtan/ip.git to complete... +Oct 18, 2023 1:15:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/darrentfy/ip.git (master)... +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/javinchua/ip.git to complete... +Oct 18, 2023 1:15:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/darrentfy/ip.git (master) completed! +Oct 18, 2023 1:15:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [155/478] Analyzing https://github.com/redtailedfox/ip.git (master)... +Oct 18, 2023 1:15:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/redtailedfox/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/redtailedfox/ip.git (master)... +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ItsTYtan/ip.git completed! -Oct 17, 2023 1:15:58 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/javinchua/ip.git completed! +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/amosting/ip.git... -Oct 17, 2023 1:15:58 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/redtailedfox/ip.git (master)... +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Cleon2/ip.git... -Oct 17, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/amosting/ip.git to complete... -Oct 17, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/redtailedfox/ip.git (master)... +Oct 18, 2023 1:15:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/waseemingly/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/waseemingly/ip.git (master)... +Oct 18, 2023 1:15:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/redtailedfox/ip.git (master) completed! +Oct 18, 2023 1:15:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Cleon2/ip.git to complete... -Oct 17, 2023 1:15:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/applepiofmyeye/ip.git (master)... -Oct 17, 2023 1:15:58 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/applepiofmyeye/ip.git (master) completed! -Oct 17, 2023 1:15:58 AM reposense.report.ReportGenerator analyzeRepos -INFO: [77/478] Analyzing https://github.com/kanna-1/ip.git (master)... -Oct 17, 2023 1:15:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/glenngnng/ip.git (master)... -Oct 17, 2023 1:15:58 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kanna-1/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kanna-1/ip.git (master)... -Oct 17, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/amosting/ip.git completed! -Oct 17, 2023 1:15:58 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [156/478] Analyzing https://github.com/Fallman2/ip.git (master)... +Oct 18, 2023 1:15:58 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Fallman2/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Fallman2/ip.git (master)... +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LicongHuang/ip.git completed! +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ketweeen/ip.git... -Oct 17, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ketweeen/ip.git to complete... -Oct 17, 2023 1:15:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/glenngnng/ip.git (master)... -Oct 17, 2023 1:15:58 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/glenngnng/ip.git (master) completed! -Oct 17, 2023 1:15:58 AM reposense.report.ReportGenerator analyzeRepos -INFO: [78/478] Analyzing https://github.com/zsh-eng/ip.git (master)... -Oct 17, 2023 1:15:59 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/zsh-eng/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:15:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/zsh-eng/ip.git (master)... -Oct 17, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Cleon2/ip.git completed! -Oct 17, 2023 1:15:59 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/amosting/ip.git completed! +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/sudarshan2401/ip.git... -Oct 17, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/sudarshan2401/ip.git to complete... -Oct 17, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ketweeen/ip.git completed! -Oct 17, 2023 1:15:59 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wui-hong/ip.git... -Oct 17, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/sudarshan2401/ip.git to complete... +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wui-hong/ip.git to complete... -Oct 17, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/sudarshan2401/ip.git completed! -Oct 17, 2023 1:15:59 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ketweeen/ip.git completed! +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Respirayson/ip.git... -Oct 17, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:58 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Respirayson/ip.git to complete... -Oct 17, 2023 1:16:00 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/wui-hong/ip.git completed! -Oct 17, 2023 1:16:00 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Chrainx/ip.git... -Oct 17, 2023 1:16:00 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Chrainx/ip.git to complete... -Oct 17, 2023 1:16:00 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Respirayson/ip.git completed! -Oct 17, 2023 1:16:00 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Fallman2/ip.git (master)... +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/sudarshan2401/ip.git completed! +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/shishirbychapur/ip.git... -Oct 17, 2023 1:16:00 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/shishirbychapur/ip.git to complete... -Oct 17, 2023 1:16:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kanna-1/ip.git (master)... -Oct 17, 2023 1:16:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kanna-1/ip.git (master)... -Oct 17, 2023 1:16:00 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kanna-1/ip.git (master) completed! -Oct 17, 2023 1:16:00 AM reposense.report.ReportGenerator analyzeRepos -INFO: [79/478] Analyzing https://github.com/mingyuanc/ip.git (master)... -Oct 17, 2023 1:16:00 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/mingyuanc/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/mingyuanc/ip.git (master)... -Oct 17, 2023 1:16:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/zsh-eng/ip.git (master)... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LicongHuang/ip.git completed! -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/flexibo/ip.git completed! +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/sunzihan23/ip.git... -Oct 17, 2023 1:16:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zsh-eng/ip.git (master)... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Fallman2/ip.git (master)... +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/sunzihan23/ip.git to complete... -Oct 17, 2023 1:16:01 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/zsh-eng/ip.git (master) completed! -Oct 17, 2023 1:16:01 AM reposense.report.ReportGenerator analyzeRepos -INFO: [80/478] Analyzing https://github.com/LamJiuFong/ip.git (master)... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/shishirbychapur/ip.git completed! -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:15:59 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Fallman2/ip.git (master) completed! +Oct 18, 2023 1:15:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [157/478] Analyzing https://github.com/leezhanpeng/ip.git (master)... +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Respirayson/ip.git completed! +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wj331/ip.git... -Oct 17, 2023 1:16:01 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LamJiuFong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LamJiuFong/ip.git (master)... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wj331/ip.git to complete... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/flexibo/ip.git completed! -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/tjch-o/ip.git... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/tjch-o/ip.git to complete... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:15:59 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/leezhanpeng/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:15:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/leezhanpeng/ip.git (master)... +Oct 18, 2023 1:16:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/sunzihan23/ip.git completed! -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:00 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/shishirbychapur/ip.git completed! +Oct 18, 2023 1:16:00 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/tjch-o/ip.git... +Oct 18, 2023 1:16:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/leezhanpeng/ip.git (master)... +Oct 18, 2023 1:16:00 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/licongshen12/ip.git... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:00 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/tjch-o/ip.git to complete... +Oct 18, 2023 1:16:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/licongshen12/ip.git to complete... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Chrainx/ip.git completed! -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/leezhanpeng/ip.git (master)... +Oct 18, 2023 1:16:00 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/leezhanpeng/ip.git (master) completed! +Oct 18, 2023 1:16:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [158/478] Analyzing https://github.com/Heran9/ip.git (master)... +Oct 18, 2023 1:16:00 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wj331/ip.git completed! +Oct 18, 2023 1:16:00 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/mamayuan/ip.git... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:00 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Heran9/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Heran9/ip.git (master)... +Oct 18, 2023 1:16:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/mamayuan/ip.git to complete... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wj331/ip.git completed! -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/waseemingly/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Chrainx/ip.git completed! +Oct 18, 2023 1:16:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/waseemingly/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/waseemingly/ip.git (master) completed! +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ong-wei-hong/ip.git... -Oct 17, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [159/478] Analyzing https://github.com/jingjie88/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ong-wei-hong/ip.git to complete... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tjch-o/ip.git completed! -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:01 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jingjie88/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jingjie88/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/licongshen12/ip.git completed! +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tanboonkhong/ip.git... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tanboonkhong/ip.git to complete... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/licongshen12/ip.git completed! -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tjch-o/ip.git completed! +Oct 18, 2023 1:16:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Heran9/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/cbj252/ip.git... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/cbj252/ip.git to complete... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ong-wei-hong/ip.git completed! -Oct 17, 2023 1:16:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LamJiuFong/ip.git (master)... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/mamayuan/ip.git completed! +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AlfredBeNoel/ip.git... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Heran9/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AlfredBeNoel/ip.git to complete... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/mamayuan/ip.git completed! -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Heran9/ip.git (master) completed! +Oct 18, 2023 1:16:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [160/478] Analyzing https://github.com/VN-Hao/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/VN-Hao/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/VN-Hao/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jingjie88/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jingjie88/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jingjie88/ip.git (master) completed! +Oct 18, 2023 1:16:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [161/478] Analyzing https://github.com/kimshitong/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kimshitong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kimshitong/ip.git (master)... +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ong-wei-hong/ip.git completed! +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/keaganpzh/ip.git... -Oct 17, 2023 1:16:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LamJiuFong/ip.git (master)... -Oct 17, 2023 1:16:02 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LamJiuFong/ip.git (master) completed! -Oct 17, 2023 1:16:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/mingyuanc/ip.git (master)... -Oct 17, 2023 1:16:02 AM reposense.report.ReportGenerator analyzeRepos -INFO: [81/478] Analyzing https://github.com/starrylight99/ip.git (master)... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/keaganpzh/ip.git to complete... -Oct 17, 2023 1:16:02 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/starrylight99/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/starrylight99/ip.git (master)... -Oct 17, 2023 1:16:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/mingyuanc/ip.git (master)... -Oct 17, 2023 1:16:02 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/mingyuanc/ip.git (master) completed! -Oct 17, 2023 1:16:02 AM reposense.report.ReportGenerator analyzeRepos -INFO: [82/478] Analyzing https://github.com/GlendaChong/ip.git (master)... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/tanboonkhong/ip.git completed! -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ElginTZM/ip.git... -Oct 17, 2023 1:16:02 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/GlendaChong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/GlendaChong/ip.git (master)... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ElginTZM/ip.git to complete... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/cbj252/ip.git completed! -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AlfredBeNoel/ip.git completed! +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LimJH2002/ip.git... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/VN-Hao/ip.git (master)... +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LimJH2002/ip.git to complete... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AlfredBeNoel/ip.git completed! -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/cmHuang777/ip.git... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/VN-Hao/ip.git (master)... +Oct 18, 2023 1:16:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/VN-Hao/ip.git (master) completed! +Oct 18, 2023 1:16:02 AM reposense.report.ReportGenerator analyzeRepos +INFO: [162/478] Analyzing https://github.com/ivanleekk/ip.git (master)... +Oct 18, 2023 1:16:02 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ivanleekk/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ivanleekk/ip.git (master)... +Oct 18, 2023 1:16:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kimshitong/ip.git (master)... +Oct 18, 2023 1:16:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kimshitong/ip.git (master)... +Oct 18, 2023 1:16:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kimshitong/ip.git (master) completed! +Oct 18, 2023 1:16:02 AM reposense.report.ReportGenerator analyzeRepos +INFO: [163/478] Analyzing https://github.com/H1410101/ip.git (master)... +Oct 18, 2023 1:16:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ivanleekk/ip.git (master)... +Oct 18, 2023 1:16:02 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/H1410101/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ElginTZM/ip.git completed! +Oct 18, 2023 1:16:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/H1410101/ip.git (master)... +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/keaganpzh/ip.git completed! -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/cmHuang777/ip.git to complete... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ivanleekk/ip.git (master)... +Oct 18, 2023 1:16:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ivanleekk/ip.git (master) completed! +Oct 18, 2023 1:16:02 AM reposense.report.ReportGenerator analyzeRepos +INFO: [164/478] Analyzing https://github.com/lamchenghou/ip.git (master)... +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/cmHuang777/ip.git... +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/WeeeHung/ip.git... -Oct 17, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/cmHuang777/ip.git to complete... +Oct 18, 2023 1:16:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/WeeeHung/ip.git to complete... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ElginTZM/ip.git completed! -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:02 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lamchenghou/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lamchenghou/ip.git (master)... +Oct 18, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/cbj252/ip.git completed! +Oct 18, 2023 1:16:03 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/xxiaoweii/ip.git... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/xxiaoweii/ip.git to complete... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LimJH2002/ip.git completed! -Oct 17, 2023 1:16:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/starrylight99/ip.git (master)... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/cmHuang777/ip.git completed! +Oct 18, 2023 1:16:03 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/rayyan35p/ip.git... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/rayyan35p/ip.git to complete... -Oct 17, 2023 1:16:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/starrylight99/ip.git (master)... -Oct 17, 2023 1:16:03 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/starrylight99/ip.git (master) completed! -Oct 17, 2023 1:16:03 AM reposense.report.ReportGenerator analyzeRepos -INFO: [83/478] Analyzing https://github.com/AustinHuang1203/ip.git (master)... -Oct 17, 2023 1:16:03 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AustinHuang1203/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AustinHuang1203/ip.git (master)... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/cmHuang777/ip.git completed! -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/dhruvir29/ip.git... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lamchenghou/ip.git (master)... +Oct 18, 2023 1:16:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lamchenghou/ip.git (master)... +Oct 18, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/xxiaoweii/ip.git completed! -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:03 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lamchenghou/ip.git (master) completed! +Oct 18, 2023 1:16:03 AM reposense.report.ReportGenerator analyzeRepos +INFO: [165/478] Analyzing https://github.com/tayruxin/ip.git (master)... +Oct 18, 2023 1:16:03 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/dhruvir29/ip.git... +Oct 18, 2023 1:16:03 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tayruxin/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tayruxin/ip.git (master)... +Oct 18, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dhruvir29/ip.git to complete... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LimJH2002/ip.git completed! +Oct 18, 2023 1:16:03 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LinWanLeii/ip.git... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LinWanLeii/ip.git to complete... -Oct 17, 2023 1:16:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/GlendaChong/ip.git (master)... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/rayyan35p/ip.git completed! -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/H1410101/ip.git (master)... +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/WeeeHung/ip.git completed! +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Song-Mengfei/ip.git... -Oct 17, 2023 1:16:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/GlendaChong/ip.git (master)... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Song-Mengfei/ip.git to complete... -Oct 17, 2023 1:16:03 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/GlendaChong/ip.git (master) completed! -Oct 17, 2023 1:16:03 AM reposense.report.ReportGenerator analyzeRepos -INFO: [84/478] Analyzing https://github.com/seewhyjay/ip.git (master)... -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/dhruvir29/ip.git completed! -Oct 17, 2023 1:16:03 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/rayyan35p/ip.git completed! +Oct 18, 2023 1:16:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/H1410101/ip.git (master)... +Oct 18, 2023 1:16:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/H1410101/ip.git (master) completed! +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jinyuan0425/ip.git... -Oct 17, 2023 1:16:03 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/seewhyjay/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/seewhyjay/ip.git (master)... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LinWanLeii/ip.git completed! -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [166/478] Analyzing https://github.com/zhengyup/ip.git (master)... +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jinyuan0425/ip.git to complete... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/zhengyup/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/zhengyup/ip.git (master)... +Oct 18, 2023 1:16:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tayruxin/ip.git (master)... +Oct 18, 2023 1:16:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tayruxin/ip.git (master)... +Oct 18, 2023 1:16:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tayruxin/ip.git (master) completed! +Oct 18, 2023 1:16:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [167/478] Analyzing https://github.com/raynertjx/ip.git (master)... +Oct 18, 2023 1:16:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/raynertjx/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/raynertjx/ip.git (master)... +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/dhruvir29/ip.git completed! +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tiif/ip.git... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tiif/ip.git to complete... -Oct 17, 2023 1:16:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AustinHuang1203/ip.git (master)... -Oct 17, 2023 1:16:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AustinHuang1203/ip.git (master)... -Oct 17, 2023 1:16:04 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AustinHuang1203/ip.git (master) completed! -Oct 17, 2023 1:16:04 AM reposense.report.ReportGenerator analyzeRepos -INFO: [85/478] Analyzing https://github.com/xCOLOURx/ip.git (master)... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Song-Mengfei/ip.git completed! -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LinWanLeii/ip.git completed! +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nicholascher/ip.git... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nicholascher/ip.git to complete... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/WeeeHung/ip.git completed! -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Song-Mengfei/ip.git completed! +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/hcs1203/ip.git... -Oct 17, 2023 1:16:04 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/xCOLOURx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/xCOLOURx/ip.git (master)... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/hcs1203/ip.git to complete... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tiif/ip.git completed! -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/zhengyup/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jinyuan0425/ip.git completed! +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/papataco14/ip.git... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/papataco14/ip.git to complete... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jinyuan0425/ip.git completed! -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zhengyup/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/zhengyup/ip.git (master) completed! +Oct 18, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [168/478] Analyzing https://github.com/larrywang0701/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/larrywang0701/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/larrywang0701/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/raynertjx/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tiif/ip.git completed! +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/KamJiaYue/ip.git... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/raynertjx/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/raynertjx/ip.git (master) completed! +Oct 18, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [169/478] Analyzing https://github.com/Carlintyj/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/KamJiaYue/ip.git to complete... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Carlintyj/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Carlintyj/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/nicholascher/ip.git completed! -Oct 17, 2023 1:16:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/seewhyjay/ip.git (master)... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/NereusWB922/ip.git... -Oct 17, 2023 1:16:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/seewhyjay/ip.git (master)... -Oct 17, 2023 1:16:04 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/seewhyjay/ip.git (master) completed! -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/NereusWB922/ip.git to complete... -Oct 17, 2023 1:16:04 AM reposense.report.ReportGenerator analyzeRepos -INFO: [86/478] Analyzing https://github.com/limzhenwy/ip.git (master)... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/hcs1203/ip.git completed! -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/PohSayKeong/ip.git... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/PohSayKeong/ip.git to complete... -Oct 17, 2023 1:16:04 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/limzhenwy/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/limzhenwy/ip.git (master)... -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/larrywang0701/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/larrywang0701/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/larrywang0701/ip.git (master) completed! +Oct 18, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [170/478] Analyzing https://github.com/wxwern/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/papataco14/ip.git completed! -Oct 17, 2023 1:16:04 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wxwern/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wxwern/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ivyy-poison/ip.git... -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ivyy-poison/ip.git to complete... -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/KamJiaYue/ip.git completed! -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Carlintyj/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Carlintyj/ip.git (master)... +Oct 18, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Carlintyj/ip.git (master) completed! +Oct 18, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [171/478] Analyzing https://github.com/nubnubyas/ip.git (master)... +Oct 18, 2023 1:16:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nubnubyas/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nubnubyas/ip.git (master)... +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/NereusWB922/ip.git completed! +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jacobcuison/ip.git... -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jacobcuison/ip.git to complete... -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/NereusWB922/ip.git completed! -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/KamJiaYue/ip.git completed! +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ji-just-ji/ip.git... -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/PohSayKeong/ip.git completed! -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ji-just-ji/ip.git to complete... -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ivyy-poison/ip.git completed! -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kohkaijie/ip.git... -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/kohkaijie/ip.git to complete... +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ivyy-poison/ip.git completed! +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/rocketninja7/ip.git... -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/rocketninja7/ip.git to complete... -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/kohkaijie/ip.git to complete... -Oct 17, 2023 1:16:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/xCOLOURx/ip.git (master)... -Oct 17, 2023 1:16:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/xCOLOURx/ip.git (master)... -Oct 17, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/xCOLOURx/ip.git (master) completed! -Oct 17, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepos -INFO: [87/478] Analyzing https://github.com/zacwong2151/ip.git (master)... -Oct 17, 2023 1:16:05 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/zacwong2151/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/zacwong2151/ip.git (master)... -Oct 17, 2023 1:16:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/limzhenwy/ip.git (master)... -Oct 17, 2023 1:16:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/limzhenwy/ip.git (master)... -Oct 17, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/limzhenwy/ip.git (master) completed! -Oct 17, 2023 1:16:05 AM reposense.report.ReportGenerator analyzeRepos -INFO: [88/478] Analyzing https://github.com/ruth-lim/ip.git (master)... -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nubnubyas/ip.git (master)... +Oct 18, 2023 1:16:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/wxwern/ip.git (master)... +Oct 18, 2023 1:16:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nubnubyas/ip.git (master)... +Oct 18, 2023 1:16:06 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nubnubyas/ip.git (master) completed! +Oct 18, 2023 1:16:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [172/478] Analyzing https://github.com/aslam341/ip.git (master)... +Oct 18, 2023 1:16:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wxwern/ip.git (master)... +Oct 18, 2023 1:16:06 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wxwern/ip.git (master) completed! +Oct 18, 2023 1:16:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [173/478] Analyzing https://github.com/LWZ19/ip.git (master)... +Oct 18, 2023 1:16:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/aslam341/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/aslam341/ip.git (master)... +Oct 18, 2023 1:16:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LWZ19/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LWZ19/ip.git (master)... +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jacobcuison/ip.git completed! -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/zekone/ip.git... -Oct 17, 2023 1:16:05 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zekone/ip.git to complete... -Oct 17, 2023 1:16:05 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ruth-lim/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ruth-lim/ip.git (master)... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/rocketninja7/ip.git completed! -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ji-just-ji/ip.git completed! +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/markgcera/ip.git... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/markgcera/ip.git to complete... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ji-just-ji/ip.git completed! -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/rocketninja7/ip.git completed! +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/PearlynnT/ip.git... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/PearlynnT/ip.git to complete... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/zekone/ip.git completed! -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/aslam341/ip.git (master)... +Oct 18, 2023 1:16:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/aslam341/ip.git (master)... +Oct 18, 2023 1:16:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/aslam341/ip.git (master) completed! +Oct 18, 2023 1:16:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [174/478] Analyzing https://github.com/timleow/ip.git (master)... +Oct 18, 2023 1:16:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/timleow/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/timleow/ip.git (master)... +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kohkaijie/ip.git completed! +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/StevenLiudw/ip.git... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/StevenLiudw/ip.git to complete... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kohkaijie/ip.git completed! -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/zekone/ip.git completed! +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/TeeRenJing/ip.git... -Oct 17, 2023 1:16:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/zacwong2151/ip.git (master)... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/TeeRenJing/ip.git to complete... +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/PearlynnT/ip.git completed! +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/markgcera/ip.git completed! -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/mounilsankar/ip.git... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/PearlynnT/ip.git completed! -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/TeeRenJing/ip.git to complete... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/mounilsankar/ip.git to complete... -Oct 17, 2023 1:16:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zacwong2151/ip.git (master)... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dloh2236/ip.git... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dloh2236/ip.git to complete... -Oct 17, 2023 1:16:06 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/zacwong2151/ip.git (master) completed! -Oct 17, 2023 1:16:06 AM reposense.report.ReportGenerator analyzeRepos -INFO: [89/478] Analyzing https://github.com/awhb/ip.git (master)... -Oct 17, 2023 1:16:06 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/awhb/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/awhb/ip.git (master)... -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/mounilsankar/ip.git to complete... +Oct 18, 2023 1:16:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LWZ19/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LWZ19/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LWZ19/ip.git (master) completed! +Oct 18, 2023 1:16:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [175/478] Analyzing https://github.com/rayshawntan/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/timleow/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/rayshawntan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/rayshawntan/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/StevenLiudw/ip.git completed! -Oct 17, 2023 1:16:06 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/zannloo/ip.git... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/timleow/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/timleow/ip.git (master) completed! +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zannloo/ip.git to complete... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/mounilsankar/ip.git completed! -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/junnengsoo/ip.git... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [176/478] Analyzing https://github.com/Sheeepen/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Sheeepen/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Sheeepen/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/TeeRenJing/ip.git completed! -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/junnengsoo/ip.git... +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/junnengsoo/ip.git to complete... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/mounilsankar/ip.git completed! +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/freshcabbage123/ip.git... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/freshcabbage123/ip.git to complete... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/dloh2236/ip.git completed! -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Kokseng1/ip.git... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Kokseng1/ip.git to complete... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/rayshawntan/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/rayshawntan/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/rayshawntan/ip.git (master) completed! +Oct 18, 2023 1:16:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [177/478] Analyzing https://github.com/aexolate/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Sheeepen/ip.git (master)... +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/zannloo/ip.git completed! -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/itsNatTan/ip.git... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/itsNatTan/ip.git to complete... -Oct 17, 2023 1:16:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/awhb/ip.git (master)... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Sheeepen/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Sheeepen/ip.git (master) completed! +Oct 18, 2023 1:16:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/aexolate/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/aexolate/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [178/478] Analyzing https://github.com/shuyangk/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/shuyangk/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/shuyangk/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/junnengsoo/ip.git completed! -Oct 17, 2023 1:16:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ruth-lim/ip.git (master)... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/freshcabbage123/ip.git completed! -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tjingsheng/ip.git... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/tjingsheng/ip.git to complete... +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/freshcabbage123/ip.git completed! +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ZD292/ip.git... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Kokseng1/ip.git completed! -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ZD292/ip.git to complete... -Oct 17, 2023 1:16:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ruth-lim/ip.git (master)... -Oct 17, 2023 1:16:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/awhb/ip.git (master)... -Oct 17, 2023 1:16:07 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/awhb/ip.git (master) completed! -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/tjingsheng/ip.git to complete... -Oct 17, 2023 1:16:07 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ruth-lim/ip.git (master) completed! -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/alientian/ip.git... -Oct 17, 2023 1:16:07 AM reposense.report.ReportGenerator analyzeRepos -INFO: [90/478] Analyzing https://github.com/Zjinnnn/ip.git (master)... -Oct 17, 2023 1:16:07 AM reposense.report.ReportGenerator analyzeRepos -INFO: [91/478] Analyzing https://github.com/teoks0199/ip.git (master)... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ZD292/ip.git to complete... +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/alientian/ip.git to complete... -Oct 17, 2023 1:16:07 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Zjinnnn/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Zjinnnn/ip.git (master)... -Oct 17, 2023 1:16:07 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/teoks0199/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/teoks0199/ip.git (master)... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/shuyangk/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/shuyangk/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/shuyangk/ip.git (master) completed! +Oct 18, 2023 1:16:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [179/478] Analyzing https://github.com/kiwibang/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kiwibang/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kiwibang/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/aexolate/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/aexolate/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/aexolate/ip.git (master) completed! +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/itsNatTan/ip.git completed! -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [180/478] Analyzing https://github.com/iyioon/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/frrrrry/ip.git... -Oct 17, 2023 1:16:07 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/frrrrry/ip.git to complete... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/iyioon/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/iyioon/ip.git (master)... +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ZD292/ip.git completed! -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wanghejin/ip.git... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/wanghejin/ip.git to complete... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/alientian/ip.git completed! -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/wanghejin/ip.git to complete... +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/MagnificentCreature/ip.git... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/MagnificentCreature/ip.git to complete... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/frrrrry/ip.git completed! -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tjingsheng/ip.git completed! +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/SungMatt/ip.git... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/SungMatt/ip.git to complete... -Oct 17, 2023 1:16:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/teoks0199/ip.git (master)... -Oct 17, 2023 1:16:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Zjinnnn/ip.git (master)... -Oct 17, 2023 1:16:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/teoks0199/ip.git (master)... -Oct 17, 2023 1:16:08 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/teoks0199/ip.git (master) completed! -Oct 17, 2023 1:16:08 AM reposense.report.ReportGenerator analyzeRepos -INFO: [92/478] Analyzing https://github.com/qz1004/ip.git (master)... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tjingsheng/ip.git completed! -Oct 17, 2023 1:16:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Zjinnnn/ip.git (master)... -Oct 17, 2023 1:16:08 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Zjinnnn/ip.git (master) completed! -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kiwibang/ip.git (master)... +Oct 18, 2023 1:16:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kiwibang/ip.git (master)... +Oct 18, 2023 1:16:10 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kiwibang/ip.git (master) completed! +Oct 18, 2023 1:16:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [181/478] Analyzing https://github.com/ncmathan/ip.git (master)... +Oct 18, 2023 1:16:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/iyioon/ip.git (master)... +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/frrrrry/ip.git completed! +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/andrefoo/ip.git... -Oct 17, 2023 1:16:08 AM reposense.report.ReportGenerator analyzeRepos -INFO: [93/478] Analyzing https://github.com/Mahidharah/ip.git (master)... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/iyioon/ip.git (master)... +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/andrefoo/ip.git to complete... -Oct 17, 2023 1:16:08 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/qz1004/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/qz1004/ip.git (master)... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wanghejin/ip.git completed! -Oct 17, 2023 1:16:08 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Mahidharah/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Mahidharah/ip.git (master)... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:10 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/iyioon/ip.git (master) completed! +Oct 18, 2023 1:16:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [182/478] Analyzing https://github.com/LuoZYi/ip.git (master)... +Oct 18, 2023 1:16:10 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LuoZYi/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LuoZYi/ip.git (master)... +Oct 18, 2023 1:16:10 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ncmathan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ncmathan/ip.git (master)... +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/MagnificentCreature/ip.git completed! -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tohpinren/ip.git... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/XihuaZ/ip.git... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tohpinren/ip.git to complete... -Oct 17, 2023 1:16:08 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wanghejin/ip.git completed! +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/XihuaZ/ip.git... +Oct 18, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/XihuaZ/ip.git to complete... -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LuoZYi/ip.git (master)... +Oct 18, 2023 1:16:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LuoZYi/ip.git (master)... +Oct 18, 2023 1:16:10 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LuoZYi/ip.git (master) completed! +Oct 18, 2023 1:16:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [183/478] Analyzing https://github.com/asdfghjkxd/ip.git (master)... +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/andrefoo/ip.git completed! -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/xavierpok/ip.git... -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:11 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/asdfghjkxd/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/asdfghjkxd/ip.git (master)... +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/xavierpok/ip.git to complete... -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ncmathan/ip.git (master)... +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/XihuaZ/ip.git completed! -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/bkjwjason/ip.git... -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/bkjwjason/ip.git to complete... -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/xavierpok/ip.git completed! +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/tohpinren/ip.git completed! -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Choonyan02/ip.git... -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Choonyan02/ip.git to complete... -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/xavierpok/ip.git completed! -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ncmathan/ip.git (master)... +Oct 18, 2023 1:16:11 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ncmathan/ip.git (master) completed! +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/aarontxz/ip.git... -Oct 17, 2023 1:16:09 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [184/478] Analyzing https://github.com/Nid21cs/ip.git (master)... +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Choonyan02/ip.git to complete... +Oct 18, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/aarontxz/ip.git to complete... -Oct 17, 2023 1:16:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Mahidharah/ip.git (master)... -Oct 17, 2023 1:16:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Mahidharah/ip.git (master)... -Oct 17, 2023 1:16:09 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Mahidharah/ip.git (master) completed! -Oct 17, 2023 1:16:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/qz1004/ip.git (master)... -Oct 17, 2023 1:16:09 AM reposense.report.ReportGenerator analyzeRepos -INFO: [94/478] Analyzing https://github.com/pangyyen/ip.git (master)... -Oct 17, 2023 1:16:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/qz1004/ip.git (master)... -Oct 17, 2023 1:16:09 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/qz1004/ip.git (master) completed! -Oct 17, 2023 1:16:09 AM reposense.report.ReportGenerator analyzeRepos -INFO: [95/478] Analyzing https://github.com/jason-raiin/ip.git (master)... -Oct 17, 2023 1:16:09 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/pangyyen/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/pangyyen/ip.git (master)... -Oct 17, 2023 1:16:09 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jason-raiin/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jason-raiin/ip.git (master)... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/bkjwjason/ip.git completed! -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:12 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Nid21cs/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Nid21cs/ip.git (master)... +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/SungMatt/ip.git completed! +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jianyangg/ip.git... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Choonyan02/ip.git completed! -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jianyangg/ip.git to complete... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Nid21cs/ip.git (master)... +Oct 18, 2023 1:16:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Nid21cs/ip.git (master)... +Oct 18, 2023 1:16:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Nid21cs/ip.git (master) completed! +Oct 18, 2023 1:16:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [185/478] Analyzing https://github.com/McNaBry/ip.git (master)... +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/bkjwjason/ip.git completed! +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tayian/ip.git... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tayian/ip.git to complete... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/SungMatt/ip.git completed! -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:12 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/McNaBry/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/McNaBry/ip.git (master)... +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/aarontxz/ip.git completed! +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wnchan/ip.git... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/asdfghjkxd/ip.git (master)... +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Choonyan02/ip.git completed! +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wnchan/ip.git to complete... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/aarontxz/ip.git completed! -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Jweewee/ip.git... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Jweewee/ip.git to complete... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jianyangg/ip.git completed! -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/asdfghjkxd/ip.git (master)... +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/cyaoxuan/ip.git... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/asdfghjkxd/ip.git (master) completed! +Oct 18, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/cyaoxuan/ip.git to complete... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wnchan/ip.git completed! -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [186/478] Analyzing https://github.com/mingyu-wan/ip.git (master)... +Oct 18, 2023 1:16:12 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/mingyu-wan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/mingyu-wan/ip.git (master)... +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tayian/ip.git completed! +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/anthonytamzil/ip.git... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/anthonytamzil/ip.git to complete... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tayian/ip.git completed! -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/McNaBry/ip.git (master)... +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wnchan/ip.git completed! +Oct 18, 2023 1:16:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/McNaBry/ip.git (master)... +Oct 18, 2023 1:16:13 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/McNaBry/ip.git (master) completed! +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/CelestineTan03/ip.git... -Oct 17, 2023 1:16:10 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [187/478] Analyzing https://github.com/sushiyade/ip.git (master)... +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/CelestineTan03/ip.git to complete... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/cyaoxuan/ip.git completed! -Oct 17, 2023 1:16:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jason-raiin/ip.git (master)... -Oct 17, 2023 1:16:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/pangyyen/ip.git (master)... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/mingyu-wan/ip.git (master)... +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/saltedfishxx/ip.git... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/saltedfishxx/ip.git to complete... -Oct 17, 2023 1:16:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jason-raiin/ip.git (master)... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/anthonytamzil/ip.git completed! -Oct 17, 2023 1:16:11 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jason-raiin/ip.git (master) completed! -Oct 17, 2023 1:16:11 AM reposense.report.ReportGenerator analyzeRepos -INFO: [96/478] Analyzing https://github.com/ravern/ip.git (master)... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/mingyu-wan/ip.git (master)... +Oct 18, 2023 1:16:13 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/mingyu-wan/ip.git (master) completed! +Oct 18, 2023 1:16:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [188/478] Analyzing https://github.com/eyelessrhyme7/ip.git (master)... +Oct 18, 2023 1:16:13 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/sushiyade/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/sushiyade/ip.git (master)... +Oct 18, 2023 1:16:13 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/eyelessrhyme7/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/eyelessrhyme7/ip.git (master)... +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Jweewee/ip.git completed! +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/euchangxian/ip.git... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/anthonytamzil/ip.git completed! +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/euchangxian/ip.git to complete... -Oct 17, 2023 1:16:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/pangyyen/ip.git (master)... -Oct 17, 2023 1:16:11 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/pangyyen/ip.git (master) completed! -Oct 17, 2023 1:16:11 AM reposense.report.ReportGenerator analyzeRepos -INFO: [97/478] Analyzing https://github.com/ryanozx/ip.git (master)... -Oct 17, 2023 1:16:11 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ravern/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ravern/ip.git (master)... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/CelestineTan03/ip.git completed! -Oct 17, 2023 1:16:11 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ryanozx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ryanozx/ip.git (master)... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AlagappanRa/ip.git... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Jweewee/ip.git completed! -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AlagappanRa/ip.git to complete... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/eyelessrhyme7/ip.git (master)... +Oct 18, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/CelestineTan03/ip.git completed! +Oct 18, 2023 1:16:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/eyelessrhyme7/ip.git (master)... +Oct 18, 2023 1:16:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/eyelessrhyme7/ip.git (master) completed! +Oct 18, 2023 1:16:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Ken-Lai/ip.git... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Ken-Lai/ip.git to complete... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/saltedfishxx/ip.git completed! -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [189/478] Analyzing https://github.com/ncduy0303/ip.git (master)... +Oct 18, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Ken-Lai/ip.git to complete... +Oct 18, 2023 1:16:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/itssisi/ip.git... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/itssisi/ip.git to complete... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:14 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ncduy0303/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ncduy0303/ip.git (master)... +Oct 18, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AlagappanRa/ip.git completed! -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jamz903/ip.git... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Ken-Lai/ip.git completed! -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jamz903/ip.git to complete... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/sushiyade/ip.git (master)... +Oct 18, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/euchangxian/ip.git completed! +Oct 18, 2023 1:16:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/sushiyade/ip.git (master)... +Oct 18, 2023 1:16:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/sushiyade/ip.git (master) completed! +Oct 18, 2023 1:16:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Kevin-Liusx/ip.git... -Oct 17, 2023 1:16:11 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Kevin-Liusx/ip.git to complete... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/itssisi/ip.git completed! -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Kevin-Liusx/ip.git to complete... +Oct 18, 2023 1:16:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [190/478] Analyzing https://github.com/ruishanteo/ip.git (master)... +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Propene-Dan/ip.git... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Propene-Dan/ip.git to complete... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/euchangxian/ip.git completed! -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Ken-Lai/ip.git completed! +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ChuanXinNg/ip.git... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Propene-Dan/ip.git to complete... +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ChuanXinNg/ip.git to complete... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ruishanteo/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ruishanteo/ip.git (master)... +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jamz903/ip.git completed! -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Kevin-Liusx/ip.git completed! -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kenvynKwek/ip.git... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kenvynKwek/ip.git to complete... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ncduy0303/ip.git (master)... +Oct 18, 2023 1:16:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ncduy0303/ip.git (master)... +Oct 18, 2023 1:16:15 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ncduy0303/ip.git (master) completed! +Oct 18, 2023 1:16:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [191/478] Analyzing https://github.com/m1oojv/ip.git (master)... +Oct 18, 2023 1:16:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/m1oojv/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/m1oojv/ip.git (master)... +Oct 18, 2023 1:16:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ruishanteo/ip.git (master)... +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Kevin-Liusx/ip.git completed! +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Ruizhi2001/ip.git... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Ruizhi2001/ip.git to complete... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Propene-Dan/ip.git completed! -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/prawnzyy/ip.git... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ruishanteo/ip.git (master)... +Oct 18, 2023 1:16:15 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ruishanteo/ip.git (master) completed! +Oct 18, 2023 1:16:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [192/478] Analyzing https://github.com/miljyy/ip.git (master)... +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ChuanXinNg/ip.git completed! -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/prawnzyy/ip.git... +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/prawnzyy/ip.git to complete... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/miljyy/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/miljyy/ip.git (master)... +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Propene-Dan/ip.git completed! +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/saraozn/ip.git... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/saraozn/ip.git to complete... -Oct 17, 2023 1:16:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ravern/ip.git (master)... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/kenvynKwek/ip.git completed! -Oct 17, 2023 1:16:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ravern/ip.git (master)... -Oct 17, 2023 1:16:12 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ravern/ip.git (master) completed! -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nicholastng010601/ip.git... -Oct 17, 2023 1:16:12 AM reposense.report.ReportGenerator analyzeRepos -INFO: [98/478] Analyzing https://github.com/techjay-c/ip.git (master)... -Oct 17, 2023 1:16:12 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nicholastng010601/ip.git to complete... -Oct 17, 2023 1:16:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ryanozx/ip.git (master)... -Oct 17, 2023 1:16:13 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/techjay-c/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/techjay-c/ip.git (master)... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Ruizhi2001/ip.git completed! -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/DistractedCat/ip.git... -Oct 17, 2023 1:16:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ryanozx/ip.git (master)... -Oct 17, 2023 1:16:13 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ryanozx/ip.git (master) completed! -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/DistractedCat/ip.git to complete... -Oct 17, 2023 1:16:13 AM reposense.report.ReportGenerator analyzeRepos -INFO: [99/478] Analyzing https://github.com/bobscodedump/ip.git (master)... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/m1oojv/ip.git (master)... +Oct 18, 2023 1:16:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/m1oojv/ip.git (master)... +Oct 18, 2023 1:16:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/m1oojv/ip.git (master) completed! +Oct 18, 2023 1:16:16 AM reposense.report.ReportGenerator analyzeRepos +INFO: [193/478] Analyzing https://github.com/Nixx162/ip.git (master)... +Oct 18, 2023 1:16:16 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Nixx162/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Nixx162/ip.git (master)... +Oct 18, 2023 1:16:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/miljyy/ip.git (master)... +Oct 18, 2023 1:16:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/miljyy/ip.git (master)... +Oct 18, 2023 1:16:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/miljyy/ip.git (master) completed! +Oct 18, 2023 1:16:16 AM reposense.report.ReportGenerator analyzeRepos +INFO: [194/478] Analyzing https://github.com/Gabriel4357/ip.git (master)... +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/saraozn/ip.git completed! +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/prawnzyy/ip.git completed! -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/DistractedCat/ip.git... +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yezkez10/ip.git... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/saraozn/ip.git completed! -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:16 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Gabriel4357/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Gabriel4357/ip.git (master)... +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/DistractedCat/ip.git to complete... +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yezkez10/ip.git to complete... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/revdrag/ip.git... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/revdrag/ip.git to complete... -Oct 17, 2023 1:16:13 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/bobscodedump/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/bobscodedump/ip.git (master)... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Ruizhi2001/ip.git completed! +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/nicholastng010601/ip.git completed! -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/revdrag/ip.git... +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/alvinlim277/ip.git... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/revdrag/ip.git to complete... +Oct 18, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/alvinlim277/ip.git to complete... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/DistractedCat/ip.git completed! -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Nixx162/ip.git (master)... +Oct 18, 2023 1:16:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Nixx162/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Nixx162/ip.git (master) completed! +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [195/478] Analyzing https://github.com/mfjkri/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/mfjkri/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/mfjkri/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Gabriel4357/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Gabriel4357/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Gabriel4357/ip.git (master) completed! +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [196/478] Analyzing https://github.com/RoeReRe/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/RoeReRe/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/RoeReRe/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/yezkez10/ip.git completed! +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/JasonRay168/ip.git... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/DistractedCat/ip.git completed! +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/JasonRay168/ip.git to complete... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/yezkez10/ip.git completed! -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/billieboy7/ip.git... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/billieboy7/ip.git to complete... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/revdrag/ip.git completed! -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/alvinlim277/ip.git completed! +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jannnice/ip.git... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/revdrag/ip.git completed! +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jannnice/ip.git to complete... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/alvinlim277/ip.git completed! -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/evanyan13/ip.git... -Oct 17, 2023 1:16:13 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/evanyan13/ip.git to complete... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/JasonRay168/ip.git completed! -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/mfjkri/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/mfjkri/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/mfjkri/ip.git (master) completed! +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [197/478] Analyzing https://github.com/Badatprogrammiing/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Badatprogrammiing/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Badatprogrammiing/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/RoeReRe/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/RoeReRe/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/RoeReRe/ip.git (master) completed! +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [198/478] Analyzing https://github.com/winson8222/ip.git (master)... +Oct 18, 2023 1:16:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/winson8222/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/winson8222/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/billieboy7/ip.git completed! +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/samuelim01/ip.git... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/samuelim01/ip.git to complete... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/billieboy7/ip.git completed! -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/dinde2004/ip.git... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/dinde2004/ip.git to complete... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jannnice/ip.git completed! -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/JasonRay168/ip.git completed! +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/dinde2004/ip.git... +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/seanpzk/ip.git... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/dinde2004/ip.git to complete... +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/seanpzk/ip.git to complete... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/samuelim01/ip.git completed! -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Badatprogrammiing/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/evanyan13/ip.git completed! +Oct 18, 2023 1:16:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Badatprogrammiing/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/KumChaiYin/ip.git... -Oct 17, 2023 1:16:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/techjay-c/ip.git (master)... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:18 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Badatprogrammiing/ip.git (master) completed! +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/KumChaiYin/ip.git to complete... -Oct 17, 2023 1:16:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/techjay-c/ip.git (master)... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/evanyan13/ip.git completed! -Oct 17, 2023 1:16:14 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/techjay-c/ip.git (master) completed! -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/dinde2004/ip.git completed! -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [199/478] Analyzing https://github.com/junhonglow/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/junhonglow/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/junhonglow/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/winson8222/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/winson8222/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/winson8222/ip.git (master) completed! +Oct 18, 2023 1:16:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [200/478] Analyzing https://github.com/wujy28/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wujy28/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wujy28/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/junhonglow/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/junhonglow/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/junhonglow/ip.git (master) completed! +Oct 18, 2023 1:16:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [201/478] Analyzing https://github.com/nknguyenhc/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/samuelim01/ip.git completed! +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lsyurea/ip.git... -Oct 17, 2023 1:16:14 AM reposense.report.ReportGenerator analyzeRepos -INFO: [100/478] Analyzing https://github.com/LuahJunYang/ip.git (master)... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Sasmik23/ip.git... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Sasmik23/ip.git to complete... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lsyurea/ip.git to complete... -Oct 17, 2023 1:16:14 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LuahJunYang/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LuahJunYang/ip.git (master)... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:18 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nknguyenhc/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nknguyenhc/ip.git (master)... +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/seanpzk/ip.git completed! -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/geraldngjx/ip.git... -Oct 17, 2023 1:16:14 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/geraldngjx/ip.git to complete... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Sasmik23/ip.git... +Oct 18, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Sasmik23/ip.git to complete... +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/KumChaiYin/ip.git completed! -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/geraldngjx/ip.git... +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/dinde2004/ip.git completed! +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lululwtv/ip.git... -Oct 17, 2023 1:16:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/bobscodedump/ip.git (master)... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/geraldngjx/ip.git to complete... +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lululwtv/ip.git to complete... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/wujy28/ip.git (master)... +Oct 18, 2023 1:16:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wujy28/ip.git (master)... +Oct 18, 2023 1:16:19 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wujy28/ip.git (master) completed! +Oct 18, 2023 1:16:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [202/478] Analyzing https://github.com/SimWPEric/ip.git (master)... +Oct 18, 2023 1:16:19 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/SimWPEric/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/SimWPEric/ip.git (master)... +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/lsyurea/ip.git completed! -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/garylow2001/ip.git... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/garylow2001/ip.git to complete... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/geraldngjx/ip.git completed! -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/leontan2/ip.git... -Oct 17, 2023 1:16:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/bobscodedump/ip.git (master)... -Oct 17, 2023 1:16:15 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/bobscodedump/ip.git (master) completed! -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/leontan2/ip.git to complete... -Oct 17, 2023 1:16:15 AM reposense.report.ReportGenerator analyzeRepos -INFO: [101/478] Analyzing https://github.com/HEEaZ/ip.git (master)... -Oct 17, 2023 1:16:15 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/HEEaZ/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/HEEaZ/ip.git (master)... -Oct 17, 2023 1:16:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LuahJunYang/ip.git (master)... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nknguyenhc/ip.git (master)... +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Sasmik23/ip.git completed! -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nknguyenhc/ip.git (master)... +Oct 18, 2023 1:16:19 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nknguyenhc/ip.git (master) completed! +Oct 18, 2023 1:16:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [203/478] Analyzing https://github.com/HugeNoob/ip.git (master)... +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wamps-jp/ip.git... -Oct 17, 2023 1:16:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LuahJunYang/ip.git (master)... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wamps-jp/ip.git to complete... -Oct 17, 2023 1:16:15 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LuahJunYang/ip.git (master) completed! -Oct 17, 2023 1:16:15 AM reposense.report.ReportGenerator analyzeRepos -INFO: [102/478] Analyzing https://github.com/dom-buri/ip.git (master)... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess +Oct 18, 2023 1:16:19 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/HugeNoob/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/HugeNoob/ip.git (master)... +Oct 18, 2023 1:16:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/SimWPEric/ip.git (master)... +Oct 18, 2023 1:16:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/SimWPEric/ip.git (master)... +Oct 18, 2023 1:16:19 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/SimWPEric/ip.git (master) completed! +Oct 18, 2023 1:16:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [204/478] Analyzing https://github.com/lerxuann/ip.git (master)... +Oct 18, 2023 1:16:20 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lerxuann/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lerxuann/ip.git (master)... +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/garylow2001/ip.git completed! -Oct 17, 2023 1:16:15 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/dom-buri/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/dom-buri/ip.git (master)... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dickongwd/ip.git... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/dickongwd/ip.git to complete... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/leontan2/ip.git completed! -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jacksonyuan256/ip.git... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jacksonyuan256/ip.git to complete... -Oct 17, 2023 1:16:15 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wamps-jp/ip.git completed! -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/suryanshkushwaha/ip.git... -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/suryanshkushwaha/ip.git to complete... -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/dickongwd/ip.git completed! -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/wr1159/ip.git... -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/wr1159/ip.git to complete... -Oct 17, 2023 1:16:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/HEEaZ/ip.git (master)... -Oct 17, 2023 1:16:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/HEEaZ/ip.git (master)... -Oct 17, 2023 1:16:16 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/HEEaZ/ip.git (master) completed! -Oct 17, 2023 1:16:16 AM reposense.report.ReportGenerator analyzeRepos -INFO: [103/478] Analyzing https://github.com/nixonwidjaja/ip.git (master)... -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jacksonyuan256/ip.git completed! -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Nauxe/ip.git... -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Nauxe/ip.git to complete... -Oct 17, 2023 1:16:16 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nixonwidjaja/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nixonwidjaja/ip.git (master)... -Oct 17, 2023 1:16:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/dom-buri/ip.git (master)... -Oct 17, 2023 1:16:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/dom-buri/ip.git (master)... -Oct 17, 2023 1:16:16 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/dom-buri/ip.git (master) completed! -Oct 17, 2023 1:16:16 AM reposense.report.ReportGenerator analyzeRepos -INFO: [104/478] Analyzing https://github.com/tiongjjyi/ip.git (master)... -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wr1159/ip.git completed! -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/yyyaohhh/ip.git... -Oct 17, 2023 1:16:16 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tiongjjyi/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tiongjjyi/ip.git (master)... -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/yyyaohhh/ip.git to complete... -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Nauxe/ip.git completed! -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/zhanyang01/ip.git... -Oct 17, 2023 1:16:16 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/zhanyang01/ip.git to complete... -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/yyyaohhh/ip.git completed! -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/czhiruo/ip.git... -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/czhiruo/ip.git to complete... -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/suryanshkushwaha/ip.git completed! -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/victorpengmx/ip.git... -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/victorpengmx/ip.git to complete... -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/zhanyang01/ip.git completed! -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/longnguyentan/ip.git... -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/longnguyentan/ip.git to complete... -Oct 17, 2023 1:16:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tiongjjyi/ip.git (master)... -Oct 17, 2023 1:16:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tiongjjyi/ip.git (master)... -Oct 17, 2023 1:16:17 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tiongjjyi/ip.git (master) completed! -Oct 17, 2023 1:16:17 AM reposense.report.ReportGenerator analyzeRepos -INFO: [105/478] Analyzing https://github.com/Vanessamae23/ip.git (master)... -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/czhiruo/ip.git completed! -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Cikguseven/ip.git... -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/victorpengmx/ip.git completed! -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Cikguseven/ip.git to complete... -Oct 17, 2023 1:16:17 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Vanessamae23/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Vanessamae23/ip.git (master)... -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Eola-Z/ip.git... -Oct 17, 2023 1:16:17 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Eola-Z/ip.git to complete... -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/longnguyentan/ip.git completed! -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jibtaf/ip.git... -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jibtaf/ip.git to complete... -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Eola-Z/ip.git completed! -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/lipwei1808/ip.git... -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Cikguseven/ip.git completed! -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/lipwei1808/ip.git to complete... -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Mohammed-Faizzzz/ip.git... -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Mohammed-Faizzzz/ip.git to complete... -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jibtaf/ip.git completed! -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/dylkaw/ip.git... -Oct 17, 2023 1:16:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nixonwidjaja/ip.git (master)... -Oct 17, 2023 1:16:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/dylkaw/ip.git to complete... -Oct 17, 2023 1:16:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Vanessamae23/ip.git (master)... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lipwei1808/ip.git completed! -Oct 17, 2023 1:16:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Vanessamae23/ip.git (master)... -Oct 17, 2023 1:16:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nixonwidjaja/ip.git (master)... -Oct 17, 2023 1:16:19 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nixonwidjaja/ip.git (master) completed! -Oct 17, 2023 1:16:19 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Vanessamae23/ip.git (master) completed! -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/nikele2001/ip.git... -Oct 17, 2023 1:16:19 AM reposense.report.ReportGenerator analyzeRepos -INFO: [106/478] Analyzing https://github.com/fuyiqiao/ip.git (master)... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Mohammed-Faizzzz/ip.git completed! -Oct 17, 2023 1:16:19 AM reposense.report.ReportGenerator analyzeRepos -INFO: [107/478] Analyzing https://github.com/spatuly/ip.git (master)... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/nikele2001/ip.git to complete... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/DeltonCheng/ip.git... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/DeltonCheng/ip.git to complete... -Oct 17, 2023 1:16:19 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/fuyiqiao/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/fuyiqiao/ip.git (master)... -Oct 17, 2023 1:16:19 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/spatuly/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/spatuly/ip.git (master)... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/dylkaw/ip.git completed! -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/ChangruHenryQian/ip.git... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ChangruHenryQian/ip.git to complete... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nikele2001/ip.git completed! -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/craigtonlian/ip.git... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/DeltonCheng/ip.git completed! -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/craigtonlian/ip.git to complete... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/ruo-x/ip.git... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ruo-x/ip.git to complete... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ChangruHenryQian/ip.git completed! -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/iantsaii/ip.git... -Oct 17, 2023 1:16:19 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/iantsaii/ip.git to complete... -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/craigtonlian/ip.git completed! -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/wjacobw/ip.git... -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/wjacobw/ip.git to complete... -Oct 17, 2023 1:16:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/fuyiqiao/ip.git (master)... -Oct 17, 2023 1:16:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/fuyiqiao/ip.git (master)... -Oct 17, 2023 1:16:20 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/fuyiqiao/ip.git (master) completed! -Oct 17, 2023 1:16:20 AM reposense.report.ReportGenerator analyzeRepos -INFO: [108/478] Analyzing https://github.com/tanshiyu1999/ip.git (master)... -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/iantsaii/ip.git completed! -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/angkyakdifp/ip.git... -Oct 17, 2023 1:16:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/spatuly/ip.git (master)... -Oct 17, 2023 1:16:20 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tanshiyu1999/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tanshiyu1999/ip.git (master)... -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/angkyakdifp/ip.git to complete... -Oct 17, 2023 1:16:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/spatuly/ip.git (master)... -Oct 17, 2023 1:16:20 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/spatuly/ip.git (master) completed! -Oct 17, 2023 1:16:20 AM reposense.report.ReportGenerator analyzeRepos -INFO: [109/478] Analyzing https://github.com/Kb-Tay/ip.git (master)... -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ruo-x/ip.git completed! -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/brein62/ip.git... -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/brein62/ip.git to complete... -Oct 17, 2023 1:16:20 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Kb-Tay/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Kb-Tay/ip.git (master)... -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wjacobw/ip.git completed! -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/nicrandomlee/ip.git... -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/nicrandomlee/ip.git to complete... -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/angkyakdifp/ip.git completed! -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Bryan-Goh/ip.git... -Oct 17, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Bryan-Goh/ip.git to complete... -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/brein62/ip.git completed! -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/kiatkat/ip.git... -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/kiatkat/ip.git to complete... -Oct 17, 2023 1:16:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tanshiyu1999/ip.git (master)... -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Bryan-Goh/ip.git completed! -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nicrandomlee/ip.git completed! -Oct 17, 2023 1:16:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tanshiyu1999/ip.git (master)... -Oct 17, 2023 1:16:21 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tanshiyu1999/ip.git (master) completed! -Oct 17, 2023 1:16:21 AM reposense.report.ReportGenerator analyzeRepos -INFO: [110/478] Analyzing https://github.com/beatricecst/ip.git (master)... -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/MadLamprey/ip.git... -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/xyT-T/ip.git... -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/MadLamprey/ip.git to complete... -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/xyT-T/ip.git to complete... -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kiatkat/ip.git completed! -Oct 17, 2023 1:16:21 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/beatricecst/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/beatricecst/ip.git (master)... -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jiakai-17/ip.git... -Oct 17, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jiakai-17/ip.git to complete... -Oct 17, 2023 1:16:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Kb-Tay/ip.git (master)... -Oct 17, 2023 1:16:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Kb-Tay/ip.git (master)... -Oct 17, 2023 1:16:21 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Kb-Tay/ip.git (master) completed! -Oct 17, 2023 1:16:22 AM reposense.report.ReportGenerator analyzeRepos -INFO: [111/478] Analyzing https://github.com/tanveersingh10/ip.git (master)... -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/MadLamprey/ip.git completed! -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/nreHieW/ip.git... -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/nreHieW/ip.git to complete... -Oct 17, 2023 1:16:22 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tanveersingh10/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tanveersingh10/ip.git (master)... -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/xyT-T/ip.git completed! -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jiakai-17/ip.git completed! -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/nathanielcalimag/ip.git... -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Saezenn/ip.git... -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Saezenn/ip.git to complete... -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/nathanielcalimag/ip.git to complete... -Oct 17, 2023 1:16:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/beatricecst/ip.git (master)... -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nathanielcalimag/ip.git completed! -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nreHieW/ip.git completed! -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jellywaiyan/ip.git... -Oct 17, 2023 1:16:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/beatricecst/ip.git (master)... -Oct 17, 2023 1:16:22 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/beatricecst/ip.git (master) completed! -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jellywaiyan/ip.git to complete... -Oct 17, 2023 1:16:22 AM reposense.report.ReportGenerator analyzeRepos -INFO: [112/478] Analyzing https://github.com/thienmy0/ip.git (master)... -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/marquestye/ip.git... -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Saezenn/ip.git completed! -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/marquestye/ip.git to complete... -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Tang-Moyan/ip.git... -Oct 17, 2023 1:16:22 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/thienmy0/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/thienmy0/ip.git (master)... -Oct 17, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Tang-Moyan/ip.git to complete... -Oct 17, 2023 1:16:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tanveersingh10/ip.git (master)... -Oct 17, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jellywaiyan/ip.git completed! -Oct 17, 2023 1:16:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tanveersingh10/ip.git (master)... -Oct 17, 2023 1:16:23 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tanveersingh10/ip.git (master) completed! -Oct 17, 2023 1:16:23 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/DonovanJJ/ip.git... -Oct 17, 2023 1:16:23 AM reposense.report.ReportGenerator analyzeRepos -INFO: [113/478] Analyzing https://github.com/s0ngyang/ip.git (master)... -Oct 17, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/DonovanJJ/ip.git to complete... -Oct 17, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/marquestye/ip.git completed! -Oct 17, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Tang-Moyan/ip.git completed! -Oct 17, 2023 1:16:23 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Sebtey/ip.git... -Oct 17, 2023 1:16:23 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/rionshocker/ip.git... -Oct 17, 2023 1:16:23 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/s0ngyang/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/s0ngyang/ip.git (master)... -Oct 17, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/rionshocker/ip.git to complete... -Oct 17, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Sebtey/ip.git to complete... -Oct 17, 2023 1:16:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/thienmy0/ip.git (master)... -Oct 17, 2023 1:16:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/thienmy0/ip.git (master)... -Oct 17, 2023 1:16:24 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/thienmy0/ip.git (master) completed! -Oct 17, 2023 1:16:24 AM reposense.report.ReportGenerator analyzeRepos -INFO: [114/478] Analyzing https://github.com/ldinghan/ip.git (master)... -Oct 17, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/DonovanJJ/ip.git completed! -Oct 17, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Sebtey/ip.git completed! -Oct 17, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lululwtv/ip.git completed! -Oct 17, 2023 1:16:24 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/tyouwei/ip.git... -Oct 17, 2023 1:16:24 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Blizzeracz/ip.git... -Oct 17, 2023 1:16:24 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ldinghan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ldinghan/ip.git (master)... -Oct 17, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Blizzeracz/ip.git to complete... -Oct 17, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/tyouwei/ip.git to complete... -Oct 17, 2023 1:16:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/s0ngyang/ip.git (master)... -Oct 17, 2023 1:16:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/s0ngyang/ip.git (master)... -Oct 17, 2023 1:16:24 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/s0ngyang/ip.git (master) completed! -Oct 17, 2023 1:16:24 AM reposense.report.ReportGenerator analyzeRepos -INFO: [115/478] Analyzing https://github.com/feifeiraindrops/ip.git (master)... -Oct 17, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/rionshocker/ip.git completed! -Oct 17, 2023 1:16:24 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/feifeiraindrops/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/feifeiraindrops/ip.git (master)... -Oct 17, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Blizzeracz/ip.git completed! -Oct 17, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tyouwei/ip.git completed! -Oct 17, 2023 1:16:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ldinghan/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ldinghan/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ldinghan/ip.git (master) completed! -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepos -INFO: [116/478] Analyzing https://github.com/ryanongwx/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ryanongwx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ryanongwx/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/feifeiraindrops/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/feifeiraindrops/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/feifeiraindrops/ip.git (master) completed! -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepos -INFO: [117/478] Analyzing https://github.com/kwangthiag/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ryanongwx/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kwangthiag/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kwangthiag/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ryanongwx/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ryanongwx/ip.git (master) completed! -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepos -INFO: [118/478] Analyzing https://github.com/elhy1999/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/elhy1999/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/elhy1999/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kwangthiag/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kwangthiag/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kwangthiag/ip.git (master) completed! -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepos -INFO: [119/478] Analyzing https://github.com/songgthu/ip.git (master)... -Oct 17, 2023 1:16:25 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/songgthu/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/songgthu/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/songgthu/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/songgthu/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/songgthu/ip.git (master) completed! -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepos -INFO: [120/478] Analyzing https://github.com/GohTengFong/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/GohTengFong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/GohTengFong/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/elhy1999/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/elhy1999/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/elhy1999/ip.git (master) completed! -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepos -INFO: [121/478] Analyzing https://github.com/simbayippy/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/simbayippy/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/simbayippy/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/GohTengFong/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/GohTengFong/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/GohTengFong/ip.git (master) completed! -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepos -INFO: [122/478] Analyzing https://github.com/Khaleelur-Rahman/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Khaleelur-Rahman/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Khaleelur-Rahman/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/simbayippy/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/simbayippy/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/simbayippy/ip.git (master) completed! -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepos -INFO: [123/478] Analyzing https://github.com/bwangpj/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/bwangpj/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/bwangpj/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Khaleelur-Rahman/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Khaleelur-Rahman/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Khaleelur-Rahman/ip.git (master) completed! -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepos -INFO: [124/478] Analyzing https://github.com/proto-aiken-13/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/bwangpj/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/bwangpj/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/bwangpj/ip.git (master) completed! -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepos -INFO: [125/478] Analyzing https://github.com/weeweh/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/proto-aiken-13/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/proto-aiken-13/ip.git (master)... -Oct 17, 2023 1:16:26 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/weeweh/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/weeweh/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/weeweh/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/weeweh/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/weeweh/ip.git (master) completed! -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepos -INFO: [126/478] Analyzing https://github.com/jylow/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/proto-aiken-13/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jylow/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jylow/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/proto-aiken-13/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/proto-aiken-13/ip.git (master) completed! -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepos -INFO: [127/478] Analyzing https://github.com/s-peiran/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/s-peiran/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/s-peiran/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jylow/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jylow/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jylow/ip.git (master) completed! -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepos -INFO: [128/478] Analyzing https://github.com/lawruixi/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lawruixi/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lawruixi/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/s-peiran/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/s-peiran/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/s-peiran/ip.git (master) completed! -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepos -INFO: [129/478] Analyzing https://github.com/JeremyYong128/ip.git (master)... -Oct 17, 2023 1:16:27 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/JeremyYong128/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/JeremyYong128/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/JeremyYong128/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/JeremyYong128/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/JeremyYong128/ip.git (master) completed! -Oct 17, 2023 1:16:28 AM reposense.report.ReportGenerator analyzeRepos -INFO: [130/478] Analyzing https://github.com/brandon-nam/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/brandon-nam/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/brandon-nam/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lawruixi/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lawruixi/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lawruixi/ip.git (master) completed! -Oct 17, 2023 1:16:28 AM reposense.report.ReportGenerator analyzeRepos -INFO: [131/478] Analyzing https://github.com/AlainS87/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AlainS87/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AlainS87/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/brandon-nam/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/brandon-nam/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/brandon-nam/ip.git (master) completed! -Oct 17, 2023 1:16:28 AM reposense.report.ReportGenerator analyzeRepos -INFO: [132/478] Analyzing https://github.com/LHeng1/ip.git (master)... -Oct 17, 2023 1:16:28 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LHeng1/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LHeng1/ip.git (master)... -Oct 17, 2023 1:16:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LHeng1/ip.git (master)... -Oct 17, 2023 1:16:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LHeng1/ip.git (master)... -Oct 17, 2023 1:16:29 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LHeng1/ip.git (master) completed! -Oct 17, 2023 1:16:29 AM reposense.report.ReportGenerator analyzeRepos -INFO: [133/478] Analyzing https://github.com/B-enguin/ip.git (master)... -Oct 17, 2023 1:16:29 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/B-enguin/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/B-enguin/ip.git (master)... -Oct 17, 2023 1:16:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/B-enguin/ip.git (master)... -Oct 17, 2023 1:16:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/B-enguin/ip.git (master)... -Oct 17, 2023 1:16:29 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/B-enguin/ip.git (master) completed! -Oct 17, 2023 1:16:29 AM reposense.report.ReportGenerator analyzeRepos -INFO: [134/478] Analyzing https://github.com/Leb14/ip.git (master)... -Oct 17, 2023 1:16:29 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Leb14/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Leb14/ip.git (master)... -Oct 17, 2023 1:16:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Leb14/ip.git (master)... -Oct 17, 2023 1:16:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Leb14/ip.git (master)... -Oct 17, 2023 1:16:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AlainS87/ip.git (master)... -Oct 17, 2023 1:16:30 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Leb14/ip.git (master) completed! -Oct 17, 2023 1:16:30 AM reposense.report.ReportGenerator analyzeRepos -INFO: [135/478] Analyzing https://github.com/s-kybound/ip.git (master)... -Oct 17, 2023 1:16:30 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/s-kybound/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/s-kybound/ip.git (master)... -Oct 17, 2023 1:16:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AlainS87/ip.git (master)... -Oct 17, 2023 1:16:30 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AlainS87/ip.git (master) completed! -Oct 17, 2023 1:16:30 AM reposense.report.ReportGenerator analyzeRepos -INFO: [136/478] Analyzing https://github.com/wesho1107/ip.git (master)... -Oct 17, 2023 1:16:30 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wesho1107/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wesho1107/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/s-kybound/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/s-kybound/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/s-kybound/ip.git (master) completed! -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepos -INFO: [137/478] Analyzing https://github.com/yihfei/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/yihfei/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/yihfei/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/wesho1107/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wesho1107/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wesho1107/ip.git (master) completed! -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepos -INFO: [138/478] Analyzing https://github.com/AaronJT1/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AaronJT1/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AaronJT1/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yihfei/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/yihfei/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/yihfei/ip.git (master) completed! -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepos -INFO: [139/478] Analyzing https://github.com/dlathyun/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/dlathyun/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/dlathyun/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AaronJT1/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AaronJT1/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AaronJT1/ip.git (master) completed! -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepos -INFO: [140/478] Analyzing https://github.com/ricketytoc/ip.git (master)... -Oct 17, 2023 1:16:31 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ricketytoc/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ricketytoc/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ricketytoc/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/dlathyun/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ricketytoc/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ricketytoc/ip.git (master) completed! -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepos -INFO: [141/478] Analyzing https://github.com/Angelyxx/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/dlathyun/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/dlathyun/ip.git (master) completed! -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Angelyxx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Angelyxx/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepos -INFO: [142/478] Analyzing https://github.com/SinhaVedant/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/SinhaVedant/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/SinhaVedant/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/SinhaVedant/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/SinhaVedant/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/SinhaVedant/ip.git (master) completed! -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepos -INFO: [143/478] Analyzing https://github.com/jingting1412/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jingting1412/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jingting1412/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Angelyxx/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Angelyxx/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Angelyxx/ip.git (master) completed! -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepos -INFO: [144/478] Analyzing https://github.com/jordankanghm/ip.git (master)... -Oct 17, 2023 1:16:32 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jordankanghm/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jordankanghm/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jingting1412/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jingting1412/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jingting1412/ip.git (master) completed! -Oct 17, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepos -INFO: [145/478] Analyzing https://github.com/adhigop13/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/adhigop13/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/adhigop13/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jordankanghm/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jordankanghm/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jordankanghm/ip.git (master) completed! -Oct 17, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepos -INFO: [146/478] Analyzing https://github.com/raydenlim/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/raydenlim/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/raydenlim/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/adhigop13/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/adhigop13/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/adhigop13/ip.git (master) completed! -Oct 17, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepos -INFO: [147/478] Analyzing https://github.com/freddychenyouren2/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/freddychenyouren2/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/freddychenyouren2/ip.git (master)... -Oct 17, 2023 1:16:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/freddychenyouren2/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/freddychenyouren2/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/freddychenyouren2/ip.git (master) completed! -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepos -INFO: [148/478] Analyzing https://github.com/jingyu987/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jingyu987/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jingyu987/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/raydenlim/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/raydenlim/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/raydenlim/ip.git (master) completed! -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepos -INFO: [149/478] Analyzing https://github.com/FerdiHS/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/FerdiHS/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/FerdiHS/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jingyu987/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jingyu987/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jingyu987/ip.git (master) completed! -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepos -INFO: [150/478] Analyzing https://github.com/jrchoo/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jrchoo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jrchoo/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/FerdiHS/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/FerdiHS/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/FerdiHS/ip.git (master) completed! -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepos -INFO: [151/478] Analyzing https://github.com/RiyaMehta2211/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/RiyaMehta2211/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/RiyaMehta2211/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jrchoo/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jrchoo/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jrchoo/ip.git (master) completed! -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepos -INFO: [152/478] Analyzing https://github.com/leezhanpeng/ip.git (master)... -Oct 17, 2023 1:16:34 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/leezhanpeng/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/leezhanpeng/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/RiyaMehta2211/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/RiyaMehta2211/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/RiyaMehta2211/ip.git (master) completed! -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepos -INFO: [153/478] Analyzing https://github.com/juzzztinsoong/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/juzzztinsoong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/juzzztinsoong/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/leezhanpeng/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/leezhanpeng/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/leezhanpeng/ip.git (master) completed! -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepos -INFO: [154/478] Analyzing https://github.com/darrentfy/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/darrentfy/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/darrentfy/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/juzzztinsoong/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/juzzztinsoong/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/juzzztinsoong/ip.git (master) completed! -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepos -INFO: [155/478] Analyzing https://github.com/redtailedfox/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/redtailedfox/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/redtailedfox/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/darrentfy/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/darrentfy/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/darrentfy/ip.git (master) completed! -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepos -INFO: [156/478] Analyzing https://github.com/Fallman2/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Fallman2/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Fallman2/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/redtailedfox/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/redtailedfox/ip.git (master)... -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/redtailedfox/ip.git (master) completed! -Oct 17, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepos -INFO: [157/478] Analyzing https://github.com/Heran9/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Heran9/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Heran9/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Heran9/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Heran9/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Heran9/ip.git (master) completed! -Oct 17, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepos -INFO: [158/478] Analyzing https://github.com/jingjie88/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jingjie88/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jingjie88/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Fallman2/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Fallman2/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Fallman2/ip.git (master) completed! -Oct 17, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepos -INFO: [159/478] Analyzing https://github.com/VN-Hao/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/VN-Hao/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/VN-Hao/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jingjie88/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jingjie88/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jingjie88/ip.git (master) completed! -Oct 17, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepos -INFO: [160/478] Analyzing https://github.com/kimshitong/ip.git (master)... -Oct 17, 2023 1:16:36 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kimshitong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kimshitong/ip.git (master)... -Oct 17, 2023 1:16:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/VN-Hao/ip.git (master)... -Oct 17, 2023 1:16:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/VN-Hao/ip.git (master)... -Oct 17, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/VN-Hao/ip.git (master) completed! -Oct 17, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepos -INFO: [161/478] Analyzing https://github.com/ivanleekk/ip.git (master)... -Oct 17, 2023 1:16:37 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ivanleekk/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ivanleekk/ip.git (master)... -Oct 17, 2023 1:16:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kimshitong/ip.git (master)... -Oct 17, 2023 1:16:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kimshitong/ip.git (master)... -Oct 17, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kimshitong/ip.git (master) completed! -Oct 17, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepos -INFO: [162/478] Analyzing https://github.com/waseemingly/ip.git (master)... -Oct 17, 2023 1:16:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ivanleekk/ip.git (master)... -Oct 17, 2023 1:16:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ivanleekk/ip.git (master)... -Oct 17, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ivanleekk/ip.git (master) completed! -Oct 17, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepos -INFO: [163/478] Analyzing https://github.com/lamchenghou/ip.git (master)... -Oct 17, 2023 1:16:37 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lamchenghou/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lamchenghou/ip.git (master)... -Oct 17, 2023 1:16:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lamchenghou/ip.git (master)... -Oct 17, 2023 1:16:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lamchenghou/ip.git (master)... -Oct 17, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lamchenghou/ip.git (master) completed! -Oct 17, 2023 1:16:38 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/waseemingly/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/waseemingly/ip.git (master)... -Oct 17, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepos -INFO: [164/478] Analyzing https://github.com/H1410101/ip.git (master)... -Oct 17, 2023 1:16:38 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/H1410101/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/H1410101/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/H1410101/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/H1410101/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/H1410101/ip.git (master) completed! -Oct 17, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepos -INFO: [165/478] Analyzing https://github.com/tayruxin/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tayruxin/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tayruxin/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tayruxin/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tayruxin/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tayruxin/ip.git (master) completed! -Oct 17, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepos -INFO: [166/478] Analyzing https://github.com/raynertjx/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/raynertjx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/raynertjx/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/raynertjx/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/raynertjx/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/raynertjx/ip.git (master) completed! -Oct 17, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepos -INFO: [167/478] Analyzing https://github.com/larrywang0701/ip.git (master)... -Oct 17, 2023 1:16:39 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/larrywang0701/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/larrywang0701/ip.git (master)... -Oct 17, 2023 1:16:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/larrywang0701/ip.git (master)... -Oct 17, 2023 1:16:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/larrywang0701/ip.git (master)... -Oct 17, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/larrywang0701/ip.git (master) completed! -Oct 17, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepos -INFO: [168/478] Analyzing https://github.com/zhengyup/ip.git (master)... -Oct 17, 2023 1:16:40 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/zhengyup/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/zhengyup/ip.git (master)... -Oct 17, 2023 1:16:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/zhengyup/ip.git (master)... -Oct 17, 2023 1:16:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zhengyup/ip.git (master)... -Oct 17, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/zhengyup/ip.git (master) completed! -Oct 17, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepos -INFO: [169/478] Analyzing https://github.com/Carlintyj/ip.git (master)... -Oct 17, 2023 1:16:40 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Carlintyj/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Carlintyj/ip.git (master)... -Oct 17, 2023 1:16:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/waseemingly/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Carlintyj/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Carlintyj/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Carlintyj/ip.git (master) completed! -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepos -INFO: [170/478] Analyzing https://github.com/wxwern/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wxwern/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wxwern/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/waseemingly/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/waseemingly/ip.git (master) completed! -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepos -INFO: [171/478] Analyzing https://github.com/aslam341/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/aslam341/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/aslam341/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/wxwern/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wxwern/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wxwern/ip.git (master) completed! -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepos -INFO: [172/478] Analyzing https://github.com/nubnubyas/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/aslam341/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nubnubyas/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nubnubyas/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/aslam341/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/aslam341/ip.git (master) completed! -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepos -INFO: [173/478] Analyzing https://github.com/LWZ19/ip.git (master)... -Oct 17, 2023 1:16:41 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LWZ19/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LWZ19/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nubnubyas/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nubnubyas/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nubnubyas/ip.git (master) completed! -Oct 17, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepos -INFO: [174/478] Analyzing https://github.com/timleow/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/timleow/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/timleow/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LWZ19/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/timleow/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/timleow/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LWZ19/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/timleow/ip.git (master) completed! -Oct 17, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepos -INFO: [175/478] Analyzing https://github.com/aexolate/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LWZ19/ip.git (master) completed! -Oct 17, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepos -INFO: [176/478] Analyzing https://github.com/rayshawntan/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/aexolate/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/aexolate/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/rayshawntan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/rayshawntan/ip.git (master)... -Oct 17, 2023 1:16:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/aexolate/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/aexolate/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/aexolate/ip.git (master) completed! -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepos -INFO: [177/478] Analyzing https://github.com/Sheeepen/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/rayshawntan/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Sheeepen/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Sheeepen/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/rayshawntan/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/rayshawntan/ip.git (master) completed! -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepos -INFO: [178/478] Analyzing https://github.com/shuyangk/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/shuyangk/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/shuyangk/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/shuyangk/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Sheeepen/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/shuyangk/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/shuyangk/ip.git (master) completed! -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepos -INFO: [179/478] Analyzing https://github.com/kiwibang/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Sheeepen/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Sheeepen/ip.git (master) completed! -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepos -INFO: [180/478] Analyzing https://github.com/iyioon/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kiwibang/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kiwibang/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/iyioon/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/iyioon/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/iyioon/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kiwibang/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/iyioon/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/iyioon/ip.git (master) completed! -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepos -INFO: [181/478] Analyzing https://github.com/ncmathan/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kiwibang/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kiwibang/ip.git (master) completed! -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepos -INFO: [182/478] Analyzing https://github.com/LuoZYi/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LuoZYi/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LuoZYi/ip.git (master)... -Oct 17, 2023 1:16:43 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ncmathan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ncmathan/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LuoZYi/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LuoZYi/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LuoZYi/ip.git (master) completed! -Oct 17, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepos -INFO: [183/478] Analyzing https://github.com/Nid21cs/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Nid21cs/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Nid21cs/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ncmathan/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ncmathan/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ncmathan/ip.git (master) completed! -Oct 17, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepos -INFO: [184/478] Analyzing https://github.com/asdfghjkxd/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/asdfghjkxd/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/asdfghjkxd/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Nid21cs/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Nid21cs/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Nid21cs/ip.git (master) completed! -Oct 17, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepos -INFO: [185/478] Analyzing https://github.com/McNaBry/ip.git (master)... -Oct 17, 2023 1:16:44 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/McNaBry/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/McNaBry/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/McNaBry/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/McNaBry/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/McNaBry/ip.git (master) completed! -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepos -INFO: [186/478] Analyzing https://github.com/miljyy/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/miljyy/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/miljyy/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/asdfghjkxd/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/asdfghjkxd/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/asdfghjkxd/ip.git (master) completed! -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepos -INFO: [187/478] Analyzing https://github.com/mingyu-wan/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/mingyu-wan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/mingyu-wan/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/miljyy/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/miljyy/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/miljyy/ip.git (master) completed! -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepos -INFO: [188/478] Analyzing https://github.com/ncduy0303/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ncduy0303/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ncduy0303/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/mingyu-wan/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/mingyu-wan/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/mingyu-wan/ip.git (master) completed! -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepos -INFO: [189/478] Analyzing https://github.com/eyelessrhyme7/ip.git (master)... -Oct 17, 2023 1:16:45 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/eyelessrhyme7/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/eyelessrhyme7/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ncduy0303/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ncduy0303/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ncduy0303/ip.git (master) completed! -Oct 17, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepos -INFO: [190/478] Analyzing https://github.com/ruishanteo/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/eyelessrhyme7/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ruishanteo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ruishanteo/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/eyelessrhyme7/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/eyelessrhyme7/ip.git (master) completed! -Oct 17, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepos -INFO: [191/478] Analyzing https://github.com/sushiyade/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/sushiyade/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/sushiyade/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ruishanteo/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ruishanteo/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ruishanteo/ip.git (master) completed! -Oct 17, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepos -INFO: [192/478] Analyzing https://github.com/Nixx162/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Nixx162/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Nixx162/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Nixx162/ip.git (master)... -Oct 17, 2023 1:16:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Nixx162/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Nixx162/ip.git (master) completed! -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepos -INFO: [193/478] Analyzing https://github.com/m1oojv/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/m1oojv/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/m1oojv/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/sushiyade/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/m1oojv/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/m1oojv/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/m1oojv/ip.git (master) completed! -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepos -INFO: [194/478] Analyzing https://github.com/mfjkri/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/mfjkri/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/mfjkri/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/sushiyade/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/sushiyade/ip.git (master) completed! -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepos -INFO: [195/478] Analyzing https://github.com/Gabriel4357/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Gabriel4357/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Gabriel4357/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/mfjkri/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/mfjkri/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/mfjkri/ip.git (master) completed! -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepos -INFO: [196/478] Analyzing https://github.com/junhonglow/ip.git (master)... -Oct 17, 2023 1:16:47 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/junhonglow/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/junhonglow/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Gabriel4357/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Gabriel4357/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Gabriel4357/ip.git (master) completed! -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepos -INFO: [197/478] Analyzing https://github.com/RoeReRe/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/RoeReRe/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/RoeReRe/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/junhonglow/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/junhonglow/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/junhonglow/ip.git (master) completed! -Oct 17, 2023 1:16:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/RoeReRe/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepos -INFO: [198/478] Analyzing https://github.com/Badatprogrammiing/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/RoeReRe/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/RoeReRe/ip.git (master) completed! -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Badatprogrammiing/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Badatprogrammiing/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepos -INFO: [199/478] Analyzing https://github.com/nknguyenhc/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nknguyenhc/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nknguyenhc/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Badatprogrammiing/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Badatprogrammiing/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Badatprogrammiing/ip.git (master) completed! -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepos -INFO: [200/478] Analyzing https://github.com/winson8222/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/winson8222/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/winson8222/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nknguyenhc/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nknguyenhc/ip.git (master)... -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nknguyenhc/ip.git (master) completed! -Oct 17, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepos -INFO: [201/478] Analyzing https://github.com/wujy28/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wujy28/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wujy28/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/winson8222/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/winson8222/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/winson8222/ip.git (master) completed! -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepos -INFO: [202/478] Analyzing https://github.com/SimWPEric/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/SimWPEric/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/SimWPEric/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/wujy28/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wujy28/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wujy28/ip.git (master) completed! -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepos -INFO: [203/478] Analyzing https://github.com/HugeNoob/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/HugeNoob/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/HugeNoob/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/SimWPEric/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/SimWPEric/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/SimWPEric/ip.git (master) completed! -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepos -INFO: [204/478] Analyzing https://github.com/lerxuann/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lerxuann/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lerxuann/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/dickongwd/ip.git to complete... +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/leontan2/ip.git completed! +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jacksonyuan256/ip.git... +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jacksonyuan256/ip.git to complete... +Oct 18, 2023 1:16:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/HugeNoob/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/HugeNoob/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/HugeNoob/ip.git (master) completed! -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepos -INFO: [205/478] Analyzing https://github.com/Weiennn/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Weiennn/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Weiennn/ip.git (master)... -Oct 17, 2023 1:16:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lerxuann/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lerxuann/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/HugeNoob/ip.git (master)... +Oct 18, 2023 1:16:20 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lerxuann/ip.git (master) completed! -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:20 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/HugeNoob/ip.git (master) completed! +Oct 18, 2023 1:16:20 AM reposense.report.ReportGenerator analyzeRepos +INFO: [205/478] Analyzing https://github.com/Weiennn/ip.git (master)... +Oct 18, 2023 1:16:20 AM reposense.report.ReportGenerator analyzeRepos INFO: [206/478] Analyzing https://github.com/maj0-0/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:20 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/maj0-0/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/maj0-0/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:20 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Weiennn/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Weiennn/ip.git (master)... +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wamps-jp/ip.git completed! +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/suryanshkushwaha/ip.git... +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/suryanshkushwaha/ip.git to complete... +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/dickongwd/ip.git completed! +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/wr1159/ip.git... +Oct 18, 2023 1:16:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/wr1159/ip.git to complete... +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jacksonyuan256/ip.git completed! +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Nauxe/ip.git... +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Nauxe/ip.git to complete... +Oct 18, 2023 1:16:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Weiennn/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/maj0-0/ip.git (master)... +Oct 18, 2023 1:16:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Weiennn/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:21 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Weiennn/ip.git (master) completed! -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:21 AM reposense.report.ReportGenerator analyzeRepos INFO: [207/478] Analyzing https://github.com/qyaner/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:21 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/qyaner/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/qyaner/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/maj0-0/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/maj0-0/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:21 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/maj0-0/ip.git (master) completed! -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:21 AM reposense.report.ReportGenerator analyzeRepos INFO: [208/478] Analyzing https://github.com/ruiyangzh/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:21 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ruiyangzh/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ruiyangzh/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wr1159/ip.git completed! +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/yyyaohhh/ip.git... +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/yyyaohhh/ip.git to complete... +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/suryanshkushwaha/ip.git completed! +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/zhanyang01/ip.git... +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Nauxe/ip.git completed! +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/zhanyang01/ip.git to complete... +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/czhiruo/ip.git... +Oct 18, 2023 1:16:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/czhiruo/ip.git to complete... +Oct 18, 2023 1:16:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/qyaner/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/qyaner/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:22 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/qyaner/ip.git (master) completed! -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:22 AM reposense.report.ReportGenerator analyzeRepos INFO: [209/478] Analyzing https://github.com/Bombbird2001/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:22 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Bombbird2001/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Bombbird2001/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/yyyaohhh/ip.git completed! +Oct 18, 2023 1:16:22 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/victorpengmx/ip.git... +Oct 18, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/victorpengmx/ip.git to complete... +Oct 18, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/czhiruo/ip.git completed! +Oct 18, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/zhanyang01/ip.git completed! +Oct 18, 2023 1:16:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ruiyangzh/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:22 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/longnguyentan/ip.git... +Oct 18, 2023 1:16:22 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Cikguseven/ip.git... +Oct 18, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/longnguyentan/ip.git to complete... +Oct 18, 2023 1:16:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Cikguseven/ip.git to complete... +Oct 18, 2023 1:16:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ruiyangzh/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:22 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ruiyangzh/ip.git (master) completed! -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:22 AM reposense.report.ReportGenerator analyzeRepos INFO: [210/478] Analyzing https://github.com/adammangzijun/ip.git (master)... -Oct 17, 2023 1:16:50 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:22 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/adammangzijun/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/adammangzijun/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Bombbird2001/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Bombbird2001/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Bombbird2001/ip.git (master) completed! -Oct 17, 2023 1:16:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/victorpengmx/ip.git completed! +Oct 18, 2023 1:16:23 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Eola-Z/ip.git... +Oct 18, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Eola-Z/ip.git to complete... +Oct 18, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/longnguyentan/ip.git completed! +Oct 18, 2023 1:16:23 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jibtaf/ip.git... +Oct 18, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Cikguseven/ip.git completed! +Oct 18, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jibtaf/ip.git to complete... +Oct 18, 2023 1:16:23 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/lipwei1808/ip.git... +Oct 18, 2023 1:16:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/lipwei1808/ip.git to complete... +Oct 18, 2023 1:16:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/adammangzijun/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepos -INFO: [211/478] Analyzing https://github.com/hyc17003/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Bombbird2001/ip.git (master)... +Oct 18, 2023 1:16:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/adammangzijun/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:23 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/adammangzijun/ip.git (master) completed! -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [211/478] Analyzing https://github.com/hyc17003/ip.git (master)... +Oct 18, 2023 1:16:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Bombbird2001/ip.git (master)... +Oct 18, 2023 1:16:23 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Bombbird2001/ip.git (master) completed! +Oct 18, 2023 1:16:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [212/478] Analyzing https://github.com/Originalidk/ip.git (master)... +Oct 18, 2023 1:16:24 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/hyc17003/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/hyc17003/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepos -INFO: [212/478] Analyzing https://github.com/andytoh1/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/andytoh1/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/andytoh1/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/andytoh1/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/andytoh1/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/andytoh1/ip.git (master) completed! -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepos -INFO: [213/478] Analyzing https://github.com/Originalidk/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Eola-Z/ip.git completed! +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Mohammed-Faizzzz/ip.git... +Oct 18, 2023 1:16:24 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Originalidk/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Originalidk/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Mohammed-Faizzzz/ip.git to complete... +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lipwei1808/ip.git completed! +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jibtaf/ip.git completed! +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/dylkaw/ip.git... +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/nikele2001/ip.git... +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/dylkaw/ip.git to complete... +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/nikele2001/ip.git to complete... +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Mohammed-Faizzzz/ip.git completed! +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/DeltonCheng/ip.git... +Oct 18, 2023 1:16:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/DeltonCheng/ip.git to complete... +Oct 18, 2023 1:16:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/dylkaw/ip.git completed! +Oct 18, 2023 1:16:25 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/ChangruHenryQian/ip.git... +Oct 18, 2023 1:16:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nikele2001/ip.git completed! +Oct 18, 2023 1:16:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/hyc17003/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:25 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/craigtonlian/ip.git... +Oct 18, 2023 1:16:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ChangruHenryQian/ip.git to complete... +Oct 18, 2023 1:16:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/craigtonlian/ip.git to complete... +Oct 18, 2023 1:16:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/hyc17003/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/hyc17003/ip.git (master) completed! -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepos -INFO: [214/478] Analyzing https://github.com/quzhetao01/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepos +INFO: [213/478] Analyzing https://github.com/quzhetao01/ip.git (master)... +Oct 18, 2023 1:16:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Originalidk/ip.git (master)... +Oct 18, 2023 1:16:25 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/quzhetao01/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/quzhetao01/ip.git (master)... -Oct 17, 2023 1:16:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Originalidk/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Originalidk/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Originalidk/ip.git (master) completed! -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepos -INFO: [215/478] Analyzing https://github.com/Bearypop/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Bearypop/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Bearypop/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:25 AM reposense.report.ReportGenerator analyzeRepos +INFO: [214/478] Analyzing https://github.com/InfiBeyond/ip.git (master)... +Oct 18, 2023 1:16:25 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/InfiBeyond/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/InfiBeyond/ip.git (master)... +Oct 18, 2023 1:16:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/DeltonCheng/ip.git completed! +Oct 18, 2023 1:16:25 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/ruo-x/ip.git... +Oct 18, 2023 1:16:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ruo-x/ip.git to complete... +Oct 18, 2023 1:16:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/craigtonlian/ip.git completed! +Oct 18, 2023 1:16:25 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/iantsaii/ip.git... +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ChangruHenryQian/ip.git completed! +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/iantsaii/ip.git to complete... +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/wjacobw/ip.git... +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/wjacobw/ip.git to complete... +Oct 18, 2023 1:16:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/InfiBeyond/ip.git (master)... +Oct 18, 2023 1:16:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/InfiBeyond/ip.git (master)... +Oct 18, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/InfiBeyond/ip.git (master) completed! +Oct 18, 2023 1:16:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/quzhetao01/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/quzhetao01/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/quzhetao01/ip.git (master) completed! -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepos -INFO: [216/478] Analyzing https://github.com/InfiBeyond/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/InfiBeyond/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/InfiBeyond/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepos +INFO: [215/478] Analyzing https://github.com/andytoh1/ip.git (master)... +Oct 18, 2023 1:16:26 AM reposense.report.ReportGenerator analyzeRepos +INFO: [216/478] Analyzing https://github.com/Bearypop/ip.git (master)... +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lululwtv/ip.git completed! +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/angkyakdifp/ip.git... +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/angkyakdifp/ip.git to complete... +Oct 18, 2023 1:16:26 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Bearypop/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Bearypop/ip.git (master)... +Oct 18, 2023 1:16:26 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/andytoh1/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/andytoh1/ip.git (master)... +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/iantsaii/ip.git completed! +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/brein62/ip.git... +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/brein62/ip.git to complete... +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wjacobw/ip.git completed! +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ruo-x/ip.git completed! +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/nicrandomlee/ip.git... +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Bryan-Goh/ip.git... +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/nicrandomlee/ip.git to complete... +Oct 18, 2023 1:16:26 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Bryan-Goh/ip.git to complete... +Oct 18, 2023 1:16:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/andytoh1/ip.git (master)... +Oct 18, 2023 1:16:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/andytoh1/ip.git (master)... +Oct 18, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/andytoh1/ip.git (master) completed! +Oct 18, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepos +INFO: [217/478] Analyzing https://github.com/JasonLCY-Temp/ip.git (master)... +Oct 18, 2023 1:16:27 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/JasonLCY-Temp/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/JasonLCY-Temp/ip.git (master)... +Oct 18, 2023 1:16:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Bearypop/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Bearypop/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Bearypop/ip.git (master) completed! -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepos -INFO: [217/478] Analyzing https://github.com/sp4ce-cowboy/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepos +INFO: [218/478] Analyzing https://github.com/sp4ce-cowboy/ip.git (master)... +Oct 18, 2023 1:16:27 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/sp4ce-cowboy/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/sp4ce-cowboy/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/InfiBeyond/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/InfiBeyond/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/InfiBeyond/ip.git (master) completed! -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepos -INFO: [218/478] Analyzing https://github.com/JasonLCY-Temp/ip.git (master)... -Oct 17, 2023 1:16:52 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/JasonLCY-Temp/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/JasonLCY-Temp/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/sp4ce-cowboy/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/angkyakdifp/ip.git completed! +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/kiatkat/ip.git... +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/kiatkat/ip.git to complete... +Oct 18, 2023 1:16:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/JasonLCY-Temp/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/sp4ce-cowboy/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/JasonLCY-Temp/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/sp4ce-cowboy/ip.git (master) completed! -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepos -INFO: [219/478] Analyzing https://github.com/wjayee/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/JasonLCY-Temp/ip.git (master) completed! -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepos -INFO: [220/478] Analyzing https://github.com/vivienherq/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:27 AM reposense.report.ReportGenerator analyzeRepos +INFO: [219/478] Analyzing https://github.com/wjayee/ip.git (master)... +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Bryan-Goh/ip.git completed! +Oct 18, 2023 1:16:27 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/wjayee/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/wjayee/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/MadLamprey/ip.git... +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/MadLamprey/ip.git to complete... +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/brein62/ip.git completed! +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/xyT-T/ip.git... +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/xyT-T/ip.git to complete... +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nicrandomlee/ip.git completed! +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jiakai-17/ip.git... +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jiakai-17/ip.git to complete... +Oct 18, 2023 1:16:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/sp4ce-cowboy/ip.git (master)... +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kiatkat/ip.git completed! +Oct 18, 2023 1:16:27 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/nreHieW/ip.git... +Oct 18, 2023 1:16:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/sp4ce-cowboy/ip.git (master)... +Oct 18, 2023 1:16:28 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/sp4ce-cowboy/ip.git (master) completed! +Oct 18, 2023 1:16:28 AM reposense.report.ReportGenerator analyzeRepos +INFO: [220/478] Analyzing https://github.com/vivienherq/ip.git (master)... +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/nreHieW/ip.git to complete... +Oct 18, 2023 1:16:28 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/vivienherq/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/vivienherq/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wjayee/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/MadLamprey/ip.git completed! +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/nathanielcalimag/ip.git... +Oct 18, 2023 1:16:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wjayee/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:28 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wjayee/ip.git (master) completed! -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/nathanielcalimag/ip.git to complete... +Oct 18, 2023 1:16:28 AM reposense.report.ReportGenerator analyzeRepos INFO: [221/478] Analyzing https://github.com/jamesebond/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:28 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jamesebond/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jamesebond/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/xyT-T/ip.git completed! +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jiakai-17/ip.git completed! +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Saezenn/ip.git... +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jellywaiyan/ip.git... +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Saezenn/ip.git to complete... +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jellywaiyan/ip.git to complete... +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nreHieW/ip.git completed! +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/marquestye/ip.git... +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/marquestye/ip.git to complete... +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nathanielcalimag/ip.git completed! +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Tang-Moyan/ip.git... +Oct 18, 2023 1:16:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Tang-Moyan/ip.git to complete... +Oct 18, 2023 1:16:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/vivienherq/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/vivienherq/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:29 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/vivienherq/ip.git (master) completed! -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:29 AM reposense.report.ReportGenerator analyzeRepos INFO: [222/478] Analyzing https://github.com/jonyeokj/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jellywaiyan/ip.git completed! +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/DonovanJJ/ip.git... +Oct 18, 2023 1:16:29 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jonyeokj/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jonyeokj/ip.git (master)... -Oct 17, 2023 1:16:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/DonovanJJ/ip.git to complete... +Oct 18, 2023 1:16:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jamesebond/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Saezenn/ip.git completed! +Oct 18, 2023 1:16:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jamesebond/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:29 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jamesebond/ip.git (master) completed! -Oct 17, 2023 1:16:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jonyeokj/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:29 AM reposense.report.ReportGenerator analyzeRepos INFO: [223/478] Analyzing https://github.com/victorlaiyeeteng/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jonyeokj/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Sebtey/ip.git... +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Sebtey/ip.git to complete... +Oct 18, 2023 1:16:29 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/victorlaiyeeteng/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/victorlaiyeeteng/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jonyeokj/ip.git (master) completed! -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepos -INFO: [224/478] Analyzing https://github.com/lyuanww/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lyuanww/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lyuanww/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/marquestye/ip.git completed! +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/rionshocker/ip.git... +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/rionshocker/ip.git to complete... +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Tang-Moyan/ip.git completed! +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/tyouwei/ip.git... +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/tyouwei/ip.git to complete... +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/DonovanJJ/ip.git completed! +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Blizzeracz/ip.git... +Oct 18, 2023 1:16:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Blizzeracz/ip.git to complete... +Oct 18, 2023 1:16:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/victorlaiyeeteng/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/victorlaiyeeteng/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:30 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/victorlaiyeeteng/ip.git (master) completed! -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [224/478] Analyzing https://github.com/lyuanww/ip.git (master)... +Oct 18, 2023 1:16:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Sebtey/ip.git completed! +Oct 18, 2023 1:16:30 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lyuanww/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lyuanww/ip.git (master)... +Oct 18, 2023 1:16:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jonyeokj/ip.git (master)... +Oct 18, 2023 1:16:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jonyeokj/ip.git (master)... +Oct 18, 2023 1:16:30 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jonyeokj/ip.git (master) completed! +Oct 18, 2023 1:16:30 AM reposense.report.ReportGenerator analyzeRepos INFO: [225/478] Analyzing https://github.com/yongning0310/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:30 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/yongning0310/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/yongning0310/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tyouwei/ip.git completed! +Oct 18, 2023 1:16:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Blizzeracz/ip.git completed! +Oct 18, 2023 1:16:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/rionshocker/ip.git completed! +Oct 18, 2023 1:16:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lyuanww/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lyuanww/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:30 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lyuanww/ip.git (master) completed! -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepos -INFO: [226/478] Analyzing https://github.com/Cloud7050/ip.git (master)... -Oct 17, 2023 1:16:54 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Cloud7050/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Cloud7050/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [226/478] Analyzing https://github.com/LoMaply/ip.git (master)... +Oct 18, 2023 1:16:30 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LoMaply/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LoMaply/ip.git (master)... +Oct 18, 2023 1:16:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/yongning0310/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/yongning0310/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/yongning0310/ip.git (master) completed! -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepos -INFO: [227/478] Analyzing https://github.com/LoMaply/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LoMaply/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LoMaply/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Cloud7050/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Cloud7050/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Cloud7050/ip.git (master) completed! -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepos -INFO: [228/478] Analyzing https://github.com/tllshan/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tllshan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tllshan/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepos +INFO: [227/478] Analyzing https://github.com/Cloud7050/ip.git (master)... +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Cloud7050/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Cloud7050/ip.git (master)... +Oct 18, 2023 1:16:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/LoMaply/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/LoMaply/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/LoMaply/ip.git (master) completed! -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepos +INFO: [228/478] Analyzing https://github.com/tllshan/ip.git (master)... +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tllshan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tllshan/ip.git (master)... +Oct 18, 2023 1:16:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Cloud7050/ip.git (master)... +Oct 18, 2023 1:16:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Cloud7050/ip.git (master)... +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Cloud7050/ip.git (master) completed! +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepos INFO: [229/478] Analyzing https://github.com/Gavino3o/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Gavino3o/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Gavino3o/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tllshan/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tllshan/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tllshan/ip.git (master) completed! -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepos INFO: [230/478] Analyzing https://github.com/HollaG/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/HollaG/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/HollaG/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Gavino3o/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Gavino3o/ip.git (master)... -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Gavino3o/ip.git (master) completed! -Oct 17, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:31 AM reposense.report.ReportGenerator analyzeRepos INFO: [231/478] Analyzing https://github.com/cheeggered/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/cheeggered/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/cheeggered/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/HollaG/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/HollaG/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/HollaG/ip.git (master) completed! -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepos INFO: [232/478] Analyzing https://github.com/xenosf/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/xenosf/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/xenosf/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/cheeggered/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/cheeggered/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/cheeggered/ip.git (master) completed! -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepos INFO: [233/478] Analyzing https://github.com/TehOPanas/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/TehOPanas/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/TehOPanas/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/xenosf/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/xenosf/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/xenosf/ip.git (master) completed! -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepos -INFO: [234/478] Analyzing https://github.com/richiehx/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/richiehx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/richiehx/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [234/478] Analyzing https://github.com/neyapraveen/ip.git (master)... +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/neyapraveen/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/neyapraveen/ip.git (master)... +Oct 18, 2023 1:16:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/TehOPanas/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/TehOPanas/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/TehOPanas/ip.git (master) completed! -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepos -INFO: [235/478] Analyzing https://github.com/neyapraveen/ip.git (master)... -Oct 17, 2023 1:16:56 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/neyapraveen/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/neyapraveen/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/richiehx/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/richiehx/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/richiehx/ip.git (master) completed! -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepos -INFO: [236/478] Analyzing https://github.com/AlyssaPng/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AlyssaPng/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AlyssaPng/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [235/478] Analyzing https://github.com/richiehx/ip.git (master)... +Oct 18, 2023 1:16:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/richiehx/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/richiehx/ip.git (master)... +Oct 18, 2023 1:16:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/neyapraveen/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/neyapraveen/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/neyapraveen/ip.git (master) completed! -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepos +INFO: [236/478] Analyzing https://github.com/AlyssaPng/ip.git (master)... +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AlyssaPng/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AlyssaPng/ip.git (master)... +Oct 18, 2023 1:16:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/richiehx/ip.git (master)... +Oct 18, 2023 1:16:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/richiehx/ip.git (master)... +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/richiehx/ip.git (master) completed! +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepos INFO: [237/478] Analyzing https://github.com/leezhengjing/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/leezhengjing/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/leezhengjing/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AlyssaPng/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AlyssaPng/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AlyssaPng/ip.git (master) completed! -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepos INFO: [238/478] Analyzing https://github.com/seantehds/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/seantehds/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/seantehds/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/leezhengjing/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/leezhengjing/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/leezhengjing/ip.git (master) completed! -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepos INFO: [239/478] Analyzing https://github.com/Singa-pirate/ip.git (master)... -Oct 17, 2023 1:16:57 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Singa-pirate/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Singa-pirate/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/seantehds/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Singa-pirate/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/seantehds/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Singa-pirate/ip.git (master)... +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/seantehds/ip.git (master) completed! -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepos -INFO: [240/478] Analyzing https://github.com/vansh284/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:33 AM reposense.report.ReportGenerator analyzeRepos +INFO: [240/478] Analyzing https://github.com/lihongguang00/ip.git (master)... +Oct 18, 2023 1:16:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Singa-pirate/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Singa-pirate/ip.git (master) completed! -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepos -INFO: [241/478] Analyzing https://github.com/songfangyl/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/songfangyl/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/songfangyl/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [241/478] Analyzing https://github.com/vansh284/ip.git (master)... +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/vansh284/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/vansh284/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lihongguang00/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lihongguang00/ip.git (master)... +Oct 18, 2023 1:16:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/vansh284/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/songfangyl/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/vansh284/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/vansh284/ip.git (master) completed! -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepos -INFO: [242/478] Analyzing https://github.com/lihongguang00/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/songfangyl/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/songfangyl/ip.git (master) completed! -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [242/478] Analyzing https://github.com/songfangyl/ip.git (master)... +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/songfangyl/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/songfangyl/ip.git (master)... +Oct 18, 2023 1:16:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lihongguang00/ip.git (master)... +Oct 18, 2023 1:16:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lihongguang00/ip.git (master)... +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lihongguang00/ip.git (master) completed! +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepos INFO: [243/478] Analyzing https://github.com/YeoBohShin/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/YeoBohShin/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/YeoBohShin/ip.git (master)... -Oct 17, 2023 1:16:58 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lihongguang00/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lihongguang00/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/songfangyl/ip.git (master)... +Oct 18, 2023 1:16:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/songfangyl/ip.git (master)... +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/songfangyl/ip.git (master) completed! +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [244/478] Analyzing https://github.com/shuenj/ip.git (master)... +Oct 18, 2023 1:16:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/shuenj/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/shuenj/ip.git (master)... +Oct 18, 2023 1:16:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/YeoBohShin/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/YeoBohShin/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/YeoBohShin/ip.git (master) completed! -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepos -INFO: [244/478] Analyzing https://github.com/lunaroddity/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lunaroddity/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lunaroddity/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lihongguang00/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lihongguang00/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lihongguang00/ip.git (master) completed! -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepos INFO: [245/478] Analyzing https://github.com/andrechuakj/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/andrechuakj/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/andrechuakj/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lunaroddity/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lunaroddity/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lunaroddity/ip.git (master) completed! -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepos -INFO: [246/478] Analyzing https://github.com/shuenj/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/shuenj/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/shuenj/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/shuenj/ip.git (master)... +Oct 18, 2023 1:16:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/shuenj/ip.git (master)... +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/shuenj/ip.git (master) completed! +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [246/478] Analyzing https://github.com/lunaroddity/ip.git (master)... +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lunaroddity/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lunaroddity/ip.git (master)... +Oct 18, 2023 1:16:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/andrechuakj/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/andrechuakj/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/andrechuakj/ip.git (master) completed! -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepos INFO: [247/478] Analyzing https://github.com/WeeMingQing/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/WeeMingQing/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/WeeMingQing/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/shuenj/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/shuenj/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/shuenj/ip.git (master) completed! -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepos -INFO: [248/478] Analyzing https://github.com/antonTan96/ip.git (master)... -Oct 17, 2023 1:16:59 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/antonTan96/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:16:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/antonTan96/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lunaroddity/ip.git (master)... +Oct 18, 2023 1:16:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lunaroddity/ip.git (master)... +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lunaroddity/ip.git (master) completed! +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [248/478] Analyzing https://github.com/aliciamichellew/ip.git (master)... +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/aliciamichellew/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/aliciamichellew/ip.git (master)... +Oct 18, 2023 1:16:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/WeeMingQing/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/WeeMingQing/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/WeeMingQing/ip.git (master) completed! -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepos -INFO: [249/478] Analyzing https://github.com/samuelmui8/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [249/478] Analyzing https://github.com/antonTan96/ip.git (master)... +Oct 18, 2023 1:16:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/antonTan96/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/antonTan96/ip.git (master)... +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/antonTan96/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/samuelmui8/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/samuelmui8/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/aliciamichellew/ip.git (master)... +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/antonTan96/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/antonTan96/ip.git (master) completed! -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepos -INFO: [250/478] Analyzing https://github.com/owenyeo/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [250/478] Analyzing https://github.com/samuelmui8/ip.git (master)... +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/aliciamichellew/ip.git (master)... +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/aliciamichellew/ip.git (master) completed! +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [251/478] Analyzing https://github.com/owenyeo/ip.git (master)... +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/samuelmui8/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/samuelmui8/ip.git (master)... +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/owenyeo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/owenyeo/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/samuelmui8/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/samuelmui8/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/samuelmui8/ip.git (master) completed! -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepos -INFO: [251/478] Analyzing https://github.com/aliciamichellew/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/aliciamichellew/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/aliciamichellew/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/owenyeo/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/owenyeo/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/owenyeo/ip.git (master) completed! -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepos INFO: [252/478] Analyzing https://github.com/gongg21/ip.git (master)... -Oct 17, 2023 1:17:00 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/gongg21/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/gongg21/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/owenyeo/ip.git (master)... +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/owenyeo/ip.git (master)... +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/owenyeo/ip.git (master) completed! +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [253/478] Analyzing https://github.com/erohsikivar/ip.git (master)... +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/erohsikivar/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/erohsikivar/ip.git (master)... +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/gongg21/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/aliciamichellew/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/gongg21/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/gongg21/ip.git (master) completed! -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepos -INFO: [253/478] Analyzing https://github.com/erohsikivar/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/aliciamichellew/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/aliciamichellew/ip.git (master) completed! -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator analyzeRepos INFO: [254/478] Analyzing https://github.com/nabonitasen/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/erohsikivar/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/erohsikivar/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:36 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/nabonitasen/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/nabonitasen/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/erohsikivar/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/erohsikivar/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/erohsikivar/ip.git (master) completed! -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepos INFO: [255/478] Analyzing https://github.com/pzl111/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/pzl111/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/pzl111/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/nabonitasen/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/nabonitasen/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/nabonitasen/ip.git (master) completed! -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepos INFO: [256/478] Analyzing https://github.com/teozern1/ip.git (master)... -Oct 17, 2023 1:17:01 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/teozern1/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/teozern1/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/pzl111/ip.git (master)... +Oct 18, 2023 1:16:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/pzl111/ip.git (master)... +Oct 18, 2023 1:16:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/teozern1/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/pzl111/ip.git (master) completed! +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [257/478] Analyzing https://github.com/Elijah5399/ip.git (master)... +Oct 18, 2023 1:16:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/teozern1/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/teozern1/ip.git (master) completed! -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepos -INFO: [257/478] Analyzing https://github.com/Elijah5399/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [258/478] Analyzing https://github.com/nicleongyj/ip.git (master)... +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Elijah5399/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Elijah5399/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/pzl111/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/pzl111/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/pzl111/ip.git (master) completed! -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepos -INFO: [258/478] Analyzing https://github.com/nicleongyj/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/nicleongyj/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/nicleongyj/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Elijah5399/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nicleongyj/ip.git (master)... +Oct 18, 2023 1:16:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Elijah5399/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Elijah5399/ip.git (master) completed! -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepos INFO: [259/478] Analyzing https://github.com/WinSheng1/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/WinSheng1/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/WinSheng1/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nicleongyj/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/nicleongyj/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/nicleongyj/ip.git (master) completed! -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/WinSheng1/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/WinSheng1/ip.git (master)... +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator analyzeRepos INFO: [260/478] Analyzing https://github.com/ryamgoh/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:37 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ryamgoh/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ryamgoh/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/WinSheng1/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/WinSheng1/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/WinSheng1/ip.git (master) completed! -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepos INFO: [261/478] Analyzing https://github.com/yucongkoo/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/yucongkoo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/yucongkoo/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ryamgoh/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ryamgoh/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ryamgoh/ip.git (master) completed! -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepos INFO: [262/478] Analyzing https://github.com/Chen-Kuei/ip.git (master)... -Oct 17, 2023 1:17:02 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Chen-Kuei/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Chen-Kuei/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Chen-Kuei/ip.git (master)... +Oct 18, 2023 1:16:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/yucongkoo/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Chen-Kuei/ip.git (master)... +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Chen-Kuei/ip.git (master) completed! +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [263/478] Analyzing https://github.com/conradsoon/ip.git (master)... +Oct 18, 2023 1:16:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/yucongkoo/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/yucongkoo/ip.git (master) completed! -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepos -INFO: [263/478] Analyzing https://github.com/conradsoon/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [264/478] Analyzing https://github.com/GSgiansen/ip.git (master)... +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/conradsoon/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/conradsoon/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Chen-Kuei/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Chen-Kuei/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Chen-Kuei/ip.git (master) completed! -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepos -INFO: [264/478] Analyzing https://github.com/GSgiansen/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/GSgiansen/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/GSgiansen/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/conradsoon/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/conradsoon/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/conradsoon/ip.git (master) completed! -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepos -INFO: [265/478] Analyzing https://github.com/et-irl/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/et-irl/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/et-irl/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [265/478] Analyzing https://github.com/marioalvaro/ip.git (master)... +Oct 18, 2023 1:16:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/marioalvaro/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/marioalvaro/ip.git (master)... +Oct 18, 2023 1:16:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/GSgiansen/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/GSgiansen/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/GSgiansen/ip.git (master) completed! -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepos -INFO: [266/478] Analyzing https://github.com/marioalvaro/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/marioalvaro/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/marioalvaro/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [266/478] Analyzing https://github.com/et-irl/ip.git (master)... +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/et-irl/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/et-irl/ip.git (master)... +Oct 18, 2023 1:16:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/marioalvaro/ip.git (master)... +Oct 18, 2023 1:16:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/et-irl/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/marioalvaro/ip.git (master)... +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/marioalvaro/ip.git (master) completed! +Oct 18, 2023 1:16:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/et-irl/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/et-irl/ip.git (master) completed! -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepos INFO: [267/478] Analyzing https://github.com/Seonlo99/ip.git (master)... -Oct 17, 2023 1:17:03 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/et-irl/ip.git (master) completed! +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [268/478] Analyzing https://github.com/joel-foo/ip.git (master)... +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Seonlo99/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Seonlo99/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/marioalvaro/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/marioalvaro/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/marioalvaro/ip.git (master) completed! -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepos -INFO: [268/478] Analyzing https://github.com/tim-pipi/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/joel-foo/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/joel-foo/ip.git (master)... +Oct 18, 2023 1:16:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Seonlo99/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tim-pipi/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tim-pipi/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Seonlo99/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Seonlo99/ip.git (master) completed! -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepos -INFO: [269/478] Analyzing https://github.com/joel-foo/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/joel-foo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/joel-foo/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tim-pipi/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tim-pipi/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tim-pipi/ip.git (master) completed! -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepos -INFO: [270/478] Analyzing https://github.com/marcellaantania/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/marcellaantania/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/marcellaantania/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [269/478] Analyzing https://github.com/tim-pipi/ip.git (master)... +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tim-pipi/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tim-pipi/ip.git (master)... +Oct 18, 2023 1:16:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/joel-foo/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/joel-foo/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/joel-foo/ip.git (master) completed! -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [270/478] Analyzing https://github.com/marcellaantania/ip.git (master)... +Oct 18, 2023 1:16:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/marcellaantania/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/marcellaantania/ip.git (master)... +Oct 18, 2023 1:16:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tim-pipi/ip.git (master)... +Oct 18, 2023 1:16:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tim-pipi/ip.git (master)... +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tim-pipi/ip.git (master) completed! +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepos INFO: [271/478] Analyzing https://github.com/brendanneojw/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/brendanneojw/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/brendanneojw/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/marcellaantania/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/marcellaantania/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/marcellaantania/ip.git (master) completed! -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepos INFO: [272/478] Analyzing https://github.com/li-rongzhi/ip.git (master)... -Oct 17, 2023 1:17:04 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/li-rongzhi/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/li-rongzhi/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/brendanneojw/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/brendanneojw/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/brendanneojw/ip.git (master) completed! -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepos -INFO: [273/478] Analyzing https://github.com/KamiliArsyad/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [273/478] Analyzing https://github.com/seraphimstreets/ip.git (master)... +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/seraphimstreets/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/seraphimstreets/ip.git (master)... +Oct 18, 2023 1:16:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/seraphimstreets/ip.git (master)... +Oct 18, 2023 1:16:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/seraphimstreets/ip.git (master)... +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/seraphimstreets/ip.git (master) completed! +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [274/478] Analyzing https://github.com/KamiliArsyad/ip.git (master)... +Oct 18, 2023 1:16:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/li-rongzhi/ip.git (master)... +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/KamiliArsyad/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/KamiliArsyad/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/li-rongzhi/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/KamiliArsyad/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/li-rongzhi/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/KamiliArsyad/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/li-rongzhi/ip.git (master) completed! -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/KamiliArsyad/ip.git (master) completed! -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepos -INFO: [274/478] Analyzing https://github.com/seraphimstreets/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator analyzeRepos INFO: [275/478] Analyzing https://github.com/trgao/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/seraphimstreets/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/seraphimstreets/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:40 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/trgao/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/trgao/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/trgao/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/seraphimstreets/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/trgao/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/trgao/ip.git (master) completed! -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepos INFO: [276/478] Analyzing https://github.com/lilozz2/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/seraphimstreets/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/seraphimstreets/ip.git (master) completed! -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/lilozz2/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/lilozz2/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/KamiliArsyad/ip.git (master)... +Oct 18, 2023 1:16:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/KamiliArsyad/ip.git (master)... +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/KamiliArsyad/ip.git (master) completed! +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepos INFO: [277/478] Analyzing https://github.com/jean-cq/ip.git (master)... -Oct 17, 2023 1:17:05 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jean-cq/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jean-cq/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jean-cq/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lilozz2/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jean-cq/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jean-cq/ip.git (master) completed! -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepos -INFO: [278/478] Analyzing https://github.com/jedkohjk/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jean-cq/ip.git (master)... +Oct 18, 2023 1:16:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lilozz2/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lilozz2/ip.git (master) completed! -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jean-cq/ip.git (master)... +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepos +INFO: [278/478] Analyzing https://github.com/jedkohjk/ip.git (master)... +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jean-cq/ip.git (master) completed! +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepos INFO: [279/478] Analyzing https://github.com/yytan25/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jedkohjk/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jedkohjk/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/yytan25/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/yytan25/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/yytan25/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/yytan25/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/yytan25/ip.git (master) completed! -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:41 AM reposense.report.ReportGenerator analyzeRepos INFO: [280/478] Analyzing https://github.com/ryantzr1/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ryantzr1/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ryantzr1/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jedkohjk/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jedkohjk/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jedkohjk/ip.git (master) completed! -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepos INFO: [281/478] Analyzing https://github.com/TohLiYuan/ip.git (master)... -Oct 17, 2023 1:17:06 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/TohLiYuan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/TohLiYuan/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ryantzr1/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ryantzr1/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ryantzr1/ip.git (master) completed! -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepos -INFO: [282/478] Analyzing https://github.com/maypfv/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/maypfv/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/maypfv/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [282/478] Analyzing https://github.com/JizhuoChen/ip.git (master)... +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/JizhuoChen/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/JizhuoChen/ip.git (master)... +Oct 18, 2023 1:16:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/TohLiYuan/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/TohLiYuan/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/TohLiYuan/ip.git (master) completed! -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepos -INFO: [283/478] Analyzing https://github.com/JizhuoChen/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/JizhuoChen/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/JizhuoChen/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/maypfv/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/maypfv/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/maypfv/ip.git (master) completed! -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepos -INFO: [284/478] Analyzing https://github.com/ChongWeiJie29/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ChongWeiJie29/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ChongWeiJie29/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [283/478] Analyzing https://github.com/maypfv/ip.git (master)... +Oct 18, 2023 1:16:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/JizhuoChen/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/maypfv/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/maypfv/ip.git (master)... +Oct 18, 2023 1:16:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/JizhuoChen/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/JizhuoChen/ip.git (master) completed! -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepos -INFO: [285/478] Analyzing https://github.com/Goh-Li-Ting/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Goh-Li-Ting/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Goh-Li-Ting/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [284/478] Analyzing https://github.com/ChongWeiJie29/ip.git (master)... +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ChongWeiJie29/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ChongWeiJie29/ip.git (master)... +Oct 18, 2023 1:16:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ChongWeiJie29/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ChongWeiJie29/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ChongWeiJie29/ip.git (master) completed! -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepos -INFO: [286/478] Analyzing https://github.com/kristayeo/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kristayeo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kristayeo/ip.git (master)... -Oct 17, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [285/478] Analyzing https://github.com/Goh-Li-Ting/ip.git (master)... +Oct 18, 2023 1:16:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Goh-Li-Ting/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Goh-Li-Ting/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/maypfv/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/maypfv/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/maypfv/ip.git (master) completed! +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [286/478] Analyzing https://github.com/derekjxtan/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/derekjxtan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/derekjxtan/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Goh-Li-Ting/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Goh-Li-Ting/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Goh-Li-Ting/ip.git (master) completed! -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepos -INFO: [287/478] Analyzing https://github.com/derekjxtan/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/derekjxtan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/derekjxtan/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kristayeo/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kristayeo/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kristayeo/ip.git (master) completed! -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepos -INFO: [288/478] Analyzing https://github.com/alyssaongyx/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/alyssaongyx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/alyssaongyx/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [287/478] Analyzing https://github.com/kristayeo/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kristayeo/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kristayeo/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/derekjxtan/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/derekjxtan/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/derekjxtan/ip.git (master) completed! -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [288/478] Analyzing https://github.com/shashahchk/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/shashahchk/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/shashahchk/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kristayeo/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kristayeo/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kristayeo/ip.git (master) completed! +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepos INFO: [289/478] Analyzing https://github.com/Chandan8186/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Chandan8186/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Chandan8186/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/alyssaongyx/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/alyssaongyx/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/alyssaongyx/ip.git (master) completed! -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepos -INFO: [290/478] Analyzing https://github.com/shashahchk/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/shashahchk/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/shashahchk/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/shashahchk/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/shashahchk/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/shashahchk/ip.git (master) completed! +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [290/478] Analyzing https://github.com/alyssaongyx/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/alyssaongyx/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/alyssaongyx/ip.git (master)... +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Chandan8186/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Chandan8186/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Chandan8186/ip.git (master) completed! -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepos INFO: [291/478] Analyzing https://github.com/AndrewJanong/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AndrewJanong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AndrewJanong/ip.git (master)... -Oct 17, 2023 1:17:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/shashahchk/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/shashahchk/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/shashahchk/ip.git (master) completed! -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepos -INFO: [292/478] Analyzing https://github.com/laurenlim2112/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/laurenlim2112/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/laurenlim2112/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/alyssaongyx/ip.git (master)... +Oct 18, 2023 1:16:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AndrewJanong/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/alyssaongyx/ip.git (master)... +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/alyssaongyx/ip.git (master) completed! +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [292/478] Analyzing https://github.com/Kailash201/ip.git (master)... +Oct 18, 2023 1:16:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AndrewJanong/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AndrewJanong/ip.git (master) completed! -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepos -INFO: [293/478] Analyzing https://github.com/Kailash201/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [293/478] Analyzing https://github.com/lambraydon/ip.git (master)... +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Kailash201/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Kailash201/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/laurenlim2112/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/laurenlim2112/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/laurenlim2112/ip.git (master) completed! -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepos -INFO: [294/478] Analyzing https://github.com/lambraydon/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/lambraydon/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/lambraydon/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lambraydon/ip.git (master)... +Oct 18, 2023 1:16:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lambraydon/ip.git (master)... +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lambraydon/ip.git (master) completed! +Oct 18, 2023 1:16:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Kailash201/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [294/478] Analyzing https://github.com/laurenlim2112/ip.git (master)... +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/laurenlim2112/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/laurenlim2112/ip.git (master)... +Oct 18, 2023 1:16:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Kailash201/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Kailash201/ip.git (master) completed! -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator analyzeRepos INFO: [295/478] Analyzing https://github.com/chonguschonguschongus/ip.git (master)... -Oct 17, 2023 1:17:09 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:44 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/chonguschonguschongus/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/chonguschonguschongus/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lambraydon/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lambraydon/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lambraydon/ip.git (master) completed! -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepos -INFO: [296/478] Analyzing https://github.com/lshaoqin/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lshaoqin/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lshaoqin/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/laurenlim2112/ip.git (master)... +Oct 18, 2023 1:16:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/chonguschonguschongus/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lshaoqin/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/laurenlim2112/ip.git (master)... +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/laurenlim2112/ip.git (master) completed! +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [296/478] Analyzing https://github.com/sk2001git/ip.git (master)... +Oct 18, 2023 1:16:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/chonguschonguschongus/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/chonguschonguschongus/ip.git (master) completed! -Oct 17, 2023 1:17:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lshaoqin/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepos INFO: [297/478] Analyzing https://github.com/peasantbird/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lshaoqin/ip.git (master) completed! -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepos -INFO: [298/478] Analyzing https://github.com/sk2001git/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/peasantbird/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/peasantbird/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/sk2001git/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/sk2001git/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/peasantbird/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/peasantbird/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/peasantbird/ip.git (master) completed! -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepos -INFO: [299/478] Analyzing https://github.com/WangCheng0116/ip.git (master)... -Oct 17, 2023 1:17:10 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/WangCheng0116/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/WangCheng0116/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [298/478] Analyzing https://github.com/lshaoqin/ip.git (master)... +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lshaoqin/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lshaoqin/ip.git (master)... +Oct 18, 2023 1:16:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/sk2001git/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lshaoqin/ip.git (master)... +Oct 18, 2023 1:16:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/sk2001git/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lshaoqin/ip.git (master)... +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lshaoqin/ip.git (master) completed! +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/sk2001git/ip.git (master) completed! -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepos -INFO: [300/478] Analyzing https://github.com/chewjh1234/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [299/478] Analyzing https://github.com/WangCheng0116/ip.git (master)... +Oct 18, 2023 1:16:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [300/478] Analyzing https://github.com/elaineshijie/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/elaineshijie/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/elaineshijie/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/WangCheng0116/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/WangCheng0116/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/elaineshijie/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/elaineshijie/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/elaineshijie/ip.git (master) completed! +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [301/478] Analyzing https://github.com/chewjh1234/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/WangCheng0116/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/chewjh1234/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/chewjh1234/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/WangCheng0116/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/WangCheng0116/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/WangCheng0116/ip.git (master) completed! -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepos -INFO: [301/478] Analyzing https://github.com/elaineshijie/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/elaineshijie/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/elaineshijie/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/chewjh1234/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/chewjh1234/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/chewjh1234/ip.git (master) completed! -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepos INFO: [302/478] Analyzing https://github.com/lynnlow175/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/lynnlow175/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/lynnlow175/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/elaineshijie/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/elaineshijie/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/elaineshijie/ip.git (master) completed! -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepos -INFO: [303/478] Analyzing https://github.com/lordidiot/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lordidiot/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lordidiot/ip.git (master)... -Oct 17, 2023 1:17:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lynnlow175/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/chewjh1234/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lynnlow175/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lynnlow175/ip.git (master) completed! -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepos -INFO: [304/478] Analyzing https://github.com/chew01/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/chew01/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/chew01/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [303/478] Analyzing https://github.com/teozhengyang/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/chewjh1234/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/chewjh1234/ip.git (master) completed! +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [304/478] Analyzing https://github.com/lordidiot/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lordidiot/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lordidiot/ip.git (master)... +Oct 18, 2023 1:16:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/teozhengyang/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/teozhengyang/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lordidiot/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lordidiot/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lordidiot/ip.git (master) completed! -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepos -INFO: [305/478] Analyzing https://github.com/teozhengyang/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/teozhengyang/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/teozhengyang/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/chew01/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/chew01/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/chew01/ip.git (master) completed! -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepos +INFO: [305/478] Analyzing https://github.com/chew01/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/chew01/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/chew01/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/teozhengyang/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/teozhengyang/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/teozhengyang/ip.git (master) completed! +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepos INFO: [306/478] Analyzing https://github.com/RSXIX/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/chew01/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/RSXIX/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/RSXIX/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/RSXIX/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/teozhengyang/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/RSXIX/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/RSXIX/ip.git (master) completed! -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/chew01/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/chew01/ip.git (master) completed! +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepos INFO: [307/478] Analyzing https://github.com/juliusgambe/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/juliusgambe/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/juliusgambe/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/teozhengyang/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/teozhengyang/ip.git (master) completed! -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepos -INFO: [308/478] Analyzing https://github.com/WZWren/ip.git (master)... -Oct 17, 2023 1:17:12 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/WZWren/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/WZWren/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/RSXIX/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/RSXIX/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/RSXIX/ip.git (master) completed! +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepos +INFO: [308/478] Analyzing https://github.com/zhonghan721/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/zhonghan721/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/zhonghan721/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/juliusgambe/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/juliusgambe/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/juliusgambe/ip.git (master) completed! -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepos -INFO: [309/478] Analyzing https://github.com/zhonghan721/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/WZWren/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/zhonghan721/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/zhonghan721/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/WZWren/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/WZWren/ip.git (master) completed! -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepos -INFO: [310/478] Analyzing https://github.com/inezkok/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/inezkok/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/inezkok/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator analyzeRepos +INFO: [309/478] Analyzing https://github.com/WZWren/ip.git (master)... +Oct 18, 2023 1:16:47 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/WZWren/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/WZWren/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/zhonghan721/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/zhonghan721/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/zhonghan721/ip.git (master) completed! -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepos -INFO: [311/478] Analyzing https://github.com/jinyang628/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jinyang628/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jinyang628/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [310/478] Analyzing https://github.com/inezkok/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/inezkok/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/inezkok/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/WZWren/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/WZWren/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/WZWren/ip.git (master) completed! +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [311/478] Analyzing https://github.com/wasjoe1/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wasjoe1/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wasjoe1/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/inezkok/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/inezkok/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/inezkok/ip.git (master) completed! -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepos -INFO: [312/478] Analyzing https://github.com/wasjoe1/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wasjoe1/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wasjoe1/ip.git (master)... -Oct 17, 2023 1:17:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jinyang628/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jinyang628/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jinyang628/ip.git (master) completed! -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepos -INFO: [313/478] Analyzing https://github.com/nananakx-x/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nananakx-x/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nananakx-x/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [312/478] Analyzing https://github.com/kokrui/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kokrui/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kokrui/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wasjoe1/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wasjoe1/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wasjoe1/ip.git (master) completed! -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepos -INFO: [314/478] Analyzing https://github.com/kokrui/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kokrui/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kokrui/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nananakx-x/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nananakx-x/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nananakx-x/ip.git (master) completed! -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepos -INFO: [315/478] Analyzing https://github.com/timetraveller-123/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/timetraveller-123/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/timetraveller-123/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [313/478] Analyzing https://github.com/jinyang628/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jinyang628/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jinyang628/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/kokrui/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/kokrui/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/kokrui/ip.git (master) completed! -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepos -INFO: [316/478] Analyzing https://github.com/AnnabelTing/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/timetraveller-123/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [314/478] Analyzing https://github.com/nananakx-x/ip.git (master)... +Oct 18, 2023 1:16:48 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nananakx-x/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nananakx-x/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jinyang628/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jinyang628/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jinyang628/ip.git (master) completed! +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [315/478] Analyzing https://github.com/AnnabelTing/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AnnabelTing/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AnnabelTing/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/timetraveller-123/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/timetraveller-123/ip.git (master) completed! -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepos -INFO: [317/478] Analyzing https://github.com/Jweng88/ip.git (master)... -Oct 17, 2023 1:17:14 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Jweng88/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Jweng88/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nananakx-x/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nananakx-x/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nananakx-x/ip.git (master) completed! +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [316/478] Analyzing https://github.com/timetraveller-123/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/timetraveller-123/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/timetraveller-123/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AnnabelTing/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AnnabelTing/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AnnabelTing/ip.git (master) completed! -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepos -INFO: [318/478] Analyzing https://github.com/EricXiong420/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Jweng88/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/EricXiong420/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/EricXiong420/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Jweng88/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Jweng88/ip.git (master) completed! -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepos -INFO: [319/478] Analyzing https://github.com/ylyma/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [317/478] Analyzing https://github.com/ylyma/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ylyma/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ylyma/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/timetraveller-123/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/timetraveller-123/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/timetraveller-123/ip.git (master) completed! +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [318/478] Analyzing https://github.com/Jweng88/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Jweng88/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Jweng88/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ylyma/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ylyma/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ylyma/ip.git (master) completed! -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepos -INFO: [320/478] Analyzing https://github.com/jovkusuma/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [319/478] Analyzing https://github.com/jovkusuma/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jovkusuma/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jovkusuma/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/EricXiong420/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/EricXiong420/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/EricXiong420/ip.git (master) completed! -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepos -INFO: [321/478] Analyzing https://github.com/bhnuka/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/bhnuka/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/bhnuka/ip.git (master)... -Oct 17, 2023 1:17:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Jweng88/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Jweng88/ip.git (master)... +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Jweng88/ip.git (master) completed! +Oct 18, 2023 1:16:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [320/478] Analyzing https://github.com/EricXiong420/ip.git (master)... +Oct 18, 2023 1:16:50 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/EricXiong420/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/EricXiong420/ip.git (master)... +Oct 18, 2023 1:16:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jovkusuma/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jovkusuma/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jovkusuma/ip.git (master) completed! -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepos -INFO: [322/478] Analyzing https://github.com/J-hta-n/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/J-hta-n/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/J-hta-n/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepos +INFO: [321/478] Analyzing https://github.com/bhnuka/ip.git (master)... +Oct 18, 2023 1:16:50 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/bhnuka/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/bhnuka/ip.git (master)... +Oct 18, 2023 1:16:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/bhnuka/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/bhnuka/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/bhnuka/ip.git (master) completed! -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepos +INFO: [322/478] Analyzing https://github.com/J-hta-n/ip.git (master)... +Oct 18, 2023 1:16:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/EricXiong420/ip.git (master)... +Oct 18, 2023 1:16:50 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/J-hta-n/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/J-hta-n/ip.git (master)... +Oct 18, 2023 1:16:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/EricXiong420/ip.git (master)... +Oct 18, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/EricXiong420/ip.git (master) completed! +Oct 18, 2023 1:16:50 AM reposense.report.ReportGenerator analyzeRepos INFO: [323/478] Analyzing https://github.com/Tim-Siu/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/J-hta-n/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:50 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Tim-Siu/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Tim-Siu/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/J-hta-n/ip.git (master)... +Oct 18, 2023 1:16:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/J-hta-n/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/J-hta-n/ip.git (master) completed! -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepos INFO: [324/478] Analyzing https://github.com/yarnmengnus/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/yarnmengnus/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/yarnmengnus/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Tim-Siu/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yarnmengnus/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Tim-Siu/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Tim-Siu/ip.git (master) completed! -Oct 17, 2023 1:17:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [325/478] Analyzing https://github.com/ngeeyonglim/ip.git (master)... +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ngeeyonglim/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ngeeyonglim/ip.git (master)... +Oct 18, 2023 1:16:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yarnmengnus/ip.git (master)... +Oct 18, 2023 1:16:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/yarnmengnus/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepos -INFO: [325/478] Analyzing https://github.com/sopa301/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/yarnmengnus/ip.git (master) completed! -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepos -INFO: [326/478] Analyzing https://github.com/ngeeyonglim/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [326/478] Analyzing https://github.com/sopa301/ip.git (master)... +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/sopa301/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/sopa301/ip.git (master)... -Oct 17, 2023 1:17:16 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ngeeyonglim/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ngeeyonglim/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ngeeyonglim/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/sopa301/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ngeeyonglim/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/sopa301/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ngeeyonglim/ip.git (master) completed! -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepos -INFO: [327/478] Analyzing https://github.com/javinchua/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [327/478] Analyzing https://github.com/ItsTYtan/ip.git (master)... +Oct 18, 2023 1:16:51 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ItsTYtan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ItsTYtan/ip.git (master)... +Oct 18, 2023 1:16:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/sopa301/ip.git (master)... +Oct 18, 2023 1:16:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/sopa301/ip.git (master)... +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/sopa301/ip.git (master) completed! -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepos -INFO: [328/478] Analyzing https://github.com/ItsTYtan/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [328/478] Analyzing https://github.com/javinchua/ip.git (master)... +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/javinchua/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/javinchua/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ItsTYtan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ItsTYtan/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ItsTYtan/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ItsTYtan/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ItsTYtan/ip.git (master) completed! -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepos -INFO: [329/478] Analyzing https://github.com/amosting/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [329/478] Analyzing https://github.com/LicongHuang/ip.git (master)... +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LicongHuang/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LicongHuang/ip.git (master)... +Oct 18, 2023 1:16:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LicongHuang/ip.git (master)... +Oct 18, 2023 1:16:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LicongHuang/ip.git (master)... +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LicongHuang/ip.git (master) completed! +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [330/478] Analyzing https://github.com/amosting/ip.git (master)... +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/amosting/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/amosting/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/javinchua/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/javinchua/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/javinchua/ip.git (master) completed! -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepos -INFO: [330/478] Analyzing https://github.com/Cleon2/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [331/478] Analyzing https://github.com/Cleon2/ip.git (master)... +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Cleon2/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Cleon2/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/amosting/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/amosting/ip.git (master)... -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/amosting/ip.git (master) completed! -Oct 17, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepos -INFO: [331/478] Analyzing https://github.com/ketweeen/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [332/478] Analyzing https://github.com/ketweeen/ip.git (master)... +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ketweeen/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ketweeen/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Cleon2/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Cleon2/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ketweeen/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Cleon2/ip.git (master) completed! -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepos -INFO: [332/478] Analyzing https://github.com/sudarshan2401/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [333/478] Analyzing https://github.com/wui-hong/ip.git (master)... +Oct 18, 2023 1:16:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wui-hong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wui-hong/ip.git (master)... +Oct 18, 2023 1:16:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ketweeen/ip.git (master)... +Oct 18, 2023 1:16:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ketweeen/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ketweeen/ip.git (master) completed! -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepos -INFO: [333/478] Analyzing https://github.com/wui-hong/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [334/478] Analyzing https://github.com/sudarshan2401/ip.git (master)... +Oct 18, 2023 1:16:53 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/sudarshan2401/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/sudarshan2401/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wui-hong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wui-hong/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wui-hong/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wui-hong/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wui-hong/ip.git (master) completed! -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepos -INFO: [334/478] Analyzing https://github.com/Respirayson/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Respirayson/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Respirayson/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [335/478] Analyzing https://github.com/flexibo/ip.git (master)... +Oct 18, 2023 1:16:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/flexibo/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/flexibo/ip.git (master)... +Oct 18, 2023 1:16:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/sudarshan2401/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/sudarshan2401/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/sudarshan2401/ip.git (master) completed! -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepos -INFO: [335/478] Analyzing https://github.com/LicongHuang/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LicongHuang/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LicongHuang/ip.git (master)... -Oct 17, 2023 1:17:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LicongHuang/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LicongHuang/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [336/478] Analyzing https://github.com/Respirayson/ip.git (master)... +Oct 18, 2023 1:16:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Respirayson/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Respirayson/ip.git (master)... +Oct 18, 2023 1:16:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/flexibo/ip.git (master)... +Oct 18, 2023 1:16:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Respirayson/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LicongHuang/ip.git (master) completed! -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepos -INFO: [336/478] Analyzing https://github.com/shishirbychapur/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Respirayson/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/shishirbychapur/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/shishirbychapur/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/flexibo/ip.git (master)... +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Respirayson/ip.git (master) completed! -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepos -INFO: [337/478] Analyzing https://github.com/flexibo/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/flexibo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/flexibo/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/shishirbychapur/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/shishirbychapur/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/shishirbychapur/ip.git (master) completed! -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepos -INFO: [338/478] Analyzing https://github.com/sunzihan23/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/flexibo/ip.git (master) completed! +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [337/478] Analyzing https://github.com/sunzihan23/ip.git (master)... +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [338/478] Analyzing https://github.com/shishirbychapur/ip.git (master)... +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/sunzihan23/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/sunzihan23/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/flexibo/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/flexibo/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/flexibo/ip.git (master) completed! -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepos -INFO: [339/478] Analyzing https://github.com/Chrainx/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/shishirbychapur/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/shishirbychapur/ip.git (master)... +Oct 18, 2023 1:16:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/sunzihan23/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/sunzihan23/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/sunzihan23/ip.git (master) completed! -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepos -INFO: [340/478] Analyzing https://github.com/wj331/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Chrainx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Chrainx/ip.git (master)... -Oct 17, 2023 1:17:19 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [339/478] Analyzing https://github.com/wj331/ip.git (master)... +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/wj331/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/wj331/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Chrainx/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Chrainx/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Chrainx/ip.git (master) completed! -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepos -INFO: [341/478] Analyzing https://github.com/tjch-o/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/shishirbychapur/ip.git (master)... +Oct 18, 2023 1:16:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/shishirbychapur/ip.git (master)... +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/shishirbychapur/ip.git (master) completed! +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [340/478] Analyzing https://github.com/Chrainx/ip.git (master)... +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Chrainx/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Chrainx/ip.git (master)... +Oct 18, 2023 1:16:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wj331/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tjch-o/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tjch-o/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wj331/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wj331/ip.git (master) completed! -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepos -INFO: [342/478] Analyzing https://github.com/licongshen12/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [341/478] Analyzing https://github.com/licongshen12/ip.git (master)... +Oct 18, 2023 1:16:54 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/licongshen12/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/licongshen12/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Chrainx/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Chrainx/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Chrainx/ip.git (master) completed! +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [342/478] Analyzing https://github.com/tjch-o/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tjch-o/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tjch-o/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/licongshen12/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tjch-o/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/licongshen12/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/licongshen12/ip.git (master) completed! -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepos -INFO: [343/478] Analyzing https://github.com/ong-wei-hong/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [343/478] Analyzing https://github.com/mamayuan/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/mamayuan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/mamayuan/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tjch-o/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tjch-o/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tjch-o/ip.git (master) completed! -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepos -INFO: [344/478] Analyzing https://github.com/mamayuan/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [344/478] Analyzing https://github.com/ong-wei-hong/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ong-wei-hong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ong-wei-hong/ip.git (master)... -Oct 17, 2023 1:17:20 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/mamayuan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/mamayuan/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ong-wei-hong/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ong-wei-hong/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ong-wei-hong/ip.git (master) completed! -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepos -INFO: [345/478] Analyzing https://github.com/tanboonkhong/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/mamayuan/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tanboonkhong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tanboonkhong/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/mamayuan/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/mamayuan/ip.git (master) completed! -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepos -INFO: [346/478] Analyzing https://github.com/cbj252/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/cbj252/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/cbj252/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [345/478] Analyzing https://github.com/tanboonkhong/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tanboonkhong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tanboonkhong/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ong-wei-hong/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ong-wei-hong/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ong-wei-hong/ip.git (master) completed! +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [346/478] Analyzing https://github.com/AlfredBeNoel/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AlfredBeNoel/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AlfredBeNoel/ip.git (master)... +Oct 18, 2023 1:16:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tanboonkhong/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tanboonkhong/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tanboonkhong/ip.git (master) completed! -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepos -INFO: [347/478] Analyzing https://github.com/AlfredBeNoel/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AlfredBeNoel/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AlfredBeNoel/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/cbj252/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/cbj252/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/cbj252/ip.git (master) completed! -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepos -INFO: [348/478] Analyzing https://github.com/keaganpzh/ip.git (master)... -Oct 17, 2023 1:17:21 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/keaganpzh/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/keaganpzh/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [347/478] Analyzing https://github.com/ElginTZM/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ElginTZM/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ElginTZM/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AlfredBeNoel/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AlfredBeNoel/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AlfredBeNoel/ip.git (master) completed! -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepos -INFO: [349/478] Analyzing https://github.com/ElginTZM/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ElginTZM/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ElginTZM/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/keaganpzh/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/keaganpzh/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/keaganpzh/ip.git (master) completed! -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepos -INFO: [350/478] Analyzing https://github.com/LimJH2002/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LimJH2002/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LimJH2002/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [348/478] Analyzing https://github.com/keaganpzh/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ElginTZM/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/keaganpzh/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/keaganpzh/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ElginTZM/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ElginTZM/ip.git (master) completed! -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepos -INFO: [351/478] Analyzing https://github.com/cmHuang777/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [349/478] Analyzing https://github.com/cbj252/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/cbj252/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/cbj252/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/cbj252/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/cbj252/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/cbj252/ip.git (master) completed! +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [350/478] Analyzing https://github.com/cmHuang777/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/cmHuang777/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/cmHuang777/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LimJH2002/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LimJH2002/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LimJH2002/ip.git (master) completed! -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepos -INFO: [352/478] Analyzing https://github.com/xxiaoweii/ip.git (master)... -Oct 17, 2023 1:17:22 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/keaganpzh/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/keaganpzh/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/keaganpzh/ip.git (master) completed! +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [351/478] Analyzing https://github.com/xxiaoweii/ip.git (master)... +Oct 18, 2023 1:16:56 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/xxiaoweii/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/xxiaoweii/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/cmHuang777/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/cmHuang777/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/cmHuang777/ip.git (master) completed! -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepos -INFO: [353/478] Analyzing https://github.com/rayyan35p/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [352/478] Analyzing https://github.com/LimJH2002/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LimJH2002/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LimJH2002/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/xxiaoweii/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/xxiaoweii/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/xxiaoweii/ip.git (master) completed! +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [353/478] Analyzing https://github.com/WeeeHung/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/WeeeHung/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/WeeeHung/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LimJH2002/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/WeeeHung/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/WeeeHung/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/WeeeHung/ip.git (master) completed! +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [354/478] Analyzing https://github.com/rayyan35p/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LimJH2002/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LimJH2002/ip.git (master) completed! +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [355/478] Analyzing https://github.com/dhruvir29/ip.git (master)... +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/rayyan35p/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/rayyan35p/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/xxiaoweii/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/xxiaoweii/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/xxiaoweii/ip.git (master) completed! -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepos -INFO: [354/478] Analyzing https://github.com/dhruvir29/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:57 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/dhruvir29/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/dhruvir29/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/rayyan35p/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/rayyan35p/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/rayyan35p/ip.git (master) completed! -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepos -INFO: [355/478] Analyzing https://github.com/LinWanLeii/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LinWanLeii/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LinWanLeii/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/dhruvir29/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/dhruvir29/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/dhruvir29/ip.git (master) completed! -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepos -INFO: [356/478] Analyzing https://github.com/Song-Mengfei/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/rayyan35p/ip.git (master)... +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [356/478] Analyzing https://github.com/LinWanLeii/ip.git (master)... +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LinWanLeii/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LinWanLeii/ip.git (master)... +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/rayyan35p/ip.git (master)... +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/rayyan35p/ip.git (master) completed! +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [357/478] Analyzing https://github.com/Song-Mengfei/ip.git (master)... +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Song-Mengfei/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Song-Mengfei/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/LinWanLeii/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Song-Mengfei/ip.git (master)... +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/LinWanLeii/ip.git (master)... -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/LinWanLeii/ip.git (master) completed! -Oct 17, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepos -INFO: [357/478] Analyzing https://github.com/WeeeHung/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Song-Mengfei/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [358/478] Analyzing https://github.com/jinyuan0425/ip.git (master)... +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Song-Mengfei/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Song-Mengfei/ip.git (master) completed! -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepos -INFO: [358/478] Analyzing https://github.com/tiif/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/WeeeHung/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/WeeeHung/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [359/478] Analyzing https://github.com/tiif/ip.git (master)... +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jinyuan0425/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jinyuan0425/ip.git (master)... +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/tiif/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/tiif/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tiif/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tiif/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tiif/ip.git (master) completed! -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepos -INFO: [359/478] Analyzing https://github.com/jinyuan0425/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jinyuan0425/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jinyuan0425/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/WeeeHung/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/WeeeHung/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/WeeeHung/ip.git (master) completed! -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepos INFO: [360/478] Analyzing https://github.com/nicholascher/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/nicholascher/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/nicholascher/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jinyuan0425/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jinyuan0425/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jinyuan0425/ip.git (master) completed! -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator analyzeRepos INFO: [361/478] Analyzing https://github.com/hcs1203/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:58 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/hcs1203/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/hcs1203/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/hcs1203/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/hcs1203/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/hcs1203/ip.git (master) completed! -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepos INFO: [362/478] Analyzing https://github.com/papataco14/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nicholascher/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/papataco14/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:16:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/papataco14/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nicholascher/ip.git (master)... +Oct 18, 2023 1:16:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/nicholascher/ip.git (master)... -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/nicholascher/ip.git (master) completed! -Oct 17, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepos -INFO: [363/478] Analyzing https://github.com/KamJiaYue/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/KamJiaYue/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/KamJiaYue/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [363/478] Analyzing https://github.com/NereusWB922/ip.git (master)... +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/NereusWB922/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/NereusWB922/ip.git (master)... +Oct 18, 2023 1:16:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/papataco14/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/papataco14/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/papataco14/ip.git (master) completed! -Oct 17, 2023 1:17:25 AM reposense.report.ReportGenerator analyzeRepos -INFO: [364/478] Analyzing https://github.com/NereusWB922/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/NereusWB922/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/NereusWB922/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/KamJiaYue/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/KamJiaYue/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/KamJiaYue/ip.git (master) completed! -Oct 17, 2023 1:17:25 AM reposense.report.ReportGenerator analyzeRepos -INFO: [365/478] Analyzing https://github.com/PohSayKeong/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/PohSayKeong/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/PohSayKeong/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [364/478] Analyzing https://github.com/KamJiaYue/ip.git (master)... +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/KamJiaYue/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/KamJiaYue/ip.git (master)... +Oct 18, 2023 1:16:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/NereusWB922/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:16:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/NereusWB922/ip.git (master)... -Oct 17, 2023 1:17:25 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/NereusWB922/ip.git (master) completed! -Oct 17, 2023 1:17:25 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [365/478] Analyzing https://github.com/PohSayKeong/ip.git (master)... +Oct 18, 2023 1:16:59 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/PohSayKeong/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:16:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/PohSayKeong/ip.git (master)... +Oct 18, 2023 1:16:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/KamJiaYue/ip.git (master)... +Oct 18, 2023 1:17:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/KamJiaYue/ip.git (master)... +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/KamJiaYue/ip.git (master) completed! +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepos INFO: [366/478] Analyzing https://github.com/ivyy-poison/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ivyy-poison/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ivyy-poison/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/PohSayKeong/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/PohSayKeong/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/PohSayKeong/ip.git (master) completed! -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepos INFO: [367/478] Analyzing https://github.com/jacobcuison/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jacobcuison/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jacobcuison/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ivyy-poison/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ivyy-poison/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ivyy-poison/ip.git (master) completed! -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator analyzeRepos -INFO: [368/478] Analyzing https://github.com/rocketninja7/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/rocketninja7/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/rocketninja7/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [368/478] Analyzing https://github.com/ji-just-ji/ip.git (master)... +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ji-just-ji/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ji-just-ji/ip.git (master)... +Oct 18, 2023 1:17:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jacobcuison/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jacobcuison/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jacobcuison/ip.git (master) completed! -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator analyzeRepos -INFO: [369/478] Analyzing https://github.com/ji-just-ji/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ji-just-ji/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ji-just-ji/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [369/478] Analyzing https://github.com/rocketninja7/ip.git (master)... +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/rocketninja7/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/rocketninja7/ip.git (master)... +Oct 18, 2023 1:17:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ji-just-ji/ip.git (master)... +Oct 18, 2023 1:17:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ji-just-ji/ip.git (master)... +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ji-just-ji/ip.git (master) completed! +Oct 18, 2023 1:17:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/rocketninja7/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [370/478] Analyzing https://github.com/kohkaijie/ip.git (master)... +Oct 18, 2023 1:17:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/rocketninja7/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/rocketninja7/ip.git (master) completed! -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator analyzeRepos -INFO: [370/478] Analyzing https://github.com/zekone/ip.git (master)... -Oct 17, 2023 1:17:26 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [371/478] Analyzing https://github.com/zekone/ip.git (master)... +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kohkaijie/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kohkaijie/ip.git (master)... +Oct 18, 2023 1:17:00 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/zekone/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/zekone/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ji-just-ji/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/zekone/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ji-just-ji/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ji-just-ji/ip.git (master) completed! -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator analyzeRepos -INFO: [371/478] Analyzing https://github.com/kohkaijie/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kohkaijie/ip.git (master)... +Oct 18, 2023 1:17:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/zekone/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/zekone/ip.git (master) completed! -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator analyzeRepos -INFO: [372/478] Analyzing https://github.com/markgcera/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kohkaijie/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kohkaijie/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [372/478] Analyzing https://github.com/PearlynnT/ip.git (master)... +Oct 18, 2023 1:17:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kohkaijie/ip.git (master)... +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kohkaijie/ip.git (master) completed! +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [373/478] Analyzing https://github.com/markgcera/ip.git (master)... +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/PearlynnT/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/PearlynnT/ip.git (master)... +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/markgcera/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/markgcera/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/markgcera/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/PearlynnT/ip.git (master)... +Oct 18, 2023 1:17:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/markgcera/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/markgcera/ip.git (master) completed! -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator analyzeRepos -INFO: [373/478] Analyzing https://github.com/PearlynnT/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/PearlynnT/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/PearlynnT/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kohkaijie/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kohkaijie/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kohkaijie/ip.git (master) completed! -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/PearlynnT/ip.git (master)... +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepos INFO: [374/478] Analyzing https://github.com/StevenLiudw/ip.git (master)... -Oct 17, 2023 1:17:27 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/PearlynnT/ip.git (master) completed! +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [375/478] Analyzing https://github.com/TeeRenJing/ip.git (master)... +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/StevenLiudw/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/StevenLiudw/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/PearlynnT/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/PearlynnT/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/PearlynnT/ip.git (master) completed! -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator analyzeRepos -INFO: [375/478] Analyzing https://github.com/mounilsankar/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:01 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/TeeRenJing/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/TeeRenJing/ip.git (master)... +Oct 18, 2023 1:17:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/TeeRenJing/ip.git (master)... +Oct 18, 2023 1:17:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/TeeRenJing/ip.git (master)... +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/TeeRenJing/ip.git (master) completed! +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepos +INFO: [376/478] Analyzing https://github.com/mounilsankar/ip.git (master)... +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/mounilsankar/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/mounilsankar/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/StevenLiudw/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/StevenLiudw/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/StevenLiudw/ip.git (master) completed! -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator analyzeRepos -INFO: [376/478] Analyzing https://github.com/TeeRenJing/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/TeeRenJing/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/TeeRenJing/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/mounilsankar/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/mounilsankar/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/mounilsankar/ip.git (master) completed! -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepos INFO: [377/478] Analyzing https://github.com/dloh2236/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/dloh2236/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/dloh2236/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/TeeRenJing/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/TeeRenJing/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/TeeRenJing/ip.git (master) completed! -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/mounilsankar/ip.git (master)... +Oct 18, 2023 1:17:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/mounilsankar/ip.git (master)... +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/mounilsankar/ip.git (master) completed! +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepos INFO: [378/478] Analyzing https://github.com/zannloo/ip.git (master)... -Oct 17, 2023 1:17:28 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/zannloo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/zannloo/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/zannloo/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/zannloo/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/zannloo/ip.git (master) completed! -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepos INFO: [379/478] Analyzing https://github.com/junnengsoo/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/junnengsoo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/junnengsoo/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/dloh2236/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/dloh2236/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:02 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/dloh2236/ip.git (master) completed! -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepos INFO: [380/478] Analyzing https://github.com/freshcabbage123/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/freshcabbage123/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/freshcabbage123/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/junnengsoo/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/junnengsoo/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/junnengsoo/ip.git (master) completed! -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepos INFO: [381/478] Analyzing https://github.com/Kokseng1/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Kokseng1/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Kokseng1/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/freshcabbage123/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/freshcabbage123/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/freshcabbage123/ip.git (master) completed! -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepos INFO: [382/478] Analyzing https://github.com/itsNatTan/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Kokseng1/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/itsNatTan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/itsNatTan/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Kokseng1/ip.git (master)... +Oct 18, 2023 1:17:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Kokseng1/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Kokseng1/ip.git (master) completed! -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepos INFO: [383/478] Analyzing https://github.com/ZD292/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ZD292/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ZD292/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/itsNatTan/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/itsNatTan/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/itsNatTan/ip.git (master) completed! -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator analyzeRepos INFO: [384/478] Analyzing https://github.com/alientian/ip.git (master)... -Oct 17, 2023 1:17:29 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:03 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/alientian/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/alientian/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/alientian/ip.git (master)... +Oct 18, 2023 1:17:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ZD292/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/alientian/ip.git (master)... +Oct 18, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/alientian/ip.git (master) completed! +Oct 18, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [385/478] Analyzing https://github.com/tjingsheng/ip.git (master)... +Oct 18, 2023 1:17:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ZD292/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ZD292/ip.git (master) completed! -Oct 17, 2023 1:17:30 AM reposense.report.ReportGenerator analyzeRepos -INFO: [385/478] Analyzing https://github.com/frrrrry/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [386/478] Analyzing https://github.com/frrrrry/ip.git (master)... +Oct 18, 2023 1:17:04 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/frrrrry/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/frrrrry/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/alientian/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/alientian/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/alientian/ip.git (master) completed! -Oct 17, 2023 1:17:30 AM reposense.report.ReportGenerator analyzeRepos -INFO: [386/478] Analyzing https://github.com/tjingsheng/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:04 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/tjingsheng/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/tjingsheng/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/frrrrry/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/frrrrry/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/frrrrry/ip.git (master) completed! -Oct 17, 2023 1:17:30 AM reposense.report.ReportGenerator analyzeRepos -INFO: [387/478] Analyzing https://github.com/wanghejin/ip.git (master)... -Oct 17, 2023 1:17:30 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wanghejin/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wanghejin/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/wanghejin/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wanghejin/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wanghejin/ip.git (master) completed! -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator analyzeRepos -INFO: [388/478] Analyzing https://github.com/MagnificentCreature/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [387/478] Analyzing https://github.com/MagnificentCreature/ip.git (master)... +Oct 18, 2023 1:17:04 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/MagnificentCreature/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/MagnificentCreature/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tjingsheng/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/MagnificentCreature/ip.git (master)... +Oct 18, 2023 1:17:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/MagnificentCreature/ip.git (master)... +Oct 18, 2023 1:17:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/MagnificentCreature/ip.git (master) completed! +Oct 18, 2023 1:17:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tjingsheng/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [388/478] Analyzing https://github.com/wanghejin/ip.git (master)... +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tjingsheng/ip.git (master) completed! -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepos INFO: [389/478] Analyzing https://github.com/andrefoo/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wanghejin/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wanghejin/ip.git (master)... +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/andrefoo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/andrefoo/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/MagnificentCreature/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/MagnificentCreature/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/MagnificentCreature/ip.git (master) completed! -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/wanghejin/ip.git (master)... +Oct 18, 2023 1:17:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wanghejin/ip.git (master)... +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wanghejin/ip.git (master) completed! +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepos INFO: [390/478] Analyzing https://github.com/XihuaZ/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/XihuaZ/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/XihuaZ/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/andrefoo/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/andrefoo/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/andrefoo/ip.git (master) completed! -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator analyzeRepos -INFO: [391/478] Analyzing https://github.com/tohpinren/ip.git (master)... -Oct 17, 2023 1:17:31 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tohpinren/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tohpinren/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [391/478] Analyzing https://github.com/xavierpok/ip.git (master)... +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/xavierpok/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/xavierpok/ip.git (master)... +Oct 18, 2023 1:17:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/XihuaZ/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/XihuaZ/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/XihuaZ/ip.git (master) completed! -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator analyzeRepos -INFO: [392/478] Analyzing https://github.com/xavierpok/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/xavierpok/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/xavierpok/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [392/478] Analyzing https://github.com/tohpinren/ip.git (master)... +Oct 18, 2023 1:17:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tohpinren/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tohpinren/ip.git (master)... +Oct 18, 2023 1:17:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/xavierpok/ip.git (master)... +Oct 18, 2023 1:17:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/xavierpok/ip.git (master)... +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/xavierpok/ip.git (master) completed! +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [393/478] Analyzing https://github.com/SungMatt/ip.git (master)... +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/SungMatt/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/SungMatt/ip.git (master)... +Oct 18, 2023 1:17:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tohpinren/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tohpinren/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tohpinren/ip.git (master) completed! -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator analyzeRepos -INFO: [393/478] Analyzing https://github.com/bkjwjason/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [394/478] Analyzing https://github.com/bkjwjason/ip.git (master)... +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/bkjwjason/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/bkjwjason/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/xavierpok/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/bkjwjason/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/bkjwjason/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/bkjwjason/ip.git (master) completed! -Oct 17, 2023 1:17:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/xavierpok/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator analyzeRepos -INFO: [394/478] Analyzing https://github.com/Choonyan02/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/xavierpok/ip.git (master) completed! -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator analyzeRepos -INFO: [395/478] Analyzing https://github.com/SungMatt/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Choonyan02/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Choonyan02/ip.git (master)... -Oct 17, 2023 1:17:32 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/SungMatt/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/SungMatt/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Choonyan02/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Choonyan02/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Choonyan02/ip.git (master) completed! -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator analyzeRepos -INFO: [396/478] Analyzing https://github.com/aarontxz/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [395/478] Analyzing https://github.com/aarontxz/ip.git (master)... +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/aarontxz/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/aarontxz/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/aarontxz/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/aarontxz/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/aarontxz/ip.git (master) completed! -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [396/478] Analyzing https://github.com/Choonyan02/ip.git (master)... +Oct 18, 2023 1:17:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Choonyan02/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Choonyan02/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/SungMatt/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Choonyan02/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Choonyan02/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Choonyan02/ip.git (master) completed! +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepos INFO: [397/478] Analyzing https://github.com/jianyangg/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jianyangg/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jianyangg/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/SungMatt/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/SungMatt/ip.git (master) completed! +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [398/478] Analyzing https://github.com/tayian/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tayian/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tayian/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jianyangg/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jianyangg/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jianyangg/ip.git (master) completed! -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator analyzeRepos -INFO: [398/478] Analyzing https://github.com/wnchan/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [399/478] Analyzing https://github.com/wnchan/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/wnchan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/wnchan/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/SungMatt/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/wnchan/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wnchan/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wnchan/ip.git (master) completed! -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator analyzeRepos -INFO: [399/478] Analyzing https://github.com/tayian/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tayian/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tayian/ip.git (master)... -Oct 17, 2023 1:17:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/SungMatt/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/SungMatt/ip.git (master) completed! -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator analyzeRepos -INFO: [400/478] Analyzing https://github.com/cyaoxuan/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/cyaoxuan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/cyaoxuan/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tayian/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tayian/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tayian/ip.git (master) completed! -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator analyzeRepos -INFO: [401/478] Analyzing https://github.com/anthonytamzil/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [400/478] Analyzing https://github.com/cyaoxuan/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/cyaoxuan/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/cyaoxuan/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/wnchan/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wnchan/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wnchan/ip.git (master) completed! +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [401/478] Analyzing https://github.com/Jweewee/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Jweewee/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Jweewee/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/cyaoxuan/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/anthonytamzil/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/anthonytamzil/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/cyaoxuan/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/cyaoxuan/ip.git (master) completed! -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator analyzeRepos -INFO: [402/478] Analyzing https://github.com/CelestineTan03/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/CelestineTan03/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/CelestineTan03/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/CelestineTan03/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [402/478] Analyzing https://github.com/anthonytamzil/ip.git (master)... +Oct 18, 2023 1:17:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/anthonytamzil/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/anthonytamzil/ip.git (master)... +Oct 18, 2023 1:17:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/anthonytamzil/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/CelestineTan03/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/CelestineTan03/ip.git (master) completed! -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator analyzeRepos -INFO: [403/478] Analyzing https://github.com/Jweewee/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/anthonytamzil/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/anthonytamzil/ip.git (master) completed! -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [403/478] Analyzing https://github.com/CelestineTan03/ip.git (master)... +Oct 18, 2023 1:17:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/CelestineTan03/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/CelestineTan03/ip.git (master)... +Oct 18, 2023 1:17:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Jweewee/ip.git (master)... +Oct 18, 2023 1:17:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Jweewee/ip.git (master)... +Oct 18, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Jweewee/ip.git (master) completed! +Oct 18, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepos INFO: [404/478] Analyzing https://github.com/saltedfishxx/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/CelestineTan03/ip.git (master)... +Oct 18, 2023 1:17:08 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/saltedfishxx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/saltedfishxx/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Jweewee/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Jweewee/ip.git (master)... -Oct 17, 2023 1:17:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/saltedfishxx/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/saltedfishxx/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/saltedfishxx/ip.git (master) completed! -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/CelestineTan03/ip.git (master)... +Oct 18, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/CelestineTan03/ip.git (master) completed! +Oct 18, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepos INFO: [405/478] Analyzing https://github.com/AlagappanRa/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:08 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AlagappanRa/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AlagappanRa/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Jweewee/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/saltedfishxx/ip.git (master)... +Oct 18, 2023 1:17:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/saltedfishxx/ip.git (master)... +Oct 18, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/saltedfishxx/ip.git (master) completed! +Oct 18, 2023 1:17:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [406/478] Analyzing https://github.com/euchangxian/ip.git (master)... +Oct 18, 2023 1:17:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AlagappanRa/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/euchangxian/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/euchangxian/ip.git (master)... +Oct 18, 2023 1:17:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AlagappanRa/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Jweewee/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AlagappanRa/ip.git (master) completed! -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Jweewee/ip.git (master) completed! -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator analyzeRepos -INFO: [406/478] Analyzing https://github.com/Ken-Lai/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepos INFO: [407/478] Analyzing https://github.com/itssisi/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Ken-Lai/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Ken-Lai/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/itssisi/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/itssisi/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/itssisi/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/itssisi/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/itssisi/ip.git (master) completed! -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator analyzeRepos -INFO: [408/478] Analyzing https://github.com/euchangxian/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/euchangxian/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/euchangxian/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [408/478] Analyzing https://github.com/Ken-Lai/ip.git (master)... +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Ken-Lai/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Ken-Lai/ip.git (master)... +Oct 18, 2023 1:17:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/euchangxian/ip.git (master)... +Oct 18, 2023 1:17:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Ken-Lai/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Ken-Lai/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Ken-Lai/ip.git (master) completed! -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepos INFO: [409/478] Analyzing https://github.com/jamz903/ip.git (master)... -Oct 17, 2023 1:17:35 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jamz903/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jamz903/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jamz903/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jamz903/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jamz903/ip.git (master) completed! -Oct 17, 2023 1:17:36 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/euchangxian/ip.git (master)... +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/euchangxian/ip.git (master) completed! +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator analyzeRepos INFO: [410/478] Analyzing https://github.com/Kevin-Liusx/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:09 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Kevin-Liusx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Kevin-Liusx/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/euchangxian/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jamz903/ip.git (master)... +Oct 18, 2023 1:17:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jamz903/ip.git (master)... +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jamz903/ip.git (master) completed! +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [411/478] Analyzing https://github.com/ChuanXinNg/ip.git (master)... +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ChuanXinNg/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ChuanXinNg/ip.git (master)... +Oct 18, 2023 1:17:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Kevin-Liusx/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/euchangxian/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Kevin-Liusx/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Kevin-Liusx/ip.git (master) completed! -Oct 17, 2023 1:17:36 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/euchangxian/ip.git (master) completed! -Oct 17, 2023 1:17:36 AM reposense.report.ReportGenerator analyzeRepos -INFO: [411/478] Analyzing https://github.com/Propene-Dan/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.report.ReportGenerator analyzeRepos -INFO: [412/478] Analyzing https://github.com/ChuanXinNg/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ChuanXinNg/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ChuanXinNg/ip.git (master)... -Oct 17, 2023 1:17:36 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [412/478] Analyzing https://github.com/Propene-Dan/ip.git (master)... +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Propene-Dan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Propene-Dan/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ChuanXinNg/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ChuanXinNg/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ChuanXinNg/ip.git (master) completed! -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepos INFO: [413/478] Analyzing https://github.com/kenvynKwek/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Propene-Dan/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/kenvynKwek/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/kenvynKwek/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Propene-Dan/ip.git (master)... +Oct 18, 2023 1:17:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Propene-Dan/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Propene-Dan/ip.git (master) completed! -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepos -INFO: [414/478] Analyzing https://github.com/Ruizhi2001/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Ruizhi2001/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Ruizhi2001/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [414/478] Analyzing https://github.com/saraozn/ip.git (master)... +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/saraozn/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/saraozn/ip.git (master)... +Oct 18, 2023 1:17:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/kenvynKwek/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/kenvynKwek/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/kenvynKwek/ip.git (master) completed! -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:10 AM reposense.report.ReportGenerator analyzeRepos INFO: [415/478] Analyzing https://github.com/prawnzyy/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Ruizhi2001/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/prawnzyy/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/prawnzyy/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Ruizhi2001/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Ruizhi2001/ip.git (master) completed! -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepos -INFO: [416/478] Analyzing https://github.com/saraozn/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/saraozn/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/saraozn/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/prawnzyy/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/saraozn/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/saraozn/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/saraozn/ip.git (master) completed! +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [416/478] Analyzing https://github.com/Ruizhi2001/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Ruizhi2001/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Ruizhi2001/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/prawnzyy/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/prawnzyy/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/prawnzyy/ip.git (master) completed! -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepos INFO: [417/478] Analyzing https://github.com/nicholastng010601/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/saraozn/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/saraozn/ip.git (master) completed! -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator analyzeRepos -INFO: [418/478] Analyzing https://github.com/DistractedCat/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Ruizhi2001/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/nicholastng010601/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/nicholastng010601/ip.git (master)... -Oct 17, 2023 1:17:37 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/DistractedCat/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/DistractedCat/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/DistractedCat/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nicholastng010601/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/DistractedCat/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/DistractedCat/ip.git (master) completed! -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator analyzeRepos -INFO: [419/478] Analyzing https://github.com/yezkez10/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nicholastng010601/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Ruizhi2001/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Ruizhi2001/ip.git (master) completed! +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [418/478] Analyzing https://github.com/yezkez10/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/yezkez10/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/yezkez10/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nicholastng010601/ip.git (master) completed! -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator analyzeRepos -INFO: [420/478] Analyzing https://github.com/revdrag/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/revdrag/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/revdrag/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/yezkez10/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/yezkez10/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/yezkez10/ip.git (master) completed! -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator analyzeRepos -INFO: [421/478] Analyzing https://github.com/alvinlim277/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [419/478] Analyzing https://github.com/DistractedCat/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nicholastng010601/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/DistractedCat/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/DistractedCat/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nicholastng010601/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nicholastng010601/ip.git (master) completed! +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [420/478] Analyzing https://github.com/alvinlim277/ip.git (master)... +Oct 18, 2023 1:17:11 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/alvinlim277/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/alvinlim277/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/revdrag/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/revdrag/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/revdrag/ip.git (master) completed! -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator analyzeRepos -INFO: [422/478] Analyzing https://github.com/JasonRay168/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/JasonRay168/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/JasonRay168/ip.git (master)... -Oct 17, 2023 1:17:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/DistractedCat/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/DistractedCat/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/DistractedCat/ip.git (master) completed! +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [421/478] Analyzing https://github.com/revdrag/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/revdrag/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/revdrag/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/alvinlim277/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/alvinlim277/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/alvinlim277/ip.git (master) completed! -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator analyzeRepos -INFO: [423/478] Analyzing https://github.com/billieboy7/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [422/478] Analyzing https://github.com/billieboy7/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/billieboy7/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/billieboy7/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/JasonRay168/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/JasonRay168/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/JasonRay168/ip.git (master) completed! -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/revdrag/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/revdrag/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/revdrag/ip.git (master) completed! +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [423/478] Analyzing https://github.com/JasonRay168/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/JasonRay168/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/JasonRay168/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/billieboy7/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/billieboy7/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/billieboy7/ip.git (master) completed! +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepos INFO: [424/478] Analyzing https://github.com/jannnice/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jannnice/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jannnice/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jannnice/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/JasonRay168/ip.git (master)... +Oct 18, 2023 1:17:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jannnice/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jannnice/ip.git (master) completed! -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator analyzeRepos -INFO: [425/478] Analyzing https://github.com/samuelim01/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/billieboy7/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [425/478] Analyzing https://github.com/evanyan13/ip.git (master)... +Oct 18, 2023 1:17:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/JasonRay168/ip.git (master)... +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/JasonRay168/ip.git (master) completed! +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [426/478] Analyzing https://github.com/samuelim01/ip.git (master)... +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/samuelim01/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/samuelim01/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/billieboy7/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/billieboy7/ip.git (master) completed! -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator analyzeRepos -INFO: [426/478] Analyzing https://github.com/evanyan13/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/evanyan13/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/evanyan13/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/samuelim01/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/samuelim01/ip.git (master)... -Oct 17, 2023 1:17:39 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/samuelim01/ip.git (master) completed! -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator analyzeRepos -INFO: [427/478] Analyzing https://github.com/dinde2004/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/dinde2004/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/dinde2004/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/dinde2004/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/dinde2004/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/dinde2004/ip.git (master) completed! -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator analyzeRepos -INFO: [428/478] Analyzing https://github.com/seanpzk/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/evanyan13/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [427/478] Analyzing https://github.com/seanpzk/ip.git (master)... +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/seanpzk/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/seanpzk/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/evanyan13/ip.git (master)... +Oct 18, 2023 1:17:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/evanyan13/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/evanyan13/ip.git (master) completed! -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator analyzeRepos -INFO: [429/478] Analyzing https://github.com/KumChaiYin/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [428/478] Analyzing https://github.com/KumChaiYin/ip.git (master)... +Oct 18, 2023 1:17:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/seanpzk/ip.git (master)... +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/KumChaiYin/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/KumChaiYin/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/seanpzk/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/seanpzk/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/seanpzk/ip.git (master) completed! -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [429/478] Analyzing https://github.com/dinde2004/ip.git (master)... +Oct 18, 2023 1:17:13 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/dinde2004/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/dinde2004/ip.git (master)... +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/dinde2004/ip.git (master)... +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/dinde2004/ip.git (master)... +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/dinde2004/ip.git (master) completed! +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepos INFO: [430/478] Analyzing https://github.com/lsyurea/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/lsyurea/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/lsyurea/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/KumChaiYin/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/KumChaiYin/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/KumChaiYin/ip.git (master) completed! -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepos INFO: [431/478] Analyzing https://github.com/geraldngjx/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/geraldngjx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/geraldngjx/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lsyurea/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lsyurea/ip.git (master)... -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lsyurea/ip.git (master) completed! -Oct 17, 2023 1:17:40 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepos INFO: [432/478] Analyzing https://github.com/Sasmik23/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Sasmik23/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Sasmik23/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/geraldngjx/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/geraldngjx/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/geraldngjx/ip.git (master) completed! -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepos INFO: [433/478] Analyzing https://github.com/garylow2001/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/garylow2001/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/garylow2001/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Sasmik23/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/garylow2001/ip.git (master)... +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Sasmik23/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Sasmik23/ip.git (master) completed! -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepos INFO: [434/478] Analyzing https://github.com/leontan2/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/leontan2/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/leontan2/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/garylow2001/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/garylow2001/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/garylow2001/ip.git (master) completed! -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator analyzeRepos INFO: [435/478] Analyzing https://github.com/wamps-jp/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/leontan2/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/leontan2/ip.git (master)... +Oct 18, 2023 1:17:14 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/wamps-jp/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/wamps-jp/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/wamps-jp/ip.git (master)... +Oct 18, 2023 1:17:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/leontan2/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wamps-jp/ip.git (master)... +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wamps-jp/ip.git (master) completed! +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [436/478] Analyzing https://github.com/dickongwd/ip.git (master)... +Oct 18, 2023 1:17:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/leontan2/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/leontan2/ip.git (master) completed! -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator analyzeRepos -INFO: [436/478] Analyzing https://github.com/dickongwd/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/dickongwd/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/dickongwd/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/wamps-jp/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wamps-jp/ip.git (master)... -Oct 17, 2023 1:17:41 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wamps-jp/ip.git (master) completed! -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepos INFO: [437/478] Analyzing https://github.com/jacksonyuan256/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jacksonyuan256/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jacksonyuan256/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/dickongwd/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/dickongwd/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/dickongwd/ip.git (master) completed! -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator analyzeRepos -INFO: [438/478] Analyzing https://github.com/wr1159/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wr1159/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wr1159/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jacksonyuan256/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jacksonyuan256/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jacksonyuan256/ip.git (master) completed! -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator analyzeRepos -INFO: [439/478] Analyzing https://github.com/Nauxe/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Nauxe/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Nauxe/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [438/478] Analyzing https://github.com/wr1159/ip.git (master)... +Oct 18, 2023 1:17:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/dickongwd/ip.git (master)... +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wr1159/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wr1159/ip.git (master)... +Oct 18, 2023 1:17:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/dickongwd/ip.git (master)... +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/dickongwd/ip.git (master) completed! +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [439/478] Analyzing https://github.com/suryanshkushwaha/ip.git (master)... +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/suryanshkushwaha/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/suryanshkushwaha/ip.git (master)... +Oct 18, 2023 1:17:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wr1159/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wr1159/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wr1159/ip.git (master) completed! -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator analyzeRepos -INFO: [440/478] Analyzing https://github.com/yyyaohhh/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [440/478] Analyzing https://github.com/Nauxe/ip.git (master)... +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Nauxe/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Nauxe/ip.git (master)... +Oct 18, 2023 1:17:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/suryanshkushwaha/ip.git (master)... +Oct 18, 2023 1:17:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/suryanshkushwaha/ip.git (master)... +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/suryanshkushwaha/ip.git (master) completed! +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepos +INFO: [441/478] Analyzing https://github.com/yyyaohhh/ip.git (master)... +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/yyyaohhh/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/yyyaohhh/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Nauxe/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Nauxe/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Nauxe/ip.git (master) completed! -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator analyzeRepos -INFO: [441/478] Analyzing https://github.com/suryanshkushwaha/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/suryanshkushwaha/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/suryanshkushwaha/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yyyaohhh/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/yyyaohhh/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/yyyaohhh/ip.git (master) completed! -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepos INFO: [442/478] Analyzing https://github.com/zhanyang01/ip.git (master)... -Oct 17, 2023 1:17:42 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/zhanyang01/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/zhanyang01/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/suryanshkushwaha/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/suryanshkushwaha/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/suryanshkushwaha/ip.git (master) completed! -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yyyaohhh/ip.git (master)... +Oct 18, 2023 1:17:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/yyyaohhh/ip.git (master)... +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/yyyaohhh/ip.git (master) completed! +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepos INFO: [443/478] Analyzing https://github.com/czhiruo/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/czhiruo/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/czhiruo/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/zhanyang01/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zhanyang01/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/zhanyang01/ip.git (master) completed! -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator analyzeRepos -INFO: [444/478] Analyzing https://github.com/victorpengmx/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/victorpengmx/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/victorpengmx/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/czhiruo/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/czhiruo/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/czhiruo/ip.git (master) completed! -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepos +INFO: [444/478] Analyzing https://github.com/victorpengmx/ip.git (master)... +Oct 18, 2023 1:17:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/zhanyang01/ip.git (master)... +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/victorpengmx/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/victorpengmx/ip.git (master)... +Oct 18, 2023 1:17:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zhanyang01/ip.git (master)... +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/zhanyang01/ip.git (master) completed! +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator analyzeRepos INFO: [445/478] Analyzing https://github.com/longnguyentan/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:16 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/longnguyentan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/longnguyentan/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/victorpengmx/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/victorpengmx/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/victorpengmx/ip.git (master) completed! -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator analyzeRepos -INFO: [446/478] Analyzing https://github.com/Eola-Z/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Eola-Z/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Eola-Z/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [446/478] Analyzing https://github.com/Cikguseven/ip.git (master)... +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Cikguseven/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Cikguseven/ip.git (master)... +Oct 18, 2023 1:17:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/longnguyentan/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/longnguyentan/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/longnguyentan/ip.git (master) completed! -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator analyzeRepos -INFO: [447/478] Analyzing https://github.com/Cikguseven/ip.git (master)... -Oct 17, 2023 1:17:43 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Cikguseven/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Cikguseven/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [447/478] Analyzing https://github.com/Eola-Z/ip.git (master)... +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Eola-Z/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Eola-Z/ip.git (master)... +Oct 18, 2023 1:17:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Eola-Z/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Eola-Z/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Eola-Z/ip.git (master) completed! -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator analyzeRepos -INFO: [448/478] Analyzing https://github.com/jibtaf/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jibtaf/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jibtaf/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [448/478] Analyzing https://github.com/lipwei1808/ip.git (master)... +Oct 18, 2023 1:17:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Cikguseven/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Cikguseven/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Cikguseven/ip.git (master) completed! -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator analyzeRepos -INFO: [449/478] Analyzing https://github.com/lipwei1808/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/lipwei1808/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/lipwei1808/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jibtaf/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jibtaf/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jibtaf/ip.git (master) completed! -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator analyzeRepos -INFO: [450/478] Analyzing https://github.com/Mohammed-Faizzzz/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Mohammed-Faizzzz/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Mohammed-Faizzzz/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Cikguseven/ip.git (master)... +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Cikguseven/ip.git (master) completed! +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [449/478] Analyzing https://github.com/jibtaf/ip.git (master)... +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jibtaf/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jibtaf/ip.git (master)... +Oct 18, 2023 1:17:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lipwei1808/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lipwei1808/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lipwei1808/ip.git (master) completed! -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [450/478] Analyzing https://github.com/Mohammed-Faizzzz/ip.git (master)... +Oct 18, 2023 1:17:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Mohammed-Faizzzz/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Mohammed-Faizzzz/ip.git (master)... +Oct 18, 2023 1:17:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jibtaf/ip.git (master)... +Oct 18, 2023 1:17:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jibtaf/ip.git (master)... +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jibtaf/ip.git (master) completed! +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepos INFO: [451/478] Analyzing https://github.com/dylkaw/ip.git (master)... -Oct 17, 2023 1:17:44 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/dylkaw/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/dylkaw/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Mohammed-Faizzzz/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/dylkaw/ip.git (master)... +Oct 18, 2023 1:17:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Mohammed-Faizzzz/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Mohammed-Faizzzz/ip.git (master) completed! -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator analyzeRepos -INFO: [452/478] Analyzing https://github.com/nikele2001/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nikele2001/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nikele2001/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/dylkaw/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/dylkaw/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [452/478] Analyzing https://github.com/nikele2001/ip.git (master)... +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/dylkaw/ip.git (master) completed! -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepos INFO: [453/478] Analyzing https://github.com/DeltonCheng/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nikele2001/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nikele2001/ip.git (master)... +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/DeltonCheng/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/DeltonCheng/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/DeltonCheng/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/DeltonCheng/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nikele2001/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/DeltonCheng/ip.git (master) completed! -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator analyzeRepos -INFO: [454/478] Analyzing https://github.com/ChangruHenryQian/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [454/478] Analyzing https://github.com/craigtonlian/ip.git (master)... +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/craigtonlian/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/craigtonlian/ip.git (master)... +Oct 18, 2023 1:17:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nikele2001/ip.git (master)... +Oct 18, 2023 1:17:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/nikele2001/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/nikele2001/ip.git (master) completed! -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [455/478] Analyzing https://github.com/ChangruHenryQian/ip.git (master)... +Oct 18, 2023 1:17:18 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ChangruHenryQian/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ChangruHenryQian/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator analyzeRepos -INFO: [455/478] Analyzing https://github.com/craigtonlian/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/craigtonlian/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/craigtonlian/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/craigtonlian/ip.git (master)... +Oct 18, 2023 1:17:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ChangruHenryQian/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/craigtonlian/ip.git (master)... +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/craigtonlian/ip.git (master) completed! +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [456/478] Analyzing https://github.com/lululwtv/ip.git (master)... +Oct 18, 2023 1:17:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ChangruHenryQian/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ChangruHenryQian/ip.git (master) completed! -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator analyzeRepos -INFO: [456/478] Analyzing https://github.com/iantsaii/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [457/478] Analyzing https://github.com/iantsaii/ip.git (master)... +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/iantsaii/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/iantsaii/ip.git (master)... -Oct 17, 2023 1:17:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/craigtonlian/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/craigtonlian/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/craigtonlian/ip.git (master) completed! -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator analyzeRepos -INFO: [457/478] Analyzing https://github.com/ruo-x/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ruo-x/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ruo-x/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/iantsaii/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/iantsaii/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/iantsaii/ip.git (master) completed! -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepos INFO: [458/478] Analyzing https://github.com/wjacobw/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/wjacobw/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/wjacobw/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lululwtv/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lululwtv/ip.git (master)... +Oct 18, 2023 1:17:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wjacobw/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wjacobw/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wjacobw/ip.git (master) completed! -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator analyzeRepos -INFO: [459/478] Analyzing https://github.com/angkyakdifp/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/angkyakdifp/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/angkyakdifp/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [459/478] Analyzing https://github.com/ruo-x/ip.git (master)... +Oct 18, 2023 1:17:19 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ruo-x/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ruo-x/ip.git (master)... +Oct 18, 2023 1:17:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ruo-x/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ruo-x/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ruo-x/ip.git (master) completed! -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator analyzeRepos -INFO: [460/478] Analyzing https://github.com/brein62/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/brein62/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/brein62/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepos +INFO: [460/478] Analyzing https://github.com/angkyakdifp/ip.git (master)... +Oct 18, 2023 1:17:20 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/angkyakdifp/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/angkyakdifp/ip.git (master)... +Oct 18, 2023 1:17:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/angkyakdifp/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/angkyakdifp/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/angkyakdifp/ip.git (master) completed! -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:20 AM reposense.report.ReportGenerator analyzeRepos INFO: [461/478] Analyzing https://github.com/Bryan-Goh/ip.git (master)... -Oct 17, 2023 1:17:46 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:20 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Bryan-Goh/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Bryan-Goh/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Bryan-Goh/ip.git (master)... +Oct 18, 2023 1:17:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Bryan-Goh/ip.git (master)... +Oct 18, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Bryan-Goh/ip.git (master) completed! +Oct 18, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepos +INFO: [462/478] Analyzing https://github.com/brein62/ip.git (master)... +Oct 18, 2023 1:17:21 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/brein62/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/brein62/ip.git (master)... +Oct 18, 2023 1:17:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lululwtv/ip.git (master)... +Oct 18, 2023 1:17:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/brein62/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/brein62/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/brein62/ip.git (master) completed! -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator analyzeRepos -INFO: [462/478] Analyzing https://github.com/nicrandomlee/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepos +INFO: [463/478] Analyzing https://github.com/nicrandomlee/ip.git (master)... +Oct 18, 2023 1:17:21 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/nicrandomlee/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/nicrandomlee/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Bryan-Goh/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Bryan-Goh/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Bryan-Goh/ip.git (master) completed! -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator analyzeRepos -INFO: [463/478] Analyzing https://github.com/kiatkat/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lululwtv/ip.git (master)... +Oct 18, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lululwtv/ip.git (master) completed! +Oct 18, 2023 1:17:21 AM reposense.report.ReportGenerator analyzeRepos +INFO: [464/478] Analyzing https://github.com/kiatkat/ip.git (master)... +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/kiatkat/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/kiatkat/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/nicrandomlee/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kiatkat/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kiatkat/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/nicrandomlee/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kiatkat/ip.git (master) completed! -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator analyzeRepos -INFO: [464/478] Analyzing https://github.com/MadLamprey/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/nicrandomlee/ip.git (master) completed! -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator analyzeRepos -INFO: [465/478] Analyzing https://github.com/jiakai-17/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepos +INFO: [465/478] Analyzing https://github.com/MadLamprey/ip.git (master)... +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/MadLamprey/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/MadLamprey/ip.git (master)... -Oct 17, 2023 1:17:47 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jiakai-17/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jiakai-17/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jiakai-17/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jiakai-17/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/MadLamprey/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jiakai-17/ip.git (master) completed! -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kiatkat/ip.git (master)... +Oct 18, 2023 1:17:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kiatkat/ip.git (master)... +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kiatkat/ip.git (master) completed! +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepos INFO: [466/478] Analyzing https://github.com/xyT-T/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/MadLamprey/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/xyT-T/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/xyT-T/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/MadLamprey/ip.git (master)... +Oct 18, 2023 1:17:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/MadLamprey/ip.git (master)... +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/MadLamprey/ip.git (master) completed! -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator analyzeRepos -INFO: [467/478] Analyzing https://github.com/nathanielcalimag/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nathanielcalimag/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nathanielcalimag/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nathanielcalimag/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepos +INFO: [467/478] Analyzing https://github.com/jiakai-17/ip.git (master)... +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jiakai-17/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jiakai-17/ip.git (master)... +Oct 18, 2023 1:17:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/xyT-T/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nathanielcalimag/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/xyT-T/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nathanielcalimag/ip.git (master) completed! -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/xyT-T/ip.git (master) completed! -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator analyzeRepos INFO: [468/478] Analyzing https://github.com/nreHieW/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator analyzeRepos -INFO: [469/478] Analyzing https://github.com/Saezenn/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Saezenn/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Saezenn/ip.git (master)... -Oct 17, 2023 1:17:48 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:22 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/nreHieW/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/nreHieW/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jiakai-17/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jiakai-17/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jiakai-17/ip.git (master) completed! +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [469/478] Analyzing https://github.com/nathanielcalimag/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nathanielcalimag/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nathanielcalimag/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/nreHieW/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/nreHieW/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/nreHieW/ip.git (master) completed! -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepos INFO: [470/478] Analyzing https://github.com/jellywaiyan/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Saezenn/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jellywaiyan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jellywaiyan/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Saezenn/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Saezenn/ip.git (master) completed! -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepos -INFO: [471/478] Analyzing https://github.com/marquestye/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/marquestye/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/marquestye/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nathanielcalimag/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nathanielcalimag/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nathanielcalimag/ip.git (master) completed! +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [471/478] Analyzing https://github.com/Saezenn/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Saezenn/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Saezenn/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jellywaiyan/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/marquestye/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jellywaiyan/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jellywaiyan/ip.git (master) completed! -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepos -INFO: [472/478] Analyzing https://github.com/Tang-Moyan/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/marquestye/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/marquestye/ip.git (master) completed! -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepos -INFO: [473/478] Analyzing https://github.com/DonovanJJ/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [472/478] Analyzing https://github.com/marquestye/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/marquestye/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/marquestye/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Saezenn/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Saezenn/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Saezenn/ip.git (master) completed! +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [473/478] Analyzing https://github.com/Tang-Moyan/ip.git (master)... +Oct 18, 2023 1:17:23 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Tang-Moyan/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Tang-Moyan/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/marquestye/ip.git (master)... +Oct 18, 2023 1:17:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/marquestye/ip.git (master)... +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/marquestye/ip.git (master) completed! +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepos +INFO: [474/478] Analyzing https://github.com/DonovanJJ/ip.git (master)... +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/DonovanJJ/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/DonovanJJ/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Tang-Moyan/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/DonovanJJ/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Tang-Moyan/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Tang-Moyan/ip.git (master) completed! -Oct 17, 2023 1:17:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/DonovanJJ/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepos -INFO: [474/478] Analyzing https://github.com/lululwtv/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/DonovanJJ/ip.git (master) completed! -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepos INFO: [475/478] Analyzing https://github.com/Sebtey/ip.git (master)... -Oct 17, 2023 1:17:49 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Sebtey/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Sebtey/ip.git (master)... -Oct 17, 2023 1:17:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/DonovanJJ/ip.git (master)... +Oct 18, 2023 1:17:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/DonovanJJ/ip.git (master)... +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/DonovanJJ/ip.git (master) completed! +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepos +INFO: [476/478] Analyzing https://github.com/tyouwei/ip.git (master)... +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tyouwei/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tyouwei/ip.git (master)... +Oct 18, 2023 1:17:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Sebtey/ip.git (master)... -Oct 17, 2023 1:17:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Sebtey/ip.git (master)... -Oct 17, 2023 1:17:50 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Sebtey/ip.git (master) completed! -Oct 17, 2023 1:17:50 AM reposense.report.ReportGenerator analyzeRepos -INFO: [476/478] Analyzing https://github.com/rionshocker/ip.git (master)... -Oct 17, 2023 1:17:50 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lululwtv/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lululwtv/ip.git (master)... -Oct 17, 2023 1:17:50 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/rionshocker/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/rionshocker/ip.git (master)... -Oct 17, 2023 1:17:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/rionshocker/ip.git (master)... -Oct 17, 2023 1:17:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/rionshocker/ip.git (master)... -Oct 17, 2023 1:17:51 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/rionshocker/ip.git (master) completed! -Oct 17, 2023 1:17:51 AM reposense.report.ReportGenerator analyzeRepos +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepos INFO: [477/478] Analyzing https://github.com/Blizzeracz/ip.git (master)... -Oct 17, 2023 1:17:51 AM reposense.report.ReportGenerator updateRepoConfig +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Blizzeracz/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 18, 2023 1:17:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Blizzeracz/ip.git (master)... -Oct 17, 2023 1:17:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Blizzeracz/ip.git (master)... -Oct 17, 2023 1:17:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Blizzeracz/ip.git (master)... -Oct 17, 2023 1:17:51 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Blizzeracz/ip.git (master) completed! -Oct 17, 2023 1:17:51 AM reposense.report.ReportGenerator analyzeRepos -INFO: [478/478] Analyzing https://github.com/tyouwei/ip.git (master)... -Oct 17, 2023 1:17:51 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tyouwei/ip.git (master) does not contain a standalone config file. -Oct 17, 2023 1:17:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tyouwei/ip.git (master)... -Oct 17, 2023 1:17:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 18, 2023 1:17:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tyouwei/ip.git (master)... -Oct 17, 2023 1:17:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 18, 2023 1:17:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tyouwei/ip.git (master)... -Oct 17, 2023 1:17:52 AM reposense.report.ReportGenerator analyzeRepo +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tyouwei/ip.git (master) completed! -Oct 17, 2023 1:17:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lululwtv/ip.git (master)... -Oct 17, 2023 1:17:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lululwtv/ip.git (master)... -Oct 17, 2023 1:17:52 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lululwtv/ip.git (master) completed! -Oct 17, 2023 1:17:53 AM reposense.report.ReportGenerator generateReposReport +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator analyzeRepos +INFO: [478/478] Analyzing https://github.com/rionshocker/ip.git (master)... +Oct 18, 2023 1:17:24 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/rionshocker/ip.git (master) does not contain a standalone config file. +Oct 18, 2023 1:17:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/rionshocker/ip.git (master)... +Oct 18, 2023 1:17:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Blizzeracz/ip.git (master)... +Oct 18, 2023 1:17:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Blizzeracz/ip.git (master)... +Oct 18, 2023 1:17:25 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Blizzeracz/ip.git (master) completed! +Oct 18, 2023 1:17:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/rionshocker/ip.git (master)... +Oct 18, 2023 1:17:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/rionshocker/ip.git (master)... +Oct 18, 2023 1:17:25 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/rionshocker/ip.git (master) completed! +Oct 18, 2023 1:17:25 AM reposense.report.ReportGenerator generateReposReport INFO: The report is generated at /home/runner/work/ip-dashboard/ip-dashboard/reposense-report -Oct 17, 2023 1:17:55 AM reposense.RepoSense main -INFO: Elapsed processing time: 2 minute(s) 53.84 second(s) +Oct 18, 2023 1:17:27 AM reposense.RepoSense main +INFO: Elapsed processing time: 2 minute(s) 42.27 second(s) diff --git a/summary.json b/summary.json index 66b7dccf..fb809b8e 100644 --- a/summary.json +++ b/summary.json @@ -1 +1 @@ -{"repoSenseVersion":"0c4045d4f4","reportGeneratedTime":"Tue Oct 17 09:15:03 2023 UTC+08:00","reportGenerationTime":" 2 minute(s) 51.49 second(s)","zoneId":"UTC+08:00","reportTitle":"CS2103 iP Code Dashboard","repos":[{"location":{"location":"https://github.com/remuslum/ip.git","repoName":"ip","organization":"remuslum","domainName":"github"},"branch":"master","displayName":"remuslum/ip[master]","outputFolderName":"remuslum_ip_master"},{"location":{"location":"https://github.com/elhy1999/ip.git","repoName":"ip","organization":"elhy1999","domainName":"github"},"branch":"master","displayName":"elhy1999/ip[master]","outputFolderName":"elhy1999_ip_master"},{"location":{"location":"https://github.com/XihuaZ/ip.git","repoName":"ip","organization":"XihuaZ","domainName":"github"},"branch":"master","displayName":"XihuaZ/ip[master]","outputFolderName":"XihuaZ_ip_master"},{"location":{"location":"https://github.com/bwangpj/ip.git","repoName":"ip","organization":"bwangpj","domainName":"github"},"branch":"master","displayName":"bwangpj/ip[master]","outputFolderName":"bwangpj_ip_master"},{"location":{"location":"https://github.com/shuenj/ip.git","repoName":"ip","organization":"shuenj","domainName":"github"},"branch":"master","displayName":"shuenj/ip[master]","outputFolderName":"shuenj_ip_master"},{"location":{"location":"https://github.com/SungMatt/ip.git","repoName":"ip","organization":"SungMatt","domainName":"github"},"branch":"master","displayName":"SungMatt/ip[master]","outputFolderName":"SungMatt_ip_master"},{"location":{"location":"https://github.com/junhonglow/ip.git","repoName":"ip","organization":"junhonglow","domainName":"github"},"branch":"master","displayName":"junhonglow/ip[master]","outputFolderName":"junhonglow_ip_master"},{"location":{"location":"https://github.com/xavierpok/ip.git","repoName":"ip","organization":"xavierpok","domainName":"github"},"branch":"master","displayName":"xavierpok/ip[master]","outputFolderName":"xavierpok_ip_master"},{"location":{"location":"https://github.com/marcellaantania/ip.git","repoName":"ip","organization":"marcellaantania","domainName":"github"},"branch":"master","displayName":"marcellaantania/ip[master]","outputFolderName":"marcellaantania_ip_master"},{"location":{"location":"https://github.com/starrylight99/ip.git","repoName":"ip","organization":"starrylight99","domainName":"github"},"branch":"master","displayName":"starrylight99/ip[master]","outputFolderName":"starrylight99_ip_master"},{"location":{"location":"https://github.com/leezhanpeng/ip.git","repoName":"ip","organization":"leezhanpeng","domainName":"github"},"branch":"master","displayName":"leezhanpeng/ip[master]","outputFolderName":"leezhanpeng_ip_master"},{"location":{"location":"https://github.com/sheryew/ip.git","repoName":"ip","organization":"sheryew","domainName":"github"},"branch":"master","displayName":"sheryew/ip[master]","outputFolderName":"sheryew_ip_master"},{"location":{"location":"https://github.com/lihongguang00/ip.git","repoName":"ip","organization":"lihongguang00","domainName":"github"},"branch":"master","displayName":"lihongguang00/ip[master]","outputFolderName":"lihongguang00_ip_master"},{"location":{"location":"https://github.com/nicrandomlee/ip.git","repoName":"ip","organization":"nicrandomlee","domainName":"github"},"branch":"master","displayName":"nicrandomlee/ip[master]","outputFolderName":"nicrandomlee_ip_master"},{"location":{"location":"https://github.com/LuahJunYang/ip.git","repoName":"ip","organization":"LuahJunYang","domainName":"github"},"branch":"master","displayName":"LuahJunYang/ip[master]","outputFolderName":"LuahJunYang_ip_master"},{"location":{"location":"https://github.com/s-peiran/ip.git","repoName":"ip","organization":"s-peiran","domainName":"github"},"branch":"master","displayName":"s-peiran/ip[master]","outputFolderName":"s-peiran_ip_master"},{"location":{"location":"https://github.com/aarontxz/ip.git","repoName":"ip","organization":"aarontxz","domainName":"github"},"branch":"master","displayName":"aarontxz/ip[master]","outputFolderName":"aarontxz_ip_master"},{"location":{"location":"https://github.com/chiayunrong/ip.git","repoName":"ip","organization":"chiayunrong","domainName":"github"},"branch":"master","displayName":"chiayunrong/ip[master]","outputFolderName":"chiayunrong_ip_master"},{"location":{"location":"https://github.com/nixonwidjaja/ip.git","repoName":"ip","organization":"nixonwidjaja","domainName":"github"},"branch":"master","displayName":"nixonwidjaja/ip[master]","outputFolderName":"nixonwidjaja_ip_master"},{"location":{"location":"https://github.com/imkwokyong/ip.git","repoName":"ip","organization":"imkwokyong","domainName":"github"},"branch":"master","displayName":"imkwokyong/ip[master]","outputFolderName":"imkwokyong_ip_master"},{"location":{"location":"https://github.com/mamayuan/ip.git","repoName":"ip","organization":"mamayuan","domainName":"github"},"branch":"master","displayName":"mamayuan/ip[master]","outputFolderName":"mamayuan_ip_master"},{"location":{"location":"https://github.com/geoffong11/ip.git","repoName":"ip","organization":"geoffong11","domainName":"github"},"branch":"master","displayName":"geoffong11/ip[master]","outputFolderName":"geoffong11_ip_master"},{"location":{"location":"https://github.com/vivienherq/ip.git","repoName":"ip","organization":"vivienherq","domainName":"github"},"branch":"master","displayName":"vivienherq/ip[master]","outputFolderName":"vivienherq_ip_master"},{"location":{"location":"https://github.com/johnnythesnake12/ip.git","repoName":"ip","organization":"johnnythesnake12","domainName":"github"},"branch":"master","displayName":"johnnythesnake12/ip[master]","outputFolderName":"johnnythesnake12_ip_master"},{"location":{"location":"https://github.com/Cloud7050/ip.git","repoName":"ip","organization":"Cloud7050","domainName":"github"},"branch":"master","displayName":"Cloud7050/ip[master]","outputFolderName":"Cloud7050_ip_master"},{"location":{"location":"https://github.com/jonyeokj/ip.git","repoName":"ip","organization":"jonyeokj","domainName":"github"},"branch":"master","displayName":"jonyeokj/ip[master]","outputFolderName":"jonyeokj_ip_master"},{"location":{"location":"https://github.com/lipwei1808/ip.git","repoName":"ip","organization":"lipwei1808","domainName":"github"},"branch":"master","displayName":"lipwei1808/ip[master]","outputFolderName":"lipwei1808_ip_master"},{"location":{"location":"https://github.com/zhanyang01/ip.git","repoName":"ip","organization":"zhanyang01","domainName":"github"},"branch":"master","displayName":"zhanyang01/ip[master]","outputFolderName":"zhanyang01_ip_master"},{"location":{"location":"https://github.com/EricXiong420/ip.git","repoName":"ip","organization":"EricXiong420","domainName":"github"},"branch":"master","displayName":"EricXiong420/ip[master]","outputFolderName":"EricXiong420_ip_master"},{"location":{"location":"https://github.com/sp4ce-cowboy/ip.git","repoName":"ip","organization":"sp4ce-cowboy","domainName":"github"},"branch":"master","displayName":"sp4ce-cowboy/ip[master]","outputFolderName":"sp4ce-cowboy_ip_master"},{"location":{"location":"https://github.com/ktzy0305/ip.git","repoName":"ip","organization":"ktzy0305","domainName":"github"},"branch":"master","displayName":"ktzy0305/ip[master]","outputFolderName":"ktzy0305_ip_master"},{"location":{"location":"https://github.com/dom-buri/ip.git","repoName":"ip","organization":"dom-buri","domainName":"github"},"branch":"master","displayName":"dom-buri/ip[master]","outputFolderName":"dom-buri_ip_master"},{"location":{"location":"https://github.com/rayshawntan/ip.git","repoName":"ip","organization":"rayshawntan","domainName":"github"},"branch":"master","displayName":"rayshawntan/ip[master]","outputFolderName":"rayshawntan_ip_master"},{"location":{"location":"https://github.com/Seonlo99/ip.git","repoName":"ip","organization":"Seonlo99","domainName":"github"},"branch":"master","displayName":"Seonlo99/ip[master]","outputFolderName":"Seonlo99_ip_master"},{"location":{"location":"https://github.com/woojiahao/ip.git","repoName":"ip","organization":"woojiahao","domainName":"github"},"branch":"master","displayName":"woojiahao/ip[master]","outputFolderName":"woojiahao_ip_master"},{"location":{"location":"https://github.com/Angelyxx/ip.git","repoName":"ip","organization":"Angelyxx","domainName":"github"},"branch":"master","displayName":"Angelyxx/ip[master]","outputFolderName":"Angelyxx_ip_master"},{"location":{"location":"https://github.com/jamz903/ip.git","repoName":"ip","organization":"jamz903","domainName":"github"},"branch":"master","displayName":"jamz903/ip[master]","outputFolderName":"jamz903_ip_master"},{"location":{"location":"https://github.com/Fallman2/ip.git","repoName":"ip","organization":"Fallman2","domainName":"github"},"branch":"master","displayName":"Fallman2/ip[master]","outputFolderName":"Fallman2_ip_master"},{"location":{"location":"https://github.com/jacobcuison/ip.git","repoName":"ip","organization":"jacobcuison","domainName":"github"},"branch":"master","displayName":"jacobcuison/ip[master]","outputFolderName":"jacobcuison_ip_master"},{"location":{"location":"https://github.com/kenvynKwek/ip.git","repoName":"ip","organization":"kenvynKwek","domainName":"github"},"branch":"master","displayName":"kenvynKwek/ip[master]","outputFolderName":"kenvynKwek_ip_master"},{"location":{"location":"https://github.com/kokrui/ip.git","repoName":"ip","organization":"kokrui","domainName":"github"},"branch":"master","displayName":"kokrui/ip[master]","outputFolderName":"kokrui_ip_master"},{"location":{"location":"https://github.com/ncmathan/ip.git","repoName":"ip","organization":"ncmathan","domainName":"github"},"branch":"master","displayName":"ncmathan/ip[master]","outputFolderName":"ncmathan_ip_master"},{"location":{"location":"https://github.com/xCOLOURx/ip.git","repoName":"ip","organization":"xCOLOURx","domainName":"github"},"branch":"master","displayName":"xCOLOURx/ip[master]","outputFolderName":"xCOLOURx_ip_master"},{"location":{"location":"https://github.com/zhyuhan/ip.git","repoName":"ip","organization":"zhyuhan","domainName":"github"},"branch":"master","displayName":"zhyuhan/ip[master]","outputFolderName":"zhyuhan_ip_master"},{"location":{"location":"https://github.com/chuababyy/ip.git","repoName":"ip","organization":"chuababyy","domainName":"github"},"branch":"master","displayName":"chuababyy/ip[master]","outputFolderName":"chuababyy_ip_master"},{"location":{"location":"https://github.com/rocketninja7/ip.git","repoName":"ip","organization":"rocketninja7","domainName":"github"},"branch":"master","displayName":"rocketninja7/ip[master]","outputFolderName":"rocketninja7_ip_master"},{"location":{"location":"https://github.com/marquestye/ip.git","repoName":"ip","organization":"marquestye","domainName":"github"},"branch":"master","displayName":"marquestye/ip[master]","outputFolderName":"marquestye_ip_master"},{"location":{"location":"https://github.com/ruiyangzh/ip.git","repoName":"ip","organization":"ruiyangzh","domainName":"github"},"branch":"master","displayName":"ruiyangzh/ip[master]","outputFolderName":"ruiyangzh_ip_master"},{"location":{"location":"https://github.com/derekjxtan/ip.git","repoName":"ip","organization":"derekjxtan","domainName":"github"},"branch":"master","displayName":"derekjxtan/ip[master]","outputFolderName":"derekjxtan_ip_master"},{"location":{"location":"https://github.com/mounilsankar/ip.git","repoName":"ip","organization":"mounilsankar","domainName":"github"},"branch":"master","displayName":"mounilsankar/ip[master]","outputFolderName":"mounilsankar_ip_master"},{"location":{"location":"https://github.com/wj331/ip.git","repoName":"ip","organization":"wj331","domainName":"github"},"branch":"master","displayName":"wj331/ip[master]","outputFolderName":"wj331_ip_master"},{"location":{"location":"https://github.com/JasonLCY-Temp/ip.git","repoName":"ip","organization":"JasonLCY-Temp","domainName":"github"},"branch":"master","displayName":"JasonLCY-Temp/ip[master]","outputFolderName":"JasonLCY-Temp_ip_master"},{"location":{"location":"https://github.com/lawruixi/ip.git","repoName":"ip","organization":"lawruixi","domainName":"github"},"branch":"master","displayName":"lawruixi/ip[master]","outputFolderName":"lawruixi_ip_master"},{"location":{"location":"https://github.com/wxwern/ip.git","repoName":"ip","organization":"wxwern","domainName":"github"},"branch":"master","displayName":"wxwern/ip[master]","outputFolderName":"wxwern_ip_master"},{"location":{"location":"https://github.com/zekone/ip.git","repoName":"ip","organization":"zekone","domainName":"github"},"branch":"master","displayName":"zekone/ip[master]","outputFolderName":"zekone_ip_master"},{"location":{"location":"https://github.com/wamps-jp/ip.git","repoName":"ip","organization":"wamps-jp","domainName":"github"},"branch":"master","displayName":"wamps-jp/ip[master]","outputFolderName":"wamps-jp_ip_master"},{"location":{"location":"https://github.com/saltedfishxx/ip.git","repoName":"ip","organization":"saltedfishxx","domainName":"github"},"branch":"master","displayName":"saltedfishxx/ip[master]","outputFolderName":"saltedfishxx_ip_master"},{"location":{"location":"https://github.com/winson8222/ip.git","repoName":"ip","organization":"winson8222","domainName":"github"},"branch":"master","displayName":"winson8222/ip[master]","outputFolderName":"winson8222_ip_master"},{"location":{"location":"https://github.com/brandon-nam/ip.git","repoName":"ip","organization":"brandon-nam","domainName":"github"},"branch":"master","displayName":"brandon-nam/ip[master]","outputFolderName":"brandon-nam_ip_master"},{"location":{"location":"https://github.com/p-xp/ip.git","repoName":"ip","organization":"p-xp","domainName":"github"},"branch":"master","displayName":"p-xp/ip[master]","outputFolderName":"p-xp_ip_master"},{"location":{"location":"https://github.com/WeeMingQing/ip.git","repoName":"ip","organization":"WeeMingQing","domainName":"github"},"branch":"master","displayName":"WeeMingQing/ip[master]","outputFolderName":"WeeMingQing_ip_master"},{"location":{"location":"https://github.com/ScarletBlanks/ip.git","repoName":"ip","organization":"ScarletBlanks","domainName":"github"},"branch":"master","displayName":"ScarletBlanks/ip[master]","outputFolderName":"ScarletBlanks_ip_master"},{"location":{"location":"https://github.com/seraphimstreets/ip.git","repoName":"ip","organization":"seraphimstreets","domainName":"github"},"branch":"master","displayName":"seraphimstreets/ip[master]","outputFolderName":"seraphimstreets_ip_master"},{"location":{"location":"https://github.com/devanshubisht/ip.git","repoName":"ip","organization":"devanshubisht","domainName":"github"},"branch":"master","displayName":"devanshubisht/ip[master]","outputFolderName":"devanshubisht_ip_master"},{"location":{"location":"https://github.com/Zjinnnn/ip.git","repoName":"ip","organization":"Zjinnnn","domainName":"github"},"branch":"master","displayName":"Zjinnnn/ip[master]","outputFolderName":"Zjinnnn_ip_master"},{"location":{"location":"https://github.com/brendanneojw/ip.git","repoName":"ip","organization":"brendanneojw","domainName":"github"},"branch":"master","displayName":"brendanneojw/ip[master]","outputFolderName":"brendanneojw_ip_master"},{"location":{"location":"https://github.com/aexolate/ip.git","repoName":"ip","organization":"aexolate","domainName":"github"},"branch":"master","displayName":"aexolate/ip[master]","outputFolderName":"aexolate_ip_master"},{"location":{"location":"https://github.com/techjay-c/ip.git","repoName":"ip","organization":"techjay-c","domainName":"github"},"branch":"master","displayName":"techjay-c/ip[master]","outputFolderName":"techjay-c_ip_master"},{"location":{"location":"https://github.com/SynapseProgramming/ip.git","repoName":"ip","organization":"SynapseProgramming","domainName":"github"},"branch":"master","displayName":"SynapseProgramming/ip[master]","outputFolderName":"SynapseProgramming_ip_master"},{"location":{"location":"https://github.com/TyrusLye/ip.git","repoName":"ip","organization":"TyrusLye","domainName":"github"},"branch":"master","displayName":"TyrusLye/ip[master]","outputFolderName":"TyrusLye_ip_master"},{"location":{"location":"https://github.com/RB9823/ip.git","repoName":"ip","organization":"RB9823","domainName":"github"},"branch":"master","displayName":"RB9823/ip[master]","outputFolderName":"RB9823_ip_master"},{"location":{"location":"https://github.com/jean-cq/ip.git","repoName":"ip","organization":"jean-cq","domainName":"github"},"branch":"master","displayName":"jean-cq/ip[master]","outputFolderName":"jean-cq_ip_master"},{"location":{"location":"https://github.com/Bearypop/ip.git","repoName":"ip","organization":"Bearypop","domainName":"github"},"branch":"master","displayName":"Bearypop/ip[master]","outputFolderName":"Bearypop_ip_master"},{"location":{"location":"https://github.com/andytoh1/ip.git","repoName":"ip","organization":"andytoh1","domainName":"github"},"branch":"master","displayName":"andytoh1/ip[master]","outputFolderName":"andytoh1_ip_master"},{"location":{"location":"https://github.com/siqirua/ip.git","repoName":"ip","organization":"siqirua","domainName":"github"},"branch":"master","displayName":"siqirua/ip[master]","outputFolderName":"siqirua_ip_master"},{"location":{"location":"https://github.com/amosting/ip.git","repoName":"ip","organization":"amosting","domainName":"github"},"branch":"master","displayName":"amosting/ip[master]","outputFolderName":"amosting_ip_master"},{"location":{"location":"https://github.com/JizhuoChen/ip.git","repoName":"ip","organization":"JizhuoChen","domainName":"github"},"branch":"master","displayName":"JizhuoChen/ip[master]","outputFolderName":"JizhuoChen_ip_master"},{"location":{"location":"https://github.com/Tang-Moyan/ip.git","repoName":"ip","organization":"Tang-Moyan","domainName":"github"},"branch":"master","displayName":"Tang-Moyan/ip[master]","outputFolderName":"Tang-Moyan_ip_master"},{"location":{"location":"https://github.com/aliciamichellew/ip.git","repoName":"ip","organization":"aliciamichellew","domainName":"github"},"branch":"master","displayName":"aliciamichellew/ip[master]","outputFolderName":"aliciamichellew_ip_master"},{"location":{"location":"https://github.com/KamiliArsyad/ip.git","repoName":"ip","organization":"KamiliArsyad","domainName":"github"},"branch":"master","displayName":"KamiliArsyad/ip[master]","outputFolderName":"KamiliArsyad_ip_master"},{"location":{"location":"https://github.com/dishenggg/ip.git","repoName":"ip","organization":"dishenggg","domainName":"github"},"branch":"master","displayName":"dishenggg/ip[master]","outputFolderName":"dishenggg_ip_master"},{"location":{"location":"https://github.com/Nixx162/ip.git","repoName":"ip","organization":"Nixx162","domainName":"github"},"branch":"master","displayName":"Nixx162/ip[master]","outputFolderName":"Nixx162_ip_master"},{"location":{"location":"https://github.com/Leb14/ip.git","repoName":"ip","organization":"Leb14","domainName":"github"},"branch":"master","displayName":"Leb14/ip[master]","outputFolderName":"Leb14_ip_master"},{"location":{"location":"https://github.com/Heran9/ip.git","repoName":"ip","organization":"Heran9","domainName":"github"},"branch":"master","displayName":"Heran9/ip[master]","outputFolderName":"Heran9_ip_master"},{"location":{"location":"https://github.com/FerdiHS/ip.git","repoName":"ip","organization":"FerdiHS","domainName":"github"},"branch":"master","displayName":"FerdiHS/ip[master]","outputFolderName":"FerdiHS_ip_master"},{"location":{"location":"https://github.com/StevenLiudw/ip.git","repoName":"ip","organization":"StevenLiudw","domainName":"github"},"branch":"master","displayName":"StevenLiudw/ip[master]","outputFolderName":"StevenLiudw_ip_master"},{"location":{"location":"https://github.com/InfiBeyond/ip.git","repoName":"ip","organization":"InfiBeyond","domainName":"github"},"branch":"master","displayName":"InfiBeyond/ip[master]","outputFolderName":"InfiBeyond_ip_master"},{"location":{"location":"https://github.com/s0ngyang/ip.git","repoName":"ip","organization":"s0ngyang","domainName":"github"},"branch":"master","displayName":"s0ngyang/ip[master]","outputFolderName":"s0ngyang_ip_master"},{"location":{"location":"https://github.com/ivyy-poison/ip.git","repoName":"ip","organization":"ivyy-poison","domainName":"github"},"branch":"master","displayName":"ivyy-poison/ip[master]","outputFolderName":"ivyy-poison_ip_master"},{"location":{"location":"https://github.com/yytan25/ip.git","repoName":"ip","organization":"yytan25","domainName":"github"},"branch":"master","displayName":"yytan25/ip[master]","outputFolderName":"yytan25_ip_master"},{"location":{"location":"https://github.com/tjch-o/ip.git","repoName":"ip","organization":"tjch-o","domainName":"github"},"branch":"master","displayName":"tjch-o/ip[master]","outputFolderName":"tjch-o_ip_master"},{"location":{"location":"https://github.com/jedkohjk/ip.git","repoName":"ip","organization":"jedkohjk","domainName":"github"},"branch":"master","displayName":"jedkohjk/ip[master]","outputFolderName":"jedkohjk_ip_master"},{"location":{"location":"https://github.com/raynertjx/ip.git","repoName":"ip","organization":"raynertjx","domainName":"github"},"branch":"master","displayName":"raynertjx/ip[master]","outputFolderName":"raynertjx_ip_master"},{"location":{"location":"https://github.com/cmHuang777/ip.git","repoName":"ip","organization":"cmHuang777","domainName":"github"},"branch":"master","displayName":"cmHuang777/ip[master]","outputFolderName":"cmHuang777_ip_master"},{"location":{"location":"https://github.com/wui-hong/ip.git","repoName":"ip","organization":"wui-hong","domainName":"github"},"branch":"master","displayName":"wui-hong/ip[master]","outputFolderName":"wui-hong_ip_master"},{"location":{"location":"https://github.com/PohSayKeong/ip.git","repoName":"ip","organization":"PohSayKeong","domainName":"github"},"branch":"master","displayName":"PohSayKeong/ip[master]","outputFolderName":"PohSayKeong_ip_master"},{"location":{"location":"https://github.com/lsyurea/ip.git","repoName":"ip","organization":"lsyurea","domainName":"github"},"branch":"master","displayName":"lsyurea/ip[master]","outputFolderName":"lsyurea_ip_master"},{"location":{"location":"https://github.com/ong-wei-hong/ip.git","repoName":"ip","organization":"ong-wei-hong","domainName":"github"},"branch":"master","displayName":"ong-wei-hong/ip[master]","outputFolderName":"ong-wei-hong_ip_master"},{"location":{"location":"https://github.com/asdfghjkxd/ip.git","repoName":"ip","organization":"asdfghjkxd","domainName":"github"},"branch":"master","displayName":"asdfghjkxd/ip[master]","outputFolderName":"asdfghjkxd_ip_master"},{"location":{"location":"https://github.com/GSgiansen/ip.git","repoName":"ip","organization":"GSgiansen","domainName":"github"},"branch":"master","displayName":"GSgiansen/ip[master]","outputFolderName":"GSgiansen_ip_master"},{"location":{"location":"https://github.com/syamfarh/ip.git","repoName":"ip","organization":"syamfarh","domainName":"github"},"branch":"master","displayName":"syamfarh/ip[master]","outputFolderName":"syamfarh_ip_master"},{"location":{"location":"https://github.com/PetrichorPrecipice/ip.git","repoName":"ip","organization":"PetrichorPrecipice","domainName":"github"},"branch":"master","displayName":"PetrichorPrecipice/ip[master]","outputFolderName":"PetrichorPrecipice_ip_master"},{"location":{"location":"https://github.com/ngeeyonglim/ip.git","repoName":"ip","organization":"ngeeyonglim","domainName":"github"},"branch":"master","displayName":"ngeeyonglim/ip[master]","outputFolderName":"ngeeyonglim_ip_master"},{"location":{"location":"https://github.com/ivanleekk/ip.git","repoName":"ip","organization":"ivanleekk","domainName":"github"},"branch":"master","displayName":"ivanleekk/ip[master]","outputFolderName":"ivanleekk_ip_master"},{"location":{"location":"https://github.com/ryanozx/ip.git","repoName":"ip","organization":"ryanozx","domainName":"github"},"branch":"master","displayName":"ryanozx/ip[master]","outputFolderName":"ryanozx_ip_master"},{"location":{"location":"https://github.com/Jweewee/ip.git","repoName":"ip","organization":"Jweewee","domainName":"github"},"branch":"master","displayName":"Jweewee/ip[master]","outputFolderName":"Jweewee_ip_master"},{"location":{"location":"https://github.com/supermii2/ip.git","repoName":"ip","organization":"supermii2","domainName":"github"},"branch":"master","displayName":"supermii2/ip[master]","outputFolderName":"supermii2_ip_master"},{"location":{"location":"https://github.com/bkjwjason/ip.git","repoName":"ip","organization":"bkjwjason","domainName":"github"},"branch":"master","displayName":"bkjwjason/ip[master]","outputFolderName":"bkjwjason_ip_master"},{"location":{"location":"https://github.com/Sasmik23/ip.git","repoName":"ip","organization":"Sasmik23","domainName":"github"},"branch":"master","displayName":"Sasmik23/ip[master]","outputFolderName":"Sasmik23_ip_master"},{"location":{"location":"https://github.com/nathanielcalimag/ip.git","repoName":"ip","organization":"nathanielcalimag","domainName":"github"},"branch":"master","displayName":"nathanielcalimag/ip[master]","outputFolderName":"nathanielcalimag_ip_master"},{"location":{"location":"https://github.com/AlagappanRa/ip.git","repoName":"ip","organization":"AlagappanRa","domainName":"github"},"branch":"master","displayName":"AlagappanRa/ip[master]","outputFolderName":"AlagappanRa_ip_master"},{"location":{"location":"https://github.com/McNaBry/ip.git","repoName":"ip","organization":"McNaBry","domainName":"github"},"branch":"master","displayName":"McNaBry/ip[master]","outputFolderName":"McNaBry_ip_master"},{"location":{"location":"https://github.com/phiphi-tan/ip.git","repoName":"ip","organization":"phiphi-tan","domainName":"github"},"branch":"master","displayName":"phiphi-tan/ip[master]","outputFolderName":"phiphi-tan_ip_master"},{"location":{"location":"https://github.com/LicongHuang/ip.git","repoName":"ip","organization":"LicongHuang","domainName":"github"},"branch":"master","displayName":"LicongHuang/ip[master]","outputFolderName":"LicongHuang_ip_master"},{"location":{"location":"https://github.com/tanshiyu1999/ip.git","repoName":"ip","organization":"tanshiyu1999","domainName":"github"},"branch":"master","displayName":"tanshiyu1999/ip[master]","outputFolderName":"tanshiyu1999_ip_master"},{"location":{"location":"https://github.com/raydenlim/ip.git","repoName":"ip","organization":"raydenlim","domainName":"github"},"branch":"master","displayName":"raydenlim/ip[master]","outputFolderName":"raydenlim_ip_master"},{"location":{"location":"https://github.com/jianyangg/ip.git","repoName":"ip","organization":"jianyangg","domainName":"github"},"branch":"master","displayName":"jianyangg/ip[master]","outputFolderName":"jianyangg_ip_master"},{"location":{"location":"https://github.com/rionshocker/ip.git","repoName":"ip","organization":"rionshocker","domainName":"github"},"branch":"master","displayName":"rionshocker/ip[master]","outputFolderName":"rionshocker_ip_master"},{"location":{"location":"https://github.com/conradsoon/ip.git","repoName":"ip","organization":"conradsoon","domainName":"github"},"branch":"master","displayName":"conradsoon/ip[master]","outputFolderName":"conradsoon_ip_master"},{"location":{"location":"https://github.com/Jonyxzx/ip.git","repoName":"ip","organization":"Jonyxzx","domainName":"github"},"branch":"master","displayName":"Jonyxzx/ip[master]","outputFolderName":"Jonyxzx_ip_master"},{"location":{"location":"https://github.com/euchangxian/ip.git","repoName":"ip","organization":"euchangxian","domainName":"github"},"branch":"master","displayName":"euchangxian/ip[master]","outputFolderName":"euchangxian_ip_master"},{"location":{"location":"https://github.com/teoks0199/ip.git","repoName":"ip","organization":"teoks0199","domainName":"github"},"branch":"master","displayName":"teoks0199/ip[master]","outputFolderName":"teoks0199_ip_master"},{"location":{"location":"https://github.com/HollaG/ip.git","repoName":"ip","organization":"HollaG","domainName":"github"},"branch":"master","displayName":"HollaG/ip[master]","outputFolderName":"HollaG_ip_master"},{"location":{"location":"https://github.com/leezhengjing/ip.git","repoName":"ip","organization":"leezhengjing","domainName":"github"},"branch":"master","displayName":"leezhengjing/ip[master]","outputFolderName":"leezhengjing_ip_master"},{"location":{"location":"https://github.com/timleow/ip.git","repoName":"ip","organization":"timleow","domainName":"github"},"branch":"master","displayName":"timleow/ip[master]","outputFolderName":"timleow_ip_master"},{"location":{"location":"https://github.com/jacksonyuan256/ip.git","repoName":"ip","organization":"jacksonyuan256","domainName":"github"},"branch":"master","displayName":"jacksonyuan256/ip[master]","outputFolderName":"jacksonyuan256_ip_master"},{"location":{"location":"https://github.com/victorlaiyeeteng/ip.git","repoName":"ip","organization":"victorlaiyeeteng","domainName":"github"},"branch":"master","displayName":"victorlaiyeeteng/ip[master]","outputFolderName":"victorlaiyeeteng_ip_master"},{"location":{"location":"https://github.com/prawnzyy/ip.git","repoName":"ip","organization":"prawnzyy","domainName":"github"},"branch":"master","displayName":"prawnzyy/ip[master]","outputFolderName":"prawnzyy_ip_master"},{"location":{"location":"https://github.com/ryanongwx/ip.git","repoName":"ip","organization":"ryanongwx","domainName":"github"},"branch":"master","displayName":"ryanongwx/ip[master]","outputFolderName":"ryanongwx_ip_master"},{"location":{"location":"https://github.com/tohpinren/ip.git","repoName":"ip","organization":"tohpinren","domainName":"github"},"branch":"master","displayName":"tohpinren/ip[master]","outputFolderName":"tohpinren_ip_master"},{"location":{"location":"https://github.com/DeltonCheng/ip.git","repoName":"ip","organization":"DeltonCheng","domainName":"github"},"branch":"master","displayName":"DeltonCheng/ip[master]","outputFolderName":"DeltonCheng_ip_master"},{"location":{"location":"https://github.com/leontan2/ip.git","repoName":"ip","organization":"leontan2","domainName":"github"},"branch":"master","displayName":"leontan2/ip[master]","outputFolderName":"leontan2_ip_master"},{"location":{"location":"https://github.com/alvinlim277/ip.git","repoName":"ip","organization":"alvinlim277","domainName":"github"},"branch":"master","displayName":"alvinlim277/ip[master]","outputFolderName":"alvinlim277_ip_master"},{"location":{"location":"https://github.com/lshaoqin/ip.git","repoName":"ip","organization":"lshaoqin","domainName":"github"},"branch":"master","displayName":"lshaoqin/ip[master]","outputFolderName":"lshaoqin_ip_master"},{"location":{"location":"https://github.com/ChongWeiJie29/ip.git","repoName":"ip","organization":"ChongWeiJie29","domainName":"github"},"branch":"master","displayName":"ChongWeiJie29/ip[master]","outputFolderName":"ChongWeiJie29_ip_master"},{"location":{"location":"https://github.com/zhonghan721/ip.git","repoName":"ip","organization":"zhonghan721","domainName":"github"},"branch":"master","displayName":"zhonghan721/ip[master]","outputFolderName":"zhonghan721_ip_master"},{"location":{"location":"https://github.com/teozhengyang/ip.git","repoName":"ip","organization":"teozhengyang","domainName":"github"},"branch":"master","displayName":"teozhengyang/ip[master]","outputFolderName":"teozhengyang_ip_master"},{"location":{"location":"https://github.com/garylow2001/ip.git","repoName":"ip","organization":"garylow2001","domainName":"github"},"branch":"master","displayName":"garylow2001/ip[master]","outputFolderName":"garylow2001_ip_master"},{"location":{"location":"https://github.com/Cleon2/ip.git","repoName":"ip","organization":"Cleon2","domainName":"github"},"branch":"master","displayName":"Cleon2/ip[master]","outputFolderName":"Cleon2_ip_master"},{"location":{"location":"https://github.com/limzhenwy/ip.git","repoName":"ip","organization":"limzhenwy","domainName":"github"},"branch":"master","displayName":"limzhenwy/ip[master]","outputFolderName":"limzhenwy_ip_master"},{"location":{"location":"https://github.com/ItsTYtan/ip.git","repoName":"ip","organization":"ItsTYtan","domainName":"github"},"branch":"master","displayName":"ItsTYtan/ip[master]","outputFolderName":"ItsTYtan_ip_master"},{"location":{"location":"https://github.com/owenyeo/ip.git","repoName":"ip","organization":"owenyeo","domainName":"github"},"branch":"master","displayName":"owenyeo/ip[master]","outputFolderName":"owenyeo_ip_master"},{"location":{"location":"https://github.com/jonasongg/ip.git","repoName":"ip","organization":"jonasongg","domainName":"github"},"branch":"master","displayName":"jonasongg/ip[master]","outputFolderName":"jonasongg_ip_master"},{"location":{"location":"https://github.com/Ruizhi2001/ip.git","repoName":"ip","organization":"Ruizhi2001","domainName":"github"},"branch":"master","displayName":"Ruizhi2001/ip[master]","outputFolderName":"Ruizhi2001_ip_master"},{"location":{"location":"https://github.com/Dioclei/ip.git","repoName":"ip","organization":"Dioclei","domainName":"github"},"branch":"master","displayName":"Dioclei/ip[master]","outputFolderName":"Dioclei_ip_master"},{"location":{"location":"https://github.com/bobscodedump/ip.git","repoName":"ip","organization":"bobscodedump","domainName":"github"},"branch":"master","displayName":"bobscodedump/ip[master]","outputFolderName":"bobscodedump_ip_master"},{"location":{"location":"https://github.com/andrefoo/ip.git","repoName":"ip","organization":"andrefoo","domainName":"github"},"branch":"master","displayName":"andrefoo/ip[master]","outputFolderName":"andrefoo_ip_master"},{"location":{"location":"https://github.com/Bombbird2001/ip.git","repoName":"ip","organization":"Bombbird2001","domainName":"github"},"branch":"master","displayName":"Bombbird2001/ip[master]","outputFolderName":"Bombbird2001_ip_master"},{"location":{"location":"https://github.com/chewjh1234/ip.git","repoName":"ip","organization":"chewjh1234","domainName":"github"},"branch":"master","displayName":"chewjh1234/ip[master]","outputFolderName":"chewjh1234_ip_master"},{"location":{"location":"https://github.com/dloh2236/ip.git","repoName":"ip","organization":"dloh2236","domainName":"github"},"branch":"master","displayName":"dloh2236/ip[master]","outputFolderName":"dloh2236_ip_master"},{"location":{"location":"https://github.com/chew01/ip.git","repoName":"ip","organization":"chew01","domainName":"github"},"branch":"master","displayName":"chew01/ip[master]","outputFolderName":"chew01_ip_master"},{"location":{"location":"https://github.com/trgao/ip.git","repoName":"ip","organization":"trgao","domainName":"github"},"branch":"master","displayName":"trgao/ip[master]","outputFolderName":"trgao_ip_master"},{"location":{"location":"https://github.com/richiehx/ip.git","repoName":"ip","organization":"richiehx","domainName":"github"},"branch":"master","displayName":"richiehx/ip[master]","outputFolderName":"richiehx_ip_master"},{"location":{"location":"https://github.com/LoMaply/ip.git","repoName":"ip","organization":"LoMaply","domainName":"github"},"branch":"master","displayName":"LoMaply/ip[master]","outputFolderName":"LoMaply_ip_master"},{"location":{"location":"https://github.com/Originalidk/ip.git","repoName":"ip","organization":"Originalidk","domainName":"github"},"branch":"master","displayName":"Originalidk/ip[master]","outputFolderName":"Originalidk_ip_master"},{"location":{"location":"https://github.com/kiatkat/ip.git","repoName":"ip","organization":"kiatkat","domainName":"github"},"branch":"master","displayName":"kiatkat/ip[master]","outputFolderName":"kiatkat_ip_master"},{"location":{"location":"https://github.com/juliusgambe/ip.git","repoName":"ip","organization":"juliusgambe","domainName":"github"},"branch":"master","displayName":"juliusgambe/ip[master]","outputFolderName":"juliusgambe_ip_master"},{"location":{"location":"https://github.com/jiakai-17/ip.git","repoName":"ip","organization":"jiakai-17","domainName":"github"},"branch":"master","displayName":"jiakai-17/ip[master]","outputFolderName":"jiakai-17_ip_master"},{"location":{"location":"https://github.com/nikele2001/ip.git","repoName":"ip","organization":"nikele2001","domainName":"github"},"branch":"master","displayName":"nikele2001/ip[master]","outputFolderName":"nikele2001_ip_master"},{"location":{"location":"https://github.com/jylow/ip.git","repoName":"ip","organization":"jylow","domainName":"github"},"branch":"master","displayName":"jylow/ip[master]","outputFolderName":"jylow_ip_master"},{"location":{"location":"https://github.com/jx124/ip.git","repoName":"ip","organization":"jx124","domainName":"github"},"branch":"master","displayName":"jx124/ip[master]","outputFolderName":"jx124_ip_master"},{"location":{"location":"https://github.com/Kb-Tay/ip.git","repoName":"ip","organization":"Kb-Tay","domainName":"github"},"branch":"master","displayName":"Kb-Tay/ip[master]","outputFolderName":"Kb-Tay_ip_master"},{"location":{"location":"https://github.com/jinyuan0425/ip.git","repoName":"ip","organization":"jinyuan0425","domainName":"github"},"branch":"master","displayName":"jinyuan0425/ip[master]","outputFolderName":"jinyuan0425_ip_master"},{"location":{"location":"https://github.com/darrentfy/ip.git","repoName":"ip","organization":"darrentfy","domainName":"github"},"branch":"master","displayName":"darrentfy/ip[master]","outputFolderName":"darrentfy_ip_master"},{"location":{"location":"https://github.com/HEEaZ/ip.git","repoName":"ip","organization":"HEEaZ","domainName":"github"},"branch":"master","displayName":"HEEaZ/ip[master]","outputFolderName":"HEEaZ_ip_master"},{"location":{"location":"https://github.com/ji-just-ji/ip.git","repoName":"ip","organization":"ji-just-ji","domainName":"github"},"branch":"master","displayName":"ji-just-ji/ip[master]","outputFolderName":"ji-just-ji_ip_master"},{"location":{"location":"https://github.com/simbayippy/ip.git","repoName":"ip","organization":"simbayippy","domainName":"github"},"branch":"master","displayName":"simbayippy/ip[master]","outputFolderName":"simbayippy_ip_master"},{"location":{"location":"https://github.com/teozern1/ip.git","repoName":"ip","organization":"teozern1","domainName":"github"},"branch":"master","displayName":"teozern1/ip[master]","outputFolderName":"teozern1_ip_master"},{"location":{"location":"https://github.com/brein62/ip.git","repoName":"ip","organization":"brein62","domainName":"github"},"branch":"master","displayName":"brein62/ip[master]","outputFolderName":"brein62_ip_master"},{"location":{"location":"https://github.com/awhb/ip.git","repoName":"ip","organization":"awhb","domainName":"github"},"branch":"master","displayName":"awhb/ip[master]","outputFolderName":"awhb_ip_master"},{"location":{"location":"https://github.com/Mahidharah/ip.git","repoName":"ip","organization":"Mahidharah","domainName":"github"},"branch":"master","displayName":"Mahidharah/ip[master]","outputFolderName":"Mahidharah_ip_master"},{"location":{"location":"https://github.com/timetraveller-123/ip.git","repoName":"ip","organization":"timetraveller-123","domainName":"github"},"branch":"master","displayName":"timetraveller-123/ip[master]","outputFolderName":"timetraveller-123_ip_master"},{"location":{"location":"https://github.com/ElginTZM/ip.git","repoName":"ip","organization":"ElginTZM","domainName":"github"},"branch":"master","displayName":"ElginTZM/ip[master]","outputFolderName":"ElginTZM_ip_master"},{"location":{"location":"https://github.com/ryamgoh/ip.git","repoName":"ip","organization":"ryamgoh","domainName":"github"},"branch":"master","displayName":"ryamgoh/ip[master]","outputFolderName":"ryamgoh_ip_master"},{"location":{"location":"https://github.com/Blizzeracz/ip.git","repoName":"ip","organization":"Blizzeracz","domainName":"github"},"branch":"master","displayName":"Blizzeracz/ip[master]","outputFolderName":"Blizzeracz_ip_master"},{"location":{"location":"https://github.com/kiwibang/ip.git","repoName":"ip","organization":"kiwibang","domainName":"github"},"branch":"master","displayName":"kiwibang/ip[master]","outputFolderName":"kiwibang_ip_master"},{"location":{"location":"https://github.com/redtailedfox/ip.git","repoName":"ip","organization":"redtailedfox","domainName":"github"},"branch":"master","displayName":"redtailedfox/ip[master]","outputFolderName":"redtailedfox_ip_master"},{"location":{"location":"https://github.com/lamchenghou/ip.git","repoName":"ip","organization":"lamchenghou","domainName":"github"},"branch":"master","displayName":"lamchenghou/ip[master]","outputFolderName":"lamchenghou_ip_master"},{"location":{"location":"https://github.com/gongg21/ip.git","repoName":"ip","organization":"gongg21","domainName":"github"},"branch":"master","displayName":"gongg21/ip[master]","outputFolderName":"gongg21_ip_master"},{"location":{"location":"https://github.com/CJ-Lee01/ip.git","repoName":"ip","organization":"CJ-Lee01","domainName":"github"},"branch":"master","displayName":"CJ-Lee01/ip[master]","outputFolderName":"CJ-Lee01_ip_master"},{"location":{"location":"https://github.com/Sheeepen/ip.git","repoName":"ip","organization":"Sheeepen","domainName":"github"},"branch":"master","displayName":"Sheeepen/ip[master]","outputFolderName":"Sheeepen_ip_master"},{"location":{"location":"https://github.com/AaronJT1/ip.git","repoName":"ip","organization":"AaronJT1","domainName":"github"},"branch":"master","displayName":"AaronJT1/ip[master]","outputFolderName":"AaronJT1_ip_master"},{"location":{"location":"https://github.com/Respirayson/ip.git","repoName":"ip","organization":"Respirayson","domainName":"github"},"branch":"master","displayName":"Respirayson/ip[master]","outputFolderName":"Respirayson_ip_master"},{"location":{"location":"https://github.com/dickongwd/ip.git","repoName":"ip","organization":"dickongwd","domainName":"github"},"branch":"master","displayName":"dickongwd/ip[master]","outputFolderName":"dickongwd_ip_master"},{"location":{"location":"https://github.com/nicholascher/ip.git","repoName":"ip","organization":"nicholascher","domainName":"github"},"branch":"master","displayName":"nicholascher/ip[master]","outputFolderName":"nicholascher_ip_master"},{"location":{"location":"https://github.com/et-irl/ip.git","repoName":"ip","organization":"et-irl","domainName":"github"},"branch":"master","displayName":"et-irl/ip[master]","outputFolderName":"et-irl_ip_master"},{"location":{"location":"https://github.com/aslam341/ip.git","repoName":"ip","organization":"aslam341","domainName":"github"},"branch":"master","displayName":"aslam341/ip[master]","outputFolderName":"aslam341_ip_master"},{"location":{"location":"https://github.com/seantehds/ip.git","repoName":"ip","organization":"seantehds","domainName":"github"},"branch":"master","displayName":"seantehds/ip[master]","outputFolderName":"seantehds_ip_master"},{"location":{"location":"https://github.com/jianrong7/ip.git","repoName":"ip","organization":"jianrong7","domainName":"github"},"branch":"master","displayName":"jianrong7/ip[master]","outputFolderName":"jianrong7_ip_master"},{"location":{"location":"https://github.com/TeeRenJing/ip.git","repoName":"ip","organization":"TeeRenJing","domainName":"github"},"branch":"master","displayName":"TeeRenJing/ip[master]","outputFolderName":"TeeRenJing_ip_master"},{"location":{"location":"https://github.com/RoeReRe/ip.git","repoName":"ip","organization":"RoeReRe","domainName":"github"},"branch":"master","displayName":"RoeReRe/ip[master]","outputFolderName":"RoeReRe_ip_master"},{"location":{"location":"https://github.com/zsh-eng/ip.git","repoName":"ip","organization":"zsh-eng","domainName":"github"},"branch":"master","displayName":"zsh-eng/ip[master]","outputFolderName":"zsh-eng_ip_master"},{"location":{"location":"https://github.com/seanpzk/ip.git","repoName":"ip","organization":"seanpzk","domainName":"github"},"branch":"master","displayName":"seanpzk/ip[master]","outputFolderName":"seanpzk_ip_master"},{"location":{"location":"https://github.com/quzhetao01/ip.git","repoName":"ip","organization":"quzhetao01","domainName":"github"},"branch":"master","displayName":"quzhetao01/ip[master]","outputFolderName":"quzhetao01_ip_master"},{"location":{"location":"https://github.com/joel-foo/ip.git","repoName":"ip","organization":"joel-foo","domainName":"github"},"branch":"master","displayName":"joel-foo/ip[master]","outputFolderName":"joel-foo_ip_master"},{"location":{"location":"https://github.com/markgcera/ip.git","repoName":"ip","organization":"markgcera","domainName":"github"},"branch":"master","displayName":"markgcera/ip[master]","outputFolderName":"markgcera_ip_master"},{"location":{"location":"https://github.com/dylkaw/ip.git","repoName":"ip","organization":"dylkaw","domainName":"github"},"branch":"master","displayName":"dylkaw/ip[master]","outputFolderName":"dylkaw_ip_master"},{"location":{"location":"https://github.com/SelwynAng/ip.git","repoName":"ip","organization":"SelwynAng","domainName":"github"},"branch":"master","displayName":"SelwynAng/ip[master]","outputFolderName":"SelwynAng_ip_master"},{"location":{"location":"https://github.com/jinyang628/ip.git","repoName":"ip","organization":"jinyang628","domainName":"github"},"branch":"master","displayName":"jinyang628/ip[master]","outputFolderName":"jinyang628_ip_master"},{"location":{"location":"https://github.com/matochichap/ip.git","repoName":"ip","organization":"matochichap","domainName":"github"},"branch":"master","displayName":"matochichap/ip[master]","outputFolderName":"matochichap_ip_master"},{"location":{"location":"https://github.com/sk2001git/ip.git","repoName":"ip","organization":"sk2001git","domainName":"github"},"branch":"master","displayName":"sk2001git/ip[master]","outputFolderName":"sk2001git_ip_master"},{"location":{"location":"https://github.com/jason-raiin/ip.git","repoName":"ip","organization":"jason-raiin","domainName":"github"},"branch":"master","displayName":"jason-raiin/ip[master]","outputFolderName":"jason-raiin_ip_master"},{"location":{"location":"https://github.com/Sebtey/ip.git","repoName":"ip","organization":"Sebtey","domainName":"github"},"branch":"master","displayName":"Sebtey/ip[master]","outputFolderName":"Sebtey_ip_master"},{"location":{"location":"https://github.com/Jweng88/ip.git","repoName":"ip","organization":"Jweng88","domainName":"github"},"branch":"master","displayName":"Jweng88/ip[master]","outputFolderName":"Jweng88_ip_master"},{"location":{"location":"https://github.com/billieboy7/ip.git","repoName":"ip","organization":"billieboy7","domainName":"github"},"branch":"master","displayName":"billieboy7/ip[master]","outputFolderName":"billieboy7_ip_master"},{"location":{"location":"https://github.com/ldinghan/ip.git","repoName":"ip","organization":"ldinghan","domainName":"github"},"branch":"master","displayName":"ldinghan/ip[master]","outputFolderName":"ldinghan_ip_master"},{"location":{"location":"https://github.com/anthonytamzil/ip.git","repoName":"ip","organization":"anthonytamzil","domainName":"github"},"branch":"master","displayName":"anthonytamzil/ip[master]","outputFolderName":"anthonytamzil_ip_master"},{"location":{"location":"https://github.com/ryantzr1/ip.git","repoName":"ip","organization":"ryantzr1","domainName":"github"},"branch":"master","displayName":"ryantzr1/ip[master]","outputFolderName":"ryantzr1_ip_master"},{"location":{"location":"https://github.com/shuyangk/ip.git","repoName":"ip","organization":"shuyangk","domainName":"github"},"branch":"master","displayName":"shuyangk/ip[master]","outputFolderName":"shuyangk_ip_master"},{"location":{"location":"https://github.com/seewhyjay/ip.git","repoName":"ip","organization":"seewhyjay","domainName":"github"},"branch":"master","displayName":"seewhyjay/ip[master]","outputFolderName":"seewhyjay_ip_master"},{"location":{"location":"https://github.com/waseemingly/ip.git","repoName":"ip","organization":"waseemingly","domainName":"github"},"branch":"master","displayName":"waseemingly/ip[master]","outputFolderName":"waseemingly_ip_master"},{"location":{"location":"https://github.com/DistractedCat/ip.git","repoName":"ip","organization":"DistractedCat","domainName":"github"},"branch":"master","displayName":"DistractedCat/ip[master]","outputFolderName":"DistractedCat_ip_master"},{"location":{"location":"https://github.com/geraldngjx/ip.git","repoName":"ip","organization":"geraldngjx","domainName":"github"},"branch":"master","displayName":"geraldngjx/ip[master]","outputFolderName":"geraldngjx_ip_master"},{"location":{"location":"https://github.com/tayian/ip.git","repoName":"ip","organization":"tayian","domainName":"github"},"branch":"master","displayName":"tayian/ip[master]","outputFolderName":"tayian_ip_master"},{"location":{"location":"https://github.com/AlfredBeNoel/ip.git","repoName":"ip","organization":"AlfredBeNoel","domainName":"github"},"branch":"master","displayName":"AlfredBeNoel/ip[master]","outputFolderName":"AlfredBeNoel_ip_master"},{"location":{"location":"https://github.com/Chen1x/ip.git","repoName":"ip","organization":"Chen1x","domainName":"github"},"branch":"master","displayName":"Chen1x/ip[master]","outputFolderName":"Chen1x_ip_master"},{"location":{"location":"https://github.com/juzzztinsoong/ip.git","repoName":"ip","organization":"juzzztinsoong","domainName":"github"},"branch":"master","displayName":"juzzztinsoong/ip[master]","outputFolderName":"juzzztinsoong_ip_master"},{"location":{"location":"https://github.com/lambraydon/ip.git","repoName":"ip","organization":"lambraydon","domainName":"github"},"branch":"master","displayName":"lambraydon/ip[master]","outputFolderName":"lambraydon_ip_master"},{"location":{"location":"https://github.com/lilozz2/ip.git","repoName":"ip","organization":"lilozz2","domainName":"github"},"branch":"master","displayName":"lilozz2/ip[master]","outputFolderName":"lilozz2_ip_master"},{"location":{"location":"https://github.com/tyouwei/ip.git","repoName":"ip","organization":"tyouwei","domainName":"github"},"branch":"master","displayName":"tyouwei/ip[master]","outputFolderName":"tyouwei_ip_master"},{"location":{"location":"https://github.com/Kailash201/ip.git","repoName":"ip","organization":"Kailash201","domainName":"github"},"branch":"master","displayName":"Kailash201/ip[master]","outputFolderName":"Kailash201_ip_master"},{"location":{"location":"https://github.com/tjingsheng/ip.git","repoName":"ip","organization":"tjingsheng","domainName":"github"},"branch":"master","displayName":"tjingsheng/ip[master]","outputFolderName":"tjingsheng_ip_master"},{"location":{"location":"https://github.com/pangyyen/ip.git","repoName":"ip","organization":"pangyyen","domainName":"github"},"branch":"master","displayName":"pangyyen/ip[master]","outputFolderName":"pangyyen_ip_master"},{"location":{"location":"https://github.com/Khaleelur-Rahman/ip.git","repoName":"ip","organization":"Khaleelur-Rahman","domainName":"github"},"branch":"master","displayName":"Khaleelur-Rahman/ip[master]","outputFolderName":"Khaleelur-Rahman_ip_master"},{"location":{"location":"https://github.com/erohsikivar/ip.git","repoName":"ip","organization":"erohsikivar","domainName":"github"},"branch":"master","displayName":"erohsikivar/ip[master]","outputFolderName":"erohsikivar_ip_master"},{"location":{"location":"https://github.com/shishirbychapur/ip.git","repoName":"ip","organization":"shishirbychapur","domainName":"github"},"branch":"master","displayName":"shishirbychapur/ip[master]","outputFolderName":"shishirbychapur_ip_master"},{"location":{"location":"https://github.com/Badatprogrammiing/ip.git","repoName":"ip","organization":"Badatprogrammiing","domainName":"github"},"branch":"master","displayName":"Badatprogrammiing/ip[master]","outputFolderName":"Badatprogrammiing_ip_master"},{"location":{"location":"https://github.com/ravern/ip.git","repoName":"ip","organization":"ravern","domainName":"github"},"branch":"master","displayName":"ravern/ip[master]","outputFolderName":"ravern_ip_master"},{"location":{"location":"https://github.com/B-enguin/ip.git","repoName":"ip","organization":"B-enguin","domainName":"github"},"branch":"master","displayName":"B-enguin/ip[master]","outputFolderName":"B-enguin_ip_master"},{"location":{"location":"https://github.com/AlyssaPng/ip.git","repoName":"ip","organization":"AlyssaPng","domainName":"github"},"branch":"master","displayName":"AlyssaPng/ip[master]","outputFolderName":"AlyssaPng_ip_master"},{"location":{"location":"https://github.com/flexibo/ip.git","repoName":"ip","organization":"flexibo","domainName":"github"},"branch":"master","displayName":"flexibo/ip[master]","outputFolderName":"flexibo_ip_master"},{"location":{"location":"https://github.com/lordidiot/ip.git","repoName":"ip","organization":"lordidiot","domainName":"github"},"branch":"master","displayName":"lordidiot/ip[master]","outputFolderName":"lordidiot_ip_master"},{"location":{"location":"https://github.com/vansh284/ip.git","repoName":"ip","organization":"vansh284","domainName":"github"},"branch":"master","displayName":"vansh284/ip[master]","outputFolderName":"vansh284_ip_master"},{"location":{"location":"https://github.com/samuelim01/ip.git","repoName":"ip","organization":"samuelim01","domainName":"github"},"branch":"master","displayName":"samuelim01/ip[master]","outputFolderName":"samuelim01_ip_master"},{"location":{"location":"https://github.com/WZWren/ip.git","repoName":"ip","organization":"WZWren","domainName":"github"},"branch":"master","displayName":"WZWren/ip[master]","outputFolderName":"WZWren_ip_master"},{"location":{"location":"https://github.com/cxo05/ip.git","repoName":"ip","organization":"cxo05","domainName":"github"},"branch":"master","displayName":"cxo05/ip[master]","outputFolderName":"cxo05_ip_master"},{"location":{"location":"https://github.com/sudarshan2401/ip.git","repoName":"ip","organization":"sudarshan2401","domainName":"github"},"branch":"master","displayName":"sudarshan2401/ip[master]","outputFolderName":"sudarshan2401_ip_master"},{"location":{"location":"https://github.com/jingyu987/ip.git","repoName":"ip","organization":"jingyu987","domainName":"github"},"branch":"master","displayName":"jingyu987/ip[master]","outputFolderName":"jingyu987_ip_master"},{"location":{"location":"https://github.com/H1410101/ip.git","repoName":"ip","organization":"H1410101","domainName":"github"},"branch":"master","displayName":"H1410101/ip[master]","outputFolderName":"H1410101_ip_master"},{"location":{"location":"https://github.com/MagnificentCreature/ip.git","repoName":"ip","organization":"MagnificentCreature","domainName":"github"},"branch":"master","displayName":"MagnificentCreature/ip[master]","outputFolderName":"MagnificentCreature_ip_master"},{"location":{"location":"https://github.com/shyanyong/ip.git","repoName":"ip","organization":"shyanyong","domainName":"github"},"branch":"master","displayName":"shyanyong/ip[master]","outputFolderName":"shyanyong_ip_master"},{"location":{"location":"https://github.com/peasantbird/ip.git","repoName":"ip","organization":"peasantbird","domainName":"github"},"branch":"master","displayName":"peasantbird/ip[master]","outputFolderName":"peasantbird_ip_master"},{"location":{"location":"https://github.com/tllshan/ip.git","repoName":"ip","organization":"tllshan","domainName":"github"},"branch":"master","displayName":"tllshan/ip[master]","outputFolderName":"tllshan_ip_master"},{"location":{"location":"https://github.com/sushiyade/ip.git","repoName":"ip","organization":"sushiyade","domainName":"github"},"branch":"master","displayName":"sushiyade/ip[master]","outputFolderName":"sushiyade_ip_master"},{"location":{"location":"https://github.com/iyioon/ip.git","repoName":"ip","organization":"iyioon","domainName":"github"},"branch":"master","displayName":"iyioon/ip[master]","outputFolderName":"iyioon_ip_master"},{"location":{"location":"https://github.com/shashahchk/ip.git","repoName":"ip","organization":"shashahchk","domainName":"github"},"branch":"master","displayName":"shashahchk/ip[master]","outputFolderName":"shashahchk_ip_master"},{"location":{"location":"https://github.com/Chandan8186/ip.git","repoName":"ip","organization":"Chandan8186","domainName":"github"},"branch":"master","displayName":"Chandan8186/ip[master]","outputFolderName":"Chandan8186_ip_master"},{"location":{"location":"https://github.com/wesho1107/ip.git","repoName":"ip","organization":"wesho1107","domainName":"github"},"branch":"master","displayName":"wesho1107/ip[master]","outputFolderName":"wesho1107_ip_master"},{"location":{"location":"https://github.com/tim-pipi/ip.git","repoName":"ip","organization":"tim-pipi","domainName":"github"},"branch":"master","displayName":"tim-pipi/ip[master]","outputFolderName":"tim-pipi_ip_master"},{"location":{"location":"https://github.com/emzm2023/ip.git","repoName":"ip","organization":"emzm2023","domainName":"github"},"branch":"master","displayName":"emzm2023/ip[master]","outputFolderName":"emzm2023_ip_master"},{"location":{"location":"https://github.com/dlathyun/ip.git","repoName":"ip","organization":"dlathyun","domainName":"github"},"branch":"master","displayName":"dlathyun/ip[master]","outputFolderName":"dlathyun_ip_master"},{"location":{"location":"https://github.com/tanboonkhong/ip.git","repoName":"ip","organization":"tanboonkhong","domainName":"github"},"branch":"master","displayName":"tanboonkhong/ip[master]","outputFolderName":"tanboonkhong_ip_master"},{"location":{"location":"https://github.com/joeng03/ip.git","repoName":"ip","organization":"joeng03","domainName":"github"},"branch":"master","displayName":"joeng03/ip[master]","outputFolderName":"joeng03_ip_master"},{"location":{"location":"https://github.com/VN-Hao/ip.git","repoName":"ip","organization":"VN-Hao","domainName":"github"},"branch":"master","displayName":"VN-Hao/ip[master]","outputFolderName":"VN-Hao_ip_master"},{"location":{"location":"https://github.com/NgChunMan/ip.git","repoName":"ip","organization":"NgChunMan","domainName":"github"},"branch":"master","displayName":"NgChunMan/ip[master]","outputFolderName":"NgChunMan_ip_master"},{"location":{"location":"https://github.com/TiwKangXu/ip.git","repoName":"ip","organization":"TiwKangXu","domainName":"github"},"branch":"master","displayName":"TiwKangXu/ip[master]","outputFolderName":"TiwKangXu_ip_master"},{"location":{"location":"https://github.com/josepholim/ip.git","repoName":"ip","organization":"josepholim","domainName":"github"},"branch":"master","displayName":"josepholim/ip[master]","outputFolderName":"josepholim_ip_master"},{"location":{"location":"https://github.com/dinde2004/ip.git","repoName":"ip","organization":"dinde2004","domainName":"github"},"branch":"master","displayName":"dinde2004/ip[master]","outputFolderName":"dinde2004_ip_master"},{"location":{"location":"https://github.com/yucongkoo/ip.git","repoName":"ip","organization":"yucongkoo","domainName":"github"},"branch":"master","displayName":"yucongkoo/ip[master]","outputFolderName":"yucongkoo_ip_master"},{"location":{"location":"https://github.com/TohLiYuan/ip.git","repoName":"ip","organization":"TohLiYuan","domainName":"github"},"branch":"master","displayName":"TohLiYuan/ip[master]","outputFolderName":"TohLiYuan_ip_master"},{"location":{"location":"https://github.com/NereusWB922/ip.git","repoName":"ip","organization":"NereusWB922","domainName":"github"},"branch":"master","displayName":"NereusWB922/ip[master]","outputFolderName":"NereusWB922_ip_master"},{"location":{"location":"https://github.com/ph-nathan/ip.git","repoName":"ip","organization":"ph-nathan","domainName":"github"},"branch":"master","displayName":"ph-nathan/ip[master]","outputFolderName":"ph-nathan_ip_master"},{"location":{"location":"https://github.com/antonTan96/ip.git","repoName":"ip","organization":"antonTan96","domainName":"github"},"branch":"master","displayName":"antonTan96/ip[master]","outputFolderName":"antonTan96_ip_master"},{"location":{"location":"https://github.com/WinstonLeonard/ip.git","repoName":"ip","organization":"WinstonLeonard","domainName":"github"},"branch":"master","displayName":"WinstonLeonard/ip[master]","outputFolderName":"WinstonLeonard_ip_master"},{"location":{"location":"https://github.com/TehOPanas/ip.git","repoName":"ip","organization":"TehOPanas","domainName":"github"},"branch":"master","displayName":"TehOPanas/ip[master]","outputFolderName":"TehOPanas_ip_master"},{"location":{"location":"https://github.com/marioalvaro/ip.git","repoName":"ip","organization":"marioalvaro","domainName":"github"},"branch":"master","displayName":"marioalvaro/ip[master]","outputFolderName":"marioalvaro_ip_master"},{"location":{"location":"https://github.com/LINCHENYU2030S/ip.git","repoName":"ip","organization":"LINCHENYU2030S","domainName":"github"},"branch":"master","displayName":"LINCHENYU2030S/ip[master]","outputFolderName":"LINCHENYU2030S_ip_master"},{"location":{"location":"https://github.com/LamJiuFong/ip.git","repoName":"ip","organization":"LamJiuFong","domainName":"github"},"branch":"master","displayName":"LamJiuFong/ip[master]","outputFolderName":"LamJiuFong_ip_master"},{"location":{"location":"https://github.com/AndrewJanong/ip.git","repoName":"ip","organization":"AndrewJanong","domainName":"github"},"branch":"master","displayName":"AndrewJanong/ip[master]","outputFolderName":"AndrewJanong_ip_master"},{"location":{"location":"https://github.com/songfangyl/ip.git","repoName":"ip","organization":"songfangyl","domainName":"github"},"branch":"master","displayName":"songfangyl/ip[master]","outputFolderName":"songfangyl_ip_master"},{"location":{"location":"https://github.com/AriellaCallista/ip.git","repoName":"ip","organization":"AriellaCallista","domainName":"github"},"branch":"master","displayName":"AriellaCallista/ip[master]","outputFolderName":"AriellaCallista_ip_master"},{"location":{"location":"https://github.com/KamJiaYue/ip.git","repoName":"ip","organization":"KamJiaYue","domainName":"github"},"branch":"master","displayName":"KamJiaYue/ip[master]","outputFolderName":"KamJiaYue_ip_master"},{"location":{"location":"https://github.com/feifeiraindrops/ip.git","repoName":"ip","organization":"feifeiraindrops","domainName":"github"},"branch":"master","displayName":"feifeiraindrops/ip[master]","outputFolderName":"feifeiraindrops_ip_master"},{"location":{"location":"https://github.com/czhiruo/ip.git","repoName":"ip","organization":"czhiruo","domainName":"github"},"branch":"master","displayName":"czhiruo/ip[master]","outputFolderName":"czhiruo_ip_master"},{"location":{"location":"https://github.com/butteredyakiimo/ip.git","repoName":"ip","organization":"butteredyakiimo","domainName":"github"},"branch":"master","displayName":"butteredyakiimo/ip[master]","outputFolderName":"butteredyakiimo_ip_master"},{"location":{"location":"https://github.com/RiyaMehta2211/ip.git","repoName":"ip","organization":"RiyaMehta2211","domainName":"github"},"branch":"master","displayName":"RiyaMehta2211/ip[master]","outputFolderName":"RiyaMehta2211_ip_master"},{"location":{"location":"https://github.com/beatricecst/ip.git","repoName":"ip","organization":"beatricecst","domainName":"github"},"branch":"master","displayName":"beatricecst/ip[master]","outputFolderName":"beatricecst_ip_master"},{"location":{"location":"https://github.com/maypfv/ip.git","repoName":"ip","organization":"maypfv","domainName":"github"},"branch":"master","displayName":"maypfv/ip[master]","outputFolderName":"maypfv_ip_master"},{"location":{"location":"https://github.com/pra-navi/ip.git","repoName":"ip","organization":"pra-navi","domainName":"github"},"branch":"master","displayName":"pra-navi/ip[master]","outputFolderName":"pra-navi_ip_master"},{"location":{"location":"https://github.com/xxiaoweii/ip.git","repoName":"ip","organization":"xxiaoweii","domainName":"github"},"branch":"master","displayName":"xxiaoweii/ip[master]","outputFolderName":"xxiaoweii_ip_master"},{"location":{"location":"https://github.com/qyaner/ip.git","repoName":"ip","organization":"qyaner","domainName":"github"},"branch":"master","displayName":"qyaner/ip[master]","outputFolderName":"qyaner_ip_master"},{"location":{"location":"https://github.com/qz1004/ip.git","repoName":"ip","organization":"qz1004","domainName":"github"},"branch":"master","displayName":"qz1004/ip[master]","outputFolderName":"qz1004_ip_master"},{"location":{"location":"https://github.com/miljyy/ip.git","repoName":"ip","organization":"miljyy","domainName":"github"},"branch":"master","displayName":"miljyy/ip[master]","outputFolderName":"miljyy_ip_master"},{"location":{"location":"https://github.com/yihfei/ip.git","repoName":"ip","organization":"yihfei","domainName":"github"},"branch":"master","displayName":"yihfei/ip[master]","outputFolderName":"yihfei_ip_master"},{"location":{"location":"https://github.com/Gabriel4357/ip.git","repoName":"ip","organization":"Gabriel4357","domainName":"github"},"branch":"master","displayName":"Gabriel4357/ip[master]","outputFolderName":"Gabriel4357_ip_master"},{"location":{"location":"https://github.com/saraozn/ip.git","repoName":"ip","organization":"saraozn","domainName":"github"},"branch":"master","displayName":"saraozn/ip[master]","outputFolderName":"saraozn_ip_master"},{"location":{"location":"https://github.com/JeremyYong128/ip.git","repoName":"ip","organization":"JeremyYong128","domainName":"github"},"branch":"master","displayName":"JeremyYong128/ip[master]","outputFolderName":"JeremyYong128_ip_master"},{"location":{"location":"https://github.com/samuelmui8/ip.git","repoName":"ip","organization":"samuelmui8","domainName":"github"},"branch":"master","displayName":"samuelmui8/ip[master]","outputFolderName":"samuelmui8_ip_master"},{"location":{"location":"https://github.com/elaineshijie/ip.git","repoName":"ip","organization":"elaineshijie","domainName":"github"},"branch":"master","displayName":"elaineshijie/ip[master]","outputFolderName":"elaineshijie_ip_master"},{"location":{"location":"https://github.com/zhengyup/ip.git","repoName":"ip","organization":"zhengyup","domainName":"github"},"branch":"master","displayName":"zhengyup/ip[master]","outputFolderName":"zhengyup_ip_master"},{"location":{"location":"https://github.com/ruishanteo/ip.git","repoName":"ip","organization":"ruishanteo","domainName":"github"},"branch":"master","displayName":"ruishanteo/ip[master]","outputFolderName":"ruishanteo_ip_master"},{"location":{"location":"https://github.com/lynnlow175/ip.git","repoName":"ip","organization":"lynnlow175","domainName":"github"},"branch":"master","displayName":"lynnlow175/ip[master]","outputFolderName":"lynnlow175_ip_master"},{"location":{"location":"https://github.com/kohkaijie/ip.git","repoName":"ip","organization":"kohkaijie","domainName":"github"},"branch":"master","displayName":"kohkaijie/ip[master]","outputFolderName":"kohkaijie_ip_master"},{"location":{"location":"https://github.com/CelestineTan03/ip.git","repoName":"ip","organization":"CelestineTan03","domainName":"github"},"branch":"master","displayName":"CelestineTan03/ip[master]","outputFolderName":"CelestineTan03_ip_master"},{"location":{"location":"https://github.com/PearlynnT/ip.git","repoName":"ip","organization":"PearlynnT","domainName":"github"},"branch":"master","displayName":"PearlynnT/ip[master]","outputFolderName":"PearlynnT_ip_master"},{"location":{"location":"https://github.com/Elijah5399/ip.git","repoName":"ip","organization":"Elijah5399","domainName":"github"},"branch":"master","displayName":"Elijah5399/ip[master]","outputFolderName":"Elijah5399_ip_master"},{"location":{"location":"https://github.com/nicleongyj/ip.git","repoName":"ip","organization":"nicleongyj","domainName":"github"},"branch":"master","displayName":"nicleongyj/ip[master]","outputFolderName":"nicleongyj_ip_master"},{"location":{"location":"https://github.com/AnnabelTing/ip.git","repoName":"ip","organization":"AnnabelTing","domainName":"github"},"branch":"master","displayName":"AnnabelTing/ip[master]","outputFolderName":"AnnabelTing_ip_master"},{"location":{"location":"https://github.com/jrchoo/ip.git","repoName":"ip","organization":"jrchoo","domainName":"github"},"branch":"master","displayName":"jrchoo/ip[master]","outputFolderName":"jrchoo_ip_master"},{"location":{"location":"https://github.com/wujy28/ip.git","repoName":"ip","organization":"wujy28","domainName":"github"},"branch":"master","displayName":"wujy28/ip[master]","outputFolderName":"wujy28_ip_master"},{"location":{"location":"https://github.com/Nauxe/ip.git","repoName":"ip","organization":"Nauxe","domainName":"github"},"branch":"master","displayName":"Nauxe/ip[master]","outputFolderName":"Nauxe_ip_master"},{"location":{"location":"https://github.com/yyyaohhh/ip.git","repoName":"ip","organization":"yyyaohhh","domainName":"github"},"branch":"master","displayName":"yyyaohhh/ip[master]","outputFolderName":"yyyaohhh_ip_master"},{"location":{"location":"https://github.com/xenosf/ip.git","repoName":"ip","organization":"xenosf","domainName":"github"},"branch":"master","displayName":"xenosf/ip[master]","outputFolderName":"xenosf_ip_master"},{"location":{"location":"https://github.com/WinSheng1/ip.git","repoName":"ip","organization":"WinSheng1","domainName":"github"},"branch":"master","displayName":"WinSheng1/ip[master]","outputFolderName":"WinSheng1_ip_master"},{"location":{"location":"https://github.com/nreHieW/ip.git","repoName":"ip","organization":"nreHieW","domainName":"github"},"branch":"master","displayName":"nreHieW/ip[master]","outputFolderName":"nreHieW_ip_master"},{"location":{"location":"https://github.com/peiran18/ip.git","repoName":"ip","organization":"peiran18","domainName":"github"},"branch":"master","displayName":"peiran18/ip[master]","outputFolderName":"peiran18_ip_master"},{"location":{"location":"https://github.com/cheeggered/ip.git","repoName":"ip","organization":"cheeggered","domainName":"github"},"branch":"master","displayName":"cheeggered/ip[master]","outputFolderName":"cheeggered_ip_master"},{"location":{"location":"https://github.com/GohTengFong/ip.git","repoName":"ip","organization":"GohTengFong","domainName":"github"},"branch":"master","displayName":"GohTengFong/ip[master]","outputFolderName":"GohTengFong_ip_master"},{"location":{"location":"https://github.com/jibtaf/ip.git","repoName":"ip","organization":"jibtaf","domainName":"github"},"branch":"master","displayName":"jibtaf/ip[master]","outputFolderName":"jibtaf_ip_master"},{"location":{"location":"https://github.com/bhnuka/ip.git","repoName":"ip","organization":"bhnuka","domainName":"github"},"branch":"master","displayName":"bhnuka/ip[master]","outputFolderName":"bhnuka_ip_master"},{"location":{"location":"https://github.com/laurenlim2112/ip.git","repoName":"ip","organization":"laurenlim2112","domainName":"github"},"branch":"master","displayName":"laurenlim2112/ip[master]","outputFolderName":"laurenlim2112_ip_master"},{"location":{"location":"https://github.com/howenc/ip.git","repoName":"ip","organization":"howenc","domainName":"github"},"branch":"master","displayName":"howenc/ip[master]","outputFolderName":"howenc_ip_master"},{"location":{"location":"https://github.com/Kokseng1/ip.git","repoName":"ip","organization":"Kokseng1","domainName":"github"},"branch":"master","displayName":"Kokseng1/ip[master]","outputFolderName":"Kokseng1_ip_master"},{"location":{"location":"https://github.com/yiwen101/ip.git","repoName":"ip","organization":"yiwen101","domainName":"github"},"branch":"master","displayName":"yiwen101/ip[master]","outputFolderName":"yiwen101_ip_master"},{"location":{"location":"https://github.com/Cikguseven/ip.git","repoName":"ip","organization":"Cikguseven","domainName":"github"},"branch":"master","displayName":"Cikguseven/ip[master]","outputFolderName":"Cikguseven_ip_master"},{"location":{"location":"https://github.com/javinchua/ip.git","repoName":"ip","organization":"javinchua","domainName":"github"},"branch":"master","displayName":"javinchua/ip[master]","outputFolderName":"javinchua_ip_master"},{"location":{"location":"https://github.com/frrrrry/ip.git","repoName":"ip","organization":"frrrrry","domainName":"github"},"branch":"master","displayName":"frrrrry/ip[master]","outputFolderName":"frrrrry_ip_master"},{"location":{"location":"https://github.com/YeoBohShin/ip.git","repoName":"ip","organization":"YeoBohShin","domainName":"github"},"branch":"master","displayName":"YeoBohShin/ip[master]","outputFolderName":"YeoBohShin_ip_master"},{"location":{"location":"https://github.com/yongning0310/ip.git","repoName":"ip","organization":"yongning0310","domainName":"github"},"branch":"master","displayName":"yongning0310/ip[master]","outputFolderName":"yongning0310_ip_master"},{"location":{"location":"https://github.com/SimWPEric/ip.git","repoName":"ip","organization":"SimWPEric","domainName":"github"},"branch":"master","displayName":"SimWPEric/ip[master]","outputFolderName":"SimWPEric_ip_master"},{"location":{"location":"https://github.com/sopa301/ip.git","repoName":"ip","organization":"sopa301","domainName":"github"},"branch":"master","displayName":"sopa301/ip[master]","outputFolderName":"sopa301_ip_master"},{"location":{"location":"https://github.com/nananakx-x/ip.git","repoName":"ip","organization":"nananakx-x","domainName":"github"},"branch":"master","displayName":"nananakx-x/ip[master]","outputFolderName":"nananakx-x_ip_master"},{"location":{"location":"https://github.com/LuoZYi/ip.git","repoName":"ip","organization":"LuoZYi","domainName":"github"},"branch":"master","displayName":"LuoZYi/ip[master]","outputFolderName":"LuoZYi_ip_master"},{"location":{"location":"https://github.com/LinWanLeii/ip.git","repoName":"ip","organization":"LinWanLeii","domainName":"github"},"branch":"master","displayName":"LinWanLeii/ip[master]","outputFolderName":"LinWanLeii_ip_master"},{"location":{"location":"https://github.com/mingyuanc/ip.git","repoName":"ip","organization":"mingyuanc","domainName":"github"},"branch":"master","displayName":"mingyuanc/ip[master]","outputFolderName":"mingyuanc_ip_master"},{"location":{"location":"https://github.com/chonguschonguschongus/ip.git","repoName":"ip","organization":"chonguschonguschongus","domainName":"github"},"branch":"master","displayName":"chonguschonguschongus/ip[master]","outputFolderName":"chonguschonguschongus_ip_master"},{"location":{"location":"https://github.com/yanghengtang/ip.git","repoName":"ip","organization":"yanghengtang","domainName":"github"},"branch":"master","displayName":"yanghengtang/ip[master]","outputFolderName":"yanghengtang_ip_master"},{"location":{"location":"https://github.com/victorpengmx/ip.git","repoName":"ip","organization":"victorpengmx","domainName":"github"},"branch":"master","displayName":"victorpengmx/ip[master]","outputFolderName":"victorpengmx_ip_master"},{"location":{"location":"https://github.com/kanna-1/ip.git","repoName":"ip","organization":"kanna-1","domainName":"github"},"branch":"master","displayName":"kanna-1/ip[master]","outputFolderName":"kanna-1_ip_master"},{"location":{"location":"https://github.com/ncduy0303/ip.git","repoName":"ip","organization":"ncduy0303","domainName":"github"},"branch":"master","displayName":"ncduy0303/ip[master]","outputFolderName":"ncduy0303_ip_master"},{"location":{"location":"https://github.com/jannnice/ip.git","repoName":"ip","organization":"jannnice","domainName":"github"},"branch":"master","displayName":"jannnice/ip[master]","outputFolderName":"jannnice_ip_master"},{"location":{"location":"https://github.com/itssisi/ip.git","repoName":"ip","organization":"itssisi","domainName":"github"},"branch":"master","displayName":"itssisi/ip[master]","outputFolderName":"itssisi_ip_master"},{"location":{"location":"https://github.com/freddychenyouren2/ip.git","repoName":"ip","organization":"freddychenyouren2","domainName":"github"},"branch":"master","displayName":"freddychenyouren2/ip[master]","outputFolderName":"freddychenyouren2_ip_master"},{"location":{"location":"https://github.com/Vanessamae23/ip.git","repoName":"ip","organization":"Vanessamae23","domainName":"github"},"branch":"master","displayName":"Vanessamae23/ip[master]","outputFolderName":"Vanessamae23_ip_master"},{"location":{"location":"https://github.com/cbj252/ip.git","repoName":"ip","organization":"cbj252","domainName":"github"},"branch":"master","displayName":"cbj252/ip[master]","outputFolderName":"cbj252_ip_master"},{"location":{"location":"https://github.com/freshcabbage123/ip.git","repoName":"ip","organization":"freshcabbage123","domainName":"github"},"branch":"master","displayName":"freshcabbage123/ip[master]","outputFolderName":"freshcabbage123_ip_master"},{"location":{"location":"https://github.com/thienmy0/ip.git","repoName":"ip","organization":"thienmy0","domainName":"github"},"branch":"master","displayName":"thienmy0/ip[master]","outputFolderName":"thienmy0_ip_master"},{"location":{"location":"https://github.com/glenngnng/ip.git","repoName":"ip","organization":"glenngnng","domainName":"github"},"branch":"master","displayName":"glenngnng/ip[master]","outputFolderName":"glenngnng_ip_master"},{"location":{"location":"https://github.com/Darren159/ip.git","repoName":"ip","organization":"Darren159","domainName":"github"},"branch":"master","displayName":"Darren159/ip[master]","outputFolderName":"Darren159_ip_master"},{"location":{"location":"https://github.com/J-hta-n/ip.git","repoName":"ip","organization":"J-hta-n","domainName":"github"},"branch":"master","displayName":"J-hta-n/ip[master]","outputFolderName":"J-hta-n_ip_master"},{"location":{"location":"https://github.com/evanyan13/ip.git","repoName":"ip","organization":"evanyan13","domainName":"github"},"branch":"master","displayName":"evanyan13/ip[master]","outputFolderName":"evanyan13_ip_master"},{"location":{"location":"https://github.com/tanveersingh10/ip.git","repoName":"ip","organization":"tanveersingh10","domainName":"github"},"branch":"master","displayName":"tanveersingh10/ip[master]","outputFolderName":"tanveersingh10_ip_master"},{"location":{"location":"https://github.com/neyapraveen/ip.git","repoName":"ip","organization":"neyapraveen","domainName":"github"},"branch":"master","displayName":"neyapraveen/ip[master]","outputFolderName":"neyapraveen_ip_master"},{"location":{"location":"https://github.com/weeweh/ip.git","repoName":"ip","organization":"weeweh","domainName":"github"},"branch":"master","displayName":"weeweh/ip[master]","outputFolderName":"weeweh_ip_master"},{"location":{"location":"https://github.com/HugeNoob/ip.git","repoName":"ip","organization":"HugeNoob","domainName":"github"},"branch":"master","displayName":"HugeNoob/ip[master]","outputFolderName":"HugeNoob_ip_master"},{"location":{"location":"https://github.com/wasjoe1/ip.git","repoName":"ip","organization":"wasjoe1","domainName":"github"},"branch":"master","displayName":"wasjoe1/ip[master]","outputFolderName":"wasjoe1_ip_master"},{"location":{"location":"https://github.com/s-kybound/ip.git","repoName":"ip","organization":"s-kybound","domainName":"github"},"branch":"master","displayName":"s-kybound/ip[master]","outputFolderName":"s-kybound_ip_master"},{"location":{"location":"https://github.com/Singa-pirate/ip.git","repoName":"ip","organization":"Singa-pirate","domainName":"github"},"branch":"master","displayName":"Singa-pirate/ip[master]","outputFolderName":"Singa-pirate_ip_master"},{"location":{"location":"https://github.com/wanghejin/ip.git","repoName":"ip","organization":"wanghejin","domainName":"github"},"branch":"master","displayName":"wanghejin/ip[master]","outputFolderName":"wanghejin_ip_master"},{"location":{"location":"https://github.com/yarnmengnus/ip.git","repoName":"ip","organization":"yarnmengnus","domainName":"github"},"branch":"master","displayName":"yarnmengnus/ip[master]","outputFolderName":"yarnmengnus_ip_master"},{"location":{"location":"https://github.com/Kurtyjlee/ip.git","repoName":"ip","organization":"Kurtyjlee","domainName":"github"},"branch":"master","displayName":"Kurtyjlee/ip[master]","outputFolderName":"Kurtyjlee_ip_master"},{"location":{"location":"https://github.com/jellywaiyan/ip.git","repoName":"ip","organization":"jellywaiyan","domainName":"github"},"branch":"master","displayName":"jellywaiyan/ip[master]","outputFolderName":"jellywaiyan_ip_master"},{"location":{"location":"https://github.com/ylyma/ip.git","repoName":"ip","organization":"ylyma","domainName":"github"},"branch":"master","displayName":"ylyma/ip[master]","outputFolderName":"ylyma_ip_master"},{"location":{"location":"https://github.com/revdrag/ip.git","repoName":"ip","organization":"revdrag","domainName":"github"},"branch":"master","displayName":"revdrag/ip[master]","outputFolderName":"revdrag_ip_master"},{"location":{"location":"https://github.com/vijay-shankaranand/ip.git","repoName":"ip","organization":"vijay-shankaranand","domainName":"github"},"branch":"master","displayName":"vijay-shankaranand/ip[master]","outputFolderName":"vijay-shankaranand_ip_master"},{"location":{"location":"https://github.com/lerxuann/ip.git","repoName":"ip","organization":"lerxuann","domainName":"github"},"branch":"master","displayName":"lerxuann/ip[master]","outputFolderName":"lerxuann_ip_master"},{"location":{"location":"https://github.com/yuxunn/ip.git","repoName":"ip","organization":"yuxunn","domainName":"github"},"branch":"master","displayName":"yuxunn/ip[master]","outputFolderName":"yuxunn_ip_master"},{"location":{"location":"https://github.com/zannloo/ip.git","repoName":"ip","organization":"zannloo","domainName":"github"},"branch":"master","displayName":"zannloo/ip[master]","outputFolderName":"zannloo_ip_master"},{"location":{"location":"https://github.com/AryanG01/ip.git","repoName":"ip","organization":"AryanG01","domainName":"github"},"branch":"master","displayName":"AryanG01/ip[master]","outputFolderName":"AryanG01_ip_master"},{"location":{"location":"https://github.com/oeggy03/ip.git","repoName":"ip","organization":"oeggy03","domainName":"github"},"branch":"master","displayName":"oeggy03/ip[master]","outputFolderName":"oeggy03_ip_master"},{"location":{"location":"https://github.com/jeffrey-jian/ip.git","repoName":"ip","organization":"jeffrey-jian","domainName":"github"},"branch":"master","displayName":"jeffrey-jian/ip[master]","outputFolderName":"jeffrey-jian_ip_master"},{"location":{"location":"https://github.com/nicholastng010601/ip.git","repoName":"ip","organization":"nicholastng010601","domainName":"github"},"branch":"master","displayName":"nicholastng010601/ip[master]","outputFolderName":"nicholastng010601_ip_master"},{"location":{"location":"https://github.com/Weiennn/ip.git","repoName":"ip","organization":"Weiennn","domainName":"github"},"branch":"master","displayName":"Weiennn/ip[master]","outputFolderName":"Weiennn_ip_master"},{"location":{"location":"https://github.com/tayruxin/ip.git","repoName":"ip","organization":"tayruxin","domainName":"github"},"branch":"master","displayName":"tayruxin/ip[master]","outputFolderName":"tayruxin_ip_master"},{"location":{"location":"https://github.com/xyT-T/ip.git","repoName":"ip","organization":"xyT-T","domainName":"github"},"branch":"master","displayName":"xyT-T/ip[master]","outputFolderName":"xyT-T_ip_master"},{"location":{"location":"https://github.com/lunaroddity/ip.git","repoName":"ip","organization":"lunaroddity","domainName":"github"},"branch":"master","displayName":"lunaroddity/ip[master]","outputFolderName":"lunaroddity_ip_master"},{"location":{"location":"https://github.com/nabonitasen/ip.git","repoName":"ip","organization":"nabonitasen","domainName":"github"},"branch":"master","displayName":"nabonitasen/ip[master]","outputFolderName":"nabonitasen_ip_master"},{"location":{"location":"https://github.com/inezkok/ip.git","repoName":"ip","organization":"inezkok","domainName":"github"},"branch":"master","displayName":"inezkok/ip[master]","outputFolderName":"inezkok_ip_master"},{"location":{"location":"https://github.com/nknguyenhc/ip.git","repoName":"ip","organization":"nknguyenhc","domainName":"github"},"branch":"master","displayName":"nknguyenhc/ip[master]","outputFolderName":"nknguyenhc_ip_master"},{"location":{"location":"https://github.com/keaganpzh/ip.git","repoName":"ip","organization":"keaganpzh","domainName":"github"},"branch":"master","displayName":"keaganpzh/ip[master]","outputFolderName":"keaganpzh_ip_master"},{"location":{"location":"https://github.com/lululwtv/ip.git","repoName":"ip","organization":"lululwtv","domainName":"github"},"branch":"master","displayName":"lululwtv/ip[master]","outputFolderName":"lululwtv_ip_master"},{"location":{"location":"https://github.com/hcs1203/ip.git","repoName":"ip","organization":"hcs1203","domainName":"github"},"branch":"master","displayName":"hcs1203/ip[master]","outputFolderName":"hcs1203_ip_master"},{"location":{"location":"https://github.com/migfoo02/ip.git","repoName":"ip","organization":"migfoo02","domainName":"github"},"branch":"master","displayName":"migfoo02/ip[master]","outputFolderName":"migfoo02_ip_master"},{"location":{"location":"https://github.com/papataco14/ip.git","repoName":"ip","organization":"papataco14","domainName":"github"},"branch":"master","displayName":"papataco14/ip[master]","outputFolderName":"papataco14_ip_master"},{"location":{"location":"https://github.com/coderhuang559/ip.git","repoName":"ip","organization":"coderhuang559","domainName":"github"},"branch":"master","displayName":"coderhuang559/ip[master]","outputFolderName":"coderhuang559_ip_master"},{"location":{"location":"https://github.com/craigtonlian/ip.git","repoName":"ip","organization":"craigtonlian","domainName":"github"},"branch":"master","displayName":"craigtonlian/ip[master]","outputFolderName":"craigtonlian_ip_master"},{"location":{"location":"https://github.com/adammangzijun/ip.git","repoName":"ip","organization":"adammangzijun","domainName":"github"},"branch":"master","displayName":"adammangzijun/ip[master]","outputFolderName":"adammangzijun_ip_master"},{"location":{"location":"https://github.com/AlainS87/ip.git","repoName":"ip","organization":"AlainS87","domainName":"github"},"branch":"master","displayName":"AlainS87/ip[master]","outputFolderName":"AlainS87_ip_master"},{"location":{"location":"https://github.com/tanyyyming/ip.git","repoName":"ip","organization":"tanyyyming","domainName":"github"},"branch":"master","displayName":"tanyyyming/ip[master]","outputFolderName":"tanyyyming_ip_master"},{"location":{"location":"https://github.com/Saezenn/ip.git","repoName":"ip","organization":"Saezenn","domainName":"github"},"branch":"master","displayName":"Saezenn/ip[master]","outputFolderName":"Saezenn_ip_master"},{"location":{"location":"https://github.com/kayabuttertoastt/ip.git","repoName":"ip","organization":"kayabuttertoastt","domainName":"github"},"branch":"master","displayName":"kayabuttertoastt/ip[master]","outputFolderName":"kayabuttertoastt_ip_master"},{"location":{"location":"https://github.com/limjunxian1/ip.git","repoName":"ip","organization":"limjunxian1","domainName":"github"},"branch":"master","displayName":"limjunxian1/ip[master]","outputFolderName":"limjunxian1_ip_master"},{"location":{"location":"https://github.com/andrechuakj/ip.git","repoName":"ip","organization":"andrechuakj","domainName":"github"},"branch":"master","displayName":"andrechuakj/ip[master]","outputFolderName":"andrechuakj_ip_master"},{"location":{"location":"https://github.com/kwangthiag/ip.git","repoName":"ip","organization":"kwangthiag","domainName":"github"},"branch":"master","displayName":"kwangthiag/ip[master]","outputFolderName":"kwangthiag_ip_master"},{"location":{"location":"https://github.com/ricketytoc/ip.git","repoName":"ip","organization":"ricketytoc","domainName":"github"},"branch":"master","displayName":"ricketytoc/ip[master]","outputFolderName":"ricketytoc_ip_master"},{"location":{"location":"https://github.com/applepiofmyeye/ip.git","repoName":"ip","organization":"applepiofmyeye","domainName":"github"},"branch":"master","displayName":"applepiofmyeye/ip[master]","outputFolderName":"applepiofmyeye_ip_master"},{"location":{"location":"https://github.com/nubnubyas/ip.git","repoName":"ip","organization":"nubnubyas","domainName":"github"},"branch":"master","displayName":"nubnubyas/ip[master]","outputFolderName":"nubnubyas_ip_master"},{"location":{"location":"https://github.com/WeeeHung/ip.git","repoName":"ip","organization":"WeeeHung","domainName":"github"},"branch":"master","displayName":"WeeeHung/ip[master]","outputFolderName":"WeeeHung_ip_master"},{"location":{"location":"https://github.com/Eola-Z/ip.git","repoName":"ip","organization":"Eola-Z","domainName":"github"},"branch":"master","displayName":"Eola-Z/ip[master]","outputFolderName":"Eola-Z_ip_master"},{"location":{"location":"https://github.com/jordankanghm/ip.git","repoName":"ip","organization":"jordankanghm","domainName":"github"},"branch":"master","displayName":"jordankanghm/ip[master]","outputFolderName":"jordankanghm_ip_master"},{"location":{"location":"https://github.com/zacwong2151/ip.git","repoName":"ip","organization":"zacwong2151","domainName":"github"},"branch":"master","displayName":"zacwong2151/ip[master]","outputFolderName":"zacwong2151_ip_master"},{"location":{"location":"https://github.com/m1oojv/ip.git","repoName":"ip","organization":"m1oojv","domainName":"github"},"branch":"master","displayName":"m1oojv/ip[master]","outputFolderName":"m1oojv_ip_master"},{"location":{"location":"https://github.com/JCSnap/ip.git","repoName":"ip","organization":"JCSnap","domainName":"github"},"branch":"master","displayName":"JCSnap/ip[master]","outputFolderName":"JCSnap_ip_master"},{"location":{"location":"https://github.com/Nid21cs/ip.git","repoName":"ip","organization":"Nid21cs","domainName":"github"},"branch":"master","displayName":"Nid21cs/ip[master]","outputFolderName":"Nid21cs_ip_master"},{"location":{"location":"https://github.com/mfjkri/ip.git","repoName":"ip","organization":"mfjkri","domainName":"github"},"branch":"master","displayName":"mfjkri/ip[master]","outputFolderName":"mfjkri_ip_master"},{"location":{"location":"https://github.com/Choonyan02/ip.git","repoName":"ip","organization":"Choonyan02","domainName":"github"},"branch":"master","displayName":"Choonyan02/ip[master]","outputFolderName":"Choonyan02_ip_master"},{"location":{"location":"https://github.com/rayyan35p/ip.git","repoName":"ip","organization":"rayyan35p","domainName":"github"},"branch":"master","displayName":"rayyan35p/ip[master]","outputFolderName":"rayyan35p_ip_master"},{"location":{"location":"https://github.com/dhruvir29/ip.git","repoName":"ip","organization":"dhruvir29","domainName":"github"},"branch":"master","displayName":"dhruvir29/ip[master]","outputFolderName":"dhruvir29_ip_master"},{"location":{"location":"https://github.com/Mohammed-Faizzzz/ip.git","repoName":"ip","organization":"Mohammed-Faizzzz","domainName":"github"},"branch":"master","displayName":"Mohammed-Faizzzz/ip[master]","outputFolderName":"Mohammed-Faizzzz_ip_master"},{"location":{"location":"https://github.com/ruo-x/ip.git","repoName":"ip","organization":"ruo-x","domainName":"github"},"branch":"master","displayName":"ruo-x/ip[master]","outputFolderName":"ruo-x_ip_master"},{"location":{"location":"https://github.com/DonovanJJ/ip.git","repoName":"ip","organization":"DonovanJJ","domainName":"github"},"branch":"master","displayName":"DonovanJJ/ip[master]","outputFolderName":"DonovanJJ_ip_master"},{"location":{"location":"https://github.com/kristayeo/ip.git","repoName":"ip","organization":"kristayeo","domainName":"github"},"branch":"master","displayName":"kristayeo/ip[master]","outputFolderName":"kristayeo_ip_master"},{"location":{"location":"https://github.com/ZD292/ip.git","repoName":"ip","organization":"ZD292","domainName":"github"},"branch":"master","displayName":"ZD292/ip[master]","outputFolderName":"ZD292_ip_master"},{"location":{"location":"https://github.com/jingjie88/ip.git","repoName":"ip","organization":"jingjie88","domainName":"github"},"branch":"master","displayName":"jingjie88/ip[master]","outputFolderName":"jingjie88_ip_master"},{"location":{"location":"https://github.com/iantsaii/ip.git","repoName":"ip","organization":"iantsaii","domainName":"github"},"branch":"master","displayName":"iantsaii/ip[master]","outputFolderName":"iantsaii_ip_master"},{"location":{"location":"https://github.com/jingting1412/ip.git","repoName":"ip","organization":"jingting1412","domainName":"github"},"branch":"master","displayName":"jingting1412/ip[master]","outputFolderName":"jingting1412_ip_master"},{"location":{"location":"https://github.com/wnchan/ip.git","repoName":"ip","organization":"wnchan","domainName":"github"},"branch":"master","displayName":"wnchan/ip[master]","outputFolderName":"wnchan_ip_master"},{"location":{"location":"https://github.com/jack1e0/ip.git","repoName":"ip","organization":"jack1e0","domainName":"github"},"branch":"master","displayName":"jack1e0/ip[master]","outputFolderName":"jack1e0_ip_master"},{"location":{"location":"https://github.com/mingyu-wan/ip.git","repoName":"ip","organization":"mingyu-wan","domainName":"github"},"branch":"master","displayName":"mingyu-wan/ip[master]","outputFolderName":"mingyu-wan_ip_master"},{"location":{"location":"https://github.com/nicolengk/ip.git","repoName":"ip","organization":"nicolengk","domainName":"github"},"branch":"master","displayName":"nicolengk/ip[master]","outputFolderName":"nicolengk_ip_master"},{"location":{"location":"https://github.com/cyaoxuan/ip.git","repoName":"ip","organization":"cyaoxuan","domainName":"github"},"branch":"master","displayName":"cyaoxuan/ip[master]","outputFolderName":"cyaoxuan_ip_master"},{"location":{"location":"https://github.com/sunzihan23/ip.git","repoName":"ip","organization":"sunzihan23","domainName":"github"},"branch":"master","displayName":"sunzihan23/ip[master]","outputFolderName":"sunzihan23_ip_master"},{"location":{"location":"https://github.com/Goh-Li-Ting/ip.git","repoName":"ip","organization":"Goh-Li-Ting","domainName":"github"},"branch":"master","displayName":"Goh-Li-Ting/ip[master]","outputFolderName":"Goh-Li-Ting_ip_master"},{"location":{"location":"https://github.com/wjayee/ip.git","repoName":"ip","organization":"wjayee","domainName":"github"},"branch":"master","displayName":"wjayee/ip[master]","outputFolderName":"wjayee_ip_master"},{"location":{"location":"https://github.com/fuyiqiao/ip.git","repoName":"ip","organization":"fuyiqiao","domainName":"github"},"branch":"master","displayName":"fuyiqiao/ip[master]","outputFolderName":"fuyiqiao_ip_master"},{"location":{"location":"https://github.com/GlendaChong/ip.git","repoName":"ip","organization":"GlendaChong","domainName":"github"},"branch":"master","displayName":"GlendaChong/ip[master]","outputFolderName":"GlendaChong_ip_master"},{"location":{"location":"https://github.com/hyc17003/ip.git","repoName":"ip","organization":"hyc17003","domainName":"github"},"branch":"master","displayName":"hyc17003/ip[master]","outputFolderName":"hyc17003_ip_master"},{"location":{"location":"https://github.com/spatuly/ip.git","repoName":"ip","organization":"spatuly","domainName":"github"},"branch":"master","displayName":"spatuly/ip[master]","outputFolderName":"spatuly_ip_master"},{"location":{"location":"https://github.com/tanteckfang/ip.git","repoName":"ip","organization":"tanteckfang","domainName":"github"},"branch":"master","displayName":"tanteckfang/ip[master]","outputFolderName":"tanteckfang_ip_master"},{"location":{"location":"https://github.com/Clin-lyx/ip.git","repoName":"ip","organization":"Clin-lyx","domainName":"github"},"branch":"master","displayName":"Clin-lyx/ip[master]","outputFolderName":"Clin-lyx_ip_master"},{"location":{"location":"https://github.com/lyuanww/ip.git","repoName":"ip","organization":"lyuanww","domainName":"github"},"branch":"master","displayName":"lyuanww/ip[master]","outputFolderName":"lyuanww_ip_master"},{"location":{"location":"https://github.com/LimJH2002/ip.git","repoName":"ip","organization":"LimJH2002","domainName":"github"},"branch":"master","displayName":"LimJH2002/ip[master]","outputFolderName":"LimJH2002_ip_master"},{"location":{"location":"https://github.com/LWZ19/ip.git","repoName":"ip","organization":"LWZ19","domainName":"github"},"branch":"master","displayName":"LWZ19/ip[master]","outputFolderName":"LWZ19_ip_master"},{"location":{"location":"https://github.com/Gavino3o/ip.git","repoName":"ip","organization":"Gavino3o","domainName":"github"},"branch":"master","displayName":"Gavino3o/ip[master]","outputFolderName":"Gavino3o_ip_master"},{"location":{"location":"https://github.com/suryanshkushwaha/ip.git","repoName":"ip","organization":"suryanshkushwaha","domainName":"github"},"branch":"master","displayName":"suryanshkushwaha/ip[master]","outputFolderName":"suryanshkushwaha_ip_master"},{"location":{"location":"https://github.com/JasonRay168/ip.git","repoName":"ip","organization":"JasonRay168","domainName":"github"},"branch":"master","displayName":"JasonRay168/ip[master]","outputFolderName":"JasonRay168_ip_master"},{"location":{"location":"https://github.com/jovkusuma/ip.git","repoName":"ip","organization":"jovkusuma","domainName":"github"},"branch":"master","displayName":"jovkusuma/ip[master]","outputFolderName":"jovkusuma_ip_master"},{"location":{"location":"https://github.com/Chrainx/ip.git","repoName":"ip","organization":"Chrainx","domainName":"github"},"branch":"master","displayName":"Chrainx/ip[master]","outputFolderName":"Chrainx_ip_master"},{"location":{"location":"https://github.com/Propene-Dan/ip.git","repoName":"ip","organization":"Propene-Dan","domainName":"github"},"branch":"master","displayName":"Propene-Dan/ip[master]","outputFolderName":"Propene-Dan_ip_master"},{"location":{"location":"https://github.com/Daphne789/ip.git","repoName":"ip","organization":"Daphne789","domainName":"github"},"branch":"master","displayName":"Daphne789/ip[master]","outputFolderName":"Daphne789_ip_master"},{"location":{"location":"https://github.com/ChuanXinNg/ip.git","repoName":"ip","organization":"ChuanXinNg","domainName":"github"},"branch":"master","displayName":"ChuanXinNg/ip[master]","outputFolderName":"ChuanXinNg_ip_master"},{"location":{"location":"https://github.com/LHeng1/ip.git","repoName":"ip","organization":"LHeng1","domainName":"github"},"branch":"master","displayName":"LHeng1/ip[master]","outputFolderName":"LHeng1_ip_master"},{"location":{"location":"https://github.com/wr1159/ip.git","repoName":"ip","organization":"wr1159","domainName":"github"},"branch":"master","displayName":"wr1159/ip[master]","outputFolderName":"wr1159_ip_master"},{"location":{"location":"https://github.com/wjacobw/ip.git","repoName":"ip","organization":"wjacobw","domainName":"github"},"branch":"master","displayName":"wjacobw/ip[master]","outputFolderName":"wjacobw_ip_master"},{"location":{"location":"https://github.com/tiongjjyi/ip.git","repoName":"ip","organization":"tiongjjyi","domainName":"github"},"branch":"master","displayName":"tiongjjyi/ip[master]","outputFolderName":"tiongjjyi_ip_master"},{"location":{"location":"https://github.com/longnguyentan/ip.git","repoName":"ip","organization":"longnguyentan","domainName":"github"},"branch":"master","displayName":"longnguyentan/ip[master]","outputFolderName":"longnguyentan_ip_master"},{"location":{"location":"https://github.com/proto-aiken-13/ip.git","repoName":"ip","organization":"proto-aiken-13","domainName":"github"},"branch":"master","displayName":"proto-aiken-13/ip[master]","outputFolderName":"proto-aiken-13_ip_master"},{"location":{"location":"https://github.com/junnengsoo/ip.git","repoName":"ip","organization":"junnengsoo","domainName":"github"},"branch":"master","displayName":"junnengsoo/ip[master]","outputFolderName":"junnengsoo_ip_master"},{"location":{"location":"https://github.com/yezkez10/ip.git","repoName":"ip","organization":"yezkez10","domainName":"github"},"branch":"master","displayName":"yezkez10/ip[master]","outputFolderName":"yezkez10_ip_master"},{"location":{"location":"https://github.com/jamesebond/ip.git","repoName":"ip","organization":"jamesebond","domainName":"github"},"branch":"master","displayName":"jamesebond/ip[master]","outputFolderName":"jamesebond_ip_master"},{"location":{"location":"https://github.com/alyssaongyx/ip.git","repoName":"ip","organization":"alyssaongyx","domainName":"github"},"branch":"master","displayName":"alyssaongyx/ip[master]","outputFolderName":"alyssaongyx_ip_master"},{"location":{"location":"https://github.com/Carlintyj/ip.git","repoName":"ip","organization":"Carlintyj","domainName":"github"},"branch":"master","displayName":"Carlintyj/ip[master]","outputFolderName":"Carlintyj_ip_master"},{"location":{"location":"https://github.com/ruth-lim/ip.git","repoName":"ip","organization":"ruth-lim","domainName":"github"},"branch":"master","displayName":"ruth-lim/ip[master]","outputFolderName":"ruth-lim_ip_master"},{"location":{"location":"https://github.com/licongshen12/ip.git","repoName":"ip","organization":"licongshen12","domainName":"github"},"branch":"master","displayName":"licongshen12/ip[master]","outputFolderName":"licongshen12_ip_master"},{"location":{"location":"https://github.com/thaddeusong/ip.git","repoName":"ip","organization":"thaddeusong","domainName":"github"},"branch":"master","displayName":"thaddeusong/ip[master]","outputFolderName":"thaddeusong_ip_master"},{"location":{"location":"https://github.com/LordSaumya/ip.git","repoName":"ip","organization":"LordSaumya","domainName":"github"},"branch":"master","displayName":"LordSaumya/ip[master]","outputFolderName":"LordSaumya_ip_master"},{"location":{"location":"https://github.com/Kevin-Liusx/ip.git","repoName":"ip","organization":"Kevin-Liusx","domainName":"github"},"branch":"master","displayName":"Kevin-Liusx/ip[master]","outputFolderName":"Kevin-Liusx_ip_master"},{"location":{"location":"https://github.com/Ken-Lai/ip.git","repoName":"ip","organization":"Ken-Lai","domainName":"github"},"branch":"master","displayName":"Ken-Lai/ip[master]","outputFolderName":"Ken-Lai_ip_master"},{"location":{"location":"https://github.com/KumChaiYin/ip.git","repoName":"ip","organization":"KumChaiYin","domainName":"github"},"branch":"master","displayName":"KumChaiYin/ip[master]","outputFolderName":"KumChaiYin_ip_master"},{"location":{"location":"https://github.com/pzl111/ip.git","repoName":"ip","organization":"pzl111","domainName":"github"},"branch":"master","displayName":"pzl111/ip[master]","outputFolderName":"pzl111_ip_master"},{"location":{"location":"https://github.com/alientian/ip.git","repoName":"ip","organization":"alientian","domainName":"github"},"branch":"master","displayName":"alientian/ip[master]","outputFolderName":"alientian_ip_master"},{"location":{"location":"https://github.com/eyelessrhyme7/ip.git","repoName":"ip","organization":"eyelessrhyme7","domainName":"github"},"branch":"master","displayName":"eyelessrhyme7/ip[master]","outputFolderName":"eyelessrhyme7_ip_master"},{"location":{"location":"https://github.com/AprupKale/ip.git","repoName":"ip","organization":"AprupKale","domainName":"github"},"branch":"master","displayName":"AprupKale/ip[master]","outputFolderName":"AprupKale_ip_master"},{"location":{"location":"https://github.com/kimshitong/ip.git","repoName":"ip","organization":"kimshitong","domainName":"github"},"branch":"master","displayName":"kimshitong/ip[master]","outputFolderName":"kimshitong_ip_master"},{"location":{"location":"https://github.com/Bryan-Goh/ip.git","repoName":"ip","organization":"Bryan-Goh","domainName":"github"},"branch":"master","displayName":"Bryan-Goh/ip[master]","outputFolderName":"Bryan-Goh_ip_master"},{"location":{"location":"https://github.com/tiif/ip.git","repoName":"ip","organization":"tiif","domainName":"github"},"branch":"master","displayName":"tiif/ip[master]","outputFolderName":"tiif_ip_master"},{"location":{"location":"https://github.com/angkyakdifp/ip.git","repoName":"ip","organization":"angkyakdifp","domainName":"github"},"branch":"master","displayName":"angkyakdifp/ip[master]","outputFolderName":"angkyakdifp_ip_master"},{"location":{"location":"https://github.com/Chen-Kuei/ip.git","repoName":"ip","organization":"Chen-Kuei","domainName":"github"},"branch":"master","displayName":"Chen-Kuei/ip[master]","outputFolderName":"Chen-Kuei_ip_master"},{"location":{"location":"https://github.com/SinhaVedant/ip.git","repoName":"ip","organization":"SinhaVedant","domainName":"github"},"branch":"master","displayName":"SinhaVedant/ip[master]","outputFolderName":"SinhaVedant_ip_master"},{"location":{"location":"https://github.com/D-Limiter/ip.git","repoName":"ip","organization":"D-Limiter","domainName":"github"},"branch":"master","displayName":"D-Limiter/ip[master]","outputFolderName":"D-Limiter_ip_master"},{"location":{"location":"https://github.com/larrywang0701/ip.git","repoName":"ip","organization":"larrywang0701","domainName":"github"},"branch":"master","displayName":"larrywang0701/ip[master]","outputFolderName":"larrywang0701_ip_master"},{"location":{"location":"https://github.com/Song-Mengfei/ip.git","repoName":"ip","organization":"Song-Mengfei","domainName":"github"},"branch":"master","displayName":"Song-Mengfei/ip[master]","outputFolderName":"Song-Mengfei_ip_master"},{"location":{"location":"https://github.com/ChangruHenryQian/ip.git","repoName":"ip","organization":"ChangruHenryQian","domainName":"github"},"branch":"master","displayName":"ChangruHenryQian/ip[master]","outputFolderName":"ChangruHenryQian_ip_master"},{"location":{"location":"https://github.com/ketweeen/ip.git","repoName":"ip","organization":"ketweeen","domainName":"github"},"branch":"master","displayName":"ketweeen/ip[master]","outputFolderName":"ketweeen_ip_master"},{"location":{"location":"https://github.com/RSXIX/ip.git","repoName":"ip","organization":"RSXIX","domainName":"github"},"branch":"master","displayName":"RSXIX/ip[master]","outputFolderName":"RSXIX_ip_master"},{"location":{"location":"https://github.com/songgthu/ip.git","repoName":"ip","organization":"songgthu","domainName":"github"},"branch":"master","displayName":"songgthu/ip[master]","outputFolderName":"songgthu_ip_master"},{"location":{"location":"https://github.com/maj0-0/ip.git","repoName":"ip","organization":"maj0-0","domainName":"github"},"branch":"master","displayName":"maj0-0/ip[master]","outputFolderName":"maj0-0_ip_master"},{"location":{"location":"https://github.com/tiongMax/ip.git","repoName":"ip","organization":"tiongMax","domainName":"github"},"branch":"master","displayName":"tiongMax/ip[master]","outputFolderName":"tiongMax_ip_master"},{"location":{"location":"https://github.com/A1WAYSD/ip.git","repoName":"ip","organization":"A1WAYSD","domainName":"github"},"branch":"master","displayName":"A1WAYSD/ip[master]","outputFolderName":"A1WAYSD_ip_master"},{"location":{"location":"https://github.com/hjoneweek/ip.git","repoName":"ip","organization":"hjoneweek","domainName":"github"},"branch":"master","displayName":"hjoneweek/ip[master]","outputFolderName":"hjoneweek_ip_master"},{"location":{"location":"https://github.com/itsNatTan/ip.git","repoName":"ip","organization":"itsNatTan","domainName":"github"},"branch":"master","displayName":"itsNatTan/ip[master]","outputFolderName":"itsNatTan_ip_master"},{"location":{"location":"https://github.com/AustinHuang1203/ip.git","repoName":"ip","organization":"AustinHuang1203","domainName":"github"},"branch":"master","displayName":"AustinHuang1203/ip[master]","outputFolderName":"AustinHuang1203_ip_master"},{"location":{"location":"https://github.com/WangCheng0116/ip.git","repoName":"ip","organization":"WangCheng0116","domainName":"github"},"branch":"master","displayName":"WangCheng0116/ip[master]","outputFolderName":"WangCheng0116_ip_master"},{"location":{"location":"https://github.com/Tim-Siu/ip.git","repoName":"ip","organization":"Tim-Siu","domainName":"github"},"branch":"master","displayName":"Tim-Siu/ip[master]","outputFolderName":"Tim-Siu_ip_master"},{"location":{"location":"https://github.com/newway1814/ip.git","repoName":"ip","organization":"newway1814","domainName":"github"},"branch":"master","displayName":"newway1814/ip[master]","outputFolderName":"newway1814_ip_master"},{"location":{"location":"https://github.com/li-rongzhi/ip.git","repoName":"ip","organization":"li-rongzhi","domainName":"github"},"branch":"master","displayName":"li-rongzhi/ip[master]","outputFolderName":"li-rongzhi_ip_master"},{"location":{"location":"https://github.com/adhigop13/ip.git","repoName":"ip","organization":"adhigop13","domainName":"github"},"branch":"master","displayName":"adhigop13/ip[master]","outputFolderName":"adhigop13_ip_master"},{"location":{"location":"https://github.com/MadLamprey/ip.git","repoName":"ip","organization":"MadLamprey","domainName":"github"},"branch":"master","displayName":"MadLamprey/ip[master]","outputFolderName":"MadLamprey_ip_master"}],"errorSet":[],"sinceDate":"2023-08-18","untilDate":"2023-10-17","isSinceDateProvided":true,"isUntilDateProvided":false,"supportedDomainUrlMap":{"NOT_RECOGNIZED":{"BRANCH":"","REPO_URL":"UNSUPPORTED","BASE_URL":"UNSUPPORTED","HISTORY_PATH":"","COMMIT_PATH":"","BLAME_PATH":""},"github":{"BRANCH":"tree/$BRANCH","REPO_URL":"https://github.com/$ORGANIZATION/$REPO_NAME/","BASE_URL":"https://github.com/","HISTORY_PATH":"commits/$BRANCH/$FILE_PATH","COMMIT_PATH":"commit/$COMMIT_HASH","BLAME_PATH":"blame/$BRANCH/$FILE_PATH"}}} +{"repoSenseVersion":"0c4045d4f4","reportGeneratedTime":"Wed Oct 18 09:14:47 2023 UTC+08:00","reportGenerationTime":" 2 minute(s) 39.99 second(s)","zoneId":"UTC+08:00","reportTitle":"CS2103 iP Code Dashboard","repos":[{"location":{"location":"https://github.com/remuslum/ip.git","repoName":"ip","organization":"remuslum","domainName":"github"},"branch":"master","displayName":"remuslum/ip[master]","outputFolderName":"remuslum_ip_master"},{"location":{"location":"https://github.com/elhy1999/ip.git","repoName":"ip","organization":"elhy1999","domainName":"github"},"branch":"master","displayName":"elhy1999/ip[master]","outputFolderName":"elhy1999_ip_master"},{"location":{"location":"https://github.com/XihuaZ/ip.git","repoName":"ip","organization":"XihuaZ","domainName":"github"},"branch":"master","displayName":"XihuaZ/ip[master]","outputFolderName":"XihuaZ_ip_master"},{"location":{"location":"https://github.com/bwangpj/ip.git","repoName":"ip","organization":"bwangpj","domainName":"github"},"branch":"master","displayName":"bwangpj/ip[master]","outputFolderName":"bwangpj_ip_master"},{"location":{"location":"https://github.com/shuenj/ip.git","repoName":"ip","organization":"shuenj","domainName":"github"},"branch":"master","displayName":"shuenj/ip[master]","outputFolderName":"shuenj_ip_master"},{"location":{"location":"https://github.com/SungMatt/ip.git","repoName":"ip","organization":"SungMatt","domainName":"github"},"branch":"master","displayName":"SungMatt/ip[master]","outputFolderName":"SungMatt_ip_master"},{"location":{"location":"https://github.com/junhonglow/ip.git","repoName":"ip","organization":"junhonglow","domainName":"github"},"branch":"master","displayName":"junhonglow/ip[master]","outputFolderName":"junhonglow_ip_master"},{"location":{"location":"https://github.com/xavierpok/ip.git","repoName":"ip","organization":"xavierpok","domainName":"github"},"branch":"master","displayName":"xavierpok/ip[master]","outputFolderName":"xavierpok_ip_master"},{"location":{"location":"https://github.com/marcellaantania/ip.git","repoName":"ip","organization":"marcellaantania","domainName":"github"},"branch":"master","displayName":"marcellaantania/ip[master]","outputFolderName":"marcellaantania_ip_master"},{"location":{"location":"https://github.com/starrylight99/ip.git","repoName":"ip","organization":"starrylight99","domainName":"github"},"branch":"master","displayName":"starrylight99/ip[master]","outputFolderName":"starrylight99_ip_master"},{"location":{"location":"https://github.com/leezhanpeng/ip.git","repoName":"ip","organization":"leezhanpeng","domainName":"github"},"branch":"master","displayName":"leezhanpeng/ip[master]","outputFolderName":"leezhanpeng_ip_master"},{"location":{"location":"https://github.com/sheryew/ip.git","repoName":"ip","organization":"sheryew","domainName":"github"},"branch":"master","displayName":"sheryew/ip[master]","outputFolderName":"sheryew_ip_master"},{"location":{"location":"https://github.com/lihongguang00/ip.git","repoName":"ip","organization":"lihongguang00","domainName":"github"},"branch":"master","displayName":"lihongguang00/ip[master]","outputFolderName":"lihongguang00_ip_master"},{"location":{"location":"https://github.com/nicrandomlee/ip.git","repoName":"ip","organization":"nicrandomlee","domainName":"github"},"branch":"master","displayName":"nicrandomlee/ip[master]","outputFolderName":"nicrandomlee_ip_master"},{"location":{"location":"https://github.com/LuahJunYang/ip.git","repoName":"ip","organization":"LuahJunYang","domainName":"github"},"branch":"master","displayName":"LuahJunYang/ip[master]","outputFolderName":"LuahJunYang_ip_master"},{"location":{"location":"https://github.com/s-peiran/ip.git","repoName":"ip","organization":"s-peiran","domainName":"github"},"branch":"master","displayName":"s-peiran/ip[master]","outputFolderName":"s-peiran_ip_master"},{"location":{"location":"https://github.com/aarontxz/ip.git","repoName":"ip","organization":"aarontxz","domainName":"github"},"branch":"master","displayName":"aarontxz/ip[master]","outputFolderName":"aarontxz_ip_master"},{"location":{"location":"https://github.com/chiayunrong/ip.git","repoName":"ip","organization":"chiayunrong","domainName":"github"},"branch":"master","displayName":"chiayunrong/ip[master]","outputFolderName":"chiayunrong_ip_master"},{"location":{"location":"https://github.com/nixonwidjaja/ip.git","repoName":"ip","organization":"nixonwidjaja","domainName":"github"},"branch":"master","displayName":"nixonwidjaja/ip[master]","outputFolderName":"nixonwidjaja_ip_master"},{"location":{"location":"https://github.com/imkwokyong/ip.git","repoName":"ip","organization":"imkwokyong","domainName":"github"},"branch":"master","displayName":"imkwokyong/ip[master]","outputFolderName":"imkwokyong_ip_master"},{"location":{"location":"https://github.com/mamayuan/ip.git","repoName":"ip","organization":"mamayuan","domainName":"github"},"branch":"master","displayName":"mamayuan/ip[master]","outputFolderName":"mamayuan_ip_master"},{"location":{"location":"https://github.com/geoffong11/ip.git","repoName":"ip","organization":"geoffong11","domainName":"github"},"branch":"master","displayName":"geoffong11/ip[master]","outputFolderName":"geoffong11_ip_master"},{"location":{"location":"https://github.com/vivienherq/ip.git","repoName":"ip","organization":"vivienherq","domainName":"github"},"branch":"master","displayName":"vivienherq/ip[master]","outputFolderName":"vivienherq_ip_master"},{"location":{"location":"https://github.com/johnnythesnake12/ip.git","repoName":"ip","organization":"johnnythesnake12","domainName":"github"},"branch":"master","displayName":"johnnythesnake12/ip[master]","outputFolderName":"johnnythesnake12_ip_master"},{"location":{"location":"https://github.com/Cloud7050/ip.git","repoName":"ip","organization":"Cloud7050","domainName":"github"},"branch":"master","displayName":"Cloud7050/ip[master]","outputFolderName":"Cloud7050_ip_master"},{"location":{"location":"https://github.com/jonyeokj/ip.git","repoName":"ip","organization":"jonyeokj","domainName":"github"},"branch":"master","displayName":"jonyeokj/ip[master]","outputFolderName":"jonyeokj_ip_master"},{"location":{"location":"https://github.com/lipwei1808/ip.git","repoName":"ip","organization":"lipwei1808","domainName":"github"},"branch":"master","displayName":"lipwei1808/ip[master]","outputFolderName":"lipwei1808_ip_master"},{"location":{"location":"https://github.com/zhanyang01/ip.git","repoName":"ip","organization":"zhanyang01","domainName":"github"},"branch":"master","displayName":"zhanyang01/ip[master]","outputFolderName":"zhanyang01_ip_master"},{"location":{"location":"https://github.com/EricXiong420/ip.git","repoName":"ip","organization":"EricXiong420","domainName":"github"},"branch":"master","displayName":"EricXiong420/ip[master]","outputFolderName":"EricXiong420_ip_master"},{"location":{"location":"https://github.com/sp4ce-cowboy/ip.git","repoName":"ip","organization":"sp4ce-cowboy","domainName":"github"},"branch":"master","displayName":"sp4ce-cowboy/ip[master]","outputFolderName":"sp4ce-cowboy_ip_master"},{"location":{"location":"https://github.com/ktzy0305/ip.git","repoName":"ip","organization":"ktzy0305","domainName":"github"},"branch":"master","displayName":"ktzy0305/ip[master]","outputFolderName":"ktzy0305_ip_master"},{"location":{"location":"https://github.com/dom-buri/ip.git","repoName":"ip","organization":"dom-buri","domainName":"github"},"branch":"master","displayName":"dom-buri/ip[master]","outputFolderName":"dom-buri_ip_master"},{"location":{"location":"https://github.com/rayshawntan/ip.git","repoName":"ip","organization":"rayshawntan","domainName":"github"},"branch":"master","displayName":"rayshawntan/ip[master]","outputFolderName":"rayshawntan_ip_master"},{"location":{"location":"https://github.com/Seonlo99/ip.git","repoName":"ip","organization":"Seonlo99","domainName":"github"},"branch":"master","displayName":"Seonlo99/ip[master]","outputFolderName":"Seonlo99_ip_master"},{"location":{"location":"https://github.com/woojiahao/ip.git","repoName":"ip","organization":"woojiahao","domainName":"github"},"branch":"master","displayName":"woojiahao/ip[master]","outputFolderName":"woojiahao_ip_master"},{"location":{"location":"https://github.com/Angelyxx/ip.git","repoName":"ip","organization":"Angelyxx","domainName":"github"},"branch":"master","displayName":"Angelyxx/ip[master]","outputFolderName":"Angelyxx_ip_master"},{"location":{"location":"https://github.com/jamz903/ip.git","repoName":"ip","organization":"jamz903","domainName":"github"},"branch":"master","displayName":"jamz903/ip[master]","outputFolderName":"jamz903_ip_master"},{"location":{"location":"https://github.com/Fallman2/ip.git","repoName":"ip","organization":"Fallman2","domainName":"github"},"branch":"master","displayName":"Fallman2/ip[master]","outputFolderName":"Fallman2_ip_master"},{"location":{"location":"https://github.com/jacobcuison/ip.git","repoName":"ip","organization":"jacobcuison","domainName":"github"},"branch":"master","displayName":"jacobcuison/ip[master]","outputFolderName":"jacobcuison_ip_master"},{"location":{"location":"https://github.com/kenvynKwek/ip.git","repoName":"ip","organization":"kenvynKwek","domainName":"github"},"branch":"master","displayName":"kenvynKwek/ip[master]","outputFolderName":"kenvynKwek_ip_master"},{"location":{"location":"https://github.com/kokrui/ip.git","repoName":"ip","organization":"kokrui","domainName":"github"},"branch":"master","displayName":"kokrui/ip[master]","outputFolderName":"kokrui_ip_master"},{"location":{"location":"https://github.com/ncmathan/ip.git","repoName":"ip","organization":"ncmathan","domainName":"github"},"branch":"master","displayName":"ncmathan/ip[master]","outputFolderName":"ncmathan_ip_master"},{"location":{"location":"https://github.com/xCOLOURx/ip.git","repoName":"ip","organization":"xCOLOURx","domainName":"github"},"branch":"master","displayName":"xCOLOURx/ip[master]","outputFolderName":"xCOLOURx_ip_master"},{"location":{"location":"https://github.com/zhyuhan/ip.git","repoName":"ip","organization":"zhyuhan","domainName":"github"},"branch":"master","displayName":"zhyuhan/ip[master]","outputFolderName":"zhyuhan_ip_master"},{"location":{"location":"https://github.com/chuababyy/ip.git","repoName":"ip","organization":"chuababyy","domainName":"github"},"branch":"master","displayName":"chuababyy/ip[master]","outputFolderName":"chuababyy_ip_master"},{"location":{"location":"https://github.com/rocketninja7/ip.git","repoName":"ip","organization":"rocketninja7","domainName":"github"},"branch":"master","displayName":"rocketninja7/ip[master]","outputFolderName":"rocketninja7_ip_master"},{"location":{"location":"https://github.com/marquestye/ip.git","repoName":"ip","organization":"marquestye","domainName":"github"},"branch":"master","displayName":"marquestye/ip[master]","outputFolderName":"marquestye_ip_master"},{"location":{"location":"https://github.com/ruiyangzh/ip.git","repoName":"ip","organization":"ruiyangzh","domainName":"github"},"branch":"master","displayName":"ruiyangzh/ip[master]","outputFolderName":"ruiyangzh_ip_master"},{"location":{"location":"https://github.com/derekjxtan/ip.git","repoName":"ip","organization":"derekjxtan","domainName":"github"},"branch":"master","displayName":"derekjxtan/ip[master]","outputFolderName":"derekjxtan_ip_master"},{"location":{"location":"https://github.com/mounilsankar/ip.git","repoName":"ip","organization":"mounilsankar","domainName":"github"},"branch":"master","displayName":"mounilsankar/ip[master]","outputFolderName":"mounilsankar_ip_master"},{"location":{"location":"https://github.com/wj331/ip.git","repoName":"ip","organization":"wj331","domainName":"github"},"branch":"master","displayName":"wj331/ip[master]","outputFolderName":"wj331_ip_master"},{"location":{"location":"https://github.com/JasonLCY-Temp/ip.git","repoName":"ip","organization":"JasonLCY-Temp","domainName":"github"},"branch":"master","displayName":"JasonLCY-Temp/ip[master]","outputFolderName":"JasonLCY-Temp_ip_master"},{"location":{"location":"https://github.com/lawruixi/ip.git","repoName":"ip","organization":"lawruixi","domainName":"github"},"branch":"master","displayName":"lawruixi/ip[master]","outputFolderName":"lawruixi_ip_master"},{"location":{"location":"https://github.com/wxwern/ip.git","repoName":"ip","organization":"wxwern","domainName":"github"},"branch":"master","displayName":"wxwern/ip[master]","outputFolderName":"wxwern_ip_master"},{"location":{"location":"https://github.com/zekone/ip.git","repoName":"ip","organization":"zekone","domainName":"github"},"branch":"master","displayName":"zekone/ip[master]","outputFolderName":"zekone_ip_master"},{"location":{"location":"https://github.com/wamps-jp/ip.git","repoName":"ip","organization":"wamps-jp","domainName":"github"},"branch":"master","displayName":"wamps-jp/ip[master]","outputFolderName":"wamps-jp_ip_master"},{"location":{"location":"https://github.com/saltedfishxx/ip.git","repoName":"ip","organization":"saltedfishxx","domainName":"github"},"branch":"master","displayName":"saltedfishxx/ip[master]","outputFolderName":"saltedfishxx_ip_master"},{"location":{"location":"https://github.com/winson8222/ip.git","repoName":"ip","organization":"winson8222","domainName":"github"},"branch":"master","displayName":"winson8222/ip[master]","outputFolderName":"winson8222_ip_master"},{"location":{"location":"https://github.com/brandon-nam/ip.git","repoName":"ip","organization":"brandon-nam","domainName":"github"},"branch":"master","displayName":"brandon-nam/ip[master]","outputFolderName":"brandon-nam_ip_master"},{"location":{"location":"https://github.com/p-xp/ip.git","repoName":"ip","organization":"p-xp","domainName":"github"},"branch":"master","displayName":"p-xp/ip[master]","outputFolderName":"p-xp_ip_master"},{"location":{"location":"https://github.com/WeeMingQing/ip.git","repoName":"ip","organization":"WeeMingQing","domainName":"github"},"branch":"master","displayName":"WeeMingQing/ip[master]","outputFolderName":"WeeMingQing_ip_master"},{"location":{"location":"https://github.com/ScarletBlanks/ip.git","repoName":"ip","organization":"ScarletBlanks","domainName":"github"},"branch":"master","displayName":"ScarletBlanks/ip[master]","outputFolderName":"ScarletBlanks_ip_master"},{"location":{"location":"https://github.com/seraphimstreets/ip.git","repoName":"ip","organization":"seraphimstreets","domainName":"github"},"branch":"master","displayName":"seraphimstreets/ip[master]","outputFolderName":"seraphimstreets_ip_master"},{"location":{"location":"https://github.com/devanshubisht/ip.git","repoName":"ip","organization":"devanshubisht","domainName":"github"},"branch":"master","displayName":"devanshubisht/ip[master]","outputFolderName":"devanshubisht_ip_master"},{"location":{"location":"https://github.com/Zjinnnn/ip.git","repoName":"ip","organization":"Zjinnnn","domainName":"github"},"branch":"master","displayName":"Zjinnnn/ip[master]","outputFolderName":"Zjinnnn_ip_master"},{"location":{"location":"https://github.com/brendanneojw/ip.git","repoName":"ip","organization":"brendanneojw","domainName":"github"},"branch":"master","displayName":"brendanneojw/ip[master]","outputFolderName":"brendanneojw_ip_master"},{"location":{"location":"https://github.com/aexolate/ip.git","repoName":"ip","organization":"aexolate","domainName":"github"},"branch":"master","displayName":"aexolate/ip[master]","outputFolderName":"aexolate_ip_master"},{"location":{"location":"https://github.com/techjay-c/ip.git","repoName":"ip","organization":"techjay-c","domainName":"github"},"branch":"master","displayName":"techjay-c/ip[master]","outputFolderName":"techjay-c_ip_master"},{"location":{"location":"https://github.com/SynapseProgramming/ip.git","repoName":"ip","organization":"SynapseProgramming","domainName":"github"},"branch":"master","displayName":"SynapseProgramming/ip[master]","outputFolderName":"SynapseProgramming_ip_master"},{"location":{"location":"https://github.com/TyrusLye/ip.git","repoName":"ip","organization":"TyrusLye","domainName":"github"},"branch":"master","displayName":"TyrusLye/ip[master]","outputFolderName":"TyrusLye_ip_master"},{"location":{"location":"https://github.com/RB9823/ip.git","repoName":"ip","organization":"RB9823","domainName":"github"},"branch":"master","displayName":"RB9823/ip[master]","outputFolderName":"RB9823_ip_master"},{"location":{"location":"https://github.com/jean-cq/ip.git","repoName":"ip","organization":"jean-cq","domainName":"github"},"branch":"master","displayName":"jean-cq/ip[master]","outputFolderName":"jean-cq_ip_master"},{"location":{"location":"https://github.com/Bearypop/ip.git","repoName":"ip","organization":"Bearypop","domainName":"github"},"branch":"master","displayName":"Bearypop/ip[master]","outputFolderName":"Bearypop_ip_master"},{"location":{"location":"https://github.com/andytoh1/ip.git","repoName":"ip","organization":"andytoh1","domainName":"github"},"branch":"master","displayName":"andytoh1/ip[master]","outputFolderName":"andytoh1_ip_master"},{"location":{"location":"https://github.com/siqirua/ip.git","repoName":"ip","organization":"siqirua","domainName":"github"},"branch":"master","displayName":"siqirua/ip[master]","outputFolderName":"siqirua_ip_master"},{"location":{"location":"https://github.com/amosting/ip.git","repoName":"ip","organization":"amosting","domainName":"github"},"branch":"master","displayName":"amosting/ip[master]","outputFolderName":"amosting_ip_master"},{"location":{"location":"https://github.com/JizhuoChen/ip.git","repoName":"ip","organization":"JizhuoChen","domainName":"github"},"branch":"master","displayName":"JizhuoChen/ip[master]","outputFolderName":"JizhuoChen_ip_master"},{"location":{"location":"https://github.com/Tang-Moyan/ip.git","repoName":"ip","organization":"Tang-Moyan","domainName":"github"},"branch":"master","displayName":"Tang-Moyan/ip[master]","outputFolderName":"Tang-Moyan_ip_master"},{"location":{"location":"https://github.com/aliciamichellew/ip.git","repoName":"ip","organization":"aliciamichellew","domainName":"github"},"branch":"master","displayName":"aliciamichellew/ip[master]","outputFolderName":"aliciamichellew_ip_master"},{"location":{"location":"https://github.com/KamiliArsyad/ip.git","repoName":"ip","organization":"KamiliArsyad","domainName":"github"},"branch":"master","displayName":"KamiliArsyad/ip[master]","outputFolderName":"KamiliArsyad_ip_master"},{"location":{"location":"https://github.com/dishenggg/ip.git","repoName":"ip","organization":"dishenggg","domainName":"github"},"branch":"master","displayName":"dishenggg/ip[master]","outputFolderName":"dishenggg_ip_master"},{"location":{"location":"https://github.com/Nixx162/ip.git","repoName":"ip","organization":"Nixx162","domainName":"github"},"branch":"master","displayName":"Nixx162/ip[master]","outputFolderName":"Nixx162_ip_master"},{"location":{"location":"https://github.com/Leb14/ip.git","repoName":"ip","organization":"Leb14","domainName":"github"},"branch":"master","displayName":"Leb14/ip[master]","outputFolderName":"Leb14_ip_master"},{"location":{"location":"https://github.com/Heran9/ip.git","repoName":"ip","organization":"Heran9","domainName":"github"},"branch":"master","displayName":"Heran9/ip[master]","outputFolderName":"Heran9_ip_master"},{"location":{"location":"https://github.com/FerdiHS/ip.git","repoName":"ip","organization":"FerdiHS","domainName":"github"},"branch":"master","displayName":"FerdiHS/ip[master]","outputFolderName":"FerdiHS_ip_master"},{"location":{"location":"https://github.com/StevenLiudw/ip.git","repoName":"ip","organization":"StevenLiudw","domainName":"github"},"branch":"master","displayName":"StevenLiudw/ip[master]","outputFolderName":"StevenLiudw_ip_master"},{"location":{"location":"https://github.com/InfiBeyond/ip.git","repoName":"ip","organization":"InfiBeyond","domainName":"github"},"branch":"master","displayName":"InfiBeyond/ip[master]","outputFolderName":"InfiBeyond_ip_master"},{"location":{"location":"https://github.com/s0ngyang/ip.git","repoName":"ip","organization":"s0ngyang","domainName":"github"},"branch":"master","displayName":"s0ngyang/ip[master]","outputFolderName":"s0ngyang_ip_master"},{"location":{"location":"https://github.com/ivyy-poison/ip.git","repoName":"ip","organization":"ivyy-poison","domainName":"github"},"branch":"master","displayName":"ivyy-poison/ip[master]","outputFolderName":"ivyy-poison_ip_master"},{"location":{"location":"https://github.com/yytan25/ip.git","repoName":"ip","organization":"yytan25","domainName":"github"},"branch":"master","displayName":"yytan25/ip[master]","outputFolderName":"yytan25_ip_master"},{"location":{"location":"https://github.com/tjch-o/ip.git","repoName":"ip","organization":"tjch-o","domainName":"github"},"branch":"master","displayName":"tjch-o/ip[master]","outputFolderName":"tjch-o_ip_master"},{"location":{"location":"https://github.com/jedkohjk/ip.git","repoName":"ip","organization":"jedkohjk","domainName":"github"},"branch":"master","displayName":"jedkohjk/ip[master]","outputFolderName":"jedkohjk_ip_master"},{"location":{"location":"https://github.com/raynertjx/ip.git","repoName":"ip","organization":"raynertjx","domainName":"github"},"branch":"master","displayName":"raynertjx/ip[master]","outputFolderName":"raynertjx_ip_master"},{"location":{"location":"https://github.com/cmHuang777/ip.git","repoName":"ip","organization":"cmHuang777","domainName":"github"},"branch":"master","displayName":"cmHuang777/ip[master]","outputFolderName":"cmHuang777_ip_master"},{"location":{"location":"https://github.com/wui-hong/ip.git","repoName":"ip","organization":"wui-hong","domainName":"github"},"branch":"master","displayName":"wui-hong/ip[master]","outputFolderName":"wui-hong_ip_master"},{"location":{"location":"https://github.com/PohSayKeong/ip.git","repoName":"ip","organization":"PohSayKeong","domainName":"github"},"branch":"master","displayName":"PohSayKeong/ip[master]","outputFolderName":"PohSayKeong_ip_master"},{"location":{"location":"https://github.com/lsyurea/ip.git","repoName":"ip","organization":"lsyurea","domainName":"github"},"branch":"master","displayName":"lsyurea/ip[master]","outputFolderName":"lsyurea_ip_master"},{"location":{"location":"https://github.com/ong-wei-hong/ip.git","repoName":"ip","organization":"ong-wei-hong","domainName":"github"},"branch":"master","displayName":"ong-wei-hong/ip[master]","outputFolderName":"ong-wei-hong_ip_master"},{"location":{"location":"https://github.com/asdfghjkxd/ip.git","repoName":"ip","organization":"asdfghjkxd","domainName":"github"},"branch":"master","displayName":"asdfghjkxd/ip[master]","outputFolderName":"asdfghjkxd_ip_master"},{"location":{"location":"https://github.com/GSgiansen/ip.git","repoName":"ip","organization":"GSgiansen","domainName":"github"},"branch":"master","displayName":"GSgiansen/ip[master]","outputFolderName":"GSgiansen_ip_master"},{"location":{"location":"https://github.com/syamfarh/ip.git","repoName":"ip","organization":"syamfarh","domainName":"github"},"branch":"master","displayName":"syamfarh/ip[master]","outputFolderName":"syamfarh_ip_master"},{"location":{"location":"https://github.com/PetrichorPrecipice/ip.git","repoName":"ip","organization":"PetrichorPrecipice","domainName":"github"},"branch":"master","displayName":"PetrichorPrecipice/ip[master]","outputFolderName":"PetrichorPrecipice_ip_master"},{"location":{"location":"https://github.com/ngeeyonglim/ip.git","repoName":"ip","organization":"ngeeyonglim","domainName":"github"},"branch":"master","displayName":"ngeeyonglim/ip[master]","outputFolderName":"ngeeyonglim_ip_master"},{"location":{"location":"https://github.com/ivanleekk/ip.git","repoName":"ip","organization":"ivanleekk","domainName":"github"},"branch":"master","displayName":"ivanleekk/ip[master]","outputFolderName":"ivanleekk_ip_master"},{"location":{"location":"https://github.com/ryanozx/ip.git","repoName":"ip","organization":"ryanozx","domainName":"github"},"branch":"master","displayName":"ryanozx/ip[master]","outputFolderName":"ryanozx_ip_master"},{"location":{"location":"https://github.com/Jweewee/ip.git","repoName":"ip","organization":"Jweewee","domainName":"github"},"branch":"master","displayName":"Jweewee/ip[master]","outputFolderName":"Jweewee_ip_master"},{"location":{"location":"https://github.com/supermii2/ip.git","repoName":"ip","organization":"supermii2","domainName":"github"},"branch":"master","displayName":"supermii2/ip[master]","outputFolderName":"supermii2_ip_master"},{"location":{"location":"https://github.com/bkjwjason/ip.git","repoName":"ip","organization":"bkjwjason","domainName":"github"},"branch":"master","displayName":"bkjwjason/ip[master]","outputFolderName":"bkjwjason_ip_master"},{"location":{"location":"https://github.com/Sasmik23/ip.git","repoName":"ip","organization":"Sasmik23","domainName":"github"},"branch":"master","displayName":"Sasmik23/ip[master]","outputFolderName":"Sasmik23_ip_master"},{"location":{"location":"https://github.com/nathanielcalimag/ip.git","repoName":"ip","organization":"nathanielcalimag","domainName":"github"},"branch":"master","displayName":"nathanielcalimag/ip[master]","outputFolderName":"nathanielcalimag_ip_master"},{"location":{"location":"https://github.com/AlagappanRa/ip.git","repoName":"ip","organization":"AlagappanRa","domainName":"github"},"branch":"master","displayName":"AlagappanRa/ip[master]","outputFolderName":"AlagappanRa_ip_master"},{"location":{"location":"https://github.com/McNaBry/ip.git","repoName":"ip","organization":"McNaBry","domainName":"github"},"branch":"master","displayName":"McNaBry/ip[master]","outputFolderName":"McNaBry_ip_master"},{"location":{"location":"https://github.com/phiphi-tan/ip.git","repoName":"ip","organization":"phiphi-tan","domainName":"github"},"branch":"master","displayName":"phiphi-tan/ip[master]","outputFolderName":"phiphi-tan_ip_master"},{"location":{"location":"https://github.com/LicongHuang/ip.git","repoName":"ip","organization":"LicongHuang","domainName":"github"},"branch":"master","displayName":"LicongHuang/ip[master]","outputFolderName":"LicongHuang_ip_master"},{"location":{"location":"https://github.com/tanshiyu1999/ip.git","repoName":"ip","organization":"tanshiyu1999","domainName":"github"},"branch":"master","displayName":"tanshiyu1999/ip[master]","outputFolderName":"tanshiyu1999_ip_master"},{"location":{"location":"https://github.com/raydenlim/ip.git","repoName":"ip","organization":"raydenlim","domainName":"github"},"branch":"master","displayName":"raydenlim/ip[master]","outputFolderName":"raydenlim_ip_master"},{"location":{"location":"https://github.com/jianyangg/ip.git","repoName":"ip","organization":"jianyangg","domainName":"github"},"branch":"master","displayName":"jianyangg/ip[master]","outputFolderName":"jianyangg_ip_master"},{"location":{"location":"https://github.com/rionshocker/ip.git","repoName":"ip","organization":"rionshocker","domainName":"github"},"branch":"master","displayName":"rionshocker/ip[master]","outputFolderName":"rionshocker_ip_master"},{"location":{"location":"https://github.com/conradsoon/ip.git","repoName":"ip","organization":"conradsoon","domainName":"github"},"branch":"master","displayName":"conradsoon/ip[master]","outputFolderName":"conradsoon_ip_master"},{"location":{"location":"https://github.com/Jonyxzx/ip.git","repoName":"ip","organization":"Jonyxzx","domainName":"github"},"branch":"master","displayName":"Jonyxzx/ip[master]","outputFolderName":"Jonyxzx_ip_master"},{"location":{"location":"https://github.com/euchangxian/ip.git","repoName":"ip","organization":"euchangxian","domainName":"github"},"branch":"master","displayName":"euchangxian/ip[master]","outputFolderName":"euchangxian_ip_master"},{"location":{"location":"https://github.com/teoks0199/ip.git","repoName":"ip","organization":"teoks0199","domainName":"github"},"branch":"master","displayName":"teoks0199/ip[master]","outputFolderName":"teoks0199_ip_master"},{"location":{"location":"https://github.com/HollaG/ip.git","repoName":"ip","organization":"HollaG","domainName":"github"},"branch":"master","displayName":"HollaG/ip[master]","outputFolderName":"HollaG_ip_master"},{"location":{"location":"https://github.com/leezhengjing/ip.git","repoName":"ip","organization":"leezhengjing","domainName":"github"},"branch":"master","displayName":"leezhengjing/ip[master]","outputFolderName":"leezhengjing_ip_master"},{"location":{"location":"https://github.com/timleow/ip.git","repoName":"ip","organization":"timleow","domainName":"github"},"branch":"master","displayName":"timleow/ip[master]","outputFolderName":"timleow_ip_master"},{"location":{"location":"https://github.com/jacksonyuan256/ip.git","repoName":"ip","organization":"jacksonyuan256","domainName":"github"},"branch":"master","displayName":"jacksonyuan256/ip[master]","outputFolderName":"jacksonyuan256_ip_master"},{"location":{"location":"https://github.com/victorlaiyeeteng/ip.git","repoName":"ip","organization":"victorlaiyeeteng","domainName":"github"},"branch":"master","displayName":"victorlaiyeeteng/ip[master]","outputFolderName":"victorlaiyeeteng_ip_master"},{"location":{"location":"https://github.com/prawnzyy/ip.git","repoName":"ip","organization":"prawnzyy","domainName":"github"},"branch":"master","displayName":"prawnzyy/ip[master]","outputFolderName":"prawnzyy_ip_master"},{"location":{"location":"https://github.com/ryanongwx/ip.git","repoName":"ip","organization":"ryanongwx","domainName":"github"},"branch":"master","displayName":"ryanongwx/ip[master]","outputFolderName":"ryanongwx_ip_master"},{"location":{"location":"https://github.com/tohpinren/ip.git","repoName":"ip","organization":"tohpinren","domainName":"github"},"branch":"master","displayName":"tohpinren/ip[master]","outputFolderName":"tohpinren_ip_master"},{"location":{"location":"https://github.com/DeltonCheng/ip.git","repoName":"ip","organization":"DeltonCheng","domainName":"github"},"branch":"master","displayName":"DeltonCheng/ip[master]","outputFolderName":"DeltonCheng_ip_master"},{"location":{"location":"https://github.com/leontan2/ip.git","repoName":"ip","organization":"leontan2","domainName":"github"},"branch":"master","displayName":"leontan2/ip[master]","outputFolderName":"leontan2_ip_master"},{"location":{"location":"https://github.com/alvinlim277/ip.git","repoName":"ip","organization":"alvinlim277","domainName":"github"},"branch":"master","displayName":"alvinlim277/ip[master]","outputFolderName":"alvinlim277_ip_master"},{"location":{"location":"https://github.com/lshaoqin/ip.git","repoName":"ip","organization":"lshaoqin","domainName":"github"},"branch":"master","displayName":"lshaoqin/ip[master]","outputFolderName":"lshaoqin_ip_master"},{"location":{"location":"https://github.com/ChongWeiJie29/ip.git","repoName":"ip","organization":"ChongWeiJie29","domainName":"github"},"branch":"master","displayName":"ChongWeiJie29/ip[master]","outputFolderName":"ChongWeiJie29_ip_master"},{"location":{"location":"https://github.com/zhonghan721/ip.git","repoName":"ip","organization":"zhonghan721","domainName":"github"},"branch":"master","displayName":"zhonghan721/ip[master]","outputFolderName":"zhonghan721_ip_master"},{"location":{"location":"https://github.com/teozhengyang/ip.git","repoName":"ip","organization":"teozhengyang","domainName":"github"},"branch":"master","displayName":"teozhengyang/ip[master]","outputFolderName":"teozhengyang_ip_master"},{"location":{"location":"https://github.com/garylow2001/ip.git","repoName":"ip","organization":"garylow2001","domainName":"github"},"branch":"master","displayName":"garylow2001/ip[master]","outputFolderName":"garylow2001_ip_master"},{"location":{"location":"https://github.com/Cleon2/ip.git","repoName":"ip","organization":"Cleon2","domainName":"github"},"branch":"master","displayName":"Cleon2/ip[master]","outputFolderName":"Cleon2_ip_master"},{"location":{"location":"https://github.com/limzhenwy/ip.git","repoName":"ip","organization":"limzhenwy","domainName":"github"},"branch":"master","displayName":"limzhenwy/ip[master]","outputFolderName":"limzhenwy_ip_master"},{"location":{"location":"https://github.com/ItsTYtan/ip.git","repoName":"ip","organization":"ItsTYtan","domainName":"github"},"branch":"master","displayName":"ItsTYtan/ip[master]","outputFolderName":"ItsTYtan_ip_master"},{"location":{"location":"https://github.com/owenyeo/ip.git","repoName":"ip","organization":"owenyeo","domainName":"github"},"branch":"master","displayName":"owenyeo/ip[master]","outputFolderName":"owenyeo_ip_master"},{"location":{"location":"https://github.com/jonasongg/ip.git","repoName":"ip","organization":"jonasongg","domainName":"github"},"branch":"master","displayName":"jonasongg/ip[master]","outputFolderName":"jonasongg_ip_master"},{"location":{"location":"https://github.com/Ruizhi2001/ip.git","repoName":"ip","organization":"Ruizhi2001","domainName":"github"},"branch":"master","displayName":"Ruizhi2001/ip[master]","outputFolderName":"Ruizhi2001_ip_master"},{"location":{"location":"https://github.com/Dioclei/ip.git","repoName":"ip","organization":"Dioclei","domainName":"github"},"branch":"master","displayName":"Dioclei/ip[master]","outputFolderName":"Dioclei_ip_master"},{"location":{"location":"https://github.com/bobscodedump/ip.git","repoName":"ip","organization":"bobscodedump","domainName":"github"},"branch":"master","displayName":"bobscodedump/ip[master]","outputFolderName":"bobscodedump_ip_master"},{"location":{"location":"https://github.com/andrefoo/ip.git","repoName":"ip","organization":"andrefoo","domainName":"github"},"branch":"master","displayName":"andrefoo/ip[master]","outputFolderName":"andrefoo_ip_master"},{"location":{"location":"https://github.com/Bombbird2001/ip.git","repoName":"ip","organization":"Bombbird2001","domainName":"github"},"branch":"master","displayName":"Bombbird2001/ip[master]","outputFolderName":"Bombbird2001_ip_master"},{"location":{"location":"https://github.com/chewjh1234/ip.git","repoName":"ip","organization":"chewjh1234","domainName":"github"},"branch":"master","displayName":"chewjh1234/ip[master]","outputFolderName":"chewjh1234_ip_master"},{"location":{"location":"https://github.com/dloh2236/ip.git","repoName":"ip","organization":"dloh2236","domainName":"github"},"branch":"master","displayName":"dloh2236/ip[master]","outputFolderName":"dloh2236_ip_master"},{"location":{"location":"https://github.com/chew01/ip.git","repoName":"ip","organization":"chew01","domainName":"github"},"branch":"master","displayName":"chew01/ip[master]","outputFolderName":"chew01_ip_master"},{"location":{"location":"https://github.com/trgao/ip.git","repoName":"ip","organization":"trgao","domainName":"github"},"branch":"master","displayName":"trgao/ip[master]","outputFolderName":"trgao_ip_master"},{"location":{"location":"https://github.com/richiehx/ip.git","repoName":"ip","organization":"richiehx","domainName":"github"},"branch":"master","displayName":"richiehx/ip[master]","outputFolderName":"richiehx_ip_master"},{"location":{"location":"https://github.com/LoMaply/ip.git","repoName":"ip","organization":"LoMaply","domainName":"github"},"branch":"master","displayName":"LoMaply/ip[master]","outputFolderName":"LoMaply_ip_master"},{"location":{"location":"https://github.com/Originalidk/ip.git","repoName":"ip","organization":"Originalidk","domainName":"github"},"branch":"master","displayName":"Originalidk/ip[master]","outputFolderName":"Originalidk_ip_master"},{"location":{"location":"https://github.com/kiatkat/ip.git","repoName":"ip","organization":"kiatkat","domainName":"github"},"branch":"master","displayName":"kiatkat/ip[master]","outputFolderName":"kiatkat_ip_master"},{"location":{"location":"https://github.com/juliusgambe/ip.git","repoName":"ip","organization":"juliusgambe","domainName":"github"},"branch":"master","displayName":"juliusgambe/ip[master]","outputFolderName":"juliusgambe_ip_master"},{"location":{"location":"https://github.com/jiakai-17/ip.git","repoName":"ip","organization":"jiakai-17","domainName":"github"},"branch":"master","displayName":"jiakai-17/ip[master]","outputFolderName":"jiakai-17_ip_master"},{"location":{"location":"https://github.com/nikele2001/ip.git","repoName":"ip","organization":"nikele2001","domainName":"github"},"branch":"master","displayName":"nikele2001/ip[master]","outputFolderName":"nikele2001_ip_master"},{"location":{"location":"https://github.com/jylow/ip.git","repoName":"ip","organization":"jylow","domainName":"github"},"branch":"master","displayName":"jylow/ip[master]","outputFolderName":"jylow_ip_master"},{"location":{"location":"https://github.com/jx124/ip.git","repoName":"ip","organization":"jx124","domainName":"github"},"branch":"master","displayName":"jx124/ip[master]","outputFolderName":"jx124_ip_master"},{"location":{"location":"https://github.com/Kb-Tay/ip.git","repoName":"ip","organization":"Kb-Tay","domainName":"github"},"branch":"master","displayName":"Kb-Tay/ip[master]","outputFolderName":"Kb-Tay_ip_master"},{"location":{"location":"https://github.com/jinyuan0425/ip.git","repoName":"ip","organization":"jinyuan0425","domainName":"github"},"branch":"master","displayName":"jinyuan0425/ip[master]","outputFolderName":"jinyuan0425_ip_master"},{"location":{"location":"https://github.com/darrentfy/ip.git","repoName":"ip","organization":"darrentfy","domainName":"github"},"branch":"master","displayName":"darrentfy/ip[master]","outputFolderName":"darrentfy_ip_master"},{"location":{"location":"https://github.com/HEEaZ/ip.git","repoName":"ip","organization":"HEEaZ","domainName":"github"},"branch":"master","displayName":"HEEaZ/ip[master]","outputFolderName":"HEEaZ_ip_master"},{"location":{"location":"https://github.com/ji-just-ji/ip.git","repoName":"ip","organization":"ji-just-ji","domainName":"github"},"branch":"master","displayName":"ji-just-ji/ip[master]","outputFolderName":"ji-just-ji_ip_master"},{"location":{"location":"https://github.com/simbayippy/ip.git","repoName":"ip","organization":"simbayippy","domainName":"github"},"branch":"master","displayName":"simbayippy/ip[master]","outputFolderName":"simbayippy_ip_master"},{"location":{"location":"https://github.com/teozern1/ip.git","repoName":"ip","organization":"teozern1","domainName":"github"},"branch":"master","displayName":"teozern1/ip[master]","outputFolderName":"teozern1_ip_master"},{"location":{"location":"https://github.com/brein62/ip.git","repoName":"ip","organization":"brein62","domainName":"github"},"branch":"master","displayName":"brein62/ip[master]","outputFolderName":"brein62_ip_master"},{"location":{"location":"https://github.com/awhb/ip.git","repoName":"ip","organization":"awhb","domainName":"github"},"branch":"master","displayName":"awhb/ip[master]","outputFolderName":"awhb_ip_master"},{"location":{"location":"https://github.com/Mahidharah/ip.git","repoName":"ip","organization":"Mahidharah","domainName":"github"},"branch":"master","displayName":"Mahidharah/ip[master]","outputFolderName":"Mahidharah_ip_master"},{"location":{"location":"https://github.com/timetraveller-123/ip.git","repoName":"ip","organization":"timetraveller-123","domainName":"github"},"branch":"master","displayName":"timetraveller-123/ip[master]","outputFolderName":"timetraveller-123_ip_master"},{"location":{"location":"https://github.com/ElginTZM/ip.git","repoName":"ip","organization":"ElginTZM","domainName":"github"},"branch":"master","displayName":"ElginTZM/ip[master]","outputFolderName":"ElginTZM_ip_master"},{"location":{"location":"https://github.com/ryamgoh/ip.git","repoName":"ip","organization":"ryamgoh","domainName":"github"},"branch":"master","displayName":"ryamgoh/ip[master]","outputFolderName":"ryamgoh_ip_master"},{"location":{"location":"https://github.com/Blizzeracz/ip.git","repoName":"ip","organization":"Blizzeracz","domainName":"github"},"branch":"master","displayName":"Blizzeracz/ip[master]","outputFolderName":"Blizzeracz_ip_master"},{"location":{"location":"https://github.com/kiwibang/ip.git","repoName":"ip","organization":"kiwibang","domainName":"github"},"branch":"master","displayName":"kiwibang/ip[master]","outputFolderName":"kiwibang_ip_master"},{"location":{"location":"https://github.com/redtailedfox/ip.git","repoName":"ip","organization":"redtailedfox","domainName":"github"},"branch":"master","displayName":"redtailedfox/ip[master]","outputFolderName":"redtailedfox_ip_master"},{"location":{"location":"https://github.com/lamchenghou/ip.git","repoName":"ip","organization":"lamchenghou","domainName":"github"},"branch":"master","displayName":"lamchenghou/ip[master]","outputFolderName":"lamchenghou_ip_master"},{"location":{"location":"https://github.com/gongg21/ip.git","repoName":"ip","organization":"gongg21","domainName":"github"},"branch":"master","displayName":"gongg21/ip[master]","outputFolderName":"gongg21_ip_master"},{"location":{"location":"https://github.com/CJ-Lee01/ip.git","repoName":"ip","organization":"CJ-Lee01","domainName":"github"},"branch":"master","displayName":"CJ-Lee01/ip[master]","outputFolderName":"CJ-Lee01_ip_master"},{"location":{"location":"https://github.com/Sheeepen/ip.git","repoName":"ip","organization":"Sheeepen","domainName":"github"},"branch":"master","displayName":"Sheeepen/ip[master]","outputFolderName":"Sheeepen_ip_master"},{"location":{"location":"https://github.com/AaronJT1/ip.git","repoName":"ip","organization":"AaronJT1","domainName":"github"},"branch":"master","displayName":"AaronJT1/ip[master]","outputFolderName":"AaronJT1_ip_master"},{"location":{"location":"https://github.com/Respirayson/ip.git","repoName":"ip","organization":"Respirayson","domainName":"github"},"branch":"master","displayName":"Respirayson/ip[master]","outputFolderName":"Respirayson_ip_master"},{"location":{"location":"https://github.com/dickongwd/ip.git","repoName":"ip","organization":"dickongwd","domainName":"github"},"branch":"master","displayName":"dickongwd/ip[master]","outputFolderName":"dickongwd_ip_master"},{"location":{"location":"https://github.com/nicholascher/ip.git","repoName":"ip","organization":"nicholascher","domainName":"github"},"branch":"master","displayName":"nicholascher/ip[master]","outputFolderName":"nicholascher_ip_master"},{"location":{"location":"https://github.com/et-irl/ip.git","repoName":"ip","organization":"et-irl","domainName":"github"},"branch":"master","displayName":"et-irl/ip[master]","outputFolderName":"et-irl_ip_master"},{"location":{"location":"https://github.com/aslam341/ip.git","repoName":"ip","organization":"aslam341","domainName":"github"},"branch":"master","displayName":"aslam341/ip[master]","outputFolderName":"aslam341_ip_master"},{"location":{"location":"https://github.com/seantehds/ip.git","repoName":"ip","organization":"seantehds","domainName":"github"},"branch":"master","displayName":"seantehds/ip[master]","outputFolderName":"seantehds_ip_master"},{"location":{"location":"https://github.com/jianrong7/ip.git","repoName":"ip","organization":"jianrong7","domainName":"github"},"branch":"master","displayName":"jianrong7/ip[master]","outputFolderName":"jianrong7_ip_master"},{"location":{"location":"https://github.com/TeeRenJing/ip.git","repoName":"ip","organization":"TeeRenJing","domainName":"github"},"branch":"master","displayName":"TeeRenJing/ip[master]","outputFolderName":"TeeRenJing_ip_master"},{"location":{"location":"https://github.com/RoeReRe/ip.git","repoName":"ip","organization":"RoeReRe","domainName":"github"},"branch":"master","displayName":"RoeReRe/ip[master]","outputFolderName":"RoeReRe_ip_master"},{"location":{"location":"https://github.com/zsh-eng/ip.git","repoName":"ip","organization":"zsh-eng","domainName":"github"},"branch":"master","displayName":"zsh-eng/ip[master]","outputFolderName":"zsh-eng_ip_master"},{"location":{"location":"https://github.com/seanpzk/ip.git","repoName":"ip","organization":"seanpzk","domainName":"github"},"branch":"master","displayName":"seanpzk/ip[master]","outputFolderName":"seanpzk_ip_master"},{"location":{"location":"https://github.com/quzhetao01/ip.git","repoName":"ip","organization":"quzhetao01","domainName":"github"},"branch":"master","displayName":"quzhetao01/ip[master]","outputFolderName":"quzhetao01_ip_master"},{"location":{"location":"https://github.com/joel-foo/ip.git","repoName":"ip","organization":"joel-foo","domainName":"github"},"branch":"master","displayName":"joel-foo/ip[master]","outputFolderName":"joel-foo_ip_master"},{"location":{"location":"https://github.com/markgcera/ip.git","repoName":"ip","organization":"markgcera","domainName":"github"},"branch":"master","displayName":"markgcera/ip[master]","outputFolderName":"markgcera_ip_master"},{"location":{"location":"https://github.com/dylkaw/ip.git","repoName":"ip","organization":"dylkaw","domainName":"github"},"branch":"master","displayName":"dylkaw/ip[master]","outputFolderName":"dylkaw_ip_master"},{"location":{"location":"https://github.com/SelwynAng/ip.git","repoName":"ip","organization":"SelwynAng","domainName":"github"},"branch":"master","displayName":"SelwynAng/ip[master]","outputFolderName":"SelwynAng_ip_master"},{"location":{"location":"https://github.com/jinyang628/ip.git","repoName":"ip","organization":"jinyang628","domainName":"github"},"branch":"master","displayName":"jinyang628/ip[master]","outputFolderName":"jinyang628_ip_master"},{"location":{"location":"https://github.com/matochichap/ip.git","repoName":"ip","organization":"matochichap","domainName":"github"},"branch":"master","displayName":"matochichap/ip[master]","outputFolderName":"matochichap_ip_master"},{"location":{"location":"https://github.com/sk2001git/ip.git","repoName":"ip","organization":"sk2001git","domainName":"github"},"branch":"master","displayName":"sk2001git/ip[master]","outputFolderName":"sk2001git_ip_master"},{"location":{"location":"https://github.com/jason-raiin/ip.git","repoName":"ip","organization":"jason-raiin","domainName":"github"},"branch":"master","displayName":"jason-raiin/ip[master]","outputFolderName":"jason-raiin_ip_master"},{"location":{"location":"https://github.com/Sebtey/ip.git","repoName":"ip","organization":"Sebtey","domainName":"github"},"branch":"master","displayName":"Sebtey/ip[master]","outputFolderName":"Sebtey_ip_master"},{"location":{"location":"https://github.com/Jweng88/ip.git","repoName":"ip","organization":"Jweng88","domainName":"github"},"branch":"master","displayName":"Jweng88/ip[master]","outputFolderName":"Jweng88_ip_master"},{"location":{"location":"https://github.com/billieboy7/ip.git","repoName":"ip","organization":"billieboy7","domainName":"github"},"branch":"master","displayName":"billieboy7/ip[master]","outputFolderName":"billieboy7_ip_master"},{"location":{"location":"https://github.com/ldinghan/ip.git","repoName":"ip","organization":"ldinghan","domainName":"github"},"branch":"master","displayName":"ldinghan/ip[master]","outputFolderName":"ldinghan_ip_master"},{"location":{"location":"https://github.com/anthonytamzil/ip.git","repoName":"ip","organization":"anthonytamzil","domainName":"github"},"branch":"master","displayName":"anthonytamzil/ip[master]","outputFolderName":"anthonytamzil_ip_master"},{"location":{"location":"https://github.com/ryantzr1/ip.git","repoName":"ip","organization":"ryantzr1","domainName":"github"},"branch":"master","displayName":"ryantzr1/ip[master]","outputFolderName":"ryantzr1_ip_master"},{"location":{"location":"https://github.com/shuyangk/ip.git","repoName":"ip","organization":"shuyangk","domainName":"github"},"branch":"master","displayName":"shuyangk/ip[master]","outputFolderName":"shuyangk_ip_master"},{"location":{"location":"https://github.com/seewhyjay/ip.git","repoName":"ip","organization":"seewhyjay","domainName":"github"},"branch":"master","displayName":"seewhyjay/ip[master]","outputFolderName":"seewhyjay_ip_master"},{"location":{"location":"https://github.com/waseemingly/ip.git","repoName":"ip","organization":"waseemingly","domainName":"github"},"branch":"master","displayName":"waseemingly/ip[master]","outputFolderName":"waseemingly_ip_master"},{"location":{"location":"https://github.com/DistractedCat/ip.git","repoName":"ip","organization":"DistractedCat","domainName":"github"},"branch":"master","displayName":"DistractedCat/ip[master]","outputFolderName":"DistractedCat_ip_master"},{"location":{"location":"https://github.com/geraldngjx/ip.git","repoName":"ip","organization":"geraldngjx","domainName":"github"},"branch":"master","displayName":"geraldngjx/ip[master]","outputFolderName":"geraldngjx_ip_master"},{"location":{"location":"https://github.com/tayian/ip.git","repoName":"ip","organization":"tayian","domainName":"github"},"branch":"master","displayName":"tayian/ip[master]","outputFolderName":"tayian_ip_master"},{"location":{"location":"https://github.com/AlfredBeNoel/ip.git","repoName":"ip","organization":"AlfredBeNoel","domainName":"github"},"branch":"master","displayName":"AlfredBeNoel/ip[master]","outputFolderName":"AlfredBeNoel_ip_master"},{"location":{"location":"https://github.com/Chen1x/ip.git","repoName":"ip","organization":"Chen1x","domainName":"github"},"branch":"master","displayName":"Chen1x/ip[master]","outputFolderName":"Chen1x_ip_master"},{"location":{"location":"https://github.com/juzzztinsoong/ip.git","repoName":"ip","organization":"juzzztinsoong","domainName":"github"},"branch":"master","displayName":"juzzztinsoong/ip[master]","outputFolderName":"juzzztinsoong_ip_master"},{"location":{"location":"https://github.com/lambraydon/ip.git","repoName":"ip","organization":"lambraydon","domainName":"github"},"branch":"master","displayName":"lambraydon/ip[master]","outputFolderName":"lambraydon_ip_master"},{"location":{"location":"https://github.com/lilozz2/ip.git","repoName":"ip","organization":"lilozz2","domainName":"github"},"branch":"master","displayName":"lilozz2/ip[master]","outputFolderName":"lilozz2_ip_master"},{"location":{"location":"https://github.com/tyouwei/ip.git","repoName":"ip","organization":"tyouwei","domainName":"github"},"branch":"master","displayName":"tyouwei/ip[master]","outputFolderName":"tyouwei_ip_master"},{"location":{"location":"https://github.com/Kailash201/ip.git","repoName":"ip","organization":"Kailash201","domainName":"github"},"branch":"master","displayName":"Kailash201/ip[master]","outputFolderName":"Kailash201_ip_master"},{"location":{"location":"https://github.com/tjingsheng/ip.git","repoName":"ip","organization":"tjingsheng","domainName":"github"},"branch":"master","displayName":"tjingsheng/ip[master]","outputFolderName":"tjingsheng_ip_master"},{"location":{"location":"https://github.com/pangyyen/ip.git","repoName":"ip","organization":"pangyyen","domainName":"github"},"branch":"master","displayName":"pangyyen/ip[master]","outputFolderName":"pangyyen_ip_master"},{"location":{"location":"https://github.com/Khaleelur-Rahman/ip.git","repoName":"ip","organization":"Khaleelur-Rahman","domainName":"github"},"branch":"master","displayName":"Khaleelur-Rahman/ip[master]","outputFolderName":"Khaleelur-Rahman_ip_master"},{"location":{"location":"https://github.com/erohsikivar/ip.git","repoName":"ip","organization":"erohsikivar","domainName":"github"},"branch":"master","displayName":"erohsikivar/ip[master]","outputFolderName":"erohsikivar_ip_master"},{"location":{"location":"https://github.com/shishirbychapur/ip.git","repoName":"ip","organization":"shishirbychapur","domainName":"github"},"branch":"master","displayName":"shishirbychapur/ip[master]","outputFolderName":"shishirbychapur_ip_master"},{"location":{"location":"https://github.com/Badatprogrammiing/ip.git","repoName":"ip","organization":"Badatprogrammiing","domainName":"github"},"branch":"master","displayName":"Badatprogrammiing/ip[master]","outputFolderName":"Badatprogrammiing_ip_master"},{"location":{"location":"https://github.com/ravern/ip.git","repoName":"ip","organization":"ravern","domainName":"github"},"branch":"master","displayName":"ravern/ip[master]","outputFolderName":"ravern_ip_master"},{"location":{"location":"https://github.com/B-enguin/ip.git","repoName":"ip","organization":"B-enguin","domainName":"github"},"branch":"master","displayName":"B-enguin/ip[master]","outputFolderName":"B-enguin_ip_master"},{"location":{"location":"https://github.com/AlyssaPng/ip.git","repoName":"ip","organization":"AlyssaPng","domainName":"github"},"branch":"master","displayName":"AlyssaPng/ip[master]","outputFolderName":"AlyssaPng_ip_master"},{"location":{"location":"https://github.com/flexibo/ip.git","repoName":"ip","organization":"flexibo","domainName":"github"},"branch":"master","displayName":"flexibo/ip[master]","outputFolderName":"flexibo_ip_master"},{"location":{"location":"https://github.com/lordidiot/ip.git","repoName":"ip","organization":"lordidiot","domainName":"github"},"branch":"master","displayName":"lordidiot/ip[master]","outputFolderName":"lordidiot_ip_master"},{"location":{"location":"https://github.com/vansh284/ip.git","repoName":"ip","organization":"vansh284","domainName":"github"},"branch":"master","displayName":"vansh284/ip[master]","outputFolderName":"vansh284_ip_master"},{"location":{"location":"https://github.com/samuelim01/ip.git","repoName":"ip","organization":"samuelim01","domainName":"github"},"branch":"master","displayName":"samuelim01/ip[master]","outputFolderName":"samuelim01_ip_master"},{"location":{"location":"https://github.com/WZWren/ip.git","repoName":"ip","organization":"WZWren","domainName":"github"},"branch":"master","displayName":"WZWren/ip[master]","outputFolderName":"WZWren_ip_master"},{"location":{"location":"https://github.com/cxo05/ip.git","repoName":"ip","organization":"cxo05","domainName":"github"},"branch":"master","displayName":"cxo05/ip[master]","outputFolderName":"cxo05_ip_master"},{"location":{"location":"https://github.com/sudarshan2401/ip.git","repoName":"ip","organization":"sudarshan2401","domainName":"github"},"branch":"master","displayName":"sudarshan2401/ip[master]","outputFolderName":"sudarshan2401_ip_master"},{"location":{"location":"https://github.com/jingyu987/ip.git","repoName":"ip","organization":"jingyu987","domainName":"github"},"branch":"master","displayName":"jingyu987/ip[master]","outputFolderName":"jingyu987_ip_master"},{"location":{"location":"https://github.com/H1410101/ip.git","repoName":"ip","organization":"H1410101","domainName":"github"},"branch":"master","displayName":"H1410101/ip[master]","outputFolderName":"H1410101_ip_master"},{"location":{"location":"https://github.com/MagnificentCreature/ip.git","repoName":"ip","organization":"MagnificentCreature","domainName":"github"},"branch":"master","displayName":"MagnificentCreature/ip[master]","outputFolderName":"MagnificentCreature_ip_master"},{"location":{"location":"https://github.com/shyanyong/ip.git","repoName":"ip","organization":"shyanyong","domainName":"github"},"branch":"master","displayName":"shyanyong/ip[master]","outputFolderName":"shyanyong_ip_master"},{"location":{"location":"https://github.com/peasantbird/ip.git","repoName":"ip","organization":"peasantbird","domainName":"github"},"branch":"master","displayName":"peasantbird/ip[master]","outputFolderName":"peasantbird_ip_master"},{"location":{"location":"https://github.com/tllshan/ip.git","repoName":"ip","organization":"tllshan","domainName":"github"},"branch":"master","displayName":"tllshan/ip[master]","outputFolderName":"tllshan_ip_master"},{"location":{"location":"https://github.com/sushiyade/ip.git","repoName":"ip","organization":"sushiyade","domainName":"github"},"branch":"master","displayName":"sushiyade/ip[master]","outputFolderName":"sushiyade_ip_master"},{"location":{"location":"https://github.com/iyioon/ip.git","repoName":"ip","organization":"iyioon","domainName":"github"},"branch":"master","displayName":"iyioon/ip[master]","outputFolderName":"iyioon_ip_master"},{"location":{"location":"https://github.com/shashahchk/ip.git","repoName":"ip","organization":"shashahchk","domainName":"github"},"branch":"master","displayName":"shashahchk/ip[master]","outputFolderName":"shashahchk_ip_master"},{"location":{"location":"https://github.com/Chandan8186/ip.git","repoName":"ip","organization":"Chandan8186","domainName":"github"},"branch":"master","displayName":"Chandan8186/ip[master]","outputFolderName":"Chandan8186_ip_master"},{"location":{"location":"https://github.com/wesho1107/ip.git","repoName":"ip","organization":"wesho1107","domainName":"github"},"branch":"master","displayName":"wesho1107/ip[master]","outputFolderName":"wesho1107_ip_master"},{"location":{"location":"https://github.com/tim-pipi/ip.git","repoName":"ip","organization":"tim-pipi","domainName":"github"},"branch":"master","displayName":"tim-pipi/ip[master]","outputFolderName":"tim-pipi_ip_master"},{"location":{"location":"https://github.com/emzm2023/ip.git","repoName":"ip","organization":"emzm2023","domainName":"github"},"branch":"master","displayName":"emzm2023/ip[master]","outputFolderName":"emzm2023_ip_master"},{"location":{"location":"https://github.com/dlathyun/ip.git","repoName":"ip","organization":"dlathyun","domainName":"github"},"branch":"master","displayName":"dlathyun/ip[master]","outputFolderName":"dlathyun_ip_master"},{"location":{"location":"https://github.com/tanboonkhong/ip.git","repoName":"ip","organization":"tanboonkhong","domainName":"github"},"branch":"master","displayName":"tanboonkhong/ip[master]","outputFolderName":"tanboonkhong_ip_master"},{"location":{"location":"https://github.com/joeng03/ip.git","repoName":"ip","organization":"joeng03","domainName":"github"},"branch":"master","displayName":"joeng03/ip[master]","outputFolderName":"joeng03_ip_master"},{"location":{"location":"https://github.com/VN-Hao/ip.git","repoName":"ip","organization":"VN-Hao","domainName":"github"},"branch":"master","displayName":"VN-Hao/ip[master]","outputFolderName":"VN-Hao_ip_master"},{"location":{"location":"https://github.com/NgChunMan/ip.git","repoName":"ip","organization":"NgChunMan","domainName":"github"},"branch":"master","displayName":"NgChunMan/ip[master]","outputFolderName":"NgChunMan_ip_master"},{"location":{"location":"https://github.com/TiwKangXu/ip.git","repoName":"ip","organization":"TiwKangXu","domainName":"github"},"branch":"master","displayName":"TiwKangXu/ip[master]","outputFolderName":"TiwKangXu_ip_master"},{"location":{"location":"https://github.com/josepholim/ip.git","repoName":"ip","organization":"josepholim","domainName":"github"},"branch":"master","displayName":"josepholim/ip[master]","outputFolderName":"josepholim_ip_master"},{"location":{"location":"https://github.com/dinde2004/ip.git","repoName":"ip","organization":"dinde2004","domainName":"github"},"branch":"master","displayName":"dinde2004/ip[master]","outputFolderName":"dinde2004_ip_master"},{"location":{"location":"https://github.com/yucongkoo/ip.git","repoName":"ip","organization":"yucongkoo","domainName":"github"},"branch":"master","displayName":"yucongkoo/ip[master]","outputFolderName":"yucongkoo_ip_master"},{"location":{"location":"https://github.com/TohLiYuan/ip.git","repoName":"ip","organization":"TohLiYuan","domainName":"github"},"branch":"master","displayName":"TohLiYuan/ip[master]","outputFolderName":"TohLiYuan_ip_master"},{"location":{"location":"https://github.com/NereusWB922/ip.git","repoName":"ip","organization":"NereusWB922","domainName":"github"},"branch":"master","displayName":"NereusWB922/ip[master]","outputFolderName":"NereusWB922_ip_master"},{"location":{"location":"https://github.com/ph-nathan/ip.git","repoName":"ip","organization":"ph-nathan","domainName":"github"},"branch":"master","displayName":"ph-nathan/ip[master]","outputFolderName":"ph-nathan_ip_master"},{"location":{"location":"https://github.com/antonTan96/ip.git","repoName":"ip","organization":"antonTan96","domainName":"github"},"branch":"master","displayName":"antonTan96/ip[master]","outputFolderName":"antonTan96_ip_master"},{"location":{"location":"https://github.com/WinstonLeonard/ip.git","repoName":"ip","organization":"WinstonLeonard","domainName":"github"},"branch":"master","displayName":"WinstonLeonard/ip[master]","outputFolderName":"WinstonLeonard_ip_master"},{"location":{"location":"https://github.com/TehOPanas/ip.git","repoName":"ip","organization":"TehOPanas","domainName":"github"},"branch":"master","displayName":"TehOPanas/ip[master]","outputFolderName":"TehOPanas_ip_master"},{"location":{"location":"https://github.com/marioalvaro/ip.git","repoName":"ip","organization":"marioalvaro","domainName":"github"},"branch":"master","displayName":"marioalvaro/ip[master]","outputFolderName":"marioalvaro_ip_master"},{"location":{"location":"https://github.com/LINCHENYU2030S/ip.git","repoName":"ip","organization":"LINCHENYU2030S","domainName":"github"},"branch":"master","displayName":"LINCHENYU2030S/ip[master]","outputFolderName":"LINCHENYU2030S_ip_master"},{"location":{"location":"https://github.com/LamJiuFong/ip.git","repoName":"ip","organization":"LamJiuFong","domainName":"github"},"branch":"master","displayName":"LamJiuFong/ip[master]","outputFolderName":"LamJiuFong_ip_master"},{"location":{"location":"https://github.com/AndrewJanong/ip.git","repoName":"ip","organization":"AndrewJanong","domainName":"github"},"branch":"master","displayName":"AndrewJanong/ip[master]","outputFolderName":"AndrewJanong_ip_master"},{"location":{"location":"https://github.com/songfangyl/ip.git","repoName":"ip","organization":"songfangyl","domainName":"github"},"branch":"master","displayName":"songfangyl/ip[master]","outputFolderName":"songfangyl_ip_master"},{"location":{"location":"https://github.com/AriellaCallista/ip.git","repoName":"ip","organization":"AriellaCallista","domainName":"github"},"branch":"master","displayName":"AriellaCallista/ip[master]","outputFolderName":"AriellaCallista_ip_master"},{"location":{"location":"https://github.com/KamJiaYue/ip.git","repoName":"ip","organization":"KamJiaYue","domainName":"github"},"branch":"master","displayName":"KamJiaYue/ip[master]","outputFolderName":"KamJiaYue_ip_master"},{"location":{"location":"https://github.com/feifeiraindrops/ip.git","repoName":"ip","organization":"feifeiraindrops","domainName":"github"},"branch":"master","displayName":"feifeiraindrops/ip[master]","outputFolderName":"feifeiraindrops_ip_master"},{"location":{"location":"https://github.com/czhiruo/ip.git","repoName":"ip","organization":"czhiruo","domainName":"github"},"branch":"master","displayName":"czhiruo/ip[master]","outputFolderName":"czhiruo_ip_master"},{"location":{"location":"https://github.com/butteredyakiimo/ip.git","repoName":"ip","organization":"butteredyakiimo","domainName":"github"},"branch":"master","displayName":"butteredyakiimo/ip[master]","outputFolderName":"butteredyakiimo_ip_master"},{"location":{"location":"https://github.com/RiyaMehta2211/ip.git","repoName":"ip","organization":"RiyaMehta2211","domainName":"github"},"branch":"master","displayName":"RiyaMehta2211/ip[master]","outputFolderName":"RiyaMehta2211_ip_master"},{"location":{"location":"https://github.com/beatricecst/ip.git","repoName":"ip","organization":"beatricecst","domainName":"github"},"branch":"master","displayName":"beatricecst/ip[master]","outputFolderName":"beatricecst_ip_master"},{"location":{"location":"https://github.com/maypfv/ip.git","repoName":"ip","organization":"maypfv","domainName":"github"},"branch":"master","displayName":"maypfv/ip[master]","outputFolderName":"maypfv_ip_master"},{"location":{"location":"https://github.com/pra-navi/ip.git","repoName":"ip","organization":"pra-navi","domainName":"github"},"branch":"master","displayName":"pra-navi/ip[master]","outputFolderName":"pra-navi_ip_master"},{"location":{"location":"https://github.com/xxiaoweii/ip.git","repoName":"ip","organization":"xxiaoweii","domainName":"github"},"branch":"master","displayName":"xxiaoweii/ip[master]","outputFolderName":"xxiaoweii_ip_master"},{"location":{"location":"https://github.com/qyaner/ip.git","repoName":"ip","organization":"qyaner","domainName":"github"},"branch":"master","displayName":"qyaner/ip[master]","outputFolderName":"qyaner_ip_master"},{"location":{"location":"https://github.com/qz1004/ip.git","repoName":"ip","organization":"qz1004","domainName":"github"},"branch":"master","displayName":"qz1004/ip[master]","outputFolderName":"qz1004_ip_master"},{"location":{"location":"https://github.com/miljyy/ip.git","repoName":"ip","organization":"miljyy","domainName":"github"},"branch":"master","displayName":"miljyy/ip[master]","outputFolderName":"miljyy_ip_master"},{"location":{"location":"https://github.com/yihfei/ip.git","repoName":"ip","organization":"yihfei","domainName":"github"},"branch":"master","displayName":"yihfei/ip[master]","outputFolderName":"yihfei_ip_master"},{"location":{"location":"https://github.com/Gabriel4357/ip.git","repoName":"ip","organization":"Gabriel4357","domainName":"github"},"branch":"master","displayName":"Gabriel4357/ip[master]","outputFolderName":"Gabriel4357_ip_master"},{"location":{"location":"https://github.com/saraozn/ip.git","repoName":"ip","organization":"saraozn","domainName":"github"},"branch":"master","displayName":"saraozn/ip[master]","outputFolderName":"saraozn_ip_master"},{"location":{"location":"https://github.com/JeremyYong128/ip.git","repoName":"ip","organization":"JeremyYong128","domainName":"github"},"branch":"master","displayName":"JeremyYong128/ip[master]","outputFolderName":"JeremyYong128_ip_master"},{"location":{"location":"https://github.com/samuelmui8/ip.git","repoName":"ip","organization":"samuelmui8","domainName":"github"},"branch":"master","displayName":"samuelmui8/ip[master]","outputFolderName":"samuelmui8_ip_master"},{"location":{"location":"https://github.com/elaineshijie/ip.git","repoName":"ip","organization":"elaineshijie","domainName":"github"},"branch":"master","displayName":"elaineshijie/ip[master]","outputFolderName":"elaineshijie_ip_master"},{"location":{"location":"https://github.com/zhengyup/ip.git","repoName":"ip","organization":"zhengyup","domainName":"github"},"branch":"master","displayName":"zhengyup/ip[master]","outputFolderName":"zhengyup_ip_master"},{"location":{"location":"https://github.com/ruishanteo/ip.git","repoName":"ip","organization":"ruishanteo","domainName":"github"},"branch":"master","displayName":"ruishanteo/ip[master]","outputFolderName":"ruishanteo_ip_master"},{"location":{"location":"https://github.com/lynnlow175/ip.git","repoName":"ip","organization":"lynnlow175","domainName":"github"},"branch":"master","displayName":"lynnlow175/ip[master]","outputFolderName":"lynnlow175_ip_master"},{"location":{"location":"https://github.com/kohkaijie/ip.git","repoName":"ip","organization":"kohkaijie","domainName":"github"},"branch":"master","displayName":"kohkaijie/ip[master]","outputFolderName":"kohkaijie_ip_master"},{"location":{"location":"https://github.com/CelestineTan03/ip.git","repoName":"ip","organization":"CelestineTan03","domainName":"github"},"branch":"master","displayName":"CelestineTan03/ip[master]","outputFolderName":"CelestineTan03_ip_master"},{"location":{"location":"https://github.com/PearlynnT/ip.git","repoName":"ip","organization":"PearlynnT","domainName":"github"},"branch":"master","displayName":"PearlynnT/ip[master]","outputFolderName":"PearlynnT_ip_master"},{"location":{"location":"https://github.com/Elijah5399/ip.git","repoName":"ip","organization":"Elijah5399","domainName":"github"},"branch":"master","displayName":"Elijah5399/ip[master]","outputFolderName":"Elijah5399_ip_master"},{"location":{"location":"https://github.com/nicleongyj/ip.git","repoName":"ip","organization":"nicleongyj","domainName":"github"},"branch":"master","displayName":"nicleongyj/ip[master]","outputFolderName":"nicleongyj_ip_master"},{"location":{"location":"https://github.com/AnnabelTing/ip.git","repoName":"ip","organization":"AnnabelTing","domainName":"github"},"branch":"master","displayName":"AnnabelTing/ip[master]","outputFolderName":"AnnabelTing_ip_master"},{"location":{"location":"https://github.com/jrchoo/ip.git","repoName":"ip","organization":"jrchoo","domainName":"github"},"branch":"master","displayName":"jrchoo/ip[master]","outputFolderName":"jrchoo_ip_master"},{"location":{"location":"https://github.com/wujy28/ip.git","repoName":"ip","organization":"wujy28","domainName":"github"},"branch":"master","displayName":"wujy28/ip[master]","outputFolderName":"wujy28_ip_master"},{"location":{"location":"https://github.com/Nauxe/ip.git","repoName":"ip","organization":"Nauxe","domainName":"github"},"branch":"master","displayName":"Nauxe/ip[master]","outputFolderName":"Nauxe_ip_master"},{"location":{"location":"https://github.com/yyyaohhh/ip.git","repoName":"ip","organization":"yyyaohhh","domainName":"github"},"branch":"master","displayName":"yyyaohhh/ip[master]","outputFolderName":"yyyaohhh_ip_master"},{"location":{"location":"https://github.com/xenosf/ip.git","repoName":"ip","organization":"xenosf","domainName":"github"},"branch":"master","displayName":"xenosf/ip[master]","outputFolderName":"xenosf_ip_master"},{"location":{"location":"https://github.com/WinSheng1/ip.git","repoName":"ip","organization":"WinSheng1","domainName":"github"},"branch":"master","displayName":"WinSheng1/ip[master]","outputFolderName":"WinSheng1_ip_master"},{"location":{"location":"https://github.com/nreHieW/ip.git","repoName":"ip","organization":"nreHieW","domainName":"github"},"branch":"master","displayName":"nreHieW/ip[master]","outputFolderName":"nreHieW_ip_master"},{"location":{"location":"https://github.com/peiran18/ip.git","repoName":"ip","organization":"peiran18","domainName":"github"},"branch":"master","displayName":"peiran18/ip[master]","outputFolderName":"peiran18_ip_master"},{"location":{"location":"https://github.com/cheeggered/ip.git","repoName":"ip","organization":"cheeggered","domainName":"github"},"branch":"master","displayName":"cheeggered/ip[master]","outputFolderName":"cheeggered_ip_master"},{"location":{"location":"https://github.com/GohTengFong/ip.git","repoName":"ip","organization":"GohTengFong","domainName":"github"},"branch":"master","displayName":"GohTengFong/ip[master]","outputFolderName":"GohTengFong_ip_master"},{"location":{"location":"https://github.com/jibtaf/ip.git","repoName":"ip","organization":"jibtaf","domainName":"github"},"branch":"master","displayName":"jibtaf/ip[master]","outputFolderName":"jibtaf_ip_master"},{"location":{"location":"https://github.com/bhnuka/ip.git","repoName":"ip","organization":"bhnuka","domainName":"github"},"branch":"master","displayName":"bhnuka/ip[master]","outputFolderName":"bhnuka_ip_master"},{"location":{"location":"https://github.com/laurenlim2112/ip.git","repoName":"ip","organization":"laurenlim2112","domainName":"github"},"branch":"master","displayName":"laurenlim2112/ip[master]","outputFolderName":"laurenlim2112_ip_master"},{"location":{"location":"https://github.com/howenc/ip.git","repoName":"ip","organization":"howenc","domainName":"github"},"branch":"master","displayName":"howenc/ip[master]","outputFolderName":"howenc_ip_master"},{"location":{"location":"https://github.com/Kokseng1/ip.git","repoName":"ip","organization":"Kokseng1","domainName":"github"},"branch":"master","displayName":"Kokseng1/ip[master]","outputFolderName":"Kokseng1_ip_master"},{"location":{"location":"https://github.com/yiwen101/ip.git","repoName":"ip","organization":"yiwen101","domainName":"github"},"branch":"master","displayName":"yiwen101/ip[master]","outputFolderName":"yiwen101_ip_master"},{"location":{"location":"https://github.com/Cikguseven/ip.git","repoName":"ip","organization":"Cikguseven","domainName":"github"},"branch":"master","displayName":"Cikguseven/ip[master]","outputFolderName":"Cikguseven_ip_master"},{"location":{"location":"https://github.com/javinchua/ip.git","repoName":"ip","organization":"javinchua","domainName":"github"},"branch":"master","displayName":"javinchua/ip[master]","outputFolderName":"javinchua_ip_master"},{"location":{"location":"https://github.com/frrrrry/ip.git","repoName":"ip","organization":"frrrrry","domainName":"github"},"branch":"master","displayName":"frrrrry/ip[master]","outputFolderName":"frrrrry_ip_master"},{"location":{"location":"https://github.com/YeoBohShin/ip.git","repoName":"ip","organization":"YeoBohShin","domainName":"github"},"branch":"master","displayName":"YeoBohShin/ip[master]","outputFolderName":"YeoBohShin_ip_master"},{"location":{"location":"https://github.com/yongning0310/ip.git","repoName":"ip","organization":"yongning0310","domainName":"github"},"branch":"master","displayName":"yongning0310/ip[master]","outputFolderName":"yongning0310_ip_master"},{"location":{"location":"https://github.com/SimWPEric/ip.git","repoName":"ip","organization":"SimWPEric","domainName":"github"},"branch":"master","displayName":"SimWPEric/ip[master]","outputFolderName":"SimWPEric_ip_master"},{"location":{"location":"https://github.com/sopa301/ip.git","repoName":"ip","organization":"sopa301","domainName":"github"},"branch":"master","displayName":"sopa301/ip[master]","outputFolderName":"sopa301_ip_master"},{"location":{"location":"https://github.com/nananakx-x/ip.git","repoName":"ip","organization":"nananakx-x","domainName":"github"},"branch":"master","displayName":"nananakx-x/ip[master]","outputFolderName":"nananakx-x_ip_master"},{"location":{"location":"https://github.com/LuoZYi/ip.git","repoName":"ip","organization":"LuoZYi","domainName":"github"},"branch":"master","displayName":"LuoZYi/ip[master]","outputFolderName":"LuoZYi_ip_master"},{"location":{"location":"https://github.com/LinWanLeii/ip.git","repoName":"ip","organization":"LinWanLeii","domainName":"github"},"branch":"master","displayName":"LinWanLeii/ip[master]","outputFolderName":"LinWanLeii_ip_master"},{"location":{"location":"https://github.com/mingyuanc/ip.git","repoName":"ip","organization":"mingyuanc","domainName":"github"},"branch":"master","displayName":"mingyuanc/ip[master]","outputFolderName":"mingyuanc_ip_master"},{"location":{"location":"https://github.com/chonguschonguschongus/ip.git","repoName":"ip","organization":"chonguschonguschongus","domainName":"github"},"branch":"master","displayName":"chonguschonguschongus/ip[master]","outputFolderName":"chonguschonguschongus_ip_master"},{"location":{"location":"https://github.com/yanghengtang/ip.git","repoName":"ip","organization":"yanghengtang","domainName":"github"},"branch":"master","displayName":"yanghengtang/ip[master]","outputFolderName":"yanghengtang_ip_master"},{"location":{"location":"https://github.com/victorpengmx/ip.git","repoName":"ip","organization":"victorpengmx","domainName":"github"},"branch":"master","displayName":"victorpengmx/ip[master]","outputFolderName":"victorpengmx_ip_master"},{"location":{"location":"https://github.com/kanna-1/ip.git","repoName":"ip","organization":"kanna-1","domainName":"github"},"branch":"master","displayName":"kanna-1/ip[master]","outputFolderName":"kanna-1_ip_master"},{"location":{"location":"https://github.com/ncduy0303/ip.git","repoName":"ip","organization":"ncduy0303","domainName":"github"},"branch":"master","displayName":"ncduy0303/ip[master]","outputFolderName":"ncduy0303_ip_master"},{"location":{"location":"https://github.com/jannnice/ip.git","repoName":"ip","organization":"jannnice","domainName":"github"},"branch":"master","displayName":"jannnice/ip[master]","outputFolderName":"jannnice_ip_master"},{"location":{"location":"https://github.com/itssisi/ip.git","repoName":"ip","organization":"itssisi","domainName":"github"},"branch":"master","displayName":"itssisi/ip[master]","outputFolderName":"itssisi_ip_master"},{"location":{"location":"https://github.com/freddychenyouren2/ip.git","repoName":"ip","organization":"freddychenyouren2","domainName":"github"},"branch":"master","displayName":"freddychenyouren2/ip[master]","outputFolderName":"freddychenyouren2_ip_master"},{"location":{"location":"https://github.com/Vanessamae23/ip.git","repoName":"ip","organization":"Vanessamae23","domainName":"github"},"branch":"master","displayName":"Vanessamae23/ip[master]","outputFolderName":"Vanessamae23_ip_master"},{"location":{"location":"https://github.com/cbj252/ip.git","repoName":"ip","organization":"cbj252","domainName":"github"},"branch":"master","displayName":"cbj252/ip[master]","outputFolderName":"cbj252_ip_master"},{"location":{"location":"https://github.com/freshcabbage123/ip.git","repoName":"ip","organization":"freshcabbage123","domainName":"github"},"branch":"master","displayName":"freshcabbage123/ip[master]","outputFolderName":"freshcabbage123_ip_master"},{"location":{"location":"https://github.com/thienmy0/ip.git","repoName":"ip","organization":"thienmy0","domainName":"github"},"branch":"master","displayName":"thienmy0/ip[master]","outputFolderName":"thienmy0_ip_master"},{"location":{"location":"https://github.com/glenngnng/ip.git","repoName":"ip","organization":"glenngnng","domainName":"github"},"branch":"master","displayName":"glenngnng/ip[master]","outputFolderName":"glenngnng_ip_master"},{"location":{"location":"https://github.com/Darren159/ip.git","repoName":"ip","organization":"Darren159","domainName":"github"},"branch":"master","displayName":"Darren159/ip[master]","outputFolderName":"Darren159_ip_master"},{"location":{"location":"https://github.com/J-hta-n/ip.git","repoName":"ip","organization":"J-hta-n","domainName":"github"},"branch":"master","displayName":"J-hta-n/ip[master]","outputFolderName":"J-hta-n_ip_master"},{"location":{"location":"https://github.com/evanyan13/ip.git","repoName":"ip","organization":"evanyan13","domainName":"github"},"branch":"master","displayName":"evanyan13/ip[master]","outputFolderName":"evanyan13_ip_master"},{"location":{"location":"https://github.com/tanveersingh10/ip.git","repoName":"ip","organization":"tanveersingh10","domainName":"github"},"branch":"master","displayName":"tanveersingh10/ip[master]","outputFolderName":"tanveersingh10_ip_master"},{"location":{"location":"https://github.com/neyapraveen/ip.git","repoName":"ip","organization":"neyapraveen","domainName":"github"},"branch":"master","displayName":"neyapraveen/ip[master]","outputFolderName":"neyapraveen_ip_master"},{"location":{"location":"https://github.com/weeweh/ip.git","repoName":"ip","organization":"weeweh","domainName":"github"},"branch":"master","displayName":"weeweh/ip[master]","outputFolderName":"weeweh_ip_master"},{"location":{"location":"https://github.com/HugeNoob/ip.git","repoName":"ip","organization":"HugeNoob","domainName":"github"},"branch":"master","displayName":"HugeNoob/ip[master]","outputFolderName":"HugeNoob_ip_master"},{"location":{"location":"https://github.com/wasjoe1/ip.git","repoName":"ip","organization":"wasjoe1","domainName":"github"},"branch":"master","displayName":"wasjoe1/ip[master]","outputFolderName":"wasjoe1_ip_master"},{"location":{"location":"https://github.com/s-kybound/ip.git","repoName":"ip","organization":"s-kybound","domainName":"github"},"branch":"master","displayName":"s-kybound/ip[master]","outputFolderName":"s-kybound_ip_master"},{"location":{"location":"https://github.com/Singa-pirate/ip.git","repoName":"ip","organization":"Singa-pirate","domainName":"github"},"branch":"master","displayName":"Singa-pirate/ip[master]","outputFolderName":"Singa-pirate_ip_master"},{"location":{"location":"https://github.com/wanghejin/ip.git","repoName":"ip","organization":"wanghejin","domainName":"github"},"branch":"master","displayName":"wanghejin/ip[master]","outputFolderName":"wanghejin_ip_master"},{"location":{"location":"https://github.com/yarnmengnus/ip.git","repoName":"ip","organization":"yarnmengnus","domainName":"github"},"branch":"master","displayName":"yarnmengnus/ip[master]","outputFolderName":"yarnmengnus_ip_master"},{"location":{"location":"https://github.com/Kurtyjlee/ip.git","repoName":"ip","organization":"Kurtyjlee","domainName":"github"},"branch":"master","displayName":"Kurtyjlee/ip[master]","outputFolderName":"Kurtyjlee_ip_master"},{"location":{"location":"https://github.com/jellywaiyan/ip.git","repoName":"ip","organization":"jellywaiyan","domainName":"github"},"branch":"master","displayName":"jellywaiyan/ip[master]","outputFolderName":"jellywaiyan_ip_master"},{"location":{"location":"https://github.com/ylyma/ip.git","repoName":"ip","organization":"ylyma","domainName":"github"},"branch":"master","displayName":"ylyma/ip[master]","outputFolderName":"ylyma_ip_master"},{"location":{"location":"https://github.com/revdrag/ip.git","repoName":"ip","organization":"revdrag","domainName":"github"},"branch":"master","displayName":"revdrag/ip[master]","outputFolderName":"revdrag_ip_master"},{"location":{"location":"https://github.com/vijay-shankaranand/ip.git","repoName":"ip","organization":"vijay-shankaranand","domainName":"github"},"branch":"master","displayName":"vijay-shankaranand/ip[master]","outputFolderName":"vijay-shankaranand_ip_master"},{"location":{"location":"https://github.com/lerxuann/ip.git","repoName":"ip","organization":"lerxuann","domainName":"github"},"branch":"master","displayName":"lerxuann/ip[master]","outputFolderName":"lerxuann_ip_master"},{"location":{"location":"https://github.com/yuxunn/ip.git","repoName":"ip","organization":"yuxunn","domainName":"github"},"branch":"master","displayName":"yuxunn/ip[master]","outputFolderName":"yuxunn_ip_master"},{"location":{"location":"https://github.com/zannloo/ip.git","repoName":"ip","organization":"zannloo","domainName":"github"},"branch":"master","displayName":"zannloo/ip[master]","outputFolderName":"zannloo_ip_master"},{"location":{"location":"https://github.com/AryanG01/ip.git","repoName":"ip","organization":"AryanG01","domainName":"github"},"branch":"master","displayName":"AryanG01/ip[master]","outputFolderName":"AryanG01_ip_master"},{"location":{"location":"https://github.com/oeggy03/ip.git","repoName":"ip","organization":"oeggy03","domainName":"github"},"branch":"master","displayName":"oeggy03/ip[master]","outputFolderName":"oeggy03_ip_master"},{"location":{"location":"https://github.com/jeffrey-jian/ip.git","repoName":"ip","organization":"jeffrey-jian","domainName":"github"},"branch":"master","displayName":"jeffrey-jian/ip[master]","outputFolderName":"jeffrey-jian_ip_master"},{"location":{"location":"https://github.com/nicholastng010601/ip.git","repoName":"ip","organization":"nicholastng010601","domainName":"github"},"branch":"master","displayName":"nicholastng010601/ip[master]","outputFolderName":"nicholastng010601_ip_master"},{"location":{"location":"https://github.com/Weiennn/ip.git","repoName":"ip","organization":"Weiennn","domainName":"github"},"branch":"master","displayName":"Weiennn/ip[master]","outputFolderName":"Weiennn_ip_master"},{"location":{"location":"https://github.com/tayruxin/ip.git","repoName":"ip","organization":"tayruxin","domainName":"github"},"branch":"master","displayName":"tayruxin/ip[master]","outputFolderName":"tayruxin_ip_master"},{"location":{"location":"https://github.com/xyT-T/ip.git","repoName":"ip","organization":"xyT-T","domainName":"github"},"branch":"master","displayName":"xyT-T/ip[master]","outputFolderName":"xyT-T_ip_master"},{"location":{"location":"https://github.com/lunaroddity/ip.git","repoName":"ip","organization":"lunaroddity","domainName":"github"},"branch":"master","displayName":"lunaroddity/ip[master]","outputFolderName":"lunaroddity_ip_master"},{"location":{"location":"https://github.com/nabonitasen/ip.git","repoName":"ip","organization":"nabonitasen","domainName":"github"},"branch":"master","displayName":"nabonitasen/ip[master]","outputFolderName":"nabonitasen_ip_master"},{"location":{"location":"https://github.com/inezkok/ip.git","repoName":"ip","organization":"inezkok","domainName":"github"},"branch":"master","displayName":"inezkok/ip[master]","outputFolderName":"inezkok_ip_master"},{"location":{"location":"https://github.com/nknguyenhc/ip.git","repoName":"ip","organization":"nknguyenhc","domainName":"github"},"branch":"master","displayName":"nknguyenhc/ip[master]","outputFolderName":"nknguyenhc_ip_master"},{"location":{"location":"https://github.com/keaganpzh/ip.git","repoName":"ip","organization":"keaganpzh","domainName":"github"},"branch":"master","displayName":"keaganpzh/ip[master]","outputFolderName":"keaganpzh_ip_master"},{"location":{"location":"https://github.com/lululwtv/ip.git","repoName":"ip","organization":"lululwtv","domainName":"github"},"branch":"master","displayName":"lululwtv/ip[master]","outputFolderName":"lululwtv_ip_master"},{"location":{"location":"https://github.com/hcs1203/ip.git","repoName":"ip","organization":"hcs1203","domainName":"github"},"branch":"master","displayName":"hcs1203/ip[master]","outputFolderName":"hcs1203_ip_master"},{"location":{"location":"https://github.com/migfoo02/ip.git","repoName":"ip","organization":"migfoo02","domainName":"github"},"branch":"master","displayName":"migfoo02/ip[master]","outputFolderName":"migfoo02_ip_master"},{"location":{"location":"https://github.com/papataco14/ip.git","repoName":"ip","organization":"papataco14","domainName":"github"},"branch":"master","displayName":"papataco14/ip[master]","outputFolderName":"papataco14_ip_master"},{"location":{"location":"https://github.com/coderhuang559/ip.git","repoName":"ip","organization":"coderhuang559","domainName":"github"},"branch":"master","displayName":"coderhuang559/ip[master]","outputFolderName":"coderhuang559_ip_master"},{"location":{"location":"https://github.com/craigtonlian/ip.git","repoName":"ip","organization":"craigtonlian","domainName":"github"},"branch":"master","displayName":"craigtonlian/ip[master]","outputFolderName":"craigtonlian_ip_master"},{"location":{"location":"https://github.com/adammangzijun/ip.git","repoName":"ip","organization":"adammangzijun","domainName":"github"},"branch":"master","displayName":"adammangzijun/ip[master]","outputFolderName":"adammangzijun_ip_master"},{"location":{"location":"https://github.com/AlainS87/ip.git","repoName":"ip","organization":"AlainS87","domainName":"github"},"branch":"master","displayName":"AlainS87/ip[master]","outputFolderName":"AlainS87_ip_master"},{"location":{"location":"https://github.com/tanyyyming/ip.git","repoName":"ip","organization":"tanyyyming","domainName":"github"},"branch":"master","displayName":"tanyyyming/ip[master]","outputFolderName":"tanyyyming_ip_master"},{"location":{"location":"https://github.com/Saezenn/ip.git","repoName":"ip","organization":"Saezenn","domainName":"github"},"branch":"master","displayName":"Saezenn/ip[master]","outputFolderName":"Saezenn_ip_master"},{"location":{"location":"https://github.com/kayabuttertoastt/ip.git","repoName":"ip","organization":"kayabuttertoastt","domainName":"github"},"branch":"master","displayName":"kayabuttertoastt/ip[master]","outputFolderName":"kayabuttertoastt_ip_master"},{"location":{"location":"https://github.com/limjunxian1/ip.git","repoName":"ip","organization":"limjunxian1","domainName":"github"},"branch":"master","displayName":"limjunxian1/ip[master]","outputFolderName":"limjunxian1_ip_master"},{"location":{"location":"https://github.com/andrechuakj/ip.git","repoName":"ip","organization":"andrechuakj","domainName":"github"},"branch":"master","displayName":"andrechuakj/ip[master]","outputFolderName":"andrechuakj_ip_master"},{"location":{"location":"https://github.com/kwangthiag/ip.git","repoName":"ip","organization":"kwangthiag","domainName":"github"},"branch":"master","displayName":"kwangthiag/ip[master]","outputFolderName":"kwangthiag_ip_master"},{"location":{"location":"https://github.com/ricketytoc/ip.git","repoName":"ip","organization":"ricketytoc","domainName":"github"},"branch":"master","displayName":"ricketytoc/ip[master]","outputFolderName":"ricketytoc_ip_master"},{"location":{"location":"https://github.com/applepiofmyeye/ip.git","repoName":"ip","organization":"applepiofmyeye","domainName":"github"},"branch":"master","displayName":"applepiofmyeye/ip[master]","outputFolderName":"applepiofmyeye_ip_master"},{"location":{"location":"https://github.com/nubnubyas/ip.git","repoName":"ip","organization":"nubnubyas","domainName":"github"},"branch":"master","displayName":"nubnubyas/ip[master]","outputFolderName":"nubnubyas_ip_master"},{"location":{"location":"https://github.com/WeeeHung/ip.git","repoName":"ip","organization":"WeeeHung","domainName":"github"},"branch":"master","displayName":"WeeeHung/ip[master]","outputFolderName":"WeeeHung_ip_master"},{"location":{"location":"https://github.com/Eola-Z/ip.git","repoName":"ip","organization":"Eola-Z","domainName":"github"},"branch":"master","displayName":"Eola-Z/ip[master]","outputFolderName":"Eola-Z_ip_master"},{"location":{"location":"https://github.com/jordankanghm/ip.git","repoName":"ip","organization":"jordankanghm","domainName":"github"},"branch":"master","displayName":"jordankanghm/ip[master]","outputFolderName":"jordankanghm_ip_master"},{"location":{"location":"https://github.com/zacwong2151/ip.git","repoName":"ip","organization":"zacwong2151","domainName":"github"},"branch":"master","displayName":"zacwong2151/ip[master]","outputFolderName":"zacwong2151_ip_master"},{"location":{"location":"https://github.com/m1oojv/ip.git","repoName":"ip","organization":"m1oojv","domainName":"github"},"branch":"master","displayName":"m1oojv/ip[master]","outputFolderName":"m1oojv_ip_master"},{"location":{"location":"https://github.com/JCSnap/ip.git","repoName":"ip","organization":"JCSnap","domainName":"github"},"branch":"master","displayName":"JCSnap/ip[master]","outputFolderName":"JCSnap_ip_master"},{"location":{"location":"https://github.com/Nid21cs/ip.git","repoName":"ip","organization":"Nid21cs","domainName":"github"},"branch":"master","displayName":"Nid21cs/ip[master]","outputFolderName":"Nid21cs_ip_master"},{"location":{"location":"https://github.com/mfjkri/ip.git","repoName":"ip","organization":"mfjkri","domainName":"github"},"branch":"master","displayName":"mfjkri/ip[master]","outputFolderName":"mfjkri_ip_master"},{"location":{"location":"https://github.com/Choonyan02/ip.git","repoName":"ip","organization":"Choonyan02","domainName":"github"},"branch":"master","displayName":"Choonyan02/ip[master]","outputFolderName":"Choonyan02_ip_master"},{"location":{"location":"https://github.com/rayyan35p/ip.git","repoName":"ip","organization":"rayyan35p","domainName":"github"},"branch":"master","displayName":"rayyan35p/ip[master]","outputFolderName":"rayyan35p_ip_master"},{"location":{"location":"https://github.com/dhruvir29/ip.git","repoName":"ip","organization":"dhruvir29","domainName":"github"},"branch":"master","displayName":"dhruvir29/ip[master]","outputFolderName":"dhruvir29_ip_master"},{"location":{"location":"https://github.com/Mohammed-Faizzzz/ip.git","repoName":"ip","organization":"Mohammed-Faizzzz","domainName":"github"},"branch":"master","displayName":"Mohammed-Faizzzz/ip[master]","outputFolderName":"Mohammed-Faizzzz_ip_master"},{"location":{"location":"https://github.com/ruo-x/ip.git","repoName":"ip","organization":"ruo-x","domainName":"github"},"branch":"master","displayName":"ruo-x/ip[master]","outputFolderName":"ruo-x_ip_master"},{"location":{"location":"https://github.com/DonovanJJ/ip.git","repoName":"ip","organization":"DonovanJJ","domainName":"github"},"branch":"master","displayName":"DonovanJJ/ip[master]","outputFolderName":"DonovanJJ_ip_master"},{"location":{"location":"https://github.com/kristayeo/ip.git","repoName":"ip","organization":"kristayeo","domainName":"github"},"branch":"master","displayName":"kristayeo/ip[master]","outputFolderName":"kristayeo_ip_master"},{"location":{"location":"https://github.com/ZD292/ip.git","repoName":"ip","organization":"ZD292","domainName":"github"},"branch":"master","displayName":"ZD292/ip[master]","outputFolderName":"ZD292_ip_master"},{"location":{"location":"https://github.com/jingjie88/ip.git","repoName":"ip","organization":"jingjie88","domainName":"github"},"branch":"master","displayName":"jingjie88/ip[master]","outputFolderName":"jingjie88_ip_master"},{"location":{"location":"https://github.com/iantsaii/ip.git","repoName":"ip","organization":"iantsaii","domainName":"github"},"branch":"master","displayName":"iantsaii/ip[master]","outputFolderName":"iantsaii_ip_master"},{"location":{"location":"https://github.com/jingting1412/ip.git","repoName":"ip","organization":"jingting1412","domainName":"github"},"branch":"master","displayName":"jingting1412/ip[master]","outputFolderName":"jingting1412_ip_master"},{"location":{"location":"https://github.com/wnchan/ip.git","repoName":"ip","organization":"wnchan","domainName":"github"},"branch":"master","displayName":"wnchan/ip[master]","outputFolderName":"wnchan_ip_master"},{"location":{"location":"https://github.com/jack1e0/ip.git","repoName":"ip","organization":"jack1e0","domainName":"github"},"branch":"master","displayName":"jack1e0/ip[master]","outputFolderName":"jack1e0_ip_master"},{"location":{"location":"https://github.com/mingyu-wan/ip.git","repoName":"ip","organization":"mingyu-wan","domainName":"github"},"branch":"master","displayName":"mingyu-wan/ip[master]","outputFolderName":"mingyu-wan_ip_master"},{"location":{"location":"https://github.com/nicolengk/ip.git","repoName":"ip","organization":"nicolengk","domainName":"github"},"branch":"master","displayName":"nicolengk/ip[master]","outputFolderName":"nicolengk_ip_master"},{"location":{"location":"https://github.com/cyaoxuan/ip.git","repoName":"ip","organization":"cyaoxuan","domainName":"github"},"branch":"master","displayName":"cyaoxuan/ip[master]","outputFolderName":"cyaoxuan_ip_master"},{"location":{"location":"https://github.com/sunzihan23/ip.git","repoName":"ip","organization":"sunzihan23","domainName":"github"},"branch":"master","displayName":"sunzihan23/ip[master]","outputFolderName":"sunzihan23_ip_master"},{"location":{"location":"https://github.com/Goh-Li-Ting/ip.git","repoName":"ip","organization":"Goh-Li-Ting","domainName":"github"},"branch":"master","displayName":"Goh-Li-Ting/ip[master]","outputFolderName":"Goh-Li-Ting_ip_master"},{"location":{"location":"https://github.com/wjayee/ip.git","repoName":"ip","organization":"wjayee","domainName":"github"},"branch":"master","displayName":"wjayee/ip[master]","outputFolderName":"wjayee_ip_master"},{"location":{"location":"https://github.com/fuyiqiao/ip.git","repoName":"ip","organization":"fuyiqiao","domainName":"github"},"branch":"master","displayName":"fuyiqiao/ip[master]","outputFolderName":"fuyiqiao_ip_master"},{"location":{"location":"https://github.com/GlendaChong/ip.git","repoName":"ip","organization":"GlendaChong","domainName":"github"},"branch":"master","displayName":"GlendaChong/ip[master]","outputFolderName":"GlendaChong_ip_master"},{"location":{"location":"https://github.com/hyc17003/ip.git","repoName":"ip","organization":"hyc17003","domainName":"github"},"branch":"master","displayName":"hyc17003/ip[master]","outputFolderName":"hyc17003_ip_master"},{"location":{"location":"https://github.com/spatuly/ip.git","repoName":"ip","organization":"spatuly","domainName":"github"},"branch":"master","displayName":"spatuly/ip[master]","outputFolderName":"spatuly_ip_master"},{"location":{"location":"https://github.com/tanteckfang/ip.git","repoName":"ip","organization":"tanteckfang","domainName":"github"},"branch":"master","displayName":"tanteckfang/ip[master]","outputFolderName":"tanteckfang_ip_master"},{"location":{"location":"https://github.com/Clin-lyx/ip.git","repoName":"ip","organization":"Clin-lyx","domainName":"github"},"branch":"master","displayName":"Clin-lyx/ip[master]","outputFolderName":"Clin-lyx_ip_master"},{"location":{"location":"https://github.com/lyuanww/ip.git","repoName":"ip","organization":"lyuanww","domainName":"github"},"branch":"master","displayName":"lyuanww/ip[master]","outputFolderName":"lyuanww_ip_master"},{"location":{"location":"https://github.com/LimJH2002/ip.git","repoName":"ip","organization":"LimJH2002","domainName":"github"},"branch":"master","displayName":"LimJH2002/ip[master]","outputFolderName":"LimJH2002_ip_master"},{"location":{"location":"https://github.com/LWZ19/ip.git","repoName":"ip","organization":"LWZ19","domainName":"github"},"branch":"master","displayName":"LWZ19/ip[master]","outputFolderName":"LWZ19_ip_master"},{"location":{"location":"https://github.com/Gavino3o/ip.git","repoName":"ip","organization":"Gavino3o","domainName":"github"},"branch":"master","displayName":"Gavino3o/ip[master]","outputFolderName":"Gavino3o_ip_master"},{"location":{"location":"https://github.com/suryanshkushwaha/ip.git","repoName":"ip","organization":"suryanshkushwaha","domainName":"github"},"branch":"master","displayName":"suryanshkushwaha/ip[master]","outputFolderName":"suryanshkushwaha_ip_master"},{"location":{"location":"https://github.com/JasonRay168/ip.git","repoName":"ip","organization":"JasonRay168","domainName":"github"},"branch":"master","displayName":"JasonRay168/ip[master]","outputFolderName":"JasonRay168_ip_master"},{"location":{"location":"https://github.com/jovkusuma/ip.git","repoName":"ip","organization":"jovkusuma","domainName":"github"},"branch":"master","displayName":"jovkusuma/ip[master]","outputFolderName":"jovkusuma_ip_master"},{"location":{"location":"https://github.com/Chrainx/ip.git","repoName":"ip","organization":"Chrainx","domainName":"github"},"branch":"master","displayName":"Chrainx/ip[master]","outputFolderName":"Chrainx_ip_master"},{"location":{"location":"https://github.com/Propene-Dan/ip.git","repoName":"ip","organization":"Propene-Dan","domainName":"github"},"branch":"master","displayName":"Propene-Dan/ip[master]","outputFolderName":"Propene-Dan_ip_master"},{"location":{"location":"https://github.com/Daphne789/ip.git","repoName":"ip","organization":"Daphne789","domainName":"github"},"branch":"master","displayName":"Daphne789/ip[master]","outputFolderName":"Daphne789_ip_master"},{"location":{"location":"https://github.com/ChuanXinNg/ip.git","repoName":"ip","organization":"ChuanXinNg","domainName":"github"},"branch":"master","displayName":"ChuanXinNg/ip[master]","outputFolderName":"ChuanXinNg_ip_master"},{"location":{"location":"https://github.com/LHeng1/ip.git","repoName":"ip","organization":"LHeng1","domainName":"github"},"branch":"master","displayName":"LHeng1/ip[master]","outputFolderName":"LHeng1_ip_master"},{"location":{"location":"https://github.com/wr1159/ip.git","repoName":"ip","organization":"wr1159","domainName":"github"},"branch":"master","displayName":"wr1159/ip[master]","outputFolderName":"wr1159_ip_master"},{"location":{"location":"https://github.com/wjacobw/ip.git","repoName":"ip","organization":"wjacobw","domainName":"github"},"branch":"master","displayName":"wjacobw/ip[master]","outputFolderName":"wjacobw_ip_master"},{"location":{"location":"https://github.com/tiongjjyi/ip.git","repoName":"ip","organization":"tiongjjyi","domainName":"github"},"branch":"master","displayName":"tiongjjyi/ip[master]","outputFolderName":"tiongjjyi_ip_master"},{"location":{"location":"https://github.com/longnguyentan/ip.git","repoName":"ip","organization":"longnguyentan","domainName":"github"},"branch":"master","displayName":"longnguyentan/ip[master]","outputFolderName":"longnguyentan_ip_master"},{"location":{"location":"https://github.com/proto-aiken-13/ip.git","repoName":"ip","organization":"proto-aiken-13","domainName":"github"},"branch":"master","displayName":"proto-aiken-13/ip[master]","outputFolderName":"proto-aiken-13_ip_master"},{"location":{"location":"https://github.com/junnengsoo/ip.git","repoName":"ip","organization":"junnengsoo","domainName":"github"},"branch":"master","displayName":"junnengsoo/ip[master]","outputFolderName":"junnengsoo_ip_master"},{"location":{"location":"https://github.com/yezkez10/ip.git","repoName":"ip","organization":"yezkez10","domainName":"github"},"branch":"master","displayName":"yezkez10/ip[master]","outputFolderName":"yezkez10_ip_master"},{"location":{"location":"https://github.com/jamesebond/ip.git","repoName":"ip","organization":"jamesebond","domainName":"github"},"branch":"master","displayName":"jamesebond/ip[master]","outputFolderName":"jamesebond_ip_master"},{"location":{"location":"https://github.com/alyssaongyx/ip.git","repoName":"ip","organization":"alyssaongyx","domainName":"github"},"branch":"master","displayName":"alyssaongyx/ip[master]","outputFolderName":"alyssaongyx_ip_master"},{"location":{"location":"https://github.com/Carlintyj/ip.git","repoName":"ip","organization":"Carlintyj","domainName":"github"},"branch":"master","displayName":"Carlintyj/ip[master]","outputFolderName":"Carlintyj_ip_master"},{"location":{"location":"https://github.com/ruth-lim/ip.git","repoName":"ip","organization":"ruth-lim","domainName":"github"},"branch":"master","displayName":"ruth-lim/ip[master]","outputFolderName":"ruth-lim_ip_master"},{"location":{"location":"https://github.com/licongshen12/ip.git","repoName":"ip","organization":"licongshen12","domainName":"github"},"branch":"master","displayName":"licongshen12/ip[master]","outputFolderName":"licongshen12_ip_master"},{"location":{"location":"https://github.com/thaddeusong/ip.git","repoName":"ip","organization":"thaddeusong","domainName":"github"},"branch":"master","displayName":"thaddeusong/ip[master]","outputFolderName":"thaddeusong_ip_master"},{"location":{"location":"https://github.com/LordSaumya/ip.git","repoName":"ip","organization":"LordSaumya","domainName":"github"},"branch":"master","displayName":"LordSaumya/ip[master]","outputFolderName":"LordSaumya_ip_master"},{"location":{"location":"https://github.com/Kevin-Liusx/ip.git","repoName":"ip","organization":"Kevin-Liusx","domainName":"github"},"branch":"master","displayName":"Kevin-Liusx/ip[master]","outputFolderName":"Kevin-Liusx_ip_master"},{"location":{"location":"https://github.com/Ken-Lai/ip.git","repoName":"ip","organization":"Ken-Lai","domainName":"github"},"branch":"master","displayName":"Ken-Lai/ip[master]","outputFolderName":"Ken-Lai_ip_master"},{"location":{"location":"https://github.com/KumChaiYin/ip.git","repoName":"ip","organization":"KumChaiYin","domainName":"github"},"branch":"master","displayName":"KumChaiYin/ip[master]","outputFolderName":"KumChaiYin_ip_master"},{"location":{"location":"https://github.com/pzl111/ip.git","repoName":"ip","organization":"pzl111","domainName":"github"},"branch":"master","displayName":"pzl111/ip[master]","outputFolderName":"pzl111_ip_master"},{"location":{"location":"https://github.com/alientian/ip.git","repoName":"ip","organization":"alientian","domainName":"github"},"branch":"master","displayName":"alientian/ip[master]","outputFolderName":"alientian_ip_master"},{"location":{"location":"https://github.com/eyelessrhyme7/ip.git","repoName":"ip","organization":"eyelessrhyme7","domainName":"github"},"branch":"master","displayName":"eyelessrhyme7/ip[master]","outputFolderName":"eyelessrhyme7_ip_master"},{"location":{"location":"https://github.com/AprupKale/ip.git","repoName":"ip","organization":"AprupKale","domainName":"github"},"branch":"master","displayName":"AprupKale/ip[master]","outputFolderName":"AprupKale_ip_master"},{"location":{"location":"https://github.com/kimshitong/ip.git","repoName":"ip","organization":"kimshitong","domainName":"github"},"branch":"master","displayName":"kimshitong/ip[master]","outputFolderName":"kimshitong_ip_master"},{"location":{"location":"https://github.com/Bryan-Goh/ip.git","repoName":"ip","organization":"Bryan-Goh","domainName":"github"},"branch":"master","displayName":"Bryan-Goh/ip[master]","outputFolderName":"Bryan-Goh_ip_master"},{"location":{"location":"https://github.com/tiif/ip.git","repoName":"ip","organization":"tiif","domainName":"github"},"branch":"master","displayName":"tiif/ip[master]","outputFolderName":"tiif_ip_master"},{"location":{"location":"https://github.com/angkyakdifp/ip.git","repoName":"ip","organization":"angkyakdifp","domainName":"github"},"branch":"master","displayName":"angkyakdifp/ip[master]","outputFolderName":"angkyakdifp_ip_master"},{"location":{"location":"https://github.com/Chen-Kuei/ip.git","repoName":"ip","organization":"Chen-Kuei","domainName":"github"},"branch":"master","displayName":"Chen-Kuei/ip[master]","outputFolderName":"Chen-Kuei_ip_master"},{"location":{"location":"https://github.com/SinhaVedant/ip.git","repoName":"ip","organization":"SinhaVedant","domainName":"github"},"branch":"master","displayName":"SinhaVedant/ip[master]","outputFolderName":"SinhaVedant_ip_master"},{"location":{"location":"https://github.com/D-Limiter/ip.git","repoName":"ip","organization":"D-Limiter","domainName":"github"},"branch":"master","displayName":"D-Limiter/ip[master]","outputFolderName":"D-Limiter_ip_master"},{"location":{"location":"https://github.com/larrywang0701/ip.git","repoName":"ip","organization":"larrywang0701","domainName":"github"},"branch":"master","displayName":"larrywang0701/ip[master]","outputFolderName":"larrywang0701_ip_master"},{"location":{"location":"https://github.com/Song-Mengfei/ip.git","repoName":"ip","organization":"Song-Mengfei","domainName":"github"},"branch":"master","displayName":"Song-Mengfei/ip[master]","outputFolderName":"Song-Mengfei_ip_master"},{"location":{"location":"https://github.com/ChangruHenryQian/ip.git","repoName":"ip","organization":"ChangruHenryQian","domainName":"github"},"branch":"master","displayName":"ChangruHenryQian/ip[master]","outputFolderName":"ChangruHenryQian_ip_master"},{"location":{"location":"https://github.com/ketweeen/ip.git","repoName":"ip","organization":"ketweeen","domainName":"github"},"branch":"master","displayName":"ketweeen/ip[master]","outputFolderName":"ketweeen_ip_master"},{"location":{"location":"https://github.com/RSXIX/ip.git","repoName":"ip","organization":"RSXIX","domainName":"github"},"branch":"master","displayName":"RSXIX/ip[master]","outputFolderName":"RSXIX_ip_master"},{"location":{"location":"https://github.com/songgthu/ip.git","repoName":"ip","organization":"songgthu","domainName":"github"},"branch":"master","displayName":"songgthu/ip[master]","outputFolderName":"songgthu_ip_master"},{"location":{"location":"https://github.com/maj0-0/ip.git","repoName":"ip","organization":"maj0-0","domainName":"github"},"branch":"master","displayName":"maj0-0/ip[master]","outputFolderName":"maj0-0_ip_master"},{"location":{"location":"https://github.com/tiongMax/ip.git","repoName":"ip","organization":"tiongMax","domainName":"github"},"branch":"master","displayName":"tiongMax/ip[master]","outputFolderName":"tiongMax_ip_master"},{"location":{"location":"https://github.com/A1WAYSD/ip.git","repoName":"ip","organization":"A1WAYSD","domainName":"github"},"branch":"master","displayName":"A1WAYSD/ip[master]","outputFolderName":"A1WAYSD_ip_master"},{"location":{"location":"https://github.com/hjoneweek/ip.git","repoName":"ip","organization":"hjoneweek","domainName":"github"},"branch":"master","displayName":"hjoneweek/ip[master]","outputFolderName":"hjoneweek_ip_master"},{"location":{"location":"https://github.com/itsNatTan/ip.git","repoName":"ip","organization":"itsNatTan","domainName":"github"},"branch":"master","displayName":"itsNatTan/ip[master]","outputFolderName":"itsNatTan_ip_master"},{"location":{"location":"https://github.com/AustinHuang1203/ip.git","repoName":"ip","organization":"AustinHuang1203","domainName":"github"},"branch":"master","displayName":"AustinHuang1203/ip[master]","outputFolderName":"AustinHuang1203_ip_master"},{"location":{"location":"https://github.com/WangCheng0116/ip.git","repoName":"ip","organization":"WangCheng0116","domainName":"github"},"branch":"master","displayName":"WangCheng0116/ip[master]","outputFolderName":"WangCheng0116_ip_master"},{"location":{"location":"https://github.com/Tim-Siu/ip.git","repoName":"ip","organization":"Tim-Siu","domainName":"github"},"branch":"master","displayName":"Tim-Siu/ip[master]","outputFolderName":"Tim-Siu_ip_master"},{"location":{"location":"https://github.com/newway1814/ip.git","repoName":"ip","organization":"newway1814","domainName":"github"},"branch":"master","displayName":"newway1814/ip[master]","outputFolderName":"newway1814_ip_master"},{"location":{"location":"https://github.com/li-rongzhi/ip.git","repoName":"ip","organization":"li-rongzhi","domainName":"github"},"branch":"master","displayName":"li-rongzhi/ip[master]","outputFolderName":"li-rongzhi_ip_master"},{"location":{"location":"https://github.com/adhigop13/ip.git","repoName":"ip","organization":"adhigop13","domainName":"github"},"branch":"master","displayName":"adhigop13/ip[master]","outputFolderName":"adhigop13_ip_master"},{"location":{"location":"https://github.com/MadLamprey/ip.git","repoName":"ip","organization":"MadLamprey","domainName":"github"},"branch":"master","displayName":"MadLamprey/ip[master]","outputFolderName":"MadLamprey_ip_master"}],"errorSet":[],"sinceDate":"2023-08-18","untilDate":"2023-10-18","isSinceDateProvided":true,"isUntilDateProvided":false,"supportedDomainUrlMap":{"NOT_RECOGNIZED":{"BRANCH":"","REPO_URL":"UNSUPPORTED","BASE_URL":"UNSUPPORTED","HISTORY_PATH":"","COMMIT_PATH":"","BLAME_PATH":""},"github":{"BRANCH":"tree/$BRANCH","REPO_URL":"https://github.com/$ORGANIZATION/$REPO_NAME/","BASE_URL":"https://github.com/","HISTORY_PATH":"commits/$BRANCH/$FILE_PATH","COMMIT_PATH":"commit/$COMMIT_HASH","BLAME_PATH":"blame/$BRANCH/$FILE_PATH"}}}