Skip to content

Commit

Permalink
Replace Ui class with MessageGenerator class
Browse files Browse the repository at this point in the history
  • Loading branch information
NoyaRoeT committed Feb 10, 2023
1 parent 8fc8d40 commit 25aa536
Show file tree
Hide file tree
Showing 12 changed files with 114 additions and 95 deletions.
2 changes: 0 additions & 2 deletions src/main/java/duke/Deadline.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package duke;

import duke.exception.DukeException;

import java.time.LocalDateTime;
import java.time.format.DateTimeParseException;
import java.util.Scanner;

/**
* Represents a task with a deadline date. Inherits from the Task class.
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/duke/Duke.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public class Duke {
public Storage storage;

public String getStartUpMsg() {
return Ui.genWelcomeMsg();
return MessageGenerator.genWelcomeMsg();
}

public void loadTaskList(String path) {
Expand Down
75 changes: 75 additions & 0 deletions src/main/java/duke/MessageGenerator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package duke;


/**
* Class responsible for Duke's response messages.
*/
public class MessageGenerator {

/**
* get Duke's welcome message that plays on startup.
*/
public static String genWelcomeMsg() {
return "What's up? \uD83D\uDE00";
}

public static String genByeMsg() {
return "Goodbye";
}

public static String genAddedTaskMsg(String task) {
return "added a " + task;
}

public static String genMissingTaskDescMsg(String task) {
return "You're missing a description for your " + task;
}

public static String genMissingFieldMsg(String field) {
return "You're missing a " + field + " field";
}

public static String genDateTimeParseErrorMsg() {
return "Couldn't understand the given date and time";
}

public static String genDeleteTaskMsg(String task) {
return "Deleted " + task;
}

public static String genTaskDoesNotExistMsg(String number) {
return "A task with number " + number + " does not exist.";
}

public static String genNotANumberMsg() {
return "We needed a number here";
}

public static String genFindTasksMsg(String tasks) {
if (tasks.isEmpty()) {
return "Didn't find anything";
}

return "Here's what I found:\n" + tasks;
}

public static String genShowTasksMsg(String tasks) {
if (tasks.isEmpty()) {
return "You don't have any tasks... Try adding some.";
}

return "Here's your tasks:\n" + tasks;
}

public static String genMarkorUnmarkTaskMsg(String task, boolean isMark) {
if (isMark) {
return "Marked this task: " + task;
}

return "Unmarked this task: " + task;
}

public static String genUnknownCommandMsg() {
return "I don't know what that means";
}
}
40 changes: 21 additions & 19 deletions src/main/java/duke/Parser.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public static Command parse(String commandString, TaskList taskList) {
case "find":
return handleFind(commandStream, taskList);
default:
return new ErrorCommand("unknown command");
return new ErrorCommand(MessageGenerator.genUnknownCommandMsg());
}
}

Expand All @@ -57,61 +57,63 @@ private static Command handleList(TaskList taskList) {

private static Command handleMark(Scanner commandStream, TaskList taskList) {
if (!commandStream.hasNext()) {
return new ErrorCommand("no task number");
return new ErrorCommand(MessageGenerator.genMissingFieldMsg("task number"));
}

try {
int taskIdx = Integer.parseInt(commandStream.next()) - 1;

if (!taskList.hasTask(taskIdx)) {
return new ErrorCommand("task index out of range");
return new ErrorCommand(MessageGenerator.genTaskDoesNotExistMsg(String.valueOf(taskIdx + 1)));
}

Boolean isMark = true;
boolean isMark = true;
return new MarkOrUnmarkCommand(taskIdx, taskList, isMark);

} catch (NumberFormatException e) {
return new ErrorCommand("not a valid task number");
return new ErrorCommand(MessageGenerator.genNotANumberMsg());
}

}

private static Command handleUnmark(Scanner commandStream, TaskList taskList) {
if (!commandStream.hasNext()) {
return new ErrorCommand("no task number");
return new ErrorCommand(MessageGenerator.genMissingFieldMsg("task number"));
}

try {
int taskIdx = Integer.parseInt(commandStream.next()) - 1;

if (!taskList.hasTask(taskIdx)) {
return new ErrorCommand("task index out of range");
return new ErrorCommand(MessageGenerator.genTaskDoesNotExistMsg(String.valueOf(taskIdx + 1)));
}

Boolean isMark = false;
boolean isMark = false;
return new MarkOrUnmarkCommand(taskIdx, taskList, isMark);

} catch (NumberFormatException e) {
return new ErrorCommand("not a valid task number");
return new ErrorCommand(MessageGenerator.genNotANumberMsg());
}

}


private static Command handleDelete(Scanner commandStream, TaskList taskList) {
if (!commandStream.hasNext()) {
return new ErrorCommand("no task number");
return new ErrorCommand(MessageGenerator.genMissingFieldMsg("task number"));
}

try {
int taskIdx = Integer.parseInt(commandStream.next()) - 1;

if (!taskList.hasTask(taskIdx)) {
return new ErrorCommand("task index out of range");
return new ErrorCommand(MessageGenerator.genTaskDoesNotExistMsg(String.valueOf(taskIdx + 1)));
}

return new DeleteCommand(taskIdx, taskList);

} catch (NumberFormatException e) {
return new ErrorCommand("not a valid task number");
return new ErrorCommand(MessageGenerator.genNotANumberMsg());
}
}

Expand All @@ -135,11 +137,11 @@ private static Command handleDeadline(Scanner stringStream, TaskList taskList) {
}

if (taskDesc.isEmpty()) {
return new ErrorCommand("task description is empty");
return new ErrorCommand(MessageGenerator.genMissingTaskDescMsg("deadline"));
}

if (!foundBy || byString.isEmpty()) {
return new ErrorCommand("by field is empty");
return new ErrorCommand(MessageGenerator.genMissingFieldMsg("/by"));
}

byString = byString.trim();
Expand All @@ -152,7 +154,7 @@ private static Command handleDeadline(Scanner stringStream, TaskList taskList) {
return new DeadlineCommand(taskDesc, by, hasTime, taskList);

} catch (DateTimeParseException e) {
return new ErrorCommand("could not parse datetime");
return new ErrorCommand(MessageGenerator.genDateTimeParseErrorMsg());
}

}
Expand Down Expand Up @@ -186,11 +188,11 @@ private static Command handleEvent(Scanner stringStream, TaskList taskList) {
}

if (taskDesc.isEmpty()) {
return new ErrorCommand("task desc is empty");
return new ErrorCommand(MessageGenerator.genMissingTaskDescMsg("event"));
}

if (!foundFrom || !foundTo || fromString.isEmpty() || toString.isEmpty()) {
return new ErrorCommand("from or to fields are empty");
return new ErrorCommand(MessageGenerator.genMissingFieldMsg("/from or /to"));
}

fromString = fromString.trim();
Expand All @@ -210,7 +212,7 @@ private static Command handleEvent(Scanner stringStream, TaskList taskList) {
return new EventCommand(taskDesc, from, fromHasTime, to, toHasTime, taskList);

} catch (DateTimeParseException e) {
return new ErrorCommand("could not parse datetime");
return new ErrorCommand(MessageGenerator.genDateTimeParseErrorMsg());
}
}

Expand All @@ -233,7 +235,7 @@ private static Command handleToDo(Scanner stringStream, TaskList taskList) {

private static Command handleFind(Scanner stringStream, TaskList taskList) {
if (!stringStream.hasNext()) {
return new ErrorCommand("missing find keyword");
return new ErrorCommand(MessageGenerator.genMissingFieldMsg("keyword"));
}

String keyword = stringStream.next();
Expand Down
63 changes: 0 additions & 63 deletions src/main/java/duke/Ui.java

This file was deleted.

3 changes: 2 additions & 1 deletion src/main/java/duke/command/ByeCommand.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package duke.command;

import duke.DukeResponse;
import duke.MessageGenerator;

public class ByeCommand extends Command {

@Override
public DukeResponse execute() {
return new DukeResponse("goodbye", true);
return new DukeResponse(MessageGenerator.genByeMsg(), true);
}
}
3 changes: 2 additions & 1 deletion src/main/java/duke/command/DeadlineCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import duke.Deadline;
import duke.DukeResponse;
import duke.MessageGenerator;
import duke.TaskList;

import java.time.LocalDateTime;
Expand All @@ -24,6 +25,6 @@ public DeadlineCommand(String taskDesc, LocalDateTime by, Boolean hasTime, TaskL
public DukeResponse execute() {
Deadline deadline = new Deadline(taskDesc, by, hasTime);
taskList.add(deadline);
return new DukeResponse("added deadline");
return new DukeResponse(MessageGenerator.genAddedTaskMsg("deadline"));
}
}
6 changes: 4 additions & 2 deletions src/main/java/duke/command/DeleteCommand.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package duke.command;

import duke.DukeResponse;
import duke.MessageGenerator;
import duke.Task;
import duke.TaskList;

public class DeleteCommand extends Command {
Expand All @@ -15,7 +17,7 @@ public DeleteCommand(Integer taskIdx, TaskList taskList) {

@Override
public DukeResponse execute() {
taskList.remove(taskIdx);
return new DukeResponse("deleted task");
Task task = taskList.remove(taskIdx);
return new DukeResponse(MessageGenerator.genDeleteTaskMsg(task.toString()));
}
}
3 changes: 2 additions & 1 deletion src/main/java/duke/command/EventCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import duke.DukeResponse;
import duke.Event;
import duke.MessageGenerator;
import duke.TaskList;

import java.time.LocalDateTime;
Expand Down Expand Up @@ -29,6 +30,6 @@ public EventCommand(String taskDesc, LocalDateTime from, Boolean fromHasTime, Lo
public DukeResponse execute() {
Event event = new Event(taskDesc, from, fromHasTime, to, toHasTime);
taskList.add(event);
return new DukeResponse("added event");
return new DukeResponse(MessageGenerator.genAddedTaskMsg("event"));
}
}
4 changes: 2 additions & 2 deletions src/main/java/duke/command/FindCommand.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package duke.command;

import duke.DukeResponse;
import duke.MessageGenerator;
import duke.Task;
import duke.TaskList;

Expand All @@ -26,7 +27,6 @@ public DukeResponse execute() {
}
}

ListCommand listCommand = new ListCommand(tasksOfInterest);
return new DukeResponse("Here are your results\n" + tasksOfInterest.toString());
return new DukeResponse(MessageGenerator.genFindTasksMsg(tasksOfInterest.toString()));
}
}
3 changes: 2 additions & 1 deletion src/main/java/duke/command/ListCommand.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package duke.command;

import duke.DukeResponse;
import duke.MessageGenerator;
import duke.TaskList;

public class ListCommand extends Command{
Expand All @@ -14,6 +15,6 @@ public ListCommand(TaskList taskList) {

@Override
public DukeResponse execute() {
return new DukeResponse(taskList.toString());
return new DukeResponse(MessageGenerator.genShowTasksMsg(taskList.toString()));
}
}
Loading

0 comments on commit 25aa536

Please sign in to comment.