diff --git a/AY2324S1-CS2113-T18-2_tp_master/authorship.json b/AY2324S1-CS2113-T18-2_tp_master/authorship.json index cda5dfe..2475760 100644 --- a/AY2324S1-CS2113-T18-2_tp_master/authorship.json +++ b/AY2324S1-CS2113-T18-2_tp_master/authorship.json @@ -1 +1 @@ -[{"path":"build.gradle","fileType":"other","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 \u0027checkstyle\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2022-06-17"},{"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":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"ryan1604"},"content":" mainClass.set(\"seedu.financialplanner.FinancialPlanner\")","lastModifiedDate":"2023-10-07"},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" archiveBaseName.set(\"duke\")","lastModifiedDate":"2023-09-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveClassifier.set(\"\")","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"checkstyle {","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2022-04-29"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":45,"ryan1604":1}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"NeoMinWei"},"content":"--------|:-----------:|:--------------:|:---------:","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Ryan Chua | [Github](https://github.com/ryan1604) | [Portfolio](docs/team/ryanchua.md)","lastModifiedDate":"2023-10-05"},{"lineNumber":8,"author":{"gitId":"NeoMinWei"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Neo Min Wei | [Github](https://github.com/NeoMinWei) | [Portfolio](docs/team/NeoMinWei.md)","lastModifiedDate":"2023-10-05"},{"lineNumber":9,"author":{"gitId":"wwweert123"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Frederick | [Github](https://github.com/) | [Portfolio](docs/team/frederick.md)","lastModifiedDate":"2023-10-05"},{"lineNumber":10,"author":{"gitId":"NeoMinWei"},"content":"","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"wwweert123":1,"NeoMinWei":3,"-":6}},{"path":"docs/team/NeoMinWei.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"NeoMinWei"},"content":"# Neo Min Wei - Project Portfolio Page","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"## Overview","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"### Summary of Contributions","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"NeoMinWei":1,"-":5}},{"path":"docs/team/frederick.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"wwweert123"},"content":"I am Frederick ","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"wwweert123"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"wwweert123"},"content":"Hello ","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"wwweert123"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"wwweert123"},"content":"I am from this team!","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"wwweert123":5}},{"path":"src/main/java/seedu/financialplanner/FinancialPlanner.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.commands.Command;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.commands.Exit;","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.utils.Parser;","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.utils.Ui;","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":"public class FinancialPlanner {","lastModifiedDate":"2023-10-07"},{"lineNumber":9,"author":{"gitId":"ryan1604"},"content":" private Ui ui;","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":11,"author":{"gitId":"ryan1604"},"content":" public FinancialPlanner() {","lastModifiedDate":"2023-10-07"},{"lineNumber":12,"author":{"gitId":"ryan1604"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-10-07"},{"lineNumber":13,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":14,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":15,"author":{"gitId":"ryan1604"},"content":" public void run() {","lastModifiedDate":"2023-10-07"},{"lineNumber":16,"author":{"gitId":"ryan1604"},"content":" ui.welcomeMessage();","lastModifiedDate":"2023-10-07"},{"lineNumber":17,"author":{"gitId":"ryan1604"},"content":" String input;","lastModifiedDate":"2023-10-07"},{"lineNumber":18,"author":{"gitId":"ryan1604"},"content":" Command command \u003d null;","lastModifiedDate":"2023-10-07"},{"lineNumber":19,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":20,"author":{"gitId":"ryan1604"},"content":" while (!(command instanceof Exit)) {","lastModifiedDate":"2023-10-07"},{"lineNumber":21,"author":{"gitId":"ryan1604"},"content":" input \u003d ui.input();","lastModifiedDate":"2023-10-07"},{"lineNumber":22,"author":{"gitId":"ryan1604"},"content":" command \u003d Parser.parse(input);","lastModifiedDate":"2023-10-07"},{"lineNumber":23,"author":{"gitId":"ryan1604"},"content":" command.execute(ui);","lastModifiedDate":"2023-10-07"},{"lineNumber":24,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":25,"author":{"gitId":"ryan1604"},"content":" ui.exitMessage();","lastModifiedDate":"2023-10-07"},{"lineNumber":26,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":27,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":28,"author":{"gitId":"ryan1604"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-07"},{"lineNumber":29,"author":{"gitId":"ryan1604"},"content":" new FinancialPlanner().run();","lastModifiedDate":"2023-10-07"},{"lineNumber":30,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":31,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":31}},{"path":"src/main/java/seedu/financialplanner/commands/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.commands;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.utils.Ui;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"public class Command {","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":" public void execute(Ui ui) {","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":8}},{"path":"src/main/java/seedu/financialplanner/commands/Exit.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.commands;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.utils.Ui;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"public class Exit extends Command {","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":" public Exit() {","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":9,"author":{"gitId":"ryan1604"},"content":" @Override","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"ryan1604"},"content":" public void execute(Ui ui) {","lastModifiedDate":"2023-10-07"},{"lineNumber":11,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":12,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":12}},{"path":"src/main/java/seedu/financialplanner/commands/Invalid.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.commands;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.utils.Ui;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"public class Invalid extends Command {","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":" public Invalid() {","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":9,"author":{"gitId":"ryan1604"},"content":" @Override","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"ryan1604"},"content":" public void execute(Ui ui) {","lastModifiedDate":"2023-10-07"},{"lineNumber":11,"author":{"gitId":"ryan1604"},"content":" ui.showMessage(\"\\tUnknown command. Please try again.\");","lastModifiedDate":"2023-10-07"},{"lineNumber":12,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":13,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":13}},{"path":"src/main/java/seedu/financialplanner/exceptions/FinancialPlannerException.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.exceptions;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"public class FinancialPlannerException extends Exception {","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":" public FinancialPlannerException(String message) {","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":" super(message);","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":7}},{"path":"src/main/java/seedu/financialplanner/utils/Parser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.utils;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.commands.Command;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.commands.Exit;","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.commands.Invalid;","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":"public class Parser {","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":" private static final String EXIT_COMMAND \u003d \"exit\";","lastModifiedDate":"2023-10-07"},{"lineNumber":9,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"ryan1604"},"content":" public static Command parse(String input) {","lastModifiedDate":"2023-10-07"},{"lineNumber":11,"author":{"gitId":"ryan1604"},"content":" String[] split \u003d input.split(\" \", 2);","lastModifiedDate":"2023-10-07"},{"lineNumber":12,"author":{"gitId":"ryan1604"},"content":" String command \u003d split[0].toLowerCase();","lastModifiedDate":"2023-10-07"},{"lineNumber":13,"author":{"gitId":"ryan1604"},"content":" String restOfInput \u003d split.length \u003e 1 ? split[1] : \"\"; // checks if rest of input is empty","lastModifiedDate":"2023-10-07"},{"lineNumber":14,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":15,"author":{"gitId":"ryan1604"},"content":" switch (command) {","lastModifiedDate":"2023-10-07"},{"lineNumber":16,"author":{"gitId":"ryan1604"},"content":" case EXIT_COMMAND:","lastModifiedDate":"2023-10-07"},{"lineNumber":17,"author":{"gitId":"ryan1604"},"content":" return new Exit();","lastModifiedDate":"2023-10-07"},{"lineNumber":18,"author":{"gitId":"ryan1604"},"content":" default:","lastModifiedDate":"2023-10-07"},{"lineNumber":19,"author":{"gitId":"ryan1604"},"content":" return new Invalid();","lastModifiedDate":"2023-10-07"},{"lineNumber":20,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":21,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":22,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":22}},{"path":"src/main/java/seedu/financialplanner/utils/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.utils;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"public class Ui {","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":" public Ui() {","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":9,"author":{"gitId":"ryan1604"},"content":" public void showMessage(String message) {","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"ryan1604"},"content":" System.out.println(message);","lastModifiedDate":"2023-10-07"},{"lineNumber":11,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":12,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":13,"author":{"gitId":"ryan1604"},"content":" public void welcomeMessage() {","lastModifiedDate":"2023-10-07"},{"lineNumber":14,"author":{"gitId":"ryan1604"},"content":" showMessage(\"\\tWelcome to your Financial Planner. Type something to get started.\");","lastModifiedDate":"2023-10-07"},{"lineNumber":15,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":16,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":17,"author":{"gitId":"ryan1604"},"content":" public void exitMessage() {","lastModifiedDate":"2023-10-07"},{"lineNumber":18,"author":{"gitId":"ryan1604"},"content":" showMessage(\"\\tExiting Financial Planner. Goodbye.\");","lastModifiedDate":"2023-10-07"},{"lineNumber":19,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":20,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":21,"author":{"gitId":"ryan1604"},"content":" public String input() {","lastModifiedDate":"2023-10-07"},{"lineNumber":22,"author":{"gitId":"ryan1604"},"content":" Scanner in \u003d new Scanner(System.in);","lastModifiedDate":"2023-10-07"},{"lineNumber":23,"author":{"gitId":"ryan1604"},"content":" return in.nextLine().trim();","lastModifiedDate":"2023-10-07"},{"lineNumber":24,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":25,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":25}},{"path":"src/test/java/seedu/financialplanner/FinancialPlannerTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":"class FinancialPlannerTest {","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"-"},"content":" @Test","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":" public void sampleTest() {","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":" assertTrue(true);","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"-":10,"ryan1604":2}}] +[{"path":"build.gradle","fileType":"other","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 \u0027checkstyle\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2022-06-17"},{"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":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"ryan1604"},"content":" mainClass.set(\"seedu.financialplanner.FinancialPlanner\")","lastModifiedDate":"2023-10-07"},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" archiveBaseName.set(\"duke\")","lastModifiedDate":"2023-09-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveClassifier.set(\"\")","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"checkstyle {","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2022-04-29"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":45,"ryan1604":1}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"NeoMinWei"},"content":"--------|:-----------:|:--------------:|:---------:","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Ryan Chua | [Github](https://github.com/ryan1604) | [Portfolio](docs/team/ryanchua.md)","lastModifiedDate":"2023-10-05"},{"lineNumber":8,"author":{"gitId":"NeoMinWei"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Neo Min Wei | [Github](https://github.com/NeoMinWei) | [Portfolio](docs/team/NeoMinWei.md)","lastModifiedDate":"2023-10-05"},{"lineNumber":9,"author":{"gitId":"wwweert123"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Frederick | [Github](https://github.com/) | [Portfolio](docs/team/frederick.md)","lastModifiedDate":"2023-10-05"},{"lineNumber":10,"author":{"gitId":"NeoMinWei"},"content":"","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"wwweert123":1,"NeoMinWei":3,"-":5,"ryan1604":1}},{"path":"docs/team/NeoMinWei.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"NeoMinWei"},"content":"# Neo Min Wei - Project Portfolio Page","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"## Overview","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"### Summary of Contributions","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"NeoMinWei":1,"-":5}},{"path":"docs/team/frederick.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"wwweert123"},"content":"I am Frederick ","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"wwweert123"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"wwweert123"},"content":"Hello ","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"wwweert123"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"wwweert123"},"content":"I am from this team!","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"wwweert123":5}},{"path":"src/main/java/seedu/financialplanner/FinancialPlanner.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.commands.Command;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.commands.Exit;","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.utils.Parser;","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.utils.Ui;","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":"public class FinancialPlanner {","lastModifiedDate":"2023-10-07"},{"lineNumber":9,"author":{"gitId":"ryan1604"},"content":" private Ui ui;","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":11,"author":{"gitId":"ryan1604"},"content":" public FinancialPlanner() {","lastModifiedDate":"2023-10-07"},{"lineNumber":12,"author":{"gitId":"ryan1604"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-10-07"},{"lineNumber":13,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":14,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":15,"author":{"gitId":"ryan1604"},"content":" public void run() {","lastModifiedDate":"2023-10-07"},{"lineNumber":16,"author":{"gitId":"ryan1604"},"content":" ui.welcomeMessage();","lastModifiedDate":"2023-10-07"},{"lineNumber":17,"author":{"gitId":"ryan1604"},"content":" String input;","lastModifiedDate":"2023-10-07"},{"lineNumber":18,"author":{"gitId":"ryan1604"},"content":" Command command \u003d null;","lastModifiedDate":"2023-10-07"},{"lineNumber":19,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":20,"author":{"gitId":"ryan1604"},"content":" while (!(command instanceof Exit)) {","lastModifiedDate":"2023-10-07"},{"lineNumber":21,"author":{"gitId":"ryan1604"},"content":" input \u003d ui.input();","lastModifiedDate":"2023-10-07"},{"lineNumber":22,"author":{"gitId":"ryan1604"},"content":" command \u003d Parser.parse(input);","lastModifiedDate":"2023-10-07"},{"lineNumber":23,"author":{"gitId":"ryan1604"},"content":" command.execute(ui);","lastModifiedDate":"2023-10-07"},{"lineNumber":24,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":25,"author":{"gitId":"ryan1604"},"content":" ui.exitMessage();","lastModifiedDate":"2023-10-07"},{"lineNumber":26,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":27,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":28,"author":{"gitId":"ryan1604"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-07"},{"lineNumber":29,"author":{"gitId":"ryan1604"},"content":" new FinancialPlanner().run();","lastModifiedDate":"2023-10-07"},{"lineNumber":30,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":31,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":31}},{"path":"src/main/java/seedu/financialplanner/commands/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.commands;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.utils.Ui;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"public class Command {","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":" public void execute(Ui ui) {","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":8}},{"path":"src/main/java/seedu/financialplanner/commands/Exit.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.commands;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.utils.Ui;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"public class Exit extends Command {","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":" public Exit() {","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":9,"author":{"gitId":"ryan1604"},"content":" @Override","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"ryan1604"},"content":" public void execute(Ui ui) {","lastModifiedDate":"2023-10-07"},{"lineNumber":11,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":12,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":12}},{"path":"src/main/java/seedu/financialplanner/commands/Invalid.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.commands;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.utils.Ui;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"public class Invalid extends Command {","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":" public Invalid() {","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":9,"author":{"gitId":"ryan1604"},"content":" @Override","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"ryan1604"},"content":" public void execute(Ui ui) {","lastModifiedDate":"2023-10-07"},{"lineNumber":11,"author":{"gitId":"ryan1604"},"content":" ui.showMessage(\"\\tUnknown command. Please try again.\");","lastModifiedDate":"2023-10-07"},{"lineNumber":12,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":13,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":13}},{"path":"src/main/java/seedu/financialplanner/exceptions/FinancialPlannerException.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.exceptions;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"public class FinancialPlannerException extends Exception {","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":" public FinancialPlannerException(String message) {","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":" super(message);","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":7}},{"path":"src/main/java/seedu/financialplanner/utils/Parser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.utils;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.commands.Command;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.commands.Exit;","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"import seedu.financialplanner.commands.Invalid;","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":"public class Parser {","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":" private static final String EXIT_COMMAND \u003d \"exit\";","lastModifiedDate":"2023-10-07"},{"lineNumber":9,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"ryan1604"},"content":" public static Command parse(String input) {","lastModifiedDate":"2023-10-07"},{"lineNumber":11,"author":{"gitId":"ryan1604"},"content":" String[] split \u003d input.split(\" \", 2);","lastModifiedDate":"2023-10-07"},{"lineNumber":12,"author":{"gitId":"ryan1604"},"content":" String command \u003d split[0].toLowerCase();","lastModifiedDate":"2023-10-07"},{"lineNumber":13,"author":{"gitId":"ryan1604"},"content":" String restOfInput \u003d split.length \u003e 1 ? split[1] : \"\"; // checks if rest of input is empty","lastModifiedDate":"2023-10-07"},{"lineNumber":14,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":15,"author":{"gitId":"ryan1604"},"content":" switch (command) {","lastModifiedDate":"2023-10-07"},{"lineNumber":16,"author":{"gitId":"ryan1604"},"content":" case EXIT_COMMAND:","lastModifiedDate":"2023-10-07"},{"lineNumber":17,"author":{"gitId":"ryan1604"},"content":" return new Exit();","lastModifiedDate":"2023-10-07"},{"lineNumber":18,"author":{"gitId":"ryan1604"},"content":" default:","lastModifiedDate":"2023-10-07"},{"lineNumber":19,"author":{"gitId":"ryan1604"},"content":" return new Invalid();","lastModifiedDate":"2023-10-07"},{"lineNumber":20,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":21,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":22,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":22}},{"path":"src/main/java/seedu/financialplanner/utils/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner.utils;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"ryan1604"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"ryan1604"},"content":"public class Ui {","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"ryan1604"},"content":" public Ui() {","lastModifiedDate":"2023-10-07"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":9,"author":{"gitId":"ryan1604"},"content":" public void showMessage(String message) {","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"ryan1604"},"content":" System.out.println(message);","lastModifiedDate":"2023-10-07"},{"lineNumber":11,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":12,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":13,"author":{"gitId":"ryan1604"},"content":" public void welcomeMessage() {","lastModifiedDate":"2023-10-07"},{"lineNumber":14,"author":{"gitId":"ryan1604"},"content":" showMessage(\"\\tWelcome to your Financial Planner. Type something to get started.\");","lastModifiedDate":"2023-10-07"},{"lineNumber":15,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":16,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":17,"author":{"gitId":"ryan1604"},"content":" public void exitMessage() {","lastModifiedDate":"2023-10-07"},{"lineNumber":18,"author":{"gitId":"ryan1604"},"content":" showMessage(\"\\tExiting Financial Planner. Goodbye.\");","lastModifiedDate":"2023-10-07"},{"lineNumber":19,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":20,"author":{"gitId":"ryan1604"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":21,"author":{"gitId":"ryan1604"},"content":" public String input() {","lastModifiedDate":"2023-10-07"},{"lineNumber":22,"author":{"gitId":"ryan1604"},"content":" Scanner in \u003d new Scanner(System.in);","lastModifiedDate":"2023-10-07"},{"lineNumber":23,"author":{"gitId":"ryan1604"},"content":" return in.nextLine().trim();","lastModifiedDate":"2023-10-07"},{"lineNumber":24,"author":{"gitId":"ryan1604"},"content":" }","lastModifiedDate":"2023-10-07"},{"lineNumber":25,"author":{"gitId":"ryan1604"},"content":"}","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"ryan1604":25}},{"path":"src/test/java/seedu/financialplanner/FinancialPlannerTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"ryan1604"},"content":"package seedu.financialplanner;","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"ryan1604"},"content":"class FinancialPlannerTest {","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"-"},"content":" @Test","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":" public void sampleTest() {","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":" assertTrue(true);","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"-":10,"ryan1604":2}}] diff --git a/AY2324S1-CS2113-T18-2_tp_master/commits.json b/AY2324S1-CS2113-T18-2_tp_master/commits.json index 9f55875..69ccac7 100644 --- a/AY2324S1-CS2113-T18-2_tp_master/commits.json +++ b/AY2324S1-CS2113-T18-2_tp_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"wwweert123":[{"date":"2023-10-05","commitResults":[{"hash":"491c9238e3c2b52f8ddaa10ba332e9566a8b7e9e","isMergeCommit":false,"messageTitle":"Add aboutus links and add my my own md file","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":12,"deletions":7}}},{"hash":"2712d42c6b6d4552c9a0ea7bcc75de166bdf1546","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-T18-2/tp into Frederick-AboutUs","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"11db7a69a38c31d6f7658163f69ac8726f80a0b0","isMergeCommit":true,"messageTitle":"Merge pull request #3 from wwweert123/Frederick-AboutUs","messageBody":"Add aboutus links and add my my own md file","fileTypesAndContributionMap":{}}]}],"NeoMinWei":[{"date":"2023-10-05","commitResults":[{"hash":"4f47ae40234b912a4c5b7dc60382509629d101a3","isMergeCommit":false,"messageTitle":"Add name to AboutUs","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":8,"deletions":8}}},{"hash":"f2c1d37c4806aa17f190a32959ef65e5687b4aee","isMergeCommit":true,"messageTitle":"Merge pull request #1 from ryan1604/ryanChua-AboutUs","messageBody":"Update AboutUs","fileTypesAndContributionMap":{}},{"hash":"2c62d715ae126cdd37eb029c1637b350c38be6de","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-T18-2/tp into NeoMinWei-AboutUs","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"22503c3b8de7c4b1a38b85131f14e6b63162ded7","isMergeCommit":true,"messageTitle":"Merge pull request #2 from NeoMinWei/NeoMinWei-AboutUs","messageBody":"Add name to AboutUs","fileTypesAndContributionMap":{}}]}],"ryan1604":[{"date":"2023-10-07","commitResults":[{"hash":"e8da8d09f6900bdcf1299dabba13d3177794676f","isMergeCommit":false,"messageTitle":"Setup Ui and rename Duke to FinancialPlanner","messageBody":"Fixes #5\n","fileTypesAndContributionMap":{"functional-code":{"insertions":45,"deletions":22},"other":{"insertions":3,"deletions":3}}},{"hash":"d5be6d4bae825dbb2ba49c20588e7d1ecfaa8f7e","isMergeCommit":false,"messageTitle":"Add FinancialPlannerException","messageBody":"Fixes #8\n","fileTypesAndContributionMap":{"functional-code":{"insertions":7,"deletions":0}}},{"hash":"41909a10cf9d822fabd58091788fa8d898615517","isMergeCommit":false,"messageTitle":"Add Parser, add \u0027exit\u0027 and \u0027invalid\u0027 command to Parser","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":67,"deletions":1},"other":{"insertions":1,"deletions":1}}},{"hash":"d926641278054652b6bf5faba4d7a71495ad91b9","isMergeCommit":true,"messageTitle":"Merge pull request #26 from ryan1604/branch-setup","messageBody":"Branch setup","fileTypesAndContributionMap":{}}]}],"YFshadaow":[],"hshiah":[{"date":"2023-10-05","commitResults":[{"hash":"f4e110ae257a2d4b5945b76e92c4f67b53a9b9c9","isMergeCommit":false,"messageTitle":"Test","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":2,"deletions":1}}},{"hash":"483fb3d416dea3f0ae1999b544aaa379f9eb6575","isMergeCommit":true,"messageTitle":"Merge pull request #4 from hshiah/hshiah","messageBody":"Shi,Haochen","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"wwweert123":{"docs":6,"functional-code":0,"test-code":0},"NeoMinWei":{"docs":4,"functional-code":0,"test-code":0},"ryan1604":{"docs":0,"functional-code":118,"test-code":2,"other":1},"YFshadaow":{"docs":0,"functional-code":0,"test-code":0},"hshiah":{"docs":0,"functional-code":0,"test-code":0}},"authorContributionVariance":{"wwweert123":21.152344,"NeoMinWei":15.0,"ryan1604":1318.3594,"YFshadaow":0.0,"hshiah":0.52734375},"authorDisplayNameMap":{"wwweert123":"CS2113-T18-2 PUA ..RICK","NeoMinWei":"CS2113-T18-2 NEO .. WEI","ryan1604":"CS2113-T18-2 CHUA..RYAN","YFshadaow":"CS2113-T18-2 REN ..GDAO","hshiah":"CS2113-T18-2 SHI ..CHEN"}} +{"authorDailyContributionsMap":{"wwweert123":[{"date":"2023-10-05","commitResults":[{"hash":"491c9238e3c2b52f8ddaa10ba332e9566a8b7e9e","isMergeCommit":false,"messageTitle":"Add aboutus links and add my my own md file","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":12,"deletions":7}}},{"hash":"2712d42c6b6d4552c9a0ea7bcc75de166bdf1546","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-T18-2/tp into Frederick-AboutUs","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"11db7a69a38c31d6f7658163f69ac8726f80a0b0","isMergeCommit":true,"messageTitle":"Merge pull request #3 from wwweert123/Frederick-AboutUs","messageBody":"Add aboutus links and add my my own md file","fileTypesAndContributionMap":{}}]}],"NeoMinWei":[{"date":"2023-10-05","commitResults":[{"hash":"4f47ae40234b912a4c5b7dc60382509629d101a3","isMergeCommit":false,"messageTitle":"Add name to AboutUs","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":8,"deletions":8}}},{"hash":"f2c1d37c4806aa17f190a32959ef65e5687b4aee","isMergeCommit":true,"messageTitle":"Merge pull request #1 from ryan1604/ryanChua-AboutUs","messageBody":"Update AboutUs","fileTypesAndContributionMap":{}},{"hash":"2c62d715ae126cdd37eb029c1637b350c38be6de","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-T18-2/tp into NeoMinWei-AboutUs","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"22503c3b8de7c4b1a38b85131f14e6b63162ded7","isMergeCommit":true,"messageTitle":"Merge pull request #2 from NeoMinWei/NeoMinWei-AboutUs","messageBody":"Add name to AboutUs","fileTypesAndContributionMap":{}}]}],"ryan1604":[{"date":"2023-10-05","commitResults":[{"hash":"eab7be4bcbb2bd13648ec4f347d0278a5b33b3b1","isMergeCommit":false,"messageTitle":"Update AboutUs","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}}]},{"date":"2023-10-07","commitResults":[{"hash":"e8da8d09f6900bdcf1299dabba13d3177794676f","isMergeCommit":false,"messageTitle":"Setup Ui and rename Duke to FinancialPlanner","messageBody":"Fixes #5\n","fileTypesAndContributionMap":{"functional-code":{"insertions":45,"deletions":22},"other":{"insertions":3,"deletions":3}}},{"hash":"d5be6d4bae825dbb2ba49c20588e7d1ecfaa8f7e","isMergeCommit":false,"messageTitle":"Add FinancialPlannerException","messageBody":"Fixes #8\n","fileTypesAndContributionMap":{"functional-code":{"insertions":7,"deletions":0}}},{"hash":"41909a10cf9d822fabd58091788fa8d898615517","isMergeCommit":false,"messageTitle":"Add Parser, add \u0027exit\u0027 and \u0027invalid\u0027 command to Parser","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":67,"deletions":1},"other":{"insertions":1,"deletions":1}}},{"hash":"d926641278054652b6bf5faba4d7a71495ad91b9","isMergeCommit":true,"messageTitle":"Merge pull request #26 from ryan1604/branch-setup","messageBody":"Branch setup","fileTypesAndContributionMap":{}}]}],"YFshadaow":[],"hshiah":[{"date":"2023-10-05","commitResults":[{"hash":"f4e110ae257a2d4b5945b76e92c4f67b53a9b9c9","isMergeCommit":false,"messageTitle":"Test","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":2,"deletions":1}}},{"hash":"483fb3d416dea3f0ae1999b544aaa379f9eb6575","isMergeCommit":true,"messageTitle":"Merge pull request #4 from hshiah/hshiah","messageBody":"Shi,Haochen","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"wwweert123":{"docs":6,"functional-code":0,"test-code":0},"NeoMinWei":{"docs":4,"functional-code":0,"test-code":0},"ryan1604":{"docs":1,"functional-code":118,"test-code":2,"other":1},"YFshadaow":{"docs":0,"functional-code":0,"test-code":0},"hshiah":{"docs":0,"functional-code":0,"test-code":0}},"authorContributionVariance":{"wwweert123":21.152344,"NeoMinWei":15.0,"ryan1604":1313.4375,"YFshadaow":0.0,"hshiah":0.52734375},"authorDisplayNameMap":{"wwweert123":"CS2113-T18-2 PUA ..RICK","NeoMinWei":"CS2113-T18-2 NEO .. WEI","ryan1604":"CS2113-T18-2 CHUA..RYAN","YFshadaow":"CS2113-T18-2 REN ..GDAO","hshiah":"CS2113-T18-2 SHI ..CHEN"}} diff --git a/AY2324S1-CS2113-W12-1_tp_master/authorship.json b/AY2324S1-CS2113-W12-1_tp_master/authorship.json index 59c5846..f75e870 100644 --- a/AY2324S1-CS2113-W12-1_tp_master/authorship.json +++ b/AY2324S1-CS2113-W12-1_tp_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"yeo-menghan"},"content":"# QuizHub project template","lastModifiedDate":"2023-10-04"},{"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 (use the exact version), update Intellij to the most recent version.","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"1. **Ensure Intellij JDK 11 is defined as an SDK**, as described [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk) -- this step is not needed if you have used JDK 11 in a previous Intellij project.","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. **Import the project _as a Gradle project_**, as described [here](https://se-education.org/guides/tutorials/intellijImportGradleProject.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"1. **Verify the set up**: After the importing is complete, locate the `src/main/java/seedu/duke/Duke.java` file, right-click it, and choose `Run Duke.main()`. If the setup is correct, you should see something like the below:","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" \u003e Task :compileJava","lastModifiedDate":"2020-05-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":" \u003e Task :processResources NO-SOURCE","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":" \u003e Task :classes","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":" ","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":" \u003e Task :Duke.main()","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" ____ _ ","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" | _ \\ _ _| | _____ ","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" | | | | | | | |/ / _ \\","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":" | |_| | |_| | \u003c __/","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" |____/ \\__,_|_|\\_\\___|","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" ","lastModifiedDate":"2020-05-24"},{"lineNumber":25,"author":{"gitId":"-"},"content":" What is your name?","lastModifiedDate":"2020-05-24"},{"lineNumber":26,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" Type some word and press enter to let the execution proceed to the end.","lastModifiedDate":"2020-05-24"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":29,"author":{"gitId":"-"},"content":"## Build automation using Gradle","lastModifiedDate":"2020-05-24"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"* This project uses Gradle for build automation and dependency management. It includes a basic build script as well (i.e. the `build.gradle` file).","lastModifiedDate":"2020-05-24"},{"lineNumber":32,"author":{"gitId":"-"},"content":"* If you are new to Gradle, refer to the [Gradle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/gradle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":34,"author":{"gitId":"-"},"content":"## Testing","lastModifiedDate":"2020-05-24"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":36,"author":{"gitId":"-"},"content":"### I/O redirection tests","lastModifiedDate":"2020-05-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"* To run _I/O redirection_ tests (aka _Text UI tests_), navigate to the `text-ui-test` and run the `runtest(.bat/.sh)` script.","lastModifiedDate":"2020-05-24"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":40,"author":{"gitId":"-"},"content":"### JUnit tests","lastModifiedDate":"2020-05-24"},{"lineNumber":41,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":42,"author":{"gitId":"-"},"content":"* A skeleton JUnit test (`src/test/java/seedu/duke/DukeTest.java`) is provided with this project template. ","lastModifiedDate":"2020-05-24"},{"lineNumber":43,"author":{"gitId":"-"},"content":"* If you are new to JUnit, refer to the [JUnit Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/junit.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":45,"author":{"gitId":"-"},"content":"## Checkstyle","lastModifiedDate":"2020-05-24"},{"lineNumber":46,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":47,"author":{"gitId":"-"},"content":"* A sample CheckStyle rule configuration is provided in this project.","lastModifiedDate":"2020-05-24"},{"lineNumber":48,"author":{"gitId":"-"},"content":"* If you are new to Checkstyle, refer to the [Checkstyle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/checkstyle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":49,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":50,"author":{"gitId":"-"},"content":"## CI using GitHub Actions","lastModifiedDate":"2020-05-24"},{"lineNumber":51,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":52,"author":{"gitId":"-"},"content":"The project uses [GitHub actions](https://github.com/features/actions) for CI. When you push a commit to this repo or PR against it, GitHub actions will run automatically to build and verify the code as updated by the commit/PR.","lastModifiedDate":"2020-05-24"},{"lineNumber":53,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":54,"author":{"gitId":"-"},"content":"## Documentation","lastModifiedDate":"2020-05-24"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":56,"author":{"gitId":"-"},"content":"`/docs` folder contains a skeleton version of the project documentation.","lastModifiedDate":"2020-05-24"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":58,"author":{"gitId":"-"},"content":"Steps for publishing documentation to the public: ","lastModifiedDate":"2020-05-24"},{"lineNumber":59,"author":{"gitId":"-"},"content":"1. If you are using this project template for an individual project, go your fork on GitHub.\u003cbr\u003e","lastModifiedDate":"2020-05-24"},{"lineNumber":60,"author":{"gitId":"-"},"content":" If you are using this project template for a team project, go to the team fork on GitHub.","lastModifiedDate":"2020-05-24"},{"lineNumber":61,"author":{"gitId":"-"},"content":"1. Click on the `settings` tab.","lastModifiedDate":"2020-05-24"},{"lineNumber":62,"author":{"gitId":"-"},"content":"1. Scroll down to the `GitHub Pages` section.","lastModifiedDate":"2020-05-24"},{"lineNumber":63,"author":{"gitId":"-"},"content":"1. Set the `source` as `master branch /docs folder`.","lastModifiedDate":"2020-05-24"},{"lineNumber":64,"author":{"gitId":"-"},"content":"1. Optionally, use the `choose a theme` button to choose a theme for your documentation.","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"yeo-menghan":1,"-":63}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"lisizhuang-0121"},"content":"--------|:--------------:|:--------------------------------------------:|:---------:","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"James-Hong-Jey"},"content":"![](https://www.comp.nus.edu.sg/~stevenha/images/sh7.jpg) | James Hong Jey | [Github](https://github.com/James-Hong-Jey) | [Portfolio](docs/team/jameshong.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"StevenGX12"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Guan Xiao | [Github](https://github.com/StevenGX12) | [Portfolio](docs/team/guanxiao.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"![](https://avatars.githubusercontent.com/u/111041948?s\u003d400\u0026u\u003d6619a8328eba45edbc88fe01cf54efeb1f986d11\u0026v\u003d4) | Man Juncheng | [Github](https://github.com/spinoandraptos) | [Portfolio](docs/team/juncheng.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"lisizhuang-0121"},"content":"![](https://i.redd.it/6do158vk2ue61.png) | Li Sizhuang | [Github](https://github.com/lisizhuang-0121) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Yeo Meng Han | [Github](https://github.com/yeo-menghan) | [Portfolio](https://linkedin.com/in/yeo-meng-han/)","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":1,"StevenGX12":1,"James-Hong-Jey":1,"lisizhuang-0121":2,"-":4}},{"path":"src/main/java/Duke.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.Command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"import rene.parser.Parser;","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * The main program running for the Duke chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" * The program bridges the user interface (Ui),","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" * hard disk data (dataStorage) and supports","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * dynamic data manipulation.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":"public class Duke {","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" private Ui ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" private Storage dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" private TaskList tasks;","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" private Parser parser;","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * Initiates the program with the necessary components.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath File location where data is","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * written to and read from by the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" public Duke(String filePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" dataStorage \u003d new Storage(filePath);","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" tasks \u003d new TaskList();","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" ui \u003d new Ui(dataStorage, tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" parser \u003d new Parser();","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" * Starts the chatbot by showing opening message.","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * Chatbot repeatedly handles user commands","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * until it is requested to terminate.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" * Chatbot closes by showing closing message.","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" public void run(){","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" ui.displayOpeningMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" boolean toExit \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" while(!toExit){","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" String fullCommand \u003d ui.readCommand();","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" ui.showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" Command command \u003d parser.parseCommand(fullCommand);","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" toExit \u003d command.toExit();","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" command.executeCommand(ui, dataStorage, tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" if(!toExit){","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" ui.showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" ui.displayClosingMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" new Duke(\"tasklist.txt\").run();","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":55}},{"path":"src/main/java/rene/command/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a user command to execute an action.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" public enum CommandType {TODO, DEADLINE, EVENT, DELETE, LIST, MARK, UNMARK, FIND, EXIT};","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" private CommandType commandType;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new blank command.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" public Command(){}","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new command of given type.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param commandType Type of command.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" public Command(CommandType commandType){","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" this.commandType \u003d commandType;","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * Performs an action according to command.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){}","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * Checks if the latest command calls for program termination.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" public boolean toExit(){","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" return commandType \u003d\u003d CommandType.EXIT;","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":38}},{"path":"src/main/java/rene/command/CommandDeadline.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Task;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to add a deadline task.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"public class CommandDeadline extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" private String userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new deadline command to add a deadline task.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" * @param userInput User input containing details of the deadline task.","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" public CommandDeadline(String userInput){","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.DEADLINE);","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" this.userInput \u003d userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Adds the deadline task and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" tasks.addToTaskList(userInput, Task.TaskType.DEADLINE, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":33}},{"path":"src/main/java/rene/command/CommandDelete.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to delete a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandDelete extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private int taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new delete command for a task of specified index.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param taskIndex Index of the task to be deleted.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public CommandDelete(int taskIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.DELETE);","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.taskIndex \u003d taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Deletes the specified task and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" String taskName \u003d tasks.viewTaskByIndex(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" if(!taskName.equals(\"Task Not Found\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" tasks.deleteTaskByIndex(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":36}},{"path":"src/main/java/rene/command/CommandEvent.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Task;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to add an event task.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"public class CommandEvent extends Command{","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" private String userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new event command to add an event task.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" * @param userInput User input containing details of the event task.","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" public CommandEvent(String userInput){","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.EVENT);","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" this.userInput \u003d userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Adds the event task and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" tasks.addToTaskList(userInput, Task.TaskType.EVENT, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":33}},{"path":"src/main/java/rene/command/CommandExit.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to exit the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"public class CommandExit extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new exit command to terminate program.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" public CommandExit() {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.EXIT);","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":12}},{"path":"src/main/java/rene/command/CommandFind.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to search for a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandFind extends Command{","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private String searchDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new find command to search for a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param searchDetails User input containing details of what to search.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public CommandFind(String searchDetails){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super((CommandType.FIND));","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.searchDetails \u003d searchDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Marks the specified task as not done and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" tasks.searchList(searchDetails);","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":33}},{"path":"src/main/java/rene/command/CommandList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to list all tasks.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandList extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new list command to list all tasks.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" public CommandList(){","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.LIST);","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Prints all tasks in current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" tasks.printTaskList();","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":27}},{"path":"src/main/java/rene/command/CommandMark.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to mark a task as done.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandMark extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private int taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new mark command for a task of specified index.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param taskIndex Index of the task to be marked.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public CommandMark(int taskIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.MARK);","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.taskIndex \u003d taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Marks the specified task as done and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" String taskName \u003d tasks.viewTaskByIndex(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" if(!taskName.equals(\"Task Not Found\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" tasks.markTaskAsDone(taskIndex, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":36}},{"path":"src/main/java/rene/command/CommandTodo.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Task;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to add a todo task.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"public class CommandTodo extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" private String userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new todo command to add a todo task.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" * @param userInput User input containing details of the todo task.","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" public CommandTodo(String userInput){","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.TODO);","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" this.userInput \u003d userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Adds the todo task and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" tasks.addToTaskList(userInput, Task.TaskType.TODO, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":35}},{"path":"src/main/java/rene/command/CommandUnmark.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to mark a task as not done.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandUnmark extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private int taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new unmark command for a task of specified index.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param taskIndex Index of the task to be unmarked.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public CommandUnmark(int taskIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.UNMARK);","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.taskIndex \u003d taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Marks the specified task as not done and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" String taskName \u003d tasks.viewTaskByIndex(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" if(!taskName.equals(\"Task Not Found\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" tasks.markTaskAsNotDone(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":36}},{"path":"src/main/java/rene/exception/ReneExceptions.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.exception;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents non-standard exceptions thrown by this program specifically.","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"public class ReneExceptions extends Exception{","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" public ReneExceptions(String message) {","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" super(message);","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":10}},{"path":"src/main/java/rene/parser/Parser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.parser;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.Command;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandMark;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandUnmark;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandList;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandExit;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandDelete;","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandTodo;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandDeadline;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandEvent;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandFind;","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":"import rene.exception.ReneExceptions;","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" * Represents a parser that converts user inputs into command objects.","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":"public class Parser {","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * Analyses and extracts relevant information from user input","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" * to create a new Command object of the right type.","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * @param userInput The full user CLI input.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" public Command parseCommand(String userInput) {","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" String commandTitle \u003d userInput.split(\" \")[0];","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" String commandDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" int taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" switch (commandTitle) {","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" case \"bye\":","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" return new CommandExit();","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" case \"list\":","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" return new CommandList();","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" case \"mark\":","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" commandDetails \u003d userInput.split(\" \")[1];","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" taskIndex \u003d Integer.parseInt(commandDetails.strip());","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" return new CommandMark(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" case \"unmark\":","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" commandDetails \u003d userInput.split(\" \")[1];","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" taskIndex \u003d Integer.parseInt(commandDetails.strip());","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" return new CommandUnmark(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" case \"delete\":","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" commandDetails \u003d userInput.split(\" \")[1];","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" taskIndex \u003d Integer.parseInt(commandDetails.strip());","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" return new CommandDelete(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" case \"todo\":","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" return new CommandTodo(userInput);","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" case \"deadline\":","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" return new CommandDeadline(userInput);","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" case \"event\":","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" return new CommandEvent(userInput);","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" case \"find\":","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" return new CommandFind(userInput);","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Invalid Input\");","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" catch(NumberFormatException | ArrayIndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease enter valid integer index!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" catch (ReneExceptions exception){","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" String exceptionMessage \u003d exception.getMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" if (exceptionMessage.equals(\"Invalid Input\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease enter a valid command :0\");","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Valid commands are: todo,\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" \" deadline /by [time],\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":" \" event /from [start] /to [end],\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":68,"author":{"gitId":"spinoandraptos"},"content":" \" list,\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":69,"author":{"gitId":"spinoandraptos"},"content":" \" mark [task number],\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" \" unmark [task number],\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" \" delete [task number],\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"spinoandraptos"},"content":" \" find /description [description]\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" \" find /time [time]\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" \" bye\");","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":76,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" return new Command();","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":79,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":80,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":80}},{"path":"src/main/java/rene/storage/Storage.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Task;","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import java.io.File;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"import java.io.IOException;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Represents the hard disk storage where","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * task data is stored, read and updated.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":"public class Storage {","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" private File dataFile;","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath The file location in hard disk where data is stored and read from.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" dataFile \u003d new File(filePath);","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * Write in new data to storage.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath The file location in hard disk where data is written to.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * @param textToAdd Data to be written.","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" * @param toAppend If true, new data is added to the back of existing data instead of overwriting them.","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" private void writeToFile(String filePath, String textToAdd, boolean toAppend) throws IOException {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" FileWriter fileWriter \u003d new FileWriter(filePath, toAppend);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" fileWriter.write(textToAdd);","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" fileWriter.close();","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" * Build a new task list from data stored in hard disk.","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" * Used at program start to build the current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks The task list to be built.","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" public void buildCurrentListFromFile(TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" if (dataFile.createNewFile()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Task-list created: \" + dataFile.getName());","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" } catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" int taskIndex \u003d 0;","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" Scanner fileScanner \u003d new Scanner(dataFile);","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" if (fileScanner.hasNext()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" fileScanner.nextLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" while (fileScanner.hasNext()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" taskIndex++;","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" String nextTask \u003d fileScanner.nextLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" String[] taskSubStrings \u003d nextTask.split(\"\\\\|\");","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" String taskType \u003d taskSubStrings[0].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" String taskDoneStatus \u003d taskSubStrings[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" String taskDescription \u003d taskSubStrings[2].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" switch (taskType) {","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" case \"T\": tasks.addToTaskList(\"todo \" + taskDescription,","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" Task.TaskType.TODO, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" if (taskDoneStatus.equals(\"done\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":" tasks.markTaskAsDone(taskIndex, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":68,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":69,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" case \"D\":","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" String dueTime \u003d taskSubStrings[3].replace(\"(by:\", \"\")","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"spinoandraptos"},"content":" .replace(\")\", \"\").strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" tasks.addToTaskList(\"deadline \" + taskDescription + \" /by \" + dueTime,","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" Task.TaskType.DEADLINE, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"spinoandraptos"},"content":" if (taskDoneStatus.equals(\"done\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":76,"author":{"gitId":"spinoandraptos"},"content":" tasks.markTaskAsDone(taskIndex, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":79,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":80,"author":{"gitId":"spinoandraptos"},"content":" case \"E\":","lastModifiedDate":"2023-10-04"},{"lineNumber":81,"author":{"gitId":"spinoandraptos"},"content":" String[] taskTimings \u003d taskSubStrings[3].strip().split(\"\\\\(from:\")[1]","lastModifiedDate":"2023-10-04"},{"lineNumber":82,"author":{"gitId":"spinoandraptos"},"content":" .split(\"to:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":83,"author":{"gitId":"spinoandraptos"},"content":" String startTime \u003d taskTimings[0];","lastModifiedDate":"2023-10-04"},{"lineNumber":84,"author":{"gitId":"spinoandraptos"},"content":" String endTime \u003d taskTimings[1].split(\"\\\\)\")[0];","lastModifiedDate":"2023-10-04"},{"lineNumber":85,"author":{"gitId":"spinoandraptos"},"content":" tasks.addToTaskList(\"event \" + taskDescription + \" /from \" + startTime","lastModifiedDate":"2023-10-04"},{"lineNumber":86,"author":{"gitId":"spinoandraptos"},"content":" + \" /to \" + endTime, Task.TaskType.EVENT, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":87,"author":{"gitId":"spinoandraptos"},"content":" if (taskDoneStatus.equals(\"done\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":88,"author":{"gitId":"spinoandraptos"},"content":" tasks.markTaskAsDone(taskIndex, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":89,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":90,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":91,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":92,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(nextTask);","lastModifiedDate":"2023-10-04"},{"lineNumber":93,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":94,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":95,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":96,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":97,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":98,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":99,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":100,"author":{"gitId":"spinoandraptos"},"content":" catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":101,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":102,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":103,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":104,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":105,"author":{"gitId":"spinoandraptos"},"content":" * Build a new task list from data stored in hard disk.","lastModifiedDate":"2023-10-04"},{"lineNumber":106,"author":{"gitId":"spinoandraptos"},"content":" * Prints out the tasks in the list in CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":107,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":108,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks The task list that has been built.","lastModifiedDate":"2023-10-04"},{"lineNumber":109,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":110,"author":{"gitId":"spinoandraptos"},"content":" public void loadData(TaskList tasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":111,"author":{"gitId":"spinoandraptos"},"content":" buildCurrentListFromFile(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":112,"author":{"gitId":"spinoandraptos"},"content":" if (tasks.getTaskListSize() \u003e 0) {","lastModifiedDate":"2023-10-04"},{"lineNumber":113,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" You currently have the following tasks uWu\");","lastModifiedDate":"2023-10-04"},{"lineNumber":114,"author":{"gitId":"spinoandraptos"},"content":" tasks.printTaskList();","lastModifiedDate":"2023-10-04"},{"lineNumber":115,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":116,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" You currently have no saved tasks uWu\");","lastModifiedDate":"2023-10-04"},{"lineNumber":117,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":118,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":119,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":120,"author":{"gitId":"spinoandraptos"},"content":" * Overwrites all existing data in storage with","lastModifiedDate":"2023-10-04"},{"lineNumber":121,"author":{"gitId":"spinoandraptos"},"content":" * the current tasks in the task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":122,"author":{"gitId":"spinoandraptos"},"content":" * Used after every task change and on program termination.","lastModifiedDate":"2023-10-04"},{"lineNumber":123,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":124,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks The task list to overwrite current data with.","lastModifiedDate":"2023-10-04"},{"lineNumber":125,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":126,"author":{"gitId":"spinoandraptos"},"content":" public void updateData(TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":127,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":128,"author":{"gitId":"spinoandraptos"},"content":" //flush all current records","lastModifiedDate":"2023-10-04"},{"lineNumber":129,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"Latest Tasks\" + System.lineSeparator(), false);","lastModifiedDate":"2023-10-04"},{"lineNumber":130,"author":{"gitId":"spinoandraptos"},"content":" ArrayList\u003cTask\u003e allTasks \u003d tasks.getAllTasks();","lastModifiedDate":"2023-10-04"},{"lineNumber":131,"author":{"gitId":"spinoandraptos"},"content":" for (Task task: allTasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":132,"author":{"gitId":"spinoandraptos"},"content":" switch (task.getTaskType()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":133,"author":{"gitId":"spinoandraptos"},"content":" case TODO:","lastModifiedDate":"2023-10-04"},{"lineNumber":134,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":135,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"T | done | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":136,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":137,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":138,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"T | undone | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":139,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":140,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":141,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":142,"author":{"gitId":"spinoandraptos"},"content":" case DEADLINE:","lastModifiedDate":"2023-10-04"},{"lineNumber":143,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":144,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"D | done | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":145,"author":{"gitId":"spinoandraptos"},"content":" + \" | \" + task.getTaskTiming(true)","lastModifiedDate":"2023-10-04"},{"lineNumber":146,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":147,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":148,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"D | undone | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":149,"author":{"gitId":"spinoandraptos"},"content":" + \" | \" + task.getTaskTiming(true)","lastModifiedDate":"2023-10-04"},{"lineNumber":150,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":151,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":152,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":153,"author":{"gitId":"spinoandraptos"},"content":" case EVENT:","lastModifiedDate":"2023-10-04"},{"lineNumber":154,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":155,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"E | done | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":156,"author":{"gitId":"spinoandraptos"},"content":" + \" | \" + task.getTaskTiming(true)","lastModifiedDate":"2023-10-04"},{"lineNumber":157,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":158,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":159,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"E | undone | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":160,"author":{"gitId":"spinoandraptos"},"content":" + \" | \" + task.getTaskTiming(true)","lastModifiedDate":"2023-10-04"},{"lineNumber":161,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":162,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":163,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":164,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":165,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":166,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":167,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":168,"author":{"gitId":"spinoandraptos"},"content":" catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":169,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":170,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" ____________________________________________________________\");","lastModifiedDate":"2023-10-04"},{"lineNumber":171,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":172,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":173,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":173}},{"path":"src/main/java/rene/task/Deadline.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.task;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" * Represents deadline tasks in the current task list","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" private LocalDateTime dueTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task of type deadline.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * @param description Task description.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param dueTime The deadline of the task.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public Deadline(String description, LocalDateTime dueTime){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super(description, TaskType.DEADLINE);","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.dueTime \u003d dueTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Returns the due time of the deadline","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * in a specially formatted style.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param useDefaultTiming If true, uses the default","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * date time format (dd-MM-yyyy HH:mm)","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * used to store date time data in the","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * hard disk. Else, uses the date time format","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * (E, MMM dd, yyyy hh a).","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" public String getTaskTiming(boolean useDefaultTiming) {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" String deadlineTiming;","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" if(useDefaultTiming){","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" deadlineTiming \u003d dueTime.format(DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" deadlineTiming \u003d dueTime.format(DateTimeFormatter.ofPattern(\"E, MMM dd yyyy HH:mm\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" return \"(by: \" + deadlineTiming + \")\";","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":41}},{"path":"src/main/java/rene/task/Event.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.task;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import java.time.LocalDateTime ;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" * Represents event tasks in the current task list","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"public class Event extends Task{","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" private LocalDateTime startTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private LocalDateTime endTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task of type event.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param description Task description.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" * @param startTime The starting time of event.","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" * @param endTime The ending time of event.","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" public Event(String description, LocalDateTime startTime, LocalDateTime endTime){","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" super(description, TaskType.EVENT);","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" this.startTime \u003d startTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" this.endTime \u003d endTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * Returns the start and end time of the event","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * in a specially formatted style.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * @param useDefaultTiming If true, uses the default","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" * date time format (dd-MM-yyyy HH:mm)","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" * used to store date time data in the","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" * hard disk. Else, uses the date time format","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * (E, MMM dd, yyyy hh a).","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" public String getTaskTiming(boolean useDefaultTiming) {","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" String startTiming;","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" String endTiming;","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" if(useDefaultTiming){","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" startTiming \u003d startTime.format(DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" endTiming \u003d endTime.format(DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" startTiming \u003d startTime.format(DateTimeFormatter.ofPattern(\"E, MMM dd, yyyy hh a\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" endTiming \u003d endTime.format(DateTimeFormatter.ofPattern(\"E, MMM dd, yyyy hh a\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" return \"(from: \" + startTiming + \" to: \" + endTiming + \")\";","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":47}},{"path":"src/main/java/rene/task/Task.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.task;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents all tasks in the task list in general.","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"public class Task {","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" public enum TaskType {TODO, EVENT, DEADLINE, DEFAULT};","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" private TaskType taskType;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" private String description;","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" private boolean done;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Mark a task as done.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" public void markAsDone(){","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" done \u003d true;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Mark a task as not done.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" public void markAsNotDone(){","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task with a blank description,","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * not done status and default task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" public Task(){","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" description \u003d \"\";","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" taskType \u003d TaskType.DEFAULT;","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task with a given description,","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * not done status and default task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" * @param description Description given to the task.","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" public Task(String description){","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" this.description \u003d description;","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" taskType \u003d TaskType.DEFAULT;","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task with a given description,","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" * not done status and given task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" * @param description Description given to the task.","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" * @param taskType Type given to the task.","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" public Task(String description, TaskType taskType){","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" this.description \u003d description;","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" this.taskType \u003d taskType;","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" * Checks if a task has been done.","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" public boolean taskIsDone(){","lastModifiedDate":"2023-10-04"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" return done;","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" * Returns task description.","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" public String getTaskDescription(){","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" return description;","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":" * Returns task timing details.","lastModifiedDate":"2023-10-04"},{"lineNumber":68,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":69,"author":{"gitId":"spinoandraptos"},"content":" public String getTaskTiming(boolean useDefaultTiming){","lastModifiedDate":"2023-10-04"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" return \"\";","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" * Returns task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"spinoandraptos"},"content":" public TaskType getTaskType(){","lastModifiedDate":"2023-10-04"},{"lineNumber":76,"author":{"gitId":"spinoandraptos"},"content":" return taskType;","lastModifiedDate":"2023-10-04"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":78}},{"path":"src/main/java/rene/task/ToDo.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.task;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents todo tasks in the current task list","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task of type todo.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" * @param description Task description.","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" public ToDo(String description){","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" super(description, TaskType.TODO);","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":14}},{"path":"src/main/java/rene/tasklist/TaskList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.tasklist;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Task;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.ToDo;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Deadline;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Event;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"import rene.exception.ReneExceptions;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * Represents the list of tasks currently registered in the chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" * This list is created on program start and disposed on program termination.","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":"public class TaskList {","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" private ArrayList\u003cTask\u003e allTasks; //array of inputs","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" DateTimeFormatter inputDateTimeFormatter \u003d DateTimeFormatter.ofPattern( \"dd-MM-yyyy HH:mm\" );","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Adds a user-requested task to the current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Depending on the type of task to add to the list,","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * the program extracts the relevant information from","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * the user input and builds a Task object to be added.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param input The full user input from CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param taskType The type of task to be added (TODO, DEADLINE, EVENT).","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * @param showMessage If true, program will print response message on CLI after task is added.","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" public void addToTaskList(String input, Task.TaskType taskType, boolean showMessage){","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" switch (taskType) {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" case TODO:","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" String toDoDescription \u003d input.split(\"todo\")[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" if (toDoDescription.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Command\");","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" allTasks.add(new ToDo(toDoDescription));","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" if (showMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" I have added the following task OwO:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [T][] %s\\n\", viewTaskByIndex(getTaskListSize()));","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Now you have \" + getTaskListSize() + \" tasks in the list! UWU\");","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException | ReneExceptions incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give todo a name!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as todo [task name]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" case DEADLINE:","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" String deadlineTiming;","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" String deadlineDescription;","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" String[] deadlineDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" deadlineDetails \u003d input.split(\"deadline\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give deadline a name!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as deadline [task name] /by [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" deadlineDescription \u003d deadlineDetails[0].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" if (deadlineDescription.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Deadline Description\");","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":" deadlineTiming \u003d deadlineDetails[1].strip().split(\"by\")[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":68,"author":{"gitId":"spinoandraptos"},"content":" if (deadlineTiming.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":69,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Due Time\");","lastModifiedDate":"2023-10-04"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" LocalDateTime deadlineDateTime \u003d LocalDateTime.parse(deadlineTiming, inputDateTimeFormatter);","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"spinoandraptos"},"content":" allTasks.add(new Deadline(deadlineDescription, deadlineDateTime));","lastModifiedDate":"2023-10-04"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" if (showMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" I have added the following task OwO:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [D][] %s\\n\", viewTaskByIndex(getTaskListSize()));","lastModifiedDate":"2023-10-04"},{"lineNumber":76,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Now you have \" + getTaskListSize() + \" tasks in the list! UWU\");","lastModifiedDate":"2023-10-04"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":79,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":80,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use \u0027/by\u0027 to signal due time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":81,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as deadline [task name] /by [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":82,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":83,"author":{"gitId":"spinoandraptos"},"content":" } catch (DateTimeParseException incorrectTimeFormat){","lastModifiedDate":"2023-10-04"},{"lineNumber":84,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give a correct date time for due time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":85,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your deadline as dd-MM-yyyy HH:mm!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":86,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":87,"author":{"gitId":"spinoandraptos"},"content":" } catch (ReneExceptions incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":88,"author":{"gitId":"spinoandraptos"},"content":" String exceptionMessage \u003d incompleteCommand.getMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":89,"author":{"gitId":"spinoandraptos"},"content":" switch (exceptionMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":90,"author":{"gitId":"spinoandraptos"},"content":" case \"Incomplete Deadline Description\":","lastModifiedDate":"2023-10-04"},{"lineNumber":91,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give deadline a name!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":92,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as deadline [task name] /by [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":93,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":94,"author":{"gitId":"spinoandraptos"},"content":" case \"Incomplete Due Time\":","lastModifiedDate":"2023-10-04"},{"lineNumber":95,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give deadline a due time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":96,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as deadline [task name] /by [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":97,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":98,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":99,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":100,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":101,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":102,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":103,"author":{"gitId":"spinoandraptos"},"content":" case EVENT:","lastModifiedDate":"2023-10-04"},{"lineNumber":104,"author":{"gitId":"spinoandraptos"},"content":" String eventStartTiming \u003d null;","lastModifiedDate":"2023-10-04"},{"lineNumber":105,"author":{"gitId":"spinoandraptos"},"content":" String eventEndTiming \u003d null;","lastModifiedDate":"2023-10-04"},{"lineNumber":106,"author":{"gitId":"spinoandraptos"},"content":" String[] eventDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":107,"author":{"gitId":"spinoandraptos"},"content":" String eventDescription \u003d null;","lastModifiedDate":"2023-10-04"},{"lineNumber":108,"author":{"gitId":"spinoandraptos"},"content":" LocalDateTime eventStartDateTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":109,"author":{"gitId":"spinoandraptos"},"content":" LocalDateTime eventEndDateTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":110,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":111,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":112,"author":{"gitId":"spinoandraptos"},"content":" eventDetails \u003d input.split(\"event\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-04"},{"lineNumber":113,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":114,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give event a name!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":115,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] /from [start time] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":116,"author":{"gitId":"spinoandraptos"},"content":" \"/to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":117,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":118,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":119,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":120,"author":{"gitId":"spinoandraptos"},"content":" eventDescription \u003d eventDetails[0].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":121,"author":{"gitId":"spinoandraptos"},"content":" if (eventDescription.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":122,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Event Description\");","lastModifiedDate":"2023-10-04"},{"lineNumber":123,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":124,"author":{"gitId":"spinoandraptos"},"content":" eventStartTiming \u003d eventDetails[1].strip().split(\"from\")[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":125,"author":{"gitId":"spinoandraptos"},"content":" if (eventStartTiming.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":126,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Start Time\");","lastModifiedDate":"2023-10-04"},{"lineNumber":127,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":128,"author":{"gitId":"spinoandraptos"},"content":" eventStartDateTime \u003d LocalDateTime.parse(eventStartTiming, inputDateTimeFormatter);","lastModifiedDate":"2023-10-04"},{"lineNumber":129,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":130,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use \u0027/from\u0027 to signal start time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":131,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] /from [start time] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":132,"author":{"gitId":"spinoandraptos"},"content":" \"/to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":133,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":134,"author":{"gitId":"spinoandraptos"},"content":" } catch (DateTimeParseException incorrectTimeFormat){","lastModifiedDate":"2023-10-04"},{"lineNumber":135,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give a correct date time for start time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":136,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your deadline as dd-MM-yyyy HH:mm !\");","lastModifiedDate":"2023-10-04"},{"lineNumber":137,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":138,"author":{"gitId":"spinoandraptos"},"content":" } catch (ReneExceptions incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":139,"author":{"gitId":"spinoandraptos"},"content":" String exceptionMessage \u003d incompleteCommand.getMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":140,"author":{"gitId":"spinoandraptos"},"content":" switch (exceptionMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":141,"author":{"gitId":"spinoandraptos"},"content":" case \"Incomplete Event Description\":","lastModifiedDate":"2023-10-04"},{"lineNumber":142,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give event a name!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":143,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":144,"author":{"gitId":"spinoandraptos"},"content":" \"/from [start time] /to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":145,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":146,"author":{"gitId":"spinoandraptos"},"content":" case \"Incomplete Start Time\":","lastModifiedDate":"2023-10-04"},{"lineNumber":147,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give event a start time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":148,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":149,"author":{"gitId":"spinoandraptos"},"content":" \"/from [start time] /to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":150,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":151,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":152,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":153,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":154,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":155,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":156,"author":{"gitId":"spinoandraptos"},"content":" eventEndTiming \u003d eventDetails[2].strip().split(\"to\")[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":157,"author":{"gitId":"spinoandraptos"},"content":" if (eventEndTiming.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":158,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Start Time\");","lastModifiedDate":"2023-10-04"},{"lineNumber":159,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":160,"author":{"gitId":"spinoandraptos"},"content":" eventEndDateTime \u003d LocalDateTime .parse(eventEndTiming, inputDateTimeFormatter);","lastModifiedDate":"2023-10-04"},{"lineNumber":161,"author":{"gitId":"spinoandraptos"},"content":" if(eventEndDateTime.isBefore(eventStartDateTime)){","lastModifiedDate":"2023-10-04"},{"lineNumber":162,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Invalid end time\");","lastModifiedDate":"2023-10-04"},{"lineNumber":163,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":164,"author":{"gitId":"spinoandraptos"},"content":" allTasks.add(new Event(eventDescription, eventStartDateTime, eventEndDateTime));","lastModifiedDate":"2023-10-04"},{"lineNumber":165,"author":{"gitId":"spinoandraptos"},"content":" if (showMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":166,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" I have added the following task OwO:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":167,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [E][] %s\\n\", viewTaskByIndex(getTaskListSize()));","lastModifiedDate":"2023-10-04"},{"lineNumber":168,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Now you have \" + getTaskListSize() + \" tasks in the list! UWU\");","lastModifiedDate":"2023-10-04"},{"lineNumber":169,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":170,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":171,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use \u0027/to\u0027 to signal end time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":172,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":173,"author":{"gitId":"spinoandraptos"},"content":" \"/from [start time] /to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":174,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":175,"author":{"gitId":"spinoandraptos"},"content":" } catch (DateTimeParseException incorrectTimeFormat){","lastModifiedDate":"2023-10-04"},{"lineNumber":176,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give a correct date time for end time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":177,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your deadline as dd-MM-yyyy HH:mm!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":178,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":179,"author":{"gitId":"spinoandraptos"},"content":" } catch (ReneExceptions incorrectCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":180,"author":{"gitId":"spinoandraptos"},"content":" String exceptionMessage \u003d incorrectCommand.getMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":181,"author":{"gitId":"spinoandraptos"},"content":" switch (exceptionMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":182,"author":{"gitId":"spinoandraptos"},"content":" case \"Invalid end time\":","lastModifiedDate":"2023-10-04"},{"lineNumber":183,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Your end time cannot be earlier than start time! :\u003c\");","lastModifiedDate":"2023-10-04"},{"lineNumber":184,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":185,"author":{"gitId":"spinoandraptos"},"content":" case \"Incomplete Start Time\":","lastModifiedDate":"2023-10-04"},{"lineNumber":186,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give event a start time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":187,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":188,"author":{"gitId":"spinoandraptos"},"content":" \"/from [start time] /to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":189,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":190,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":191,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":192,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":193,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":194,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":195,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":196,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":197,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":198,"author":{"gitId":"spinoandraptos"},"content":" * Prints the details of a task in CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":199,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":200,"author":{"gitId":"spinoandraptos"},"content":" * @param task The task which details are to be printed.","lastModifiedDate":"2023-10-04"},{"lineNumber":201,"author":{"gitId":"spinoandraptos"},"content":" * @param asList If true, prints out the index of the task in the task list","lastModifiedDate":"2023-10-04"},{"lineNumber":202,"author":{"gitId":"spinoandraptos"},"content":" * in addition to the details of the task.","lastModifiedDate":"2023-10-04"},{"lineNumber":203,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":204,"author":{"gitId":"spinoandraptos"},"content":" public void printTask(Task task, boolean asList){","lastModifiedDate":"2023-10-04"},{"lineNumber":205,"author":{"gitId":"spinoandraptos"},"content":" int taskIndex \u003d allTasks.indexOf(task);","lastModifiedDate":"2023-10-04"},{"lineNumber":206,"author":{"gitId":"spinoandraptos"},"content":" switch(task.getTaskType()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":207,"author":{"gitId":"spinoandraptos"},"content":" case TODO:","lastModifiedDate":"2023-10-04"},{"lineNumber":208,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":209,"author":{"gitId":"spinoandraptos"},"content":" if(asList){","lastModifiedDate":"2023-10-04"},{"lineNumber":210,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [T][X] %s\\n\", taskIndex+1, task.getTaskDescription());","lastModifiedDate":"2023-10-04"},{"lineNumber":211,"author":{"gitId":"spinoandraptos"},"content":" } else{","lastModifiedDate":"2023-10-04"},{"lineNumber":212,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [T][X] %s\\n\", task.getTaskDescription());","lastModifiedDate":"2023-10-04"},{"lineNumber":213,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":214,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":215,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":216,"author":{"gitId":"spinoandraptos"},"content":" if(asList){","lastModifiedDate":"2023-10-04"},{"lineNumber":217,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [T][] %s\\n\", taskIndex+1, task.getTaskDescription());","lastModifiedDate":"2023-10-04"},{"lineNumber":218,"author":{"gitId":"spinoandraptos"},"content":" } else{","lastModifiedDate":"2023-10-04"},{"lineNumber":219,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [T][] %s\\n\", task.getTaskDescription());","lastModifiedDate":"2023-10-04"},{"lineNumber":220,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":221,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":222,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":223,"author":{"gitId":"spinoandraptos"},"content":" case DEADLINE:","lastModifiedDate":"2023-10-04"},{"lineNumber":224,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":225,"author":{"gitId":"spinoandraptos"},"content":" if (asList) {","lastModifiedDate":"2023-10-04"},{"lineNumber":226,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [D][X] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":227,"author":{"gitId":"spinoandraptos"},"content":" taskIndex + 1, task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":228,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":229,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [D][X] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":230,"author":{"gitId":"spinoandraptos"},"content":" task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":231,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":232,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":233,"author":{"gitId":"spinoandraptos"},"content":" else {","lastModifiedDate":"2023-10-04"},{"lineNumber":234,"author":{"gitId":"spinoandraptos"},"content":" if (asList) {","lastModifiedDate":"2023-10-04"},{"lineNumber":235,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [D][] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":236,"author":{"gitId":"spinoandraptos"},"content":" taskIndex + 1, task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":237,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":238,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [D][] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":239,"author":{"gitId":"spinoandraptos"},"content":" task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":240,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":241,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":242,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":243,"author":{"gitId":"spinoandraptos"},"content":" case EVENT:","lastModifiedDate":"2023-10-04"},{"lineNumber":244,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":245,"author":{"gitId":"spinoandraptos"},"content":" if (asList) {","lastModifiedDate":"2023-10-04"},{"lineNumber":246,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [E][X] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":247,"author":{"gitId":"spinoandraptos"},"content":" taskIndex+1, task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":248,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":249,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [E][X] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":250,"author":{"gitId":"spinoandraptos"},"content":" task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":251,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":252,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":253,"author":{"gitId":"spinoandraptos"},"content":" if (asList) {","lastModifiedDate":"2023-10-04"},{"lineNumber":254,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [E][] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":255,"author":{"gitId":"spinoandraptos"},"content":" taskIndex+1, task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":256,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":257,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [E][] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":258,"author":{"gitId":"spinoandraptos"},"content":" task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":259,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":260,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":261,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":262,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":263,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":264,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":265,"author":{"gitId":"spinoandraptos"},"content":" * Prints all the tasks in the current task list as an indexed list.","lastModifiedDate":"2023-10-04"},{"lineNumber":266,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":267,"author":{"gitId":"spinoandraptos"},"content":" public void printTaskList(){","lastModifiedDate":"2023-10-04"},{"lineNumber":268,"author":{"gitId":"spinoandraptos"},"content":" if(allTasks.isEmpty()){","lastModifiedDate":"2023-10-04"},{"lineNumber":269,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" No tasks found! Time to add some OWO\");","lastModifiedDate":"2023-10-04"},{"lineNumber":270,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":271,"author":{"gitId":"spinoandraptos"},"content":" else {","lastModifiedDate":"2023-10-04"},{"lineNumber":272,"author":{"gitId":"spinoandraptos"},"content":" for (Task task : allTasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":273,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":274,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":275,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":276,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":277,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":278,"author":{"gitId":"spinoandraptos"},"content":" * Mark a task in the current task list as done.","lastModifiedDate":"2023-10-04"},{"lineNumber":279,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":280,"author":{"gitId":"spinoandraptos"},"content":" * @param index The list index of the task to be marked as done.","lastModifiedDate":"2023-10-04"},{"lineNumber":281,"author":{"gitId":"spinoandraptos"},"content":" * @param showMessage If true, program will print response message on CLI","lastModifiedDate":"2023-10-04"},{"lineNumber":282,"author":{"gitId":"spinoandraptos"},"content":" * after task is marked as done.","lastModifiedDate":"2023-10-04"},{"lineNumber":283,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":284,"author":{"gitId":"spinoandraptos"},"content":" public void markTaskAsDone(int index, boolean showMessage){","lastModifiedDate":"2023-10-04"},{"lineNumber":285,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":286,"author":{"gitId":"spinoandraptos"},"content":" allTasks.get(index-1).markAsDone();","lastModifiedDate":"2023-10-04"},{"lineNumber":287,"author":{"gitId":"spinoandraptos"},"content":" if(showMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":288,"author":{"gitId":"spinoandraptos"},"content":" Task task \u003d allTasks.get(index - 1);","lastModifiedDate":"2023-10-04"},{"lineNumber":289,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Roger that! I have marked the following task as done \u003ew\u003c !\");","lastModifiedDate":"2023-10-04"},{"lineNumber":290,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":291,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":292,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":293,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnuuu! Please enter valid task number *sobs*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":294,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":295,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":296,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":297,"author":{"gitId":"spinoandraptos"},"content":" * Mark a task in the current task list as not done.","lastModifiedDate":"2023-10-04"},{"lineNumber":298,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":299,"author":{"gitId":"spinoandraptos"},"content":" public void markTaskAsNotDone(int index){","lastModifiedDate":"2023-10-04"},{"lineNumber":300,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":301,"author":{"gitId":"spinoandraptos"},"content":" allTasks.get(index-1).markAsNotDone();","lastModifiedDate":"2023-10-04"},{"lineNumber":302,"author":{"gitId":"spinoandraptos"},"content":" Task task \u003d allTasks.get(index-1);","lastModifiedDate":"2023-10-04"},{"lineNumber":303,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Roger that! I have unmarked the following task as done \u003ew\u003c !\");","lastModifiedDate":"2023-10-04"},{"lineNumber":304,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":305,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":306,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnuuu! Please enter valid task number *sobs*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":307,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":308,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":309,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":310,"author":{"gitId":"spinoandraptos"},"content":" * Delete a task from the current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":311,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":312,"author":{"gitId":"spinoandraptos"},"content":" * @param index The list index of the task to be deleted.","lastModifiedDate":"2023-10-04"},{"lineNumber":313,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":314,"author":{"gitId":"spinoandraptos"},"content":" public void deleteTaskByIndex(int index){","lastModifiedDate":"2023-10-04"},{"lineNumber":315,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":316,"author":{"gitId":"spinoandraptos"},"content":" Task task \u003d allTasks.get(index-1);","lastModifiedDate":"2023-10-04"},{"lineNumber":317,"author":{"gitId":"spinoandraptos"},"content":" allTasks.remove(index - 1);","lastModifiedDate":"2023-10-04"},{"lineNumber":318,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Roger that! I have deleted the following task \u003ew\u003c !\");","lastModifiedDate":"2023-10-04"},{"lineNumber":319,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":320,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Now you have \" + getTaskListSize() + \" tasks in the list! UWU\");","lastModifiedDate":"2023-10-04"},{"lineNumber":321,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":322,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnuuu! Please enter valid task number *sobs*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":323,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":324,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":325,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":326,"author":{"gitId":"spinoandraptos"},"content":" * Returns the description and all other details of a task in one String object.","lastModifiedDate":"2023-10-04"},{"lineNumber":327,"author":{"gitId":"spinoandraptos"},"content":" * Used to display task details in CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":328,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":329,"author":{"gitId":"spinoandraptos"},"content":" * @param index The list index of the task to be viewed.","lastModifiedDate":"2023-10-04"},{"lineNumber":330,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":331,"author":{"gitId":"spinoandraptos"},"content":" public String viewTaskByIndex(int index){","lastModifiedDate":"2023-10-04"},{"lineNumber":332,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":333,"author":{"gitId":"spinoandraptos"},"content":" switch(allTasks.get(index-1).getTaskType()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":334,"author":{"gitId":"spinoandraptos"},"content":" case TODO:","lastModifiedDate":"2023-10-04"},{"lineNumber":335,"author":{"gitId":"spinoandraptos"},"content":" return allTasks.get(index-1).getTaskDescription();","lastModifiedDate":"2023-10-04"},{"lineNumber":336,"author":{"gitId":"spinoandraptos"},"content":" case DEADLINE:","lastModifiedDate":"2023-10-04"},{"lineNumber":337,"author":{"gitId":"spinoandraptos"},"content":" case EVENT:","lastModifiedDate":"2023-10-04"},{"lineNumber":338,"author":{"gitId":"spinoandraptos"},"content":" return allTasks.get(index-1).getTaskDescription() + \" \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":339,"author":{"gitId":"spinoandraptos"},"content":" allTasks.get(index-1).getTaskTiming(false);","lastModifiedDate":"2023-10-04"},{"lineNumber":340,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":341,"author":{"gitId":"spinoandraptos"},"content":" return \"Task Not Found\";","lastModifiedDate":"2023-10-04"},{"lineNumber":342,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":343,"author":{"gitId":"spinoandraptos"},"content":" } catch(NullPointerException | IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":344,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnuuu! Please enter valid task number *sobs*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":345,"author":{"gitId":"spinoandraptos"},"content":" return \"Task Not Found\";","lastModifiedDate":"2023-10-04"},{"lineNumber":346,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":347,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":348,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":349,"author":{"gitId":"spinoandraptos"},"content":" * Search for tasks in the current task list using their description.","lastModifiedDate":"2023-10-04"},{"lineNumber":350,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":351,"author":{"gitId":"spinoandraptos"},"content":" * @param keyword Description keyword(s) used to search for matches.","lastModifiedDate":"2023-10-04"},{"lineNumber":352,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":353,"author":{"gitId":"spinoandraptos"},"content":" public void searchListByDescription(String keyword){","lastModifiedDate":"2023-10-04"},{"lineNumber":354,"author":{"gitId":"spinoandraptos"},"content":" ArrayList\u003cTask\u003e matchedTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-04"},{"lineNumber":355,"author":{"gitId":"spinoandraptos"},"content":" if(allTasks.isEmpty()){","lastModifiedDate":"2023-10-04"},{"lineNumber":356,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Task list is empty! Time to add some OWO\");","lastModifiedDate":"2023-10-04"},{"lineNumber":357,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":358,"author":{"gitId":"spinoandraptos"},"content":" else {","lastModifiedDate":"2023-10-04"},{"lineNumber":359,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Here are tasks that matched your search:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":360,"author":{"gitId":"spinoandraptos"},"content":" for (Task task : allTasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":361,"author":{"gitId":"spinoandraptos"},"content":" if(task.getTaskDescription().contains(keyword)){","lastModifiedDate":"2023-10-04"},{"lineNumber":362,"author":{"gitId":"spinoandraptos"},"content":" matchedTasks.add(task);","lastModifiedDate":"2023-10-04"},{"lineNumber":363,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":364,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":365,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":366,"author":{"gitId":"spinoandraptos"},"content":" if(matchedTasks.isEmpty()){","lastModifiedDate":"2023-10-04"},{"lineNumber":367,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" No results found :\u003c Check your keyword is correct?\");","lastModifiedDate":"2023-10-04"},{"lineNumber":368,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":369,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":370,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":371,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":372,"author":{"gitId":"spinoandraptos"},"content":" * Search for tasks in the current task list using their date and time.","lastModifiedDate":"2023-10-04"},{"lineNumber":373,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":374,"author":{"gitId":"spinoandraptos"},"content":" * @param dateTime Date and time used to search for matches.","lastModifiedDate":"2023-10-04"},{"lineNumber":375,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":376,"author":{"gitId":"spinoandraptos"},"content":" public void searchListByTime(String dateTime){","lastModifiedDate":"2023-10-04"},{"lineNumber":377,"author":{"gitId":"spinoandraptos"},"content":" ArrayList\u003cTask\u003e matchedTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-04"},{"lineNumber":378,"author":{"gitId":"spinoandraptos"},"content":" if(allTasks.isEmpty()){","lastModifiedDate":"2023-10-04"},{"lineNumber":379,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Task list is empty! Time to add some OWO\");","lastModifiedDate":"2023-10-04"},{"lineNumber":380,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":381,"author":{"gitId":"spinoandraptos"},"content":" else {","lastModifiedDate":"2023-10-04"},{"lineNumber":382,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Here are tasks that matched your search:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":383,"author":{"gitId":"spinoandraptos"},"content":" for (Task task : allTasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":384,"author":{"gitId":"spinoandraptos"},"content":" if(task.getTaskTiming(true).contains(dateTime)){","lastModifiedDate":"2023-10-04"},{"lineNumber":385,"author":{"gitId":"spinoandraptos"},"content":" matchedTasks.add(task);","lastModifiedDate":"2023-10-04"},{"lineNumber":386,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":387,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":388,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":389,"author":{"gitId":"spinoandraptos"},"content":" if(matchedTasks.isEmpty()){","lastModifiedDate":"2023-10-04"},{"lineNumber":390,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" No results found :\u003c Check your time format is in dd-MM-yyyy HH:mm?\");","lastModifiedDate":"2023-10-04"},{"lineNumber":391,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":392,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":393,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":394,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":395,"author":{"gitId":"spinoandraptos"},"content":" * Search for a task in the current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":396,"author":{"gitId":"spinoandraptos"},"content":" * Depending on user command, this method will search by","lastModifiedDate":"2023-10-04"},{"lineNumber":397,"author":{"gitId":"spinoandraptos"},"content":" * either description matches or time matches.","lastModifiedDate":"2023-10-04"},{"lineNumber":398,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":399,"author":{"gitId":"spinoandraptos"},"content":" * @param input Full user command input.","lastModifiedDate":"2023-10-04"},{"lineNumber":400,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":401,"author":{"gitId":"spinoandraptos"},"content":" public void searchList(String input){","lastModifiedDate":"2023-10-04"},{"lineNumber":402,"author":{"gitId":"spinoandraptos"},"content":" String[] searchDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":403,"author":{"gitId":"spinoandraptos"},"content":" String[] searchInfo;","lastModifiedDate":"2023-10-04"},{"lineNumber":404,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":405,"author":{"gitId":"spinoandraptos"},"content":" searchDetails \u003d input.split(\"find\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-04"},{"lineNumber":406,"author":{"gitId":"spinoandraptos"},"content":" searchInfo \u003d searchDetails[1].strip().split(\" \");","lastModifiedDate":"2023-10-04"},{"lineNumber":407,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":408,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not indicate if you are searching by description or time :\u003c\");","lastModifiedDate":"2023-10-04"},{"lineNumber":409,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as find /description [description] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":410,"author":{"gitId":"spinoandraptos"},"content":" \"or find /time [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":411,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":412,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":413,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":414,"author":{"gitId":"spinoandraptos"},"content":" String searchCriteria \u003d searchInfo[0].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":415,"author":{"gitId":"spinoandraptos"},"content":" String searchKeyword \u003d searchInfo[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":416,"author":{"gitId":"spinoandraptos"},"content":" switch (searchCriteria){","lastModifiedDate":"2023-10-04"},{"lineNumber":417,"author":{"gitId":"spinoandraptos"},"content":" case \"description\":","lastModifiedDate":"2023-10-04"},{"lineNumber":418,"author":{"gitId":"spinoandraptos"},"content":" searchListByDescription(searchKeyword);","lastModifiedDate":"2023-10-04"},{"lineNumber":419,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":420,"author":{"gitId":"spinoandraptos"},"content":" case \"time\":","lastModifiedDate":"2023-10-04"},{"lineNumber":421,"author":{"gitId":"spinoandraptos"},"content":" searchListByTime(searchKeyword);","lastModifiedDate":"2023-10-04"},{"lineNumber":422,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":423,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":424,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":425,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":426,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":427,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not indicate the keywords you are searching by :\u003c\");","lastModifiedDate":"2023-10-04"},{"lineNumber":428,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as find /description [description] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":429,"author":{"gitId":"spinoandraptos"},"content":" \"or find /time [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":430,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":431,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":432,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":433,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":434,"author":{"gitId":"spinoandraptos"},"content":" * Returns the size of current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":435,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":436,"author":{"gitId":"spinoandraptos"},"content":" public int getTaskListSize(){","lastModifiedDate":"2023-10-04"},{"lineNumber":437,"author":{"gitId":"spinoandraptos"},"content":" return allTasks.size();","lastModifiedDate":"2023-10-04"},{"lineNumber":438,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":439,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":440,"author":{"gitId":"spinoandraptos"},"content":" * Returns a list of all tasks in the current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":441,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":442,"author":{"gitId":"spinoandraptos"},"content":" public ArrayList\u003cTask\u003e getAllTasks(){","lastModifiedDate":"2023-10-04"},{"lineNumber":443,"author":{"gitId":"spinoandraptos"},"content":" return allTasks;","lastModifiedDate":"2023-10-04"},{"lineNumber":444,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":445,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":446,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new empty task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":447,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":448,"author":{"gitId":"spinoandraptos"},"content":" public TaskList(){","lastModifiedDate":"2023-10-04"},{"lineNumber":449,"author":{"gitId":"spinoandraptos"},"content":" allTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-04"},{"lineNumber":450,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":451,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":451}},{"path":"src/main/java/rene/ui/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * Represents the user interface for CLI displays.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" * Supports CLI interactions with users.","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":"public class Ui {","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" private final Scanner input \u003d new Scanner(System.in); // Create a Scanner object","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" private Storage dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" private TaskList tasks;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" * Print out separating line in CLI to mark","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * start and end of chatbot replies.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" public void showLine(){","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" ____________________________________________________________\");","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Displays opening message to welcome users","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * on the launch of chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" public void displayOpeningMessage(){","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" String logo \u003d \" _____ \\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" + \" | __ \\\\ ____ __ _ ____ \\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" + \" | |__ | / _ \\\\| \\\\| |/ _ \\\\\\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" + \" | | \\\\ \\\\| ___/| \\\\ | | ___/\\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" + \" |_| \\\\_\\\\\\\\____| |_|\\\\__|\\\\____|\\n\";","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Hello from\\n\" + logo);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" I am Rene Kokoro!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Let me record your tasks!! *blushes*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" System.out.println();","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.loadData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" * Retrieves the CLI input from the user","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" * and documents it as a String object.","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" public String readCommand() {","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" return input.nextLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" * Displays closing message on exiting the chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" public void displayClosingMessage(){","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Aww you are leaving? *sniffs*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Well... hope to see you again soon!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" * Sets up the bridging between the UI and tasks data.","lastModifiedDate":"2023-10-04"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks A record of all tasks documented that is built on program start and disposed on program exit.","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage The hard disk record of all tasks documented that persists even on program exit.","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" public Ui(Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" this.dataStorage \u003d dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":67}}] +[{"path":"README.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"yeo-menghan"},"content":"# QuizHub project template","lastModifiedDate":"2023-10-04"},{"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 (use the exact version), update Intellij to the most recent version.","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"1. **Ensure Intellij JDK 11 is defined as an SDK**, as described [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk) -- this step is not needed if you have used JDK 11 in a previous Intellij project.","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. **Import the project _as a Gradle project_**, as described [here](https://se-education.org/guides/tutorials/intellijImportGradleProject.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"1. **Verify the set up**: After the importing is complete, locate the `src/main/java/seedu/duke/Duke.java` file, right-click it, and choose `Run Duke.main()`. If the setup is correct, you should see something like the below:","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" \u003e Task :compileJava","lastModifiedDate":"2020-05-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":" \u003e Task :processResources NO-SOURCE","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":" \u003e Task :classes","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":" ","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":" \u003e Task :Duke.main()","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" ____ _ ","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" | _ \\ _ _| | _____ ","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" | | | | | | | |/ / _ \\","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":" | |_| | |_| | \u003c __/","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" |____/ \\__,_|_|\\_\\___|","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" ","lastModifiedDate":"2020-05-24"},{"lineNumber":25,"author":{"gitId":"-"},"content":" What is your name?","lastModifiedDate":"2020-05-24"},{"lineNumber":26,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" Type some word and press enter to let the execution proceed to the end.","lastModifiedDate":"2020-05-24"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":29,"author":{"gitId":"-"},"content":"## Build automation using Gradle","lastModifiedDate":"2020-05-24"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"* This project uses Gradle for build automation and dependency management. It includes a basic build script as well (i.e. the `build.gradle` file).","lastModifiedDate":"2020-05-24"},{"lineNumber":32,"author":{"gitId":"-"},"content":"* If you are new to Gradle, refer to the [Gradle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/gradle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":34,"author":{"gitId":"-"},"content":"## Testing","lastModifiedDate":"2020-05-24"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":36,"author":{"gitId":"-"},"content":"### I/O redirection tests","lastModifiedDate":"2020-05-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"* To run _I/O redirection_ tests (aka _Text UI tests_), navigate to the `text-ui-test` and run the `runtest(.bat/.sh)` script.","lastModifiedDate":"2020-05-24"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":40,"author":{"gitId":"-"},"content":"### JUnit tests","lastModifiedDate":"2020-05-24"},{"lineNumber":41,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":42,"author":{"gitId":"-"},"content":"* A skeleton JUnit test (`src/test/java/seedu/duke/DukeTest.java`) is provided with this project template. ","lastModifiedDate":"2020-05-24"},{"lineNumber":43,"author":{"gitId":"-"},"content":"* If you are new to JUnit, refer to the [JUnit Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/junit.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":45,"author":{"gitId":"-"},"content":"## Checkstyle","lastModifiedDate":"2020-05-24"},{"lineNumber":46,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":47,"author":{"gitId":"-"},"content":"* A sample CheckStyle rule configuration is provided in this project.","lastModifiedDate":"2020-05-24"},{"lineNumber":48,"author":{"gitId":"-"},"content":"* If you are new to Checkstyle, refer to the [Checkstyle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/checkstyle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":49,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":50,"author":{"gitId":"-"},"content":"## CI using GitHub Actions","lastModifiedDate":"2020-05-24"},{"lineNumber":51,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":52,"author":{"gitId":"-"},"content":"The project uses [GitHub actions](https://github.com/features/actions) for CI. When you push a commit to this repo or PR against it, GitHub actions will run automatically to build and verify the code as updated by the commit/PR.","lastModifiedDate":"2020-05-24"},{"lineNumber":53,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":54,"author":{"gitId":"-"},"content":"## Documentation","lastModifiedDate":"2020-05-24"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":56,"author":{"gitId":"-"},"content":"`/docs` folder contains a skeleton version of the project documentation.","lastModifiedDate":"2020-05-24"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":58,"author":{"gitId":"-"},"content":"Steps for publishing documentation to the public: ","lastModifiedDate":"2020-05-24"},{"lineNumber":59,"author":{"gitId":"-"},"content":"1. If you are using this project template for an individual project, go your fork on GitHub.\u003cbr\u003e","lastModifiedDate":"2020-05-24"},{"lineNumber":60,"author":{"gitId":"-"},"content":" If you are using this project template for a team project, go to the team fork on GitHub.","lastModifiedDate":"2020-05-24"},{"lineNumber":61,"author":{"gitId":"-"},"content":"1. Click on the `settings` tab.","lastModifiedDate":"2020-05-24"},{"lineNumber":62,"author":{"gitId":"-"},"content":"1. Scroll down to the `GitHub Pages` section.","lastModifiedDate":"2020-05-24"},{"lineNumber":63,"author":{"gitId":"-"},"content":"1. Set the `source` as `master branch /docs folder`.","lastModifiedDate":"2020-05-24"},{"lineNumber":64,"author":{"gitId":"-"},"content":"1. Optionally, use the `choose a theme` button to choose a theme for your documentation.","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"yeo-menghan":1,"-":63}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"lisizhuang-0121"},"content":"--------|:--------------:|:--------------------------------------------:|:---------:","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"James-Hong-Jey"},"content":"![](https://www.comp.nus.edu.sg/~stevenha/images/sh7.jpg) | James Hong Jey | [Github](https://github.com/James-Hong-Jey) | [Portfolio](docs/team/jameshong.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"StevenGX12"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Guan Xiao | [Github](https://github.com/StevenGX12) | [Portfolio](docs/team/guanxiao.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"![](https://avatars.githubusercontent.com/u/111041948?s\u003d400\u0026u\u003d6619a8328eba45edbc88fe01cf54efeb1f986d11\u0026v\u003d4) | Man Juncheng | [Github](https://github.com/spinoandraptos) | [Portfolio](docs/team/juncheng.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"lisizhuang-0121"},"content":"![](https://i.redd.it/6do158vk2ue61.png) | Li Sizhuang | [Github](https://github.com/lisizhuang-0121) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"yeo-menghan"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Yeo Meng Han | [Github](https://github.com/yeo-menghan) | [Portfolio](https://linkedin.com/in/yeo-meng-han/)","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":1,"StevenGX12":1,"James-Hong-Jey":1,"yeo-menghan":1,"lisizhuang-0121":2,"-":3}},{"path":"src/main/java/Duke.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.Command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"import rene.parser.Parser;","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * The main program running for the Duke chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" * The program bridges the user interface (Ui),","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" * hard disk data (dataStorage) and supports","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * dynamic data manipulation.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":"public class Duke {","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" private Ui ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" private Storage dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" private TaskList tasks;","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" private Parser parser;","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * Initiates the program with the necessary components.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath File location where data is","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * written to and read from by the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" public Duke(String filePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" dataStorage \u003d new Storage(filePath);","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" tasks \u003d new TaskList();","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" ui \u003d new Ui(dataStorage, tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" parser \u003d new Parser();","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" * Starts the chatbot by showing opening message.","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * Chatbot repeatedly handles user commands","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * until it is requested to terminate.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" * Chatbot closes by showing closing message.","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" public void run(){","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" ui.displayOpeningMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" boolean toExit \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" while(!toExit){","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" String fullCommand \u003d ui.readCommand();","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" ui.showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" Command command \u003d parser.parseCommand(fullCommand);","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" toExit \u003d command.toExit();","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" command.executeCommand(ui, dataStorage, tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" if(!toExit){","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" ui.showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" ui.displayClosingMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" new Duke(\"tasklist.txt\").run();","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":55}},{"path":"src/main/java/rene/command/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a user command to execute an action.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" public enum CommandType {TODO, DEADLINE, EVENT, DELETE, LIST, MARK, UNMARK, FIND, EXIT};","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" private CommandType commandType;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new blank command.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" public Command(){}","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new command of given type.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param commandType Type of command.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" public Command(CommandType commandType){","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" this.commandType \u003d commandType;","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * Performs an action according to command.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){}","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * Checks if the latest command calls for program termination.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" public boolean toExit(){","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" return commandType \u003d\u003d CommandType.EXIT;","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":38}},{"path":"src/main/java/rene/command/CommandDeadline.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Task;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to add a deadline task.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"public class CommandDeadline extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" private String userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new deadline command to add a deadline task.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" * @param userInput User input containing details of the deadline task.","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" public CommandDeadline(String userInput){","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.DEADLINE);","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" this.userInput \u003d userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Adds the deadline task and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" tasks.addToTaskList(userInput, Task.TaskType.DEADLINE, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":33}},{"path":"src/main/java/rene/command/CommandDelete.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to delete a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandDelete extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private int taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new delete command for a task of specified index.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param taskIndex Index of the task to be deleted.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public CommandDelete(int taskIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.DELETE);","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.taskIndex \u003d taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Deletes the specified task and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" String taskName \u003d tasks.viewTaskByIndex(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" if(!taskName.equals(\"Task Not Found\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" tasks.deleteTaskByIndex(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":36}},{"path":"src/main/java/rene/command/CommandEvent.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Task;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to add an event task.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"public class CommandEvent extends Command{","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" private String userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new event command to add an event task.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" * @param userInput User input containing details of the event task.","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" public CommandEvent(String userInput){","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.EVENT);","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" this.userInput \u003d userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Adds the event task and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" tasks.addToTaskList(userInput, Task.TaskType.EVENT, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":33}},{"path":"src/main/java/rene/command/CommandExit.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to exit the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"public class CommandExit extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new exit command to terminate program.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" public CommandExit() {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.EXIT);","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":12}},{"path":"src/main/java/rene/command/CommandFind.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to search for a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandFind extends Command{","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private String searchDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new find command to search for a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param searchDetails User input containing details of what to search.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public CommandFind(String searchDetails){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super((CommandType.FIND));","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.searchDetails \u003d searchDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Marks the specified task as not done and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" tasks.searchList(searchDetails);","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":33}},{"path":"src/main/java/rene/command/CommandList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to list all tasks.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandList extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new list command to list all tasks.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" public CommandList(){","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.LIST);","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Prints all tasks in current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" tasks.printTaskList();","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":27}},{"path":"src/main/java/rene/command/CommandMark.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to mark a task as done.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandMark extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private int taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new mark command for a task of specified index.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param taskIndex Index of the task to be marked.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public CommandMark(int taskIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.MARK);","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.taskIndex \u003d taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Marks the specified task as done and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" String taskName \u003d tasks.viewTaskByIndex(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" if(!taskName.equals(\"Task Not Found\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" tasks.markTaskAsDone(taskIndex, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":36}},{"path":"src/main/java/rene/command/CommandTodo.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Task;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to add a todo task.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"public class CommandTodo extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" private String userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new todo command to add a todo task.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" * @param userInput User input containing details of the todo task.","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" public CommandTodo(String userInput){","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.TODO);","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" this.userInput \u003d userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Adds the todo task and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" tasks.addToTaskList(userInput, Task.TaskType.TODO, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":35}},{"path":"src/main/java/rene/command/CommandUnmark.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.command;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.ui.Ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to mark a task as not done.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandUnmark extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private int taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new unmark command for a task of specified index.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param taskIndex Index of the task to be unmarked.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public CommandUnmark(int taskIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.UNMARK);","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.taskIndex \u003d taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Marks the specified task as not done and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks Current task list in the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" public void executeCommand(Ui ui, Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" String taskName \u003d tasks.viewTaskByIndex(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" if(!taskName.equals(\"Task Not Found\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" tasks.markTaskAsNotDone(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":36}},{"path":"src/main/java/rene/exception/ReneExceptions.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.exception;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents non-standard exceptions thrown by this program specifically.","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"public class ReneExceptions extends Exception{","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" public ReneExceptions(String message) {","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" super(message);","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":10}},{"path":"src/main/java/rene/parser/Parser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.parser;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.Command;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandMark;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandUnmark;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandList;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandExit;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandDelete;","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandTodo;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandDeadline;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandEvent;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":"import rene.command.CommandFind;","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":"import rene.exception.ReneExceptions;","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" * Represents a parser that converts user inputs into command objects.","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":"public class Parser {","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * Analyses and extracts relevant information from user input","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" * to create a new Command object of the right type.","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * @param userInput The full user CLI input.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" public Command parseCommand(String userInput) {","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" String commandTitle \u003d userInput.split(\" \")[0];","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" String commandDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" int taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" switch (commandTitle) {","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" case \"bye\":","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" return new CommandExit();","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" case \"list\":","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" return new CommandList();","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" case \"mark\":","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" commandDetails \u003d userInput.split(\" \")[1];","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" taskIndex \u003d Integer.parseInt(commandDetails.strip());","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" return new CommandMark(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" case \"unmark\":","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" commandDetails \u003d userInput.split(\" \")[1];","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" taskIndex \u003d Integer.parseInt(commandDetails.strip());","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" return new CommandUnmark(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" case \"delete\":","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" commandDetails \u003d userInput.split(\" \")[1];","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" taskIndex \u003d Integer.parseInt(commandDetails.strip());","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" return new CommandDelete(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" case \"todo\":","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" return new CommandTodo(userInput);","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" case \"deadline\":","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" return new CommandDeadline(userInput);","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" case \"event\":","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" return new CommandEvent(userInput);","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" case \"find\":","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" return new CommandFind(userInput);","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Invalid Input\");","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" catch(NumberFormatException | ArrayIndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease enter valid integer index!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" catch (ReneExceptions exception){","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" String exceptionMessage \u003d exception.getMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" if (exceptionMessage.equals(\"Invalid Input\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease enter a valid command :0\");","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Valid commands are: todo,\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" \" deadline /by [time],\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":" \" event /from [start] /to [end],\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":68,"author":{"gitId":"spinoandraptos"},"content":" \" list,\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":69,"author":{"gitId":"spinoandraptos"},"content":" \" mark [task number],\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" \" unmark [task number],\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" \" delete [task number],\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"spinoandraptos"},"content":" \" find /description [description]\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" \" find /time [time]\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" \" bye\");","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":76,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" return new Command();","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":79,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":80,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":80}},{"path":"src/main/java/rene/storage/Storage.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Task;","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import java.io.File;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"import java.io.IOException;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Represents the hard disk storage where","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * task data is stored, read and updated.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":"public class Storage {","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" private File dataFile;","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath The file location in hard disk where data is stored and read from.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" dataFile \u003d new File(filePath);","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * Write in new data to storage.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath The file location in hard disk where data is written to.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * @param textToAdd Data to be written.","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" * @param toAppend If true, new data is added to the back of existing data instead of overwriting them.","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" private void writeToFile(String filePath, String textToAdd, boolean toAppend) throws IOException {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" FileWriter fileWriter \u003d new FileWriter(filePath, toAppend);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" fileWriter.write(textToAdd);","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" fileWriter.close();","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" * Build a new task list from data stored in hard disk.","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" * Used at program start to build the current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks The task list to be built.","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" public void buildCurrentListFromFile(TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" if (dataFile.createNewFile()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Task-list created: \" + dataFile.getName());","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" } catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" int taskIndex \u003d 0;","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" Scanner fileScanner \u003d new Scanner(dataFile);","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" if (fileScanner.hasNext()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" fileScanner.nextLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" while (fileScanner.hasNext()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" taskIndex++;","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" String nextTask \u003d fileScanner.nextLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" String[] taskSubStrings \u003d nextTask.split(\"\\\\|\");","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" String taskType \u003d taskSubStrings[0].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" String taskDoneStatus \u003d taskSubStrings[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" String taskDescription \u003d taskSubStrings[2].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" switch (taskType) {","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" case \"T\": tasks.addToTaskList(\"todo \" + taskDescription,","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" Task.TaskType.TODO, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" if (taskDoneStatus.equals(\"done\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":" tasks.markTaskAsDone(taskIndex, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":68,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":69,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" case \"D\":","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" String dueTime \u003d taskSubStrings[3].replace(\"(by:\", \"\")","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"spinoandraptos"},"content":" .replace(\")\", \"\").strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" tasks.addToTaskList(\"deadline \" + taskDescription + \" /by \" + dueTime,","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" Task.TaskType.DEADLINE, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"spinoandraptos"},"content":" if (taskDoneStatus.equals(\"done\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":76,"author":{"gitId":"spinoandraptos"},"content":" tasks.markTaskAsDone(taskIndex, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":79,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":80,"author":{"gitId":"spinoandraptos"},"content":" case \"E\":","lastModifiedDate":"2023-10-04"},{"lineNumber":81,"author":{"gitId":"spinoandraptos"},"content":" String[] taskTimings \u003d taskSubStrings[3].strip().split(\"\\\\(from:\")[1]","lastModifiedDate":"2023-10-04"},{"lineNumber":82,"author":{"gitId":"spinoandraptos"},"content":" .split(\"to:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":83,"author":{"gitId":"spinoandraptos"},"content":" String startTime \u003d taskTimings[0];","lastModifiedDate":"2023-10-04"},{"lineNumber":84,"author":{"gitId":"spinoandraptos"},"content":" String endTime \u003d taskTimings[1].split(\"\\\\)\")[0];","lastModifiedDate":"2023-10-04"},{"lineNumber":85,"author":{"gitId":"spinoandraptos"},"content":" tasks.addToTaskList(\"event \" + taskDescription + \" /from \" + startTime","lastModifiedDate":"2023-10-04"},{"lineNumber":86,"author":{"gitId":"spinoandraptos"},"content":" + \" /to \" + endTime, Task.TaskType.EVENT, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":87,"author":{"gitId":"spinoandraptos"},"content":" if (taskDoneStatus.equals(\"done\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":88,"author":{"gitId":"spinoandraptos"},"content":" tasks.markTaskAsDone(taskIndex, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":89,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":90,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":91,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":92,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(nextTask);","lastModifiedDate":"2023-10-04"},{"lineNumber":93,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":94,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":95,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":96,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":97,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":98,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":99,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":100,"author":{"gitId":"spinoandraptos"},"content":" catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":101,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":102,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":103,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":104,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":105,"author":{"gitId":"spinoandraptos"},"content":" * Build a new task list from data stored in hard disk.","lastModifiedDate":"2023-10-04"},{"lineNumber":106,"author":{"gitId":"spinoandraptos"},"content":" * Prints out the tasks in the list in CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":107,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":108,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks The task list that has been built.","lastModifiedDate":"2023-10-04"},{"lineNumber":109,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":110,"author":{"gitId":"spinoandraptos"},"content":" public void loadData(TaskList tasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":111,"author":{"gitId":"spinoandraptos"},"content":" buildCurrentListFromFile(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":112,"author":{"gitId":"spinoandraptos"},"content":" if (tasks.getTaskListSize() \u003e 0) {","lastModifiedDate":"2023-10-04"},{"lineNumber":113,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" You currently have the following tasks uWu\");","lastModifiedDate":"2023-10-04"},{"lineNumber":114,"author":{"gitId":"spinoandraptos"},"content":" tasks.printTaskList();","lastModifiedDate":"2023-10-04"},{"lineNumber":115,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":116,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" You currently have no saved tasks uWu\");","lastModifiedDate":"2023-10-04"},{"lineNumber":117,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":118,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":119,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":120,"author":{"gitId":"spinoandraptos"},"content":" * Overwrites all existing data in storage with","lastModifiedDate":"2023-10-04"},{"lineNumber":121,"author":{"gitId":"spinoandraptos"},"content":" * the current tasks in the task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":122,"author":{"gitId":"spinoandraptos"},"content":" * Used after every task change and on program termination.","lastModifiedDate":"2023-10-04"},{"lineNumber":123,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":124,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks The task list to overwrite current data with.","lastModifiedDate":"2023-10-04"},{"lineNumber":125,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":126,"author":{"gitId":"spinoandraptos"},"content":" public void updateData(TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":127,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":128,"author":{"gitId":"spinoandraptos"},"content":" //flush all current records","lastModifiedDate":"2023-10-04"},{"lineNumber":129,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"Latest Tasks\" + System.lineSeparator(), false);","lastModifiedDate":"2023-10-04"},{"lineNumber":130,"author":{"gitId":"spinoandraptos"},"content":" ArrayList\u003cTask\u003e allTasks \u003d tasks.getAllTasks();","lastModifiedDate":"2023-10-04"},{"lineNumber":131,"author":{"gitId":"spinoandraptos"},"content":" for (Task task: allTasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":132,"author":{"gitId":"spinoandraptos"},"content":" switch (task.getTaskType()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":133,"author":{"gitId":"spinoandraptos"},"content":" case TODO:","lastModifiedDate":"2023-10-04"},{"lineNumber":134,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":135,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"T | done | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":136,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":137,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":138,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"T | undone | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":139,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":140,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":141,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":142,"author":{"gitId":"spinoandraptos"},"content":" case DEADLINE:","lastModifiedDate":"2023-10-04"},{"lineNumber":143,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":144,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"D | done | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":145,"author":{"gitId":"spinoandraptos"},"content":" + \" | \" + task.getTaskTiming(true)","lastModifiedDate":"2023-10-04"},{"lineNumber":146,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":147,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":148,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"D | undone | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":149,"author":{"gitId":"spinoandraptos"},"content":" + \" | \" + task.getTaskTiming(true)","lastModifiedDate":"2023-10-04"},{"lineNumber":150,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":151,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":152,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":153,"author":{"gitId":"spinoandraptos"},"content":" case EVENT:","lastModifiedDate":"2023-10-04"},{"lineNumber":154,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":155,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"E | done | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":156,"author":{"gitId":"spinoandraptos"},"content":" + \" | \" + task.getTaskTiming(true)","lastModifiedDate":"2023-10-04"},{"lineNumber":157,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":158,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":159,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"E | undone | \" + task.getTaskDescription()","lastModifiedDate":"2023-10-04"},{"lineNumber":160,"author":{"gitId":"spinoandraptos"},"content":" + \" | \" + task.getTaskTiming(true)","lastModifiedDate":"2023-10-04"},{"lineNumber":161,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":162,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":163,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":164,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":165,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":166,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":167,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":168,"author":{"gitId":"spinoandraptos"},"content":" catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":169,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":170,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" ____________________________________________________________\");","lastModifiedDate":"2023-10-04"},{"lineNumber":171,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":172,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":173,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":173}},{"path":"src/main/java/rene/task/Deadline.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.task;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" * Represents deadline tasks in the current task list","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" private LocalDateTime dueTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task of type deadline.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * @param description Task description.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param dueTime The deadline of the task.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public Deadline(String description, LocalDateTime dueTime){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super(description, TaskType.DEADLINE);","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.dueTime \u003d dueTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Returns the due time of the deadline","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * in a specially formatted style.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param useDefaultTiming If true, uses the default","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * date time format (dd-MM-yyyy HH:mm)","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * used to store date time data in the","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * hard disk. Else, uses the date time format","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * (E, MMM dd, yyyy hh a).","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" public String getTaskTiming(boolean useDefaultTiming) {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" String deadlineTiming;","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" if(useDefaultTiming){","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" deadlineTiming \u003d dueTime.format(DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" deadlineTiming \u003d dueTime.format(DateTimeFormatter.ofPattern(\"E, MMM dd yyyy HH:mm\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" return \"(by: \" + deadlineTiming + \")\";","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":41}},{"path":"src/main/java/rene/task/Event.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.task;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import java.time.LocalDateTime ;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" * Represents event tasks in the current task list","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"public class Event extends Task{","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" private LocalDateTime startTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private LocalDateTime endTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task of type event.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param description Task description.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" * @param startTime The starting time of event.","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" * @param endTime The ending time of event.","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" public Event(String description, LocalDateTime startTime, LocalDateTime endTime){","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" super(description, TaskType.EVENT);","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" this.startTime \u003d startTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" this.endTime \u003d endTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * Returns the start and end time of the event","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * in a specially formatted style.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * @param useDefaultTiming If true, uses the default","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" * date time format (dd-MM-yyyy HH:mm)","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" * used to store date time data in the","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" * hard disk. Else, uses the date time format","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * (E, MMM dd, yyyy hh a).","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" public String getTaskTiming(boolean useDefaultTiming) {","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" String startTiming;","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" String endTiming;","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" if(useDefaultTiming){","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" startTiming \u003d startTime.format(DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" endTiming \u003d endTime.format(DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" startTiming \u003d startTime.format(DateTimeFormatter.ofPattern(\"E, MMM dd, yyyy hh a\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" endTiming \u003d endTime.format(DateTimeFormatter.ofPattern(\"E, MMM dd, yyyy hh a\"));","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" return \"(from: \" + startTiming + \" to: \" + endTiming + \")\";","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":47}},{"path":"src/main/java/rene/task/Task.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.task;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents all tasks in the task list in general.","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"public class Task {","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" public enum TaskType {TODO, EVENT, DEADLINE, DEFAULT};","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" private TaskType taskType;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" private String description;","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" private boolean done;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Mark a task as done.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" public void markAsDone(){","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" done \u003d true;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Mark a task as not done.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" public void markAsNotDone(){","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task with a blank description,","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * not done status and default task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" public Task(){","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" description \u003d \"\";","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" taskType \u003d TaskType.DEFAULT;","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task with a given description,","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * not done status and default task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" * @param description Description given to the task.","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" public Task(String description){","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" this.description \u003d description;","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" taskType \u003d TaskType.DEFAULT;","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task with a given description,","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" * not done status and given task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" * @param description Description given to the task.","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" * @param taskType Type given to the task.","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" public Task(String description, TaskType taskType){","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" this.description \u003d description;","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" this.taskType \u003d taskType;","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" * Checks if a task has been done.","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" public boolean taskIsDone(){","lastModifiedDate":"2023-10-04"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" return done;","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" * Returns task description.","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" public String getTaskDescription(){","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" return description;","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":" * Returns task timing details.","lastModifiedDate":"2023-10-04"},{"lineNumber":68,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":69,"author":{"gitId":"spinoandraptos"},"content":" public String getTaskTiming(boolean useDefaultTiming){","lastModifiedDate":"2023-10-04"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" return \"\";","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" * Returns task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"spinoandraptos"},"content":" public TaskType getTaskType(){","lastModifiedDate":"2023-10-04"},{"lineNumber":76,"author":{"gitId":"spinoandraptos"},"content":" return taskType;","lastModifiedDate":"2023-10-04"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":78}},{"path":"src/main/java/rene/task/ToDo.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.task;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents todo tasks in the current task list","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new task of type todo.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" * @param description Task description.","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" public ToDo(String description){","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" super(description, TaskType.TODO);","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":14}},{"path":"src/main/java/rene/tasklist/TaskList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.tasklist;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Task;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.ToDo;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Deadline;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import rene.task.Event;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"import rene.exception.ReneExceptions;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * Represents the list of tasks currently registered in the chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" * This list is created on program start and disposed on program termination.","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":"public class TaskList {","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" private ArrayList\u003cTask\u003e allTasks; //array of inputs","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" DateTimeFormatter inputDateTimeFormatter \u003d DateTimeFormatter.ofPattern( \"dd-MM-yyyy HH:mm\" );","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Adds a user-requested task to the current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Depending on the type of task to add to the list,","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * the program extracts the relevant information from","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * the user input and builds a Task object to be added.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param input The full user input from CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param taskType The type of task to be added (TODO, DEADLINE, EVENT).","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * @param showMessage If true, program will print response message on CLI after task is added.","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" public void addToTaskList(String input, Task.TaskType taskType, boolean showMessage){","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" switch (taskType) {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" case TODO:","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" String toDoDescription \u003d input.split(\"todo\")[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" if (toDoDescription.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Command\");","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" allTasks.add(new ToDo(toDoDescription));","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" if (showMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" I have added the following task OwO:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [T][] %s\\n\", viewTaskByIndex(getTaskListSize()));","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Now you have \" + getTaskListSize() + \" tasks in the list! UWU\");","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException | ReneExceptions incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give todo a name!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as todo [task name]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" case DEADLINE:","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" String deadlineTiming;","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" String deadlineDescription;","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" String[] deadlineDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" deadlineDetails \u003d input.split(\"deadline\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give deadline a name!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as deadline [task name] /by [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" deadlineDescription \u003d deadlineDetails[0].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" if (deadlineDescription.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Deadline Description\");","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":" deadlineTiming \u003d deadlineDetails[1].strip().split(\"by\")[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":68,"author":{"gitId":"spinoandraptos"},"content":" if (deadlineTiming.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":69,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Due Time\");","lastModifiedDate":"2023-10-04"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" LocalDateTime deadlineDateTime \u003d LocalDateTime.parse(deadlineTiming, inputDateTimeFormatter);","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"spinoandraptos"},"content":" allTasks.add(new Deadline(deadlineDescription, deadlineDateTime));","lastModifiedDate":"2023-10-04"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" if (showMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" I have added the following task OwO:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [D][] %s\\n\", viewTaskByIndex(getTaskListSize()));","lastModifiedDate":"2023-10-04"},{"lineNumber":76,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Now you have \" + getTaskListSize() + \" tasks in the list! UWU\");","lastModifiedDate":"2023-10-04"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":79,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":80,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use \u0027/by\u0027 to signal due time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":81,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as deadline [task name] /by [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":82,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":83,"author":{"gitId":"spinoandraptos"},"content":" } catch (DateTimeParseException incorrectTimeFormat){","lastModifiedDate":"2023-10-04"},{"lineNumber":84,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give a correct date time for due time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":85,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your deadline as dd-MM-yyyy HH:mm!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":86,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":87,"author":{"gitId":"spinoandraptos"},"content":" } catch (ReneExceptions incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":88,"author":{"gitId":"spinoandraptos"},"content":" String exceptionMessage \u003d incompleteCommand.getMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":89,"author":{"gitId":"spinoandraptos"},"content":" switch (exceptionMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":90,"author":{"gitId":"spinoandraptos"},"content":" case \"Incomplete Deadline Description\":","lastModifiedDate":"2023-10-04"},{"lineNumber":91,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give deadline a name!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":92,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as deadline [task name] /by [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":93,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":94,"author":{"gitId":"spinoandraptos"},"content":" case \"Incomplete Due Time\":","lastModifiedDate":"2023-10-04"},{"lineNumber":95,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give deadline a due time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":96,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as deadline [task name] /by [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":97,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":98,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":99,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":100,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":101,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":102,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":103,"author":{"gitId":"spinoandraptos"},"content":" case EVENT:","lastModifiedDate":"2023-10-04"},{"lineNumber":104,"author":{"gitId":"spinoandraptos"},"content":" String eventStartTiming \u003d null;","lastModifiedDate":"2023-10-04"},{"lineNumber":105,"author":{"gitId":"spinoandraptos"},"content":" String eventEndTiming \u003d null;","lastModifiedDate":"2023-10-04"},{"lineNumber":106,"author":{"gitId":"spinoandraptos"},"content":" String[] eventDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":107,"author":{"gitId":"spinoandraptos"},"content":" String eventDescription \u003d null;","lastModifiedDate":"2023-10-04"},{"lineNumber":108,"author":{"gitId":"spinoandraptos"},"content":" LocalDateTime eventStartDateTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":109,"author":{"gitId":"spinoandraptos"},"content":" LocalDateTime eventEndDateTime;","lastModifiedDate":"2023-10-04"},{"lineNumber":110,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":111,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":112,"author":{"gitId":"spinoandraptos"},"content":" eventDetails \u003d input.split(\"event\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-04"},{"lineNumber":113,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":114,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give event a name!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":115,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] /from [start time] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":116,"author":{"gitId":"spinoandraptos"},"content":" \"/to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":117,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":118,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":119,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":120,"author":{"gitId":"spinoandraptos"},"content":" eventDescription \u003d eventDetails[0].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":121,"author":{"gitId":"spinoandraptos"},"content":" if (eventDescription.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":122,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Event Description\");","lastModifiedDate":"2023-10-04"},{"lineNumber":123,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":124,"author":{"gitId":"spinoandraptos"},"content":" eventStartTiming \u003d eventDetails[1].strip().split(\"from\")[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":125,"author":{"gitId":"spinoandraptos"},"content":" if (eventStartTiming.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":126,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Start Time\");","lastModifiedDate":"2023-10-04"},{"lineNumber":127,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":128,"author":{"gitId":"spinoandraptos"},"content":" eventStartDateTime \u003d LocalDateTime.parse(eventStartTiming, inputDateTimeFormatter);","lastModifiedDate":"2023-10-04"},{"lineNumber":129,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":130,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use \u0027/from\u0027 to signal start time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":131,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] /from [start time] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":132,"author":{"gitId":"spinoandraptos"},"content":" \"/to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":133,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":134,"author":{"gitId":"spinoandraptos"},"content":" } catch (DateTimeParseException incorrectTimeFormat){","lastModifiedDate":"2023-10-04"},{"lineNumber":135,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give a correct date time for start time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":136,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your deadline as dd-MM-yyyy HH:mm !\");","lastModifiedDate":"2023-10-04"},{"lineNumber":137,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":138,"author":{"gitId":"spinoandraptos"},"content":" } catch (ReneExceptions incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":139,"author":{"gitId":"spinoandraptos"},"content":" String exceptionMessage \u003d incompleteCommand.getMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":140,"author":{"gitId":"spinoandraptos"},"content":" switch (exceptionMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":141,"author":{"gitId":"spinoandraptos"},"content":" case \"Incomplete Event Description\":","lastModifiedDate":"2023-10-04"},{"lineNumber":142,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give event a name!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":143,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":144,"author":{"gitId":"spinoandraptos"},"content":" \"/from [start time] /to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":145,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":146,"author":{"gitId":"spinoandraptos"},"content":" case \"Incomplete Start Time\":","lastModifiedDate":"2023-10-04"},{"lineNumber":147,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give event a start time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":148,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":149,"author":{"gitId":"spinoandraptos"},"content":" \"/from [start time] /to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":150,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":151,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":152,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":153,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":154,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":155,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":156,"author":{"gitId":"spinoandraptos"},"content":" eventEndTiming \u003d eventDetails[2].strip().split(\"to\")[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":157,"author":{"gitId":"spinoandraptos"},"content":" if (eventEndTiming.equals(\"\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":158,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Incomplete Start Time\");","lastModifiedDate":"2023-10-04"},{"lineNumber":159,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":160,"author":{"gitId":"spinoandraptos"},"content":" eventEndDateTime \u003d LocalDateTime .parse(eventEndTiming, inputDateTimeFormatter);","lastModifiedDate":"2023-10-04"},{"lineNumber":161,"author":{"gitId":"spinoandraptos"},"content":" if(eventEndDateTime.isBefore(eventStartDateTime)){","lastModifiedDate":"2023-10-04"},{"lineNumber":162,"author":{"gitId":"spinoandraptos"},"content":" throw new ReneExceptions(\"Invalid end time\");","lastModifiedDate":"2023-10-04"},{"lineNumber":163,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":164,"author":{"gitId":"spinoandraptos"},"content":" allTasks.add(new Event(eventDescription, eventStartDateTime, eventEndDateTime));","lastModifiedDate":"2023-10-04"},{"lineNumber":165,"author":{"gitId":"spinoandraptos"},"content":" if (showMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":166,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" I have added the following task OwO:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":167,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [E][] %s\\n\", viewTaskByIndex(getTaskListSize()));","lastModifiedDate":"2023-10-04"},{"lineNumber":168,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Now you have \" + getTaskListSize() + \" tasks in the list! UWU\");","lastModifiedDate":"2023-10-04"},{"lineNumber":169,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":170,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":171,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use \u0027/to\u0027 to signal end time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":172,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":173,"author":{"gitId":"spinoandraptos"},"content":" \"/from [start time] /to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":174,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":175,"author":{"gitId":"spinoandraptos"},"content":" } catch (DateTimeParseException incorrectTimeFormat){","lastModifiedDate":"2023-10-04"},{"lineNumber":176,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give a correct date time for end time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":177,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your deadline as dd-MM-yyyy HH:mm!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":178,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":179,"author":{"gitId":"spinoandraptos"},"content":" } catch (ReneExceptions incorrectCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":180,"author":{"gitId":"spinoandraptos"},"content":" String exceptionMessage \u003d incorrectCommand.getMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":181,"author":{"gitId":"spinoandraptos"},"content":" switch (exceptionMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":182,"author":{"gitId":"spinoandraptos"},"content":" case \"Invalid end time\":","lastModifiedDate":"2023-10-04"},{"lineNumber":183,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Your end time cannot be earlier than start time! :\u003c\");","lastModifiedDate":"2023-10-04"},{"lineNumber":184,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":185,"author":{"gitId":"spinoandraptos"},"content":" case \"Incomplete Start Time\":","lastModifiedDate":"2023-10-04"},{"lineNumber":186,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not use give event a start time!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":187,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as event [task name] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":188,"author":{"gitId":"spinoandraptos"},"content":" \"/from [start time] /to [end time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":189,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":190,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":191,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":192,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":193,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":194,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":195,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":196,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":197,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":198,"author":{"gitId":"spinoandraptos"},"content":" * Prints the details of a task in CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":199,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":200,"author":{"gitId":"spinoandraptos"},"content":" * @param task The task which details are to be printed.","lastModifiedDate":"2023-10-04"},{"lineNumber":201,"author":{"gitId":"spinoandraptos"},"content":" * @param asList If true, prints out the index of the task in the task list","lastModifiedDate":"2023-10-04"},{"lineNumber":202,"author":{"gitId":"spinoandraptos"},"content":" * in addition to the details of the task.","lastModifiedDate":"2023-10-04"},{"lineNumber":203,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":204,"author":{"gitId":"spinoandraptos"},"content":" public void printTask(Task task, boolean asList){","lastModifiedDate":"2023-10-04"},{"lineNumber":205,"author":{"gitId":"spinoandraptos"},"content":" int taskIndex \u003d allTasks.indexOf(task);","lastModifiedDate":"2023-10-04"},{"lineNumber":206,"author":{"gitId":"spinoandraptos"},"content":" switch(task.getTaskType()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":207,"author":{"gitId":"spinoandraptos"},"content":" case TODO:","lastModifiedDate":"2023-10-04"},{"lineNumber":208,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":209,"author":{"gitId":"spinoandraptos"},"content":" if(asList){","lastModifiedDate":"2023-10-04"},{"lineNumber":210,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [T][X] %s\\n\", taskIndex+1, task.getTaskDescription());","lastModifiedDate":"2023-10-04"},{"lineNumber":211,"author":{"gitId":"spinoandraptos"},"content":" } else{","lastModifiedDate":"2023-10-04"},{"lineNumber":212,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [T][X] %s\\n\", task.getTaskDescription());","lastModifiedDate":"2023-10-04"},{"lineNumber":213,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":214,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":215,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":216,"author":{"gitId":"spinoandraptos"},"content":" if(asList){","lastModifiedDate":"2023-10-04"},{"lineNumber":217,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [T][] %s\\n\", taskIndex+1, task.getTaskDescription());","lastModifiedDate":"2023-10-04"},{"lineNumber":218,"author":{"gitId":"spinoandraptos"},"content":" } else{","lastModifiedDate":"2023-10-04"},{"lineNumber":219,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [T][] %s\\n\", task.getTaskDescription());","lastModifiedDate":"2023-10-04"},{"lineNumber":220,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":221,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":222,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":223,"author":{"gitId":"spinoandraptos"},"content":" case DEADLINE:","lastModifiedDate":"2023-10-04"},{"lineNumber":224,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":225,"author":{"gitId":"spinoandraptos"},"content":" if (asList) {","lastModifiedDate":"2023-10-04"},{"lineNumber":226,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [D][X] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":227,"author":{"gitId":"spinoandraptos"},"content":" taskIndex + 1, task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":228,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":229,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [D][X] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":230,"author":{"gitId":"spinoandraptos"},"content":" task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":231,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":232,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":233,"author":{"gitId":"spinoandraptos"},"content":" else {","lastModifiedDate":"2023-10-04"},{"lineNumber":234,"author":{"gitId":"spinoandraptos"},"content":" if (asList) {","lastModifiedDate":"2023-10-04"},{"lineNumber":235,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [D][] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":236,"author":{"gitId":"spinoandraptos"},"content":" taskIndex + 1, task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":237,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":238,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [D][] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":239,"author":{"gitId":"spinoandraptos"},"content":" task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":240,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":241,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":242,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":243,"author":{"gitId":"spinoandraptos"},"content":" case EVENT:","lastModifiedDate":"2023-10-04"},{"lineNumber":244,"author":{"gitId":"spinoandraptos"},"content":" if (task.taskIsDone()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":245,"author":{"gitId":"spinoandraptos"},"content":" if (asList) {","lastModifiedDate":"2023-10-04"},{"lineNumber":246,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [E][X] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":247,"author":{"gitId":"spinoandraptos"},"content":" taskIndex+1, task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":248,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":249,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [E][X] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":250,"author":{"gitId":"spinoandraptos"},"content":" task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":251,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":252,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":253,"author":{"gitId":"spinoandraptos"},"content":" if (asList) {","lastModifiedDate":"2023-10-04"},{"lineNumber":254,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" %d: [E][] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":255,"author":{"gitId":"spinoandraptos"},"content":" taskIndex+1, task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":256,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":257,"author":{"gitId":"spinoandraptos"},"content":" System.out.printf(\" [E][] %s %s\\n\",","lastModifiedDate":"2023-10-04"},{"lineNumber":258,"author":{"gitId":"spinoandraptos"},"content":" task.getTaskDescription(), task.getTaskTiming(false));","lastModifiedDate":"2023-10-04"},{"lineNumber":259,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":260,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":261,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":262,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":263,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":264,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":265,"author":{"gitId":"spinoandraptos"},"content":" * Prints all the tasks in the current task list as an indexed list.","lastModifiedDate":"2023-10-04"},{"lineNumber":266,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":267,"author":{"gitId":"spinoandraptos"},"content":" public void printTaskList(){","lastModifiedDate":"2023-10-04"},{"lineNumber":268,"author":{"gitId":"spinoandraptos"},"content":" if(allTasks.isEmpty()){","lastModifiedDate":"2023-10-04"},{"lineNumber":269,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" No tasks found! Time to add some OWO\");","lastModifiedDate":"2023-10-04"},{"lineNumber":270,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":271,"author":{"gitId":"spinoandraptos"},"content":" else {","lastModifiedDate":"2023-10-04"},{"lineNumber":272,"author":{"gitId":"spinoandraptos"},"content":" for (Task task : allTasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":273,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":274,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":275,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":276,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":277,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":278,"author":{"gitId":"spinoandraptos"},"content":" * Mark a task in the current task list as done.","lastModifiedDate":"2023-10-04"},{"lineNumber":279,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":280,"author":{"gitId":"spinoandraptos"},"content":" * @param index The list index of the task to be marked as done.","lastModifiedDate":"2023-10-04"},{"lineNumber":281,"author":{"gitId":"spinoandraptos"},"content":" * @param showMessage If true, program will print response message on CLI","lastModifiedDate":"2023-10-04"},{"lineNumber":282,"author":{"gitId":"spinoandraptos"},"content":" * after task is marked as done.","lastModifiedDate":"2023-10-04"},{"lineNumber":283,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":284,"author":{"gitId":"spinoandraptos"},"content":" public void markTaskAsDone(int index, boolean showMessage){","lastModifiedDate":"2023-10-04"},{"lineNumber":285,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":286,"author":{"gitId":"spinoandraptos"},"content":" allTasks.get(index-1).markAsDone();","lastModifiedDate":"2023-10-04"},{"lineNumber":287,"author":{"gitId":"spinoandraptos"},"content":" if(showMessage) {","lastModifiedDate":"2023-10-04"},{"lineNumber":288,"author":{"gitId":"spinoandraptos"},"content":" Task task \u003d allTasks.get(index - 1);","lastModifiedDate":"2023-10-04"},{"lineNumber":289,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Roger that! I have marked the following task as done \u003ew\u003c !\");","lastModifiedDate":"2023-10-04"},{"lineNumber":290,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":291,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":292,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":293,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnuuu! Please enter valid task number *sobs*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":294,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":295,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":296,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":297,"author":{"gitId":"spinoandraptos"},"content":" * Mark a task in the current task list as not done.","lastModifiedDate":"2023-10-04"},{"lineNumber":298,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":299,"author":{"gitId":"spinoandraptos"},"content":" public void markTaskAsNotDone(int index){","lastModifiedDate":"2023-10-04"},{"lineNumber":300,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":301,"author":{"gitId":"spinoandraptos"},"content":" allTasks.get(index-1).markAsNotDone();","lastModifiedDate":"2023-10-04"},{"lineNumber":302,"author":{"gitId":"spinoandraptos"},"content":" Task task \u003d allTasks.get(index-1);","lastModifiedDate":"2023-10-04"},{"lineNumber":303,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Roger that! I have unmarked the following task as done \u003ew\u003c !\");","lastModifiedDate":"2023-10-04"},{"lineNumber":304,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":305,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":306,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnuuu! Please enter valid task number *sobs*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":307,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":308,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":309,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":310,"author":{"gitId":"spinoandraptos"},"content":" * Delete a task from the current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":311,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":312,"author":{"gitId":"spinoandraptos"},"content":" * @param index The list index of the task to be deleted.","lastModifiedDate":"2023-10-04"},{"lineNumber":313,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":314,"author":{"gitId":"spinoandraptos"},"content":" public void deleteTaskByIndex(int index){","lastModifiedDate":"2023-10-04"},{"lineNumber":315,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":316,"author":{"gitId":"spinoandraptos"},"content":" Task task \u003d allTasks.get(index-1);","lastModifiedDate":"2023-10-04"},{"lineNumber":317,"author":{"gitId":"spinoandraptos"},"content":" allTasks.remove(index - 1);","lastModifiedDate":"2023-10-04"},{"lineNumber":318,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Roger that! I have deleted the following task \u003ew\u003c !\");","lastModifiedDate":"2023-10-04"},{"lineNumber":319,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, false);","lastModifiedDate":"2023-10-04"},{"lineNumber":320,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Now you have \" + getTaskListSize() + \" tasks in the list! UWU\");","lastModifiedDate":"2023-10-04"},{"lineNumber":321,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":322,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnuuu! Please enter valid task number *sobs*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":323,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":324,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":325,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":326,"author":{"gitId":"spinoandraptos"},"content":" * Returns the description and all other details of a task in one String object.","lastModifiedDate":"2023-10-04"},{"lineNumber":327,"author":{"gitId":"spinoandraptos"},"content":" * Used to display task details in CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":328,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":329,"author":{"gitId":"spinoandraptos"},"content":" * @param index The list index of the task to be viewed.","lastModifiedDate":"2023-10-04"},{"lineNumber":330,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":331,"author":{"gitId":"spinoandraptos"},"content":" public String viewTaskByIndex(int index){","lastModifiedDate":"2023-10-04"},{"lineNumber":332,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":333,"author":{"gitId":"spinoandraptos"},"content":" switch(allTasks.get(index-1).getTaskType()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":334,"author":{"gitId":"spinoandraptos"},"content":" case TODO:","lastModifiedDate":"2023-10-04"},{"lineNumber":335,"author":{"gitId":"spinoandraptos"},"content":" return allTasks.get(index-1).getTaskDescription();","lastModifiedDate":"2023-10-04"},{"lineNumber":336,"author":{"gitId":"spinoandraptos"},"content":" case DEADLINE:","lastModifiedDate":"2023-10-04"},{"lineNumber":337,"author":{"gitId":"spinoandraptos"},"content":" case EVENT:","lastModifiedDate":"2023-10-04"},{"lineNumber":338,"author":{"gitId":"spinoandraptos"},"content":" return allTasks.get(index-1).getTaskDescription() + \" \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":339,"author":{"gitId":"spinoandraptos"},"content":" allTasks.get(index-1).getTaskTiming(false);","lastModifiedDate":"2023-10-04"},{"lineNumber":340,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":341,"author":{"gitId":"spinoandraptos"},"content":" return \"Task Not Found\";","lastModifiedDate":"2023-10-04"},{"lineNumber":342,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":343,"author":{"gitId":"spinoandraptos"},"content":" } catch(NullPointerException | IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":344,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnuuu! Please enter valid task number *sobs*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":345,"author":{"gitId":"spinoandraptos"},"content":" return \"Task Not Found\";","lastModifiedDate":"2023-10-04"},{"lineNumber":346,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":347,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":348,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":349,"author":{"gitId":"spinoandraptos"},"content":" * Search for tasks in the current task list using their description.","lastModifiedDate":"2023-10-04"},{"lineNumber":350,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":351,"author":{"gitId":"spinoandraptos"},"content":" * @param keyword Description keyword(s) used to search for matches.","lastModifiedDate":"2023-10-04"},{"lineNumber":352,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":353,"author":{"gitId":"spinoandraptos"},"content":" public void searchListByDescription(String keyword){","lastModifiedDate":"2023-10-04"},{"lineNumber":354,"author":{"gitId":"spinoandraptos"},"content":" ArrayList\u003cTask\u003e matchedTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-04"},{"lineNumber":355,"author":{"gitId":"spinoandraptos"},"content":" if(allTasks.isEmpty()){","lastModifiedDate":"2023-10-04"},{"lineNumber":356,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Task list is empty! Time to add some OWO\");","lastModifiedDate":"2023-10-04"},{"lineNumber":357,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":358,"author":{"gitId":"spinoandraptos"},"content":" else {","lastModifiedDate":"2023-10-04"},{"lineNumber":359,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Here are tasks that matched your search:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":360,"author":{"gitId":"spinoandraptos"},"content":" for (Task task : allTasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":361,"author":{"gitId":"spinoandraptos"},"content":" if(task.getTaskDescription().contains(keyword)){","lastModifiedDate":"2023-10-04"},{"lineNumber":362,"author":{"gitId":"spinoandraptos"},"content":" matchedTasks.add(task);","lastModifiedDate":"2023-10-04"},{"lineNumber":363,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":364,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":365,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":366,"author":{"gitId":"spinoandraptos"},"content":" if(matchedTasks.isEmpty()){","lastModifiedDate":"2023-10-04"},{"lineNumber":367,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" No results found :\u003c Check your keyword is correct?\");","lastModifiedDate":"2023-10-04"},{"lineNumber":368,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":369,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":370,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":371,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":372,"author":{"gitId":"spinoandraptos"},"content":" * Search for tasks in the current task list using their date and time.","lastModifiedDate":"2023-10-04"},{"lineNumber":373,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":374,"author":{"gitId":"spinoandraptos"},"content":" * @param dateTime Date and time used to search for matches.","lastModifiedDate":"2023-10-04"},{"lineNumber":375,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":376,"author":{"gitId":"spinoandraptos"},"content":" public void searchListByTime(String dateTime){","lastModifiedDate":"2023-10-04"},{"lineNumber":377,"author":{"gitId":"spinoandraptos"},"content":" ArrayList\u003cTask\u003e matchedTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-04"},{"lineNumber":378,"author":{"gitId":"spinoandraptos"},"content":" if(allTasks.isEmpty()){","lastModifiedDate":"2023-10-04"},{"lineNumber":379,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Task list is empty! Time to add some OWO\");","lastModifiedDate":"2023-10-04"},{"lineNumber":380,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":381,"author":{"gitId":"spinoandraptos"},"content":" else {","lastModifiedDate":"2023-10-04"},{"lineNumber":382,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Here are tasks that matched your search:\");","lastModifiedDate":"2023-10-04"},{"lineNumber":383,"author":{"gitId":"spinoandraptos"},"content":" for (Task task : allTasks) {","lastModifiedDate":"2023-10-04"},{"lineNumber":384,"author":{"gitId":"spinoandraptos"},"content":" if(task.getTaskTiming(true).contains(dateTime)){","lastModifiedDate":"2023-10-04"},{"lineNumber":385,"author":{"gitId":"spinoandraptos"},"content":" matchedTasks.add(task);","lastModifiedDate":"2023-10-04"},{"lineNumber":386,"author":{"gitId":"spinoandraptos"},"content":" printTask(task, true);","lastModifiedDate":"2023-10-04"},{"lineNumber":387,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":388,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":389,"author":{"gitId":"spinoandraptos"},"content":" if(matchedTasks.isEmpty()){","lastModifiedDate":"2023-10-04"},{"lineNumber":390,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" No results found :\u003c Check your time format is in dd-MM-yyyy HH:mm?\");","lastModifiedDate":"2023-10-04"},{"lineNumber":391,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":392,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":393,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":394,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":395,"author":{"gitId":"spinoandraptos"},"content":" * Search for a task in the current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":396,"author":{"gitId":"spinoandraptos"},"content":" * Depending on user command, this method will search by","lastModifiedDate":"2023-10-04"},{"lineNumber":397,"author":{"gitId":"spinoandraptos"},"content":" * either description matches or time matches.","lastModifiedDate":"2023-10-04"},{"lineNumber":398,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":399,"author":{"gitId":"spinoandraptos"},"content":" * @param input Full user command input.","lastModifiedDate":"2023-10-04"},{"lineNumber":400,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":401,"author":{"gitId":"spinoandraptos"},"content":" public void searchList(String input){","lastModifiedDate":"2023-10-04"},{"lineNumber":402,"author":{"gitId":"spinoandraptos"},"content":" String[] searchDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":403,"author":{"gitId":"spinoandraptos"},"content":" String[] searchInfo;","lastModifiedDate":"2023-10-04"},{"lineNumber":404,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":405,"author":{"gitId":"spinoandraptos"},"content":" searchDetails \u003d input.split(\"find\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-04"},{"lineNumber":406,"author":{"gitId":"spinoandraptos"},"content":" searchInfo \u003d searchDetails[1].strip().split(\" \");","lastModifiedDate":"2023-10-04"},{"lineNumber":407,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":408,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not indicate if you are searching by description or time :\u003c\");","lastModifiedDate":"2023-10-04"},{"lineNumber":409,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as find /description [description] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":410,"author":{"gitId":"spinoandraptos"},"content":" \"or find /time [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":411,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-04"},{"lineNumber":412,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":413,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":414,"author":{"gitId":"spinoandraptos"},"content":" String searchCriteria \u003d searchInfo[0].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":415,"author":{"gitId":"spinoandraptos"},"content":" String searchKeyword \u003d searchInfo[1].strip();","lastModifiedDate":"2023-10-04"},{"lineNumber":416,"author":{"gitId":"spinoandraptos"},"content":" switch (searchCriteria){","lastModifiedDate":"2023-10-04"},{"lineNumber":417,"author":{"gitId":"spinoandraptos"},"content":" case \"description\":","lastModifiedDate":"2023-10-04"},{"lineNumber":418,"author":{"gitId":"spinoandraptos"},"content":" searchListByDescription(searchKeyword);","lastModifiedDate":"2023-10-04"},{"lineNumber":419,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":420,"author":{"gitId":"spinoandraptos"},"content":" case \"time\":","lastModifiedDate":"2023-10-04"},{"lineNumber":421,"author":{"gitId":"spinoandraptos"},"content":" searchListByTime(searchKeyword);","lastModifiedDate":"2023-10-04"},{"lineNumber":422,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":423,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":424,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":425,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":426,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-04"},{"lineNumber":427,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ohnus! You did not indicate the keywords you are searching by :\u003c\");","lastModifiedDate":"2023-10-04"},{"lineNumber":428,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Pwease format your input as find /description [description] \" +","lastModifiedDate":"2023-10-04"},{"lineNumber":429,"author":{"gitId":"spinoandraptos"},"content":" \"or find /time [time]!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":430,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":431,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":432,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":433,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":434,"author":{"gitId":"spinoandraptos"},"content":" * Returns the size of current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":435,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":436,"author":{"gitId":"spinoandraptos"},"content":" public int getTaskListSize(){","lastModifiedDate":"2023-10-04"},{"lineNumber":437,"author":{"gitId":"spinoandraptos"},"content":" return allTasks.size();","lastModifiedDate":"2023-10-04"},{"lineNumber":438,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":439,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":440,"author":{"gitId":"spinoandraptos"},"content":" * Returns a list of all tasks in the current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":441,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":442,"author":{"gitId":"spinoandraptos"},"content":" public ArrayList\u003cTask\u003e getAllTasks(){","lastModifiedDate":"2023-10-04"},{"lineNumber":443,"author":{"gitId":"spinoandraptos"},"content":" return allTasks;","lastModifiedDate":"2023-10-04"},{"lineNumber":444,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":445,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":446,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new empty task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":447,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":448,"author":{"gitId":"spinoandraptos"},"content":" public TaskList(){","lastModifiedDate":"2023-10-04"},{"lineNumber":449,"author":{"gitId":"spinoandraptos"},"content":" allTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-04"},{"lineNumber":450,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":451,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":451}},{"path":"src/main/java/rene/ui/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"spinoandraptos"},"content":"package rene.ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":"import rene.storage.Storage;","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"import rene.tasklist.TaskList;","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * Represents the user interface for CLI displays.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" * Supports CLI interactions with users.","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":"public class Ui {","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" private final Scanner input \u003d new Scanner(System.in); // Create a Scanner object","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" private Storage dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" private TaskList tasks;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" * Print out separating line in CLI to mark","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * start and end of chatbot replies.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" public void showLine(){","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" ____________________________________________________________\");","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Displays opening message to welcome users","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * on the launch of chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" public void displayOpeningMessage(){","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" String logo \u003d \" _____ \\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" + \" | __ \\\\ ____ __ _ ____ \\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" + \" | |__ | / _ \\\\| \\\\| |/ _ \\\\\\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" + \" | | \\\\ \\\\| ___/| \\\\ | | ___/\\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" + \" |_| \\\\_\\\\\\\\____| |_|\\\\__|\\\\____|\\n\";","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Hello from\\n\" + logo);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" I am Rene Kokoro!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Let me record your tasks!! *blushes*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" System.out.println();","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.loadData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" * Retrieves the CLI input from the user","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" * and documents it as a String object.","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" public String readCommand() {","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" return input.nextLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" * Displays closing message on exiting the chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" public void displayClosingMessage(){","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Aww you are leaving? *sniffs*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Well... hope to see you again soon!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" * Sets up the bridging between the UI and tasks data.","lastModifiedDate":"2023-10-04"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks A record of all tasks documented that is built on program start and disposed on program exit.","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage The hard disk record of all tasks documented that persists even on program exit.","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" public Ui(Storage dataStorage, TaskList tasks){","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" this.dataStorage \u003d dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":67}}] diff --git a/AY2324S1-CS2113-W12-1_tp_master/commits.json b/AY2324S1-CS2113-W12-1_tp_master/commits.json index 3e1c96d..2c55d38 100644 --- a/AY2324S1-CS2113-W12-1_tp_master/commits.json +++ b/AY2324S1-CS2113-W12-1_tp_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"spinoandraptos":[{"date":"2023-10-04","commitResults":[{"hash":"6c6d1698f76fbc9d508f95105074ab9f2110d65c","isMergeCommit":true,"messageTitle":"Merge pull request #3 from StevenGX12/master","messageBody":"Add Guan Xiao","fileTypesAndContributionMap":{}},{"hash":"df29befffe396116433778af88e0a3623bece7fc","isMergeCommit":false,"messageTitle":"add Juncheng","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":6,"deletions":6}}},{"hash":"419f657d64069e11fed53b7deb272799c0cf26f6","isMergeCommit":false,"messageTitle":"Refactoring","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1335,"deletions":21}}},{"hash":"7d646598095de5b46119f52d8328c6dcbe88e668","isMergeCommit":true,"messageTitle":"Merge pull request #6 from spinoandraptos/master","messageBody":"Refactoring","fileTypesAndContributionMap":{}}]}],"StevenGX12":[{"date":"2023-10-04","commitResults":[{"hash":"89a5fcaa30ce7cd31fe47503bb2873226575c6b8","isMergeCommit":true,"messageTitle":"Merge pull request #2 from James-Hong-Jey/master","messageBody":"Add James","fileTypesAndContributionMap":{}},{"hash":"9dc6e6889ff581686f9e040603ee748d51c37b1a","isMergeCommit":false,"messageTitle":"added Guan Xiao AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"e43a7268e881e66880f125a55ba992a5659e1637","isMergeCommit":true,"messageTitle":"resolved merge conflict","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"5794b6bc163b412507ec00d46d2f9627c6a034f7","isMergeCommit":true,"messageTitle":"Merge pull request #5 from lisizhuang-0121/master","messageBody":"Update aboutus.md","fileTypesAndContributionMap":{}}]}],"yeo-menghan":[{"date":"2023-10-04","commitResults":[{"hash":"437a578d991ab42603936e351239623440e806c8","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"Change from Duke to QuizHub on ReadMe","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"568326efb68a7553262bf268501d90613739f023","isMergeCommit":true,"messageTitle":"Merge pull request #4 from spinoandraptos/master","messageBody":"add Juncheng","fileTypesAndContributionMap":{}}]}],"James-Hong-Jey":[{"date":"2023-10-04","commitResults":[{"hash":"cfa71b85ff164366845684af16d070e31ea60359","isMergeCommit":false,"messageTitle":"Change aboutus.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"ff15f0850b54fd060d30b9efb9967fc1e0d9ab18","isMergeCommit":true,"messageTitle":"Resolve merge conflict","messageBody":"","fileTypesAndContributionMap":{}}]}],"lisizhuang-0121":[{"date":"2023-10-04","commitResults":[{"hash":"db4924094e6d09cacbe80b263645d4f6e6778802","isMergeCommit":true,"messageTitle":"Merge pull request #1 from yeo-menghan/master","messageBody":"Add personal details(Meng Han) on AboutUs.md","fileTypesAndContributionMap":{}},{"hash":"7398eac81f0be5e14293d06439587f84e7cea114","isMergeCommit":false,"messageTitle":"Update aboutus.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}}]}]},"authorFileTypeContributionMap":{"spinoandraptos":{"docs":1,"functional-code":1335,"test-code":0},"StevenGX12":{"docs":1,"functional-code":0,"test-code":0},"yeo-menghan":{"docs":1,"functional-code":0,"test-code":0},"James-Hong-Jey":{"docs":1,"functional-code":0,"test-code":0},"lisizhuang-0121":{"docs":2,"functional-code":0,"test-code":0}},"authorContributionVariance":{"spinoandraptos":132882.19,"StevenGX12":0.28402367,"yeo-menghan":0.28402367,"James-Hong-Jey":0.28402367,"lisizhuang-0121":13.917159},"authorDisplayNameMap":{"spinoandraptos":"CS2113-W12-1 MAN ..HENG","StevenGX12":"CS2113-W12-1 GUAN..XIAO","yeo-menghan":"CS2113-W12-1 YEO .. HAN","James-Hong-Jey":"CS2113-W12-1 JAME.. JEY","lisizhuang-0121":"CS2113-W12-1 LI S..UANG"}} +{"authorDailyContributionsMap":{"spinoandraptos":[{"date":"2023-10-04","commitResults":[{"hash":"6c6d1698f76fbc9d508f95105074ab9f2110d65c","isMergeCommit":true,"messageTitle":"Merge pull request #3 from StevenGX12/master","messageBody":"Add Guan Xiao","fileTypesAndContributionMap":{}},{"hash":"df29befffe396116433778af88e0a3623bece7fc","isMergeCommit":false,"messageTitle":"add Juncheng","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":6,"deletions":6}}},{"hash":"419f657d64069e11fed53b7deb272799c0cf26f6","isMergeCommit":false,"messageTitle":"Refactoring","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1335,"deletions":21}}},{"hash":"7d646598095de5b46119f52d8328c6dcbe88e668","isMergeCommit":true,"messageTitle":"Merge pull request #6 from spinoandraptos/master","messageBody":"Refactoring","fileTypesAndContributionMap":{}}]}],"StevenGX12":[{"date":"2023-10-04","commitResults":[{"hash":"89a5fcaa30ce7cd31fe47503bb2873226575c6b8","isMergeCommit":true,"messageTitle":"Merge pull request #2 from James-Hong-Jey/master","messageBody":"Add James","fileTypesAndContributionMap":{}},{"hash":"9dc6e6889ff581686f9e040603ee748d51c37b1a","isMergeCommit":false,"messageTitle":"added Guan Xiao AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"e43a7268e881e66880f125a55ba992a5659e1637","isMergeCommit":true,"messageTitle":"resolved merge conflict","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"5794b6bc163b412507ec00d46d2f9627c6a034f7","isMergeCommit":true,"messageTitle":"Merge pull request #5 from lisizhuang-0121/master","messageBody":"Update aboutus.md","fileTypesAndContributionMap":{}}]}],"yeo-menghan":[{"date":"2023-10-04","commitResults":[{"hash":"437a578d991ab42603936e351239623440e806c8","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"Change from Duke to QuizHub on ReadMe","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"96293a9443789434cf941b15cdebf0bbfa57d745","isMergeCommit":false,"messageTitle":"Add personal details(Meng Han) on AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"568326efb68a7553262bf268501d90613739f023","isMergeCommit":true,"messageTitle":"Merge pull request #4 from spinoandraptos/master","messageBody":"add Juncheng","fileTypesAndContributionMap":{}}]}],"James-Hong-Jey":[{"date":"2023-10-04","commitResults":[{"hash":"cfa71b85ff164366845684af16d070e31ea60359","isMergeCommit":false,"messageTitle":"Change aboutus.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"ff15f0850b54fd060d30b9efb9967fc1e0d9ab18","isMergeCommit":true,"messageTitle":"Resolve merge conflict","messageBody":"","fileTypesAndContributionMap":{}}]}],"lisizhuang-0121":[{"date":"2023-10-04","commitResults":[{"hash":"db4924094e6d09cacbe80b263645d4f6e6778802","isMergeCommit":true,"messageTitle":"Merge pull request #1 from yeo-menghan/master","messageBody":"Add personal details(Meng Han) on AboutUs.md","fileTypesAndContributionMap":{}},{"hash":"7398eac81f0be5e14293d06439587f84e7cea114","isMergeCommit":false,"messageTitle":"Update aboutus.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}}]}]},"authorFileTypeContributionMap":{"spinoandraptos":{"docs":1,"functional-code":1335,"test-code":0},"StevenGX12":{"docs":1,"functional-code":0,"test-code":0},"yeo-menghan":{"docs":2,"functional-code":0,"test-code":0},"James-Hong-Jey":{"docs":1,"functional-code":0,"test-code":0},"lisizhuang-0121":{"docs":2,"functional-code":0,"test-code":0}},"authorContributionVariance":{"spinoandraptos":132882.19,"StevenGX12":0.28402367,"yeo-menghan":18.177515,"James-Hong-Jey":0.28402367,"lisizhuang-0121":13.917159},"authorDisplayNameMap":{"spinoandraptos":"CS2113-W12-1 MAN ..HENG","StevenGX12":"CS2113-W12-1 GUAN..XIAO","yeo-menghan":"CS2113-W12-1 YEO .. HAN","James-Hong-Jey":"CS2113-W12-1 JAME.. JEY","lisizhuang-0121":"CS2113-W12-1 LI S..UANG"}} diff --git a/archive.zip b/archive.zip index 140bc78..c85923f 100644 Binary files a/archive.zip and b/archive.zip differ diff --git a/reposense-logs/reposense.log.0 b/reposense-logs/reposense.log.0 index 9fa85c6..f3c36eb 100644 --- a/reposense-logs/reposense.log.0 +++ b/reposense-logs/reposense.log.0 @@ -1,20 +1,20 @@ -Oct 07, 2023 2:36:48 PM reposense.system.LogsManager addFileHandler +Oct 07, 2023 2:49:16 PM reposense.system.LogsManager addFileHandler INFO: Log temp folder has been successfully created -Oct 07, 2023 2:36:48 PM reposense.parser.CsvParser validateHeader +Oct 07, 2023 2:49:16 PM 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 07, 2023 2:36:48 PM reposense.parser.CsvParser validateHeader +Oct 07, 2023 2:49:16 PM 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 07, 2023 2:36:48 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 07, 2023 2:49:16 PM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias choonsiang found. The alias will belong to the last author - ChoonSiang -Oct 07, 2023 2:36:48 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 07, 2023 2:49:16 PM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias barbaracwx found. The alias will belong to the last author - Barbaracwx -Oct 07, 2023 2:36:48 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 07, 2023 2:49:16 PM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias choonsiang found. The alias will belong to the last author - ChoonSiang -Oct 07, 2023 2:36:48 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 07, 2023 2:49:16 PM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias barbaracwx found. The alias will belong to the last author - Barbaracwx -Oct 07, 2023 2:36:48 PM reposense.parser.CsvParser validateHeader +Oct 07, 2023 2:49:16 PM reposense.parser.CsvParser validateHeader INFO: Parsed header of CSV file, group-config.csv, and recognized columns: Globs, Repository's Location, Group Name -Oct 07, 2023 2:36:48 PM reposense.git.GitConfig getGlobalGitLfsConfig +Oct 07, 2023 2:49:16 PM 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 @@ -30,157 +30,153 @@ 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 07, 2023 2:36:48 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T17-3/tp.git... -Oct 07, 2023 2:36:48 PM reposense.report.RepoCloner spawnCloneProcess +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-W12-2/tp.git... -Oct 07, 2023 2:36:48 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-W12-4/tp.git... -Oct 07, 2023 2:36:48 PM reposense.report.RepoCloner spawnCloneProcess +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T17-4/tp.git... -Oct 07, 2023 2:36:48 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-W12-2/tp.git to complete... -Oct 07, 2023 2:36:48 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T17-3/tp.git... +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-W12-4/tp.git... +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-W12-4/tp.git to complete... +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T17-4/tp.git to complete... -Oct 07, 2023 2:36:48 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-W12-2/tp.git to complete... +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T17-3/tp.git to complete... -Oct 07, 2023 2:36:48 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-W12-4/tp.git to complete... -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-W12-2/tp.git completed! -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-1/tp.git... -Oct 07, 2023 2:36:49 PM reposense.report.ReportGenerator analyzeRepos -INFO: [1/17] Analyzing https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-1/tp.git to complete... -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-W12-4/tp.git completed! -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner spawnCloneProcess +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-1/tp.git... +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-F11-3/tp.git... -Oct 07, 2023 2:36:49 PM reposense.report.ReportGenerator analyzeRepos -INFO: [2/17] Analyzing https://github.com/AY2324S1-CS2113-W12-4/tp.git (master)... -Oct 07, 2023 2:36:49 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-W12-2/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:17 PM reposense.report.ReportGenerator analyzeRepos +INFO: [1/17] Analyzing https://github.com/AY2324S1-CS2113-W12-4/tp.git (master)... +Oct 07, 2023 2:49:17 PM reposense.report.ReportGenerator analyzeRepos +INFO: [2/17] Analyzing https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-1/tp.git to complete... +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-F11-3/tp.git to complete... -Oct 07, 2023 2:36:49 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... -Oct 07, 2023 2:36:49 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-W12-4/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:49 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-4/tp.git (master)... -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-4/tp.git completed! -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner spawnCloneProcess +Oct 07, 2023 2:49:17 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-W12-1/tp.git... -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:18 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-W12-2/tp.git (master) does not contain a standalone config file. +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-W12-1/tp.git to complete... -Oct 07, 2023 2:36:49 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-W12-4/tp.git (master)... -Oct 07, 2023 2:36:49 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 07, 2023 2:49:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... +Oct 07, 2023 2:49:18 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-W12-4/tp.git (master) does not contain a standalone config file. +Oct 07, 2023 2:49:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-4/tp.git (master)... +Oct 07, 2023 2:49:18 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... -Oct 07, 2023 2:36:49 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 07, 2023 2:49:18 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-W12-4/tp.git (master)... +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-3/tp.git completed! +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-W12-3/tp.git... +Oct 07, 2023 2:49:18 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... -Oct 07, 2023 2:36:49 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-W12-3/tp.git to complete... +Oct 07, 2023 2:49:18 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-W12-4/tp.git (master)... -Oct 07, 2023 2:36:49 PM reposense.report.ReportGenerator analyzeRepo +Oct 07, 2023 2:49:18 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-W12-2/tp.git (master) completed! -Oct 07, 2023 2:36:49 PM reposense.report.ReportGenerator analyzeRepo +Oct 07, 2023 2:49:18 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-W12-4/tp.git (master) completed! -Oct 07, 2023 2:36:49 PM reposense.report.ReportGenerator analyzeRepos +Oct 07, 2023 2:49:18 PM reposense.report.ReportGenerator analyzeRepos INFO: [3/17] Analyzing https://github.com/AY2324S1-CS2113-T17-4/tp.git (master)... -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:18 PM reposense.report.ReportGenerator analyzeRepos +INFO: [4/17] Analyzing https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-1/tp.git completed! -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-W12-3/tp.git... -Oct 07, 2023 2:36:49 PM reposense.report.ReportGenerator analyzeRepos -INFO: [4/17] Analyzing https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-F11-3/tp.git completed! -Oct 07, 2023 2:36:49 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-W12-3/tp.git to complete... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner spawnCloneProcess +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-2/tp.git... -Oct 07, 2023 2:36:50 PM reposense.report.ReportGenerator updateRepoConfig +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-3/tp.git... +Oct 07, 2023 2:49:18 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-T17-4/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 07, 2023 2:49:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-4/tp.git (master)... -Oct 07, 2023 2:36:50 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-T18-1/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-2/tp.git to complete... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-3/tp.git to complete... +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-W12-1/tp.git completed! -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-3/tp.git completed! -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-3/tp.git... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner spawnCloneProcess +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113T-W11-1/tp.git... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-3/tp.git to complete... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:18 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113T-W11-1/tp.git to complete... -Oct 07, 2023 2:36:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 07, 2023 2:49:18 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-T17-3/tp.git (master) does not contain a standalone config file. +Oct 07, 2023 2:49:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... +Oct 07, 2023 2:49:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-4/tp.git (master)... -Oct 07, 2023 2:36:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... -Oct 07, 2023 2:36:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-W12-3/tp.git completed! +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-4/tp.git... +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-4/tp.git to complete... +Oct 07, 2023 2:49:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-4/tp.git (master)... -Oct 07, 2023 2:36:50 PM reposense.report.ReportGenerator analyzeRepo +Oct 07, 2023 2:49:19 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-4/tp.git (master) completed! -Oct 07, 2023 2:36:50 PM reposense.report.ReportGenerator analyzeRepos -INFO: [5/17] Analyzing https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... -Oct 07, 2023 2:36:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... -Oct 07, 2023 2:36:50 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-1/tp.git (master) completed! -Oct 07, 2023 2:36:50 PM reposense.report.ReportGenerator analyzeRepos -INFO: [6/17] Analyzing https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... -Oct 07, 2023 2:36:50 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-F11-3/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... -Oct 07, 2023 2:36:50 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-W12-1/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:19 PM reposense.report.ReportGenerator analyzeRepos +INFO: [5/17] Analyzing https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... +Oct 07, 2023 2:49:19 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-T18-1/tp.git (master) does not contain a standalone config file. +Oct 07, 2023 2:49:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... +Oct 07, 2023 2:49:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-3/tp.git completed! +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-2/tp.git completed! -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-W12-3/tp.git completed! -Oct 07, 2023 2:36:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-4/tp.git... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner spawnCloneProcess +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-F11-1/tp.git... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113T-W11-1/tp.git completed! -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-4/tp.git to complete... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner spawnCloneProcess +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-F11-2/tp.git... -Oct 07, 2023 2:36:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-F11-1/tp.git to complete... -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-3/tp.git completed! -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-F11-2/tp.git to complete... -Oct 07, 2023 2:36:51 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... -Oct 07, 2023 2:36:51 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-F11-3/tp.git (master) completed! -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner spawnCloneProcess +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-F11-1/tp.git to complete... +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113T-W11-1/tp.git completed! +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T17-2/tp.git... -Oct 07, 2023 2:36:51 PM reposense.report.ReportGenerator analyzeRepos -INFO: [7/17] Analyzing https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T17-2/tp.git to complete... -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... +Oct 07, 2023 2:49:19 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-3/tp.git (master) completed! +Oct 07, 2023 2:49:19 PM reposense.report.ReportGenerator analyzeRepos +INFO: [6/17] Analyzing https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... +Oct 07, 2023 2:49:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... +Oct 07, 2023 2:49:19 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-F11-3/tp.git (master) does not contain a standalone config file. +Oct 07, 2023 2:49:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... +Oct 07, 2023 2:49:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess WARNING: Exception met while trying to clone the repo "AY2324S1-CS2113-F11-2/tp[master]", will skip this repo. reposense.system.CommandRunnerProcessException: Error returned from command git clone --bare 'https://github.com/AY2324S1-CS2113-F11-2/tp.git' 'repos/AY2324S1-CS2113-F11-2_tp/tp_bare' on path . : Cloning into bare repository 'repos/AY2324S1-CS2113-F11-2_tp/tp_bare'... @@ -196,149 +192,153 @@ fatal: could not read Username for 'https://github.com': No such device or addre at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner spawnCloneProcess +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113T-W11-2/tp.git... -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113T-W11-2/tp.git to complete... -Oct 07, 2023 2:36:51 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-T17-3/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:51 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:19 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-1/tp.git (master) completed! +Oct 07, 2023 2:49:19 PM reposense.report.ReportGenerator analyzeRepos +INFO: [7/17] Analyzing https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-4/tp.git completed! -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-F11-1/tp.git completed! -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner spawnCloneProcess +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113T-W11-2/tp.git to complete... +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T17-1/tp.git... -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:19 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-W12-1/tp.git (master) does not contain a standalone config file. +Oct 07, 2023 2:49:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... +Oct 07, 2023 2:49:19 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T17-1/tp.git to complete... -Oct 07, 2023 2:36:51 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-2/tp.git completed! -Oct 07, 2023 2:36:51 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... -Oct 07, 2023 2:36:51 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-W12-1/tp.git (master) completed! -Oct 07, 2023 2:36:51 PM reposense.report.ReportGenerator analyzeRepos +Oct 07, 2023 2:49:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-F11-3/tp.git (master) completed! +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepos INFO: [8/17] Analyzing https://github.com/AY2324S1-CS2113-W12-3/tp.git (master)... -Oct 07, 2023 2:36:51 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113T-W11-2/tp.git completed! -Oct 07, 2023 2:36:51 PM reposense.report.ReportGenerator updateRepoConfig +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-W12-3/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:51 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 07, 2023 2:49:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-3/tp.git (master)... -Oct 07, 2023 2:36:51 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-W12-3/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 07, 2023 2:49:20 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-F11-1/tp.git completed! +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-W12-3/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepo +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-W12-3/tp.git (master) completed! -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepos -INFO: [9/17] Analyzing https://github.com/AY2324S1-CS2113-T18-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator updateRepoConfig +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepos +INFO: [9/17] Analyzing https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-2/tp.git completed! +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-T18-3/tp.git (master) does not contain a standalone config file. +Oct 07, 2023 2:49:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-W12-1/tp.git (master) completed! +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepos +INFO: [10/17] Analyzing https://github.com/AY2324S1-CS2113-T18-2/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-3/tp.git (master) completed! +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepos +INFO: [11/17] Analyzing https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-T18-2/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 07, 2023 2:49:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T18-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-3/tp.git (master) completed! -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepos -INFO: [10/17] Analyzing https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator updateRepoConfig +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 07, 2023 2:49:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.RepoCloner waitForCloneProcess +Oct 07, 2023 2:49:20 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113T-W11-2/tp.git completed! +Oct 07, 2023 2:49:20 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-1/tp.git completed! -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepo +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master) completed! -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepos -INFO: [11/17] Analyzing https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-T18-3/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-2/tp.git (master) completed! -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepos +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepos INFO: [12/17] Analyzing https://github.com/AY2324S1-CS2113-T18-4/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator updateRepoConfig +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-T18-4/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 07, 2023 2:49:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T18-4/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-3/tp.git (master) completed! -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepos -INFO: [13/17] Analyzing https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-F11-1/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-2/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-2/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-4/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-2/tp.git (master) completed! +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepos +INFO: [13/17] Analyzing https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... +Oct 07, 2023 2:49:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-4/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepo +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-4/tp.git (master) completed! -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepos +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator analyzeRepos INFO: [14/17] Analyzing https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator updateRepoConfig +Oct 07, 2023 2:49:20 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-F11-1/tp.git (master) does not contain a standalone config file. +Oct 07, 2023 2:49:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... +Oct 07, 2023 2:49:21 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-T17-2/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 07, 2023 2:49:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 07, 2023 2:49:21 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... +Oct 07, 2023 2:49:21 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... +Oct 07, 2023 2:49:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepo +Oct 07, 2023 2:49:21 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-F11-1/tp.git (master) completed! -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepos +Oct 07, 2023 2:49:21 PM reposense.report.ReportGenerator analyzeRepos INFO: [15/17] Analyzing https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator updateRepoConfig +Oct 07, 2023 2:49:21 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 07, 2023 2:49:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 07, 2023 2:49:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepo +Oct 07, 2023 2:49:21 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-2/tp.git (master) completed! -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepos +Oct 07, 2023 2:49:21 PM reposense.report.ReportGenerator analyzeRepos INFO: [16/17] Analyzing https://github.com/AY2324S1-CS2113-T17-1/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master) completed! -Oct 07, 2023 2:36:52 PM reposense.report.ReportGenerator updateRepoConfig +Oct 07, 2023 2:49:21 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-T17-1/tp.git (master) does not contain a standalone config file. -Oct 07, 2023 2:36:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 07, 2023 2:49:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-1/tp.git (master)... -Oct 07, 2023 2:36:53 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 07, 2023 2:49:21 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... +Oct 07, 2023 2:49:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... +Oct 07, 2023 2:49:21 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master) completed! +Oct 07, 2023 2:49:21 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-1/tp.git (master)... -Oct 07, 2023 2:36:53 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 07, 2023 2:49:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-1/tp.git (master)... -Oct 07, 2023 2:36:53 PM reposense.report.ReportGenerator analyzeRepo +Oct 07, 2023 2:49:21 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-1/tp.git (master) completed! -Oct 07, 2023 2:36:53 PM reposense.report.ReportGenerator generateReposReport +Oct 07, 2023 2:49:21 PM reposense.report.ReportGenerator generateReposReport INFO: The report is generated at /home/runner/work/tp-dashboard/tp-dashboard/reposense-report -Oct 07, 2023 2:36:53 PM reposense.RepoSense main -INFO: Elapsed processing time: 5.04 second(s) +Oct 07, 2023 2:49:21 PM reposense.RepoSense main +INFO: Elapsed processing time: 4.84 second(s) diff --git a/summary.json b/summary.json index c80b2df..0e75b43 100644 --- a/summary.json +++ b/summary.json @@ -1 +1 @@ -{"repoSenseVersion":"7bc056ab65","reportGeneratedTime":"Sat Oct 7 22:36:48 2023 UTC+08:00","reportGenerationTime":" 5.01 second(s)","zoneId":"UTC+08:00","reportTitle":"CS2113 tP Code Dashboard","repos":[{"location":{"location":"https://github.com/AY2324S1-CS2113T-W11-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113T-W11-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113T-W11-1/tp[master]","outputFolderName":"AY2324S1-CS2113T-W11-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113T-W11-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113T-W11-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113T-W11-2/tp[master]","outputFolderName":"AY2324S1-CS2113T-W11-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-1/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-2/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-3/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-4/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-1/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-2/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-3/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-4/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-1/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-2/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-3/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-4/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-F11-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-F11-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-F11-1/tp[master]","outputFolderName":"AY2324S1-CS2113-F11-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-F11-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-F11-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-F11-3/tp[master]","outputFolderName":"AY2324S1-CS2113-F11-3_tp_master"}],"errorSet":[{"repoName":"AY2324S1-CS2113-F11-2/tp[master]","errorMessage":"Failed to clone from https://github.com/AY2324S1-CS2113-F11-2/tp.git"}],"sinceDate":"2023-09-22","untilDate":"2023-10-07","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":"7bc056ab65","reportGeneratedTime":"Sat Oct 7 22:49:16 2023 UTC+08:00","reportGenerationTime":" 4.80 second(s)","zoneId":"UTC+08:00","reportTitle":"CS2113 tP Code Dashboard","repos":[{"location":{"location":"https://github.com/AY2324S1-CS2113T-W11-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113T-W11-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113T-W11-1/tp[master]","outputFolderName":"AY2324S1-CS2113T-W11-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113T-W11-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113T-W11-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113T-W11-2/tp[master]","outputFolderName":"AY2324S1-CS2113T-W11-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-1/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-2/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-3/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-4/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-1/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-2/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-3/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-4/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-1/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-2/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-3/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-4/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-F11-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-F11-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-F11-1/tp[master]","outputFolderName":"AY2324S1-CS2113-F11-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-F11-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-F11-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-F11-3/tp[master]","outputFolderName":"AY2324S1-CS2113-F11-3_tp_master"}],"errorSet":[{"repoName":"AY2324S1-CS2113-F11-2/tp[master]","errorMessage":"Failed to clone from https://github.com/AY2324S1-CS2113-F11-2/tp.git"}],"sinceDate":"2023-09-22","untilDate":"2023-10-07","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"}}}