Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions data/duke.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
T | true | eat |
E | false | meeting | 1pm
D | false | test | 3pm
E | false | dinner | 6pm
D | true | wakeup | today
T | false | live |
21 changes: 21 additions & 0 deletions src/main/java/Command/ByeCommand.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package Command;

import Storage.Storage;
import TaskManager.TaskManager;
import Ui.Ui;

import java.io.IOException;

public class ByeCommand extends Command {
@Override
public void executeCommand(TaskManager taskManager, Ui ui, Storage storage) {

ui.bidGoodbye();
storage.saveToFile(taskManager.getTasks());
}

@Override
public boolean isExit(){
return true;
}
}
13 changes: 13 additions & 0 deletions src/main/java/Command/Command.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package Command;

import Storage.Storage;
import Ui.Ui;
import TaskManager.TaskManager;

public abstract class Command {

public abstract void executeCommand(TaskManager taskManager, Ui ui, Storage storage);
public boolean isExit(){
return false;
}
}
20 changes: 20 additions & 0 deletions src/main/java/Command/DeleteTaskCommand.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package Command;


import Storage.Storage;
import TaskManager.TaskManager;
import Ui.Ui;

public class DeleteTaskCommand extends Command{
private final String index;

public DeleteTaskCommand(String index){
this.index = index;
}

@Override
public void executeCommand(TaskManager taskManager, Ui ui, Storage storage) {
int num = Integer.parseInt(index);
TaskManager.Delete(num);
}
}
20 changes: 20 additions & 0 deletions src/main/java/Command/DoneCommand.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package Command;

import Storage.Storage;
import Ui.Ui;
import TaskManager.TaskManager;

public class DoneCommand extends Command {
private final int index;

public DoneCommand(String index)
{
int num = Integer.parseInt(index);
this.index = num;
}

@Override
public void executeCommand(TaskManager taskManager, Ui ui, Storage storage) {
taskManager.markDone(index);
}
}
23 changes: 23 additions & 0 deletions src/main/java/Command/FindCommand.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package Command;

import Storage.Storage;
import TaskManager.TaskManager;
import Ui.Ui;

import java.io.IOException;

public class FindCommand extends Command{
private final String description;

public FindCommand(String description)
{
this.description = description;

}

@Override
public void executeCommand(TaskManager taskManager, Ui ui, Storage storage) {
TaskManager.Find(description);
}
}

14 changes: 14 additions & 0 deletions src/main/java/Command/ListCommand.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package Command;

import Storage.Storage;
import Ui.Ui;
import TaskManager.TaskManager;


public class ListCommand extends Command{
@Override
public void executeCommand(TaskManager taskManager, Ui ui, Storage storage){
taskManager.printList();
}
}

20 changes: 20 additions & 0 deletions src/main/java/Command/NewTaskCommand.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package Command;

import Storage.Storage;
import TaskManager.TaskManager;
import Ui.Ui;

public class NewTaskCommand extends Command {
private final String taskType;
private final String taskDescription;

public NewTaskCommand(String taskType, String taskDescription) {
this.taskType = taskType;
this.taskDescription = taskDescription;
}

@Override
public void executeCommand(TaskManager taskManager, Ui ui, Storage storage){
taskManager.addTask(taskType, taskDescription);
}
}
13 changes: 13 additions & 0 deletions src/main/java/Command/SaveCommand.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package Command;

import Storage.Storage;
import Ui.Ui;
import TaskManager.TaskManager;


public class SaveCommand extends Command{
@Override
public void executeCommand(TaskManager taskManager, Ui ui, Storage Storage) {
Storage.saveToFile(taskManager.getTasks());
}
}
61 changes: 55 additions & 6 deletions src/main/java/Duke.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,59 @@
import Ui.Ui;
import Command.Command;
import Parser.Parser;
import Storage.Storage;
import TaskManager.TaskManager;

import exception.*;

import java.lang.String;
import java.io.IOException;


public class Duke {

private static final String FILE_PATH = "data/duke.txt";
private final Ui ui;
private final Storage storage;
private TaskManager taskManager;

public Duke() {
ui = new Ui();
storage = new Storage(FILE_PATH);

try {
storage.checkFileExists(FILE_PATH);
taskManager = new TaskManager(storage.fileLoad());
Ui.printLoadSuccessMessage();
} catch (IOException e) {
Ui.printLoadErrorMessage();
}
Ui.greet();
}

public void run() {
boolean isExit= false;
Parser parser = new Parser();

do {
String line = ui.readCommand();
try {
Command command = parser.parseCommand(line);
command.executeCommand(taskManager, ui, storage);
isExit= command.isExit();
} catch (InvalidCommandException e) {
Ui.printInvalidCommandMessage();
} catch (InvalidIndexException e) {
Ui.printErrorNoNumMessage();
} catch (InvalidArgumentException e){
Ui.printErrorNoDescriptionMessage();
} catch (NullPointerException e){
}
} while (!isExit);
}

public static void main(String[] args) {
String logo = " ____ _ \n"
+ "| _ \\ _ _| | _____ \n"
+ "| | | | | | | |/ / _ \\\n"
+ "| |_| | |_| | < __/\n"
+ "|____/ \\__,_|_|\\_\\___|\n";
System.out.println("Hello from\n" + logo);
new Duke().run();
}
}

3 changes: 3 additions & 0 deletions src/main/java/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: Duke

49 changes: 49 additions & 0 deletions src/main/java/Parser/Parser.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package Parser;

import Command.*;
import exception.InvalidArgumentException;
import exception.InvalidCommandException;
import exception.InvalidIndexException;

/***
Handle user commands and sort accordingly using command object
***/
public class Parser {
public Command parseCommand(String line) throws InvalidCommandException, InvalidIndexException, InvalidArgumentException {
String[] words = line.split(" ");
Command command = null;
switch (words[0]) {
case "bye":
command = new ByeCommand();
break;
case "list":
command = new ListCommand();
break;
case "done":
command = new DoneCommand(line.substring(5));
break;
case "delete":
command = new DeleteTaskCommand(line.substring(7));
break;
case "save":
command = new SaveCommand();
break;
case "find":
command = new FindCommand(line.substring(5));
break;
case "todo":

case "event":

case "deadline":
try{
command = new NewTaskCommand(words[0], line);
} catch(IndexOutOfBoundsException e){
throw new InvalidArgumentException();
} break;
default:
throw new InvalidCommandException();
}
return command;
}
}
Loading