diff --git a/src/seedu/addressbook/Main.java b/src/seedu/addressbook/Main.java index fca4d5d1d..3925fbb19 100644 --- a/src/seedu/addressbook/Main.java +++ b/src/seedu/addressbook/Main.java @@ -14,7 +14,7 @@ public class Main extends Application implements Stoppable{ /** Version info of the program. */ - public static final String VERSION = "AddressBook Level 3 - Version 1.0"; + public static final String VERSION = "AddessBook Level 3 - Version 1.0"; private Gui gui; diff --git a/src/seedu/addressbook/commands/AddCommand.java b/src/seedu/addressbook/commands/AddCommand.java index b0f202d42..8d5e4ef33 100644 --- a/src/seedu/addressbook/commands/AddCommand.java +++ b/src/seedu/addressbook/commands/AddCommand.java @@ -67,4 +67,8 @@ public CommandResult execute() { } } + @Override + public boolean isMutating() { + return true; + } } diff --git a/src/seedu/addressbook/commands/ClearCommand.java b/src/seedu/addressbook/commands/ClearCommand.java index 330146aaa..f03cc01a7 100644 --- a/src/seedu/addressbook/commands/ClearCommand.java +++ b/src/seedu/addressbook/commands/ClearCommand.java @@ -16,4 +16,9 @@ public CommandResult execute() { addressBook.clear(); return new CommandResult(MESSAGE_SUCCESS); } + + @Override + public boolean isMutating() { + return true; + } } diff --git a/src/seedu/addressbook/commands/Command.java b/src/seedu/addressbook/commands/Command.java index a54cbcb5b..ed97f0ce9 100644 --- a/src/seedu/addressbook/commands/Command.java +++ b/src/seedu/addressbook/commands/Command.java @@ -70,4 +70,8 @@ public int getTargetIndex() { public void setTargetIndex(int targetIndex) { this.targetIndex = targetIndex; } + + public boolean isMutating() { + return true; + } } diff --git a/src/seedu/addressbook/commands/DeleteCommand.java b/src/seedu/addressbook/commands/DeleteCommand.java index 1dd78f85e..00b8facf9 100644 --- a/src/seedu/addressbook/commands/DeleteCommand.java +++ b/src/seedu/addressbook/commands/DeleteCommand.java @@ -39,4 +39,8 @@ public CommandResult execute() { } } + @Override + public boolean isMutating() { + return true; + } } diff --git a/src/seedu/addressbook/commands/ExitCommand.java b/src/seedu/addressbook/commands/ExitCommand.java index 0585451f1..d0c84ce23 100644 --- a/src/seedu/addressbook/commands/ExitCommand.java +++ b/src/seedu/addressbook/commands/ExitCommand.java @@ -16,4 +16,8 @@ public CommandResult execute() { return new CommandResult(MESSAGE_EXIT_ACKNOWEDGEMENT); } + @Override + public boolean isMutating() { + return false; + } } diff --git a/src/seedu/addressbook/commands/FindCommand.java b/src/seedu/addressbook/commands/FindCommand.java index c8e9a380f..b64688115 100644 --- a/src/seedu/addressbook/commands/FindCommand.java +++ b/src/seedu/addressbook/commands/FindCommand.java @@ -36,6 +36,11 @@ public CommandResult execute() { return new CommandResult(getMessageForPersonListShownSummary(personsFound), personsFound); } + @Override + public boolean isMutating() { + return false; + } + /** * Retrieve all persons in the address book whose names contain some of the specified keywords. * diff --git a/src/seedu/addressbook/commands/HelpCommand.java b/src/seedu/addressbook/commands/HelpCommand.java index ef2ed7d0e..ac40681e6 100644 --- a/src/seedu/addressbook/commands/HelpCommand.java +++ b/src/seedu/addressbook/commands/HelpCommand.java @@ -25,4 +25,9 @@ public class HelpCommand extends Command { public CommandResult execute() { return new CommandResult(MESSAGE_ALL_USAGES); } + + @Override + public boolean isMutating() { + return false; + } } diff --git a/src/seedu/addressbook/commands/IncorrectCommand.java b/src/seedu/addressbook/commands/IncorrectCommand.java index 81abba7a1..b225fea14 100644 --- a/src/seedu/addressbook/commands/IncorrectCommand.java +++ b/src/seedu/addressbook/commands/IncorrectCommand.java @@ -17,4 +17,9 @@ public CommandResult execute() { return new CommandResult(feedbackToUser); } + @Override + public boolean isMutating() { + return false; + } + } diff --git a/src/seedu/addressbook/commands/ListCommand.java b/src/seedu/addressbook/commands/ListCommand.java index cb604a8e9..a53ac2c5c 100644 --- a/src/seedu/addressbook/commands/ListCommand.java +++ b/src/seedu/addressbook/commands/ListCommand.java @@ -22,4 +22,9 @@ public CommandResult execute() { List allPersons = addressBook.getAllPersons().immutableListView(); return new CommandResult(getMessageForPersonListShownSummary(allPersons), allPersons); } + + @Override + public boolean isMutating() { + return false; + } } diff --git a/src/seedu/addressbook/commands/ViewAllCommand.java b/src/seedu/addressbook/commands/ViewAllCommand.java index ed2c16e83..eddb21ca9 100644 --- a/src/seedu/addressbook/commands/ViewAllCommand.java +++ b/src/seedu/addressbook/commands/ViewAllCommand.java @@ -37,4 +37,9 @@ public CommandResult execute() { return new CommandResult(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } } + + @Override + public boolean isMutating() { + return false; + } } diff --git a/src/seedu/addressbook/commands/ViewCommand.java b/src/seedu/addressbook/commands/ViewCommand.java index 1058c4b52..85c49c5f6 100644 --- a/src/seedu/addressbook/commands/ViewCommand.java +++ b/src/seedu/addressbook/commands/ViewCommand.java @@ -38,4 +38,8 @@ public CommandResult execute() { } } + @Override + public boolean isMutating() { + return false; + } } diff --git a/src/seedu/addressbook/logic/Logic.java b/src/seedu/addressbook/logic/Logic.java index 17afd61a0..93451f705 100644 --- a/src/seedu/addressbook/logic/Logic.java +++ b/src/seedu/addressbook/logic/Logic.java @@ -85,7 +85,9 @@ public CommandResult execute(String userCommandText) throws Exception { private CommandResult execute(Command command) throws Exception { command.setData(addressBook, lastShownList); CommandResult result = command.execute(); - storage.save(addressBook); + if (command.isMutating()){ + storage.save(addressBook); + } return result; } diff --git a/test/java/seedu/addressbook/logic/LogicTest.java b/test/java/seedu/addressbook/logic/LogicTest.java index 7efa921ca..70f1eff9c 100644 --- a/test/java/seedu/addressbook/logic/LogicTest.java +++ b/test/java/seedu/addressbook/logic/LogicTest.java @@ -12,6 +12,7 @@ import seedu.addressbook.data.person.*; import seedu.addressbook.data.tag.Tag; import seedu.addressbook.data.tag.UniqueTagList; +import seedu.addressbook.parser.Parser; import seedu.addressbook.storage.StorageFile; import java.util.*; @@ -90,7 +91,9 @@ private void assertCommandBehavior(String inputCommand, //Confirm the state of data is as expected assertEquals(expectedAddressBook, addressBook); assertEquals(lastShownList, logic.getLastShownList()); - assertEquals(addressBook, saveFile.load()); + if (new Parser().parseCommand(inputCommand).isMutating()){ + assertEquals(addressBook, saveFile.load()); + } }