From 38088e9e19f4fb95fa3f0219ad621956a4646328 Mon Sep 17 00:00:00 2001 From: Tan Yi Xian <> Date: Thu, 27 Oct 2022 14:11:22 +0800 Subject: [PATCH 1/3] Ensure all commands uses a parser --- .../foodrem/logic/parser/FoodRemParser.java | 12 ++++---- .../ExitCommandParser.java | 29 +++++++++++++++++++ .../ResetCommandParser.java | 29 +++++++++++++++++++ .../itemcommandparser/ListCommandParser.java | 29 +++++++++++++++++++ 4 files changed, 93 insertions(+), 6 deletions(-) create mode 100644 src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ExitCommandParser.java create mode 100644 src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ResetCommandParser.java create mode 100644 src/main/java/seedu/foodrem/logic/parser/itemcommandparser/ListCommandParser.java diff --git a/src/main/java/seedu/foodrem/logic/parser/FoodRemParser.java b/src/main/java/seedu/foodrem/logic/parser/FoodRemParser.java index b6e6daa1f42..9c031323d2b 100644 --- a/src/main/java/seedu/foodrem/logic/parser/FoodRemParser.java +++ b/src/main/java/seedu/foodrem/logic/parser/FoodRemParser.java @@ -6,19 +6,19 @@ import seedu.foodrem.commons.core.Messages; import seedu.foodrem.commons.enums.CommandType; import seedu.foodrem.logic.commands.Command; -import seedu.foodrem.logic.commands.generalcommands.ExitCommand; import seedu.foodrem.logic.commands.generalcommands.HelpCommand; -import seedu.foodrem.logic.commands.generalcommands.ResetCommand; -import seedu.foodrem.logic.commands.itemcommands.ListCommand; import seedu.foodrem.logic.commands.tagcommands.ListTagCommand; import seedu.foodrem.logic.parser.exceptions.ParseException; +import seedu.foodrem.logic.parser.generalcommandparser.ExitCommandParser; import seedu.foodrem.logic.parser.generalcommandparser.HelpCommandParser; +import seedu.foodrem.logic.parser.generalcommandparser.ResetCommandParser; import seedu.foodrem.logic.parser.itemcommandparser.DecrementCommandParser; import seedu.foodrem.logic.parser.itemcommandparser.DeleteCommandParser; import seedu.foodrem.logic.parser.itemcommandparser.EditCommandParser; import seedu.foodrem.logic.parser.itemcommandparser.FilterTagCommandParser; import seedu.foodrem.logic.parser.itemcommandparser.FindCommandParser; import seedu.foodrem.logic.parser.itemcommandparser.IncrementCommandParser; +import seedu.foodrem.logic.parser.itemcommandparser.ListCommandParser; import seedu.foodrem.logic.parser.itemcommandparser.NewCommandParser; import seedu.foodrem.logic.parser.itemcommandparser.RemarkCommandParser; import seedu.foodrem.logic.parser.itemcommandparser.SortCommandParser; @@ -80,15 +80,15 @@ public Command parseCommand(String userInput) throws ParseException { case DELETE_TAG_COMMAND: return new DeleteTagCommandParser().parse(arguments); case RESET_COMMAND: - return new ResetCommand(); + return new ResetCommandParser().parse(arguments); case FIND_COMMAND: return new FindCommandParser().parse(arguments); case LIST_COMMAND: - return new ListCommand(); + return new ListCommandParser().parse(arguments); case SORT_COMMAND: return new SortCommandParser().parse(arguments); case EXIT_COMMAND: - return new ExitCommand(); + return new ExitCommandParser().parse(arguments); case HELP_COMMAND: return new HelpCommandParser().parse(arguments); case TAG_COMMAND: diff --git a/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ExitCommandParser.java b/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ExitCommandParser.java new file mode 100644 index 00000000000..f56b647de90 --- /dev/null +++ b/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ExitCommandParser.java @@ -0,0 +1,29 @@ +package seedu.foodrem.logic.parser.generalcommandparser; + +import static java.util.Objects.requireNonNull; + +import seedu.foodrem.commons.core.Messages; +import seedu.foodrem.logic.commands.generalcommands.ExitCommand; +import seedu.foodrem.logic.parser.Parser; +import seedu.foodrem.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a ExitCommand object. + */ +public class ExitCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the ExitCommand + * and returns an ExitCommand object for execution. + * + * @throws ParseException if the user input does not conform the expected format + */ + public ExitCommand parse(String args) throws ParseException { + requireNonNull(args); + + if (args.trim().isBlank()) { + throw new ParseException(String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, ExitCommand.getUsage())); + } + + return new ExitCommand(); + } +} diff --git a/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ResetCommandParser.java b/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ResetCommandParser.java new file mode 100644 index 00000000000..0292e7a256e --- /dev/null +++ b/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ResetCommandParser.java @@ -0,0 +1,29 @@ +package seedu.foodrem.logic.parser.generalcommandparser; + +import static java.util.Objects.requireNonNull; + +import seedu.foodrem.commons.core.Messages; +import seedu.foodrem.logic.commands.generalcommands.ResetCommand; +import seedu.foodrem.logic.parser.Parser; +import seedu.foodrem.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a ResetCommand object. + */ +public class ResetCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the ResetCommand + * and returns an ResetCommand object for execution. + * + * @throws ParseException if the user input does not conform the expected format + */ + public ResetCommand parse(String args) throws ParseException { + requireNonNull(args); + + if (args.trim().isBlank()) { + throw new ParseException(String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, ResetCommand.getUsage())); + } + + return new ResetCommand(); + } +} diff --git a/src/main/java/seedu/foodrem/logic/parser/itemcommandparser/ListCommandParser.java b/src/main/java/seedu/foodrem/logic/parser/itemcommandparser/ListCommandParser.java new file mode 100644 index 00000000000..daf9c26abaf --- /dev/null +++ b/src/main/java/seedu/foodrem/logic/parser/itemcommandparser/ListCommandParser.java @@ -0,0 +1,29 @@ +package seedu.foodrem.logic.parser.itemcommandparser; + +import static java.util.Objects.requireNonNull; + +import seedu.foodrem.commons.core.Messages; +import seedu.foodrem.logic.commands.itemcommands.ListCommand; +import seedu.foodrem.logic.parser.Parser; +import seedu.foodrem.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a ListCommand object. + */ +public class ListCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the ListCommand + * and returns an ListCommand object for execution. + * + * @throws ParseException if the user input does not conform the expected format + */ + public ListCommand parse(String args) throws ParseException { + requireNonNull(args); + + if (args.trim().isBlank()) { + throw new ParseException(String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, ListCommand.getUsage())); + } + + return new ListCommand(); + } +} From bc19c81accaae4ccfb135547ed7487b4e9d98c5e Mon Sep 17 00:00:00 2001 From: Tan Yi Xian <> Date: Thu, 27 Oct 2022 14:17:04 +0800 Subject: [PATCH 2/3] Fix minor bug --- .../logic/parser/generalcommandparser/ExitCommandParser.java | 2 +- .../logic/parser/generalcommandparser/ResetCommandParser.java | 2 +- .../logic/parser/itemcommandparser/ListCommandParser.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ExitCommandParser.java b/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ExitCommandParser.java index f56b647de90..63bae9e72bf 100644 --- a/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ExitCommandParser.java +++ b/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ExitCommandParser.java @@ -20,7 +20,7 @@ public class ExitCommandParser implements Parser { public ExitCommand parse(String args) throws ParseException { requireNonNull(args); - if (args.trim().isBlank()) { + if (!args.trim().isBlank()) { throw new ParseException(String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, ExitCommand.getUsage())); } diff --git a/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ResetCommandParser.java b/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ResetCommandParser.java index 0292e7a256e..129fe4b98e4 100644 --- a/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ResetCommandParser.java +++ b/src/main/java/seedu/foodrem/logic/parser/generalcommandparser/ResetCommandParser.java @@ -20,7 +20,7 @@ public class ResetCommandParser implements Parser { public ResetCommand parse(String args) throws ParseException { requireNonNull(args); - if (args.trim().isBlank()) { + if (!args.trim().isBlank()) { throw new ParseException(String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, ResetCommand.getUsage())); } diff --git a/src/main/java/seedu/foodrem/logic/parser/itemcommandparser/ListCommandParser.java b/src/main/java/seedu/foodrem/logic/parser/itemcommandparser/ListCommandParser.java index daf9c26abaf..20ba9c3c725 100644 --- a/src/main/java/seedu/foodrem/logic/parser/itemcommandparser/ListCommandParser.java +++ b/src/main/java/seedu/foodrem/logic/parser/itemcommandparser/ListCommandParser.java @@ -20,7 +20,7 @@ public class ListCommandParser implements Parser { public ListCommand parse(String args) throws ParseException { requireNonNull(args); - if (args.trim().isBlank()) { + if (!args.trim().isBlank()) { throw new ParseException(String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, ListCommand.getUsage())); } From c130a312f6d828f5ad2d37d2c6508b135eb74f8f Mon Sep 17 00:00:00 2001 From: Tan Yi Xian <> Date: Thu, 27 Oct 2022 14:21:48 +0800 Subject: [PATCH 3/3] Fix test cases --- .../java/seedu/foodrem/logic/parser/FoodRemParserTest.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/test/java/seedu/foodrem/logic/parser/FoodRemParserTest.java b/src/test/java/seedu/foodrem/logic/parser/FoodRemParserTest.java index 7da49ae3f67..af317c49e2a 100644 --- a/src/test/java/seedu/foodrem/logic/parser/FoodRemParserTest.java +++ b/src/test/java/seedu/foodrem/logic/parser/FoodRemParserTest.java @@ -57,13 +57,11 @@ public void parseCommand_help() { @Test public void parseCommand_clear() { assertTrue(parser.parseCommand(CommandType.RESET_COMMAND.getCommandWord()) instanceof ResetCommand); - assertTrue(parser.parseCommand(CommandType.RESET_COMMAND.getCommandWord() + " 3") instanceof ResetCommand); } @Test public void parseCommand_exit() { assertTrue(parser.parseCommand(CommandType.EXIT_COMMAND.getCommandWord()) instanceof ExitCommand); - assertTrue(parser.parseCommand(CommandType.EXIT_COMMAND.getCommandWord() + " 3") instanceof ExitCommand); } // Item Commands @@ -103,8 +101,6 @@ public void parseCommand_find() { @Test public void parseCommand_list() { assertTrue(parser.parseCommand(CommandType.LIST_COMMAND.getCommandWord()) instanceof ListCommand); - assertTrue(parser.parseCommand(CommandType.LIST_COMMAND.getCommandWord() - + " 1") instanceof ListCommand); } @Test