diff --git a/src/main/java/seedu/address/logic/commands/DeleteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteCommand.java index 360303a8fc66..d4d3ca82369b 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteCommand.java @@ -6,7 +6,6 @@ import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.person.Person; -import seedu.address.model.person.exceptions.PersonNotFoundException; /** * Deletes a person identified using it's displayed index from the address book. @@ -37,14 +36,8 @@ public CommandResult execute() throws CommandException { } Person personToDelete = lastShownList.get(targetIndex.getZeroBased()); - - try { - model.deletePerson(personToDelete); - model.commitAddressBook(); - } catch (PersonNotFoundException pnfe) { - throw new AssertionError("The target person cannot be missing", pnfe); - } - + model.deletePerson(personToDelete); + model.commitAddressBook(); return new CommandResult(String.format(MESSAGE_DELETE_PERSON_SUCCESS, personToDelete)); } diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 5d79efe7e246..f13f7d1c69e9 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -23,7 +23,6 @@ import seedu.address.model.person.Name; import seedu.address.model.person.Person; import seedu.address.model.person.Phone; -import seedu.address.model.person.exceptions.PersonNotFoundException; import seedu.address.model.tag.Tag; /** @@ -80,11 +79,7 @@ public CommandResult execute() throws CommandException { throw new CommandException(MESSAGE_DUPLICATE_PERSON); } - try { - model.updatePerson(personToEdit, editedPerson); - } catch (PersonNotFoundException pnfe) { - throw new AssertionError("The target person cannot be missing", pnfe); - } + model.updatePerson(personToEdit, editedPerson); model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); model.commitAddressBook(); return new CommandResult(String.format(MESSAGE_EDIT_PERSON_SUCCESS, editedPerson)); diff --git a/src/main/java/seedu/address/model/AddressBook.java b/src/main/java/seedu/address/model/AddressBook.java index 2c4c06ddbb28..0c9a902a8843 100644 --- a/src/main/java/seedu/address/model/AddressBook.java +++ b/src/main/java/seedu/address/model/AddressBook.java @@ -7,7 +7,6 @@ import javafx.collections.ObservableList; import seedu.address.model.person.Person; import seedu.address.model.person.UniquePersonList; -import seedu.address.model.person.exceptions.PersonNotFoundException; /** * Wraps all data at the address-book level @@ -77,11 +76,10 @@ public void addPerson(Person p) { /** * Replaces the given person {@code target} in the list with {@code editedPerson}. + * {@code target} must exist in the address book. * The person identity of {@code editedPerson} must not be the same as another existing person in the address book. - * - * @throws PersonNotFoundException if {@code target} could not be found in the list. */ - public void updatePerson(Person target, Person editedPerson) throws PersonNotFoundException { + public void updatePerson(Person target, Person editedPerson) { requireNonNull(editedPerson); persons.setPerson(target, editedPerson); @@ -89,9 +87,9 @@ public void updatePerson(Person target, Person editedPerson) throws PersonNotFou /** * Removes {@code key} from this {@code AddressBook}. - * @throws PersonNotFoundException if the {@code key} is not in this {@code AddressBook}. + * {@code key} must exist in the address book. */ - public void removePerson(Person key) throws PersonNotFoundException { + public void removePerson(Person key) { persons.remove(key); } diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index fe6ad8333305..ac4521f33199 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -4,7 +4,6 @@ import javafx.collections.ObservableList; import seedu.address.model.person.Person; -import seedu.address.model.person.exceptions.PersonNotFoundException; /** * The API of the Model component. @@ -24,8 +23,11 @@ public interface Model { */ boolean hasPerson(Person person); - /** Deletes the given person. */ - void deletePerson(Person target) throws PersonNotFoundException; + /** + * Deletes the given person. + * The person must exist in the address book. + */ + void deletePerson(Person target); /** * Adds the given person. @@ -35,11 +37,10 @@ public interface Model { /** * Replaces the given person {@code target} with {@code editedPerson}. + * {@code target} must exist in the address book. * The person identity of {@code editedPerson} must not be the same as another existing person in the address book. - * - * @throws PersonNotFoundException if {@code target} could not be found in the list. */ - void updatePerson(Person target, Person editedPerson) throws PersonNotFoundException; + void updatePerson(Person target, Person editedPerson); /** Returns an unmodifiable view of the filtered person list */ ObservableList getFilteredPersonList(); diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 913cb6864377..b6063a769ff9 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -13,7 +13,6 @@ import seedu.address.commons.core.LogsCenter; import seedu.address.commons.events.model.AddressBookChangedEvent; import seedu.address.model.person.Person; -import seedu.address.model.person.exceptions.PersonNotFoundException; /** * Represents the in-memory model of the address book data. @@ -65,7 +64,7 @@ public synchronized boolean hasPerson(Person person) { } @Override - public synchronized void deletePerson(Person target) throws PersonNotFoundException { + public synchronized void deletePerson(Person target) { versionedAddressBook.removePerson(target); indicateAddressBookChanged(); } @@ -78,7 +77,7 @@ public synchronized void addPerson(Person person) { } @Override - public void updatePerson(Person target, Person editedPerson) throws PersonNotFoundException { + public void updatePerson(Person target, Person editedPerson) { requireAllNonNull(target, editedPerson); versionedAddressBook.updatePerson(target, editedPerson); diff --git a/src/main/java/seedu/address/model/person/UniquePersonList.java b/src/main/java/seedu/address/model/person/UniquePersonList.java index 71dc1043651e..65840f3fb0c2 100644 --- a/src/main/java/seedu/address/model/person/UniquePersonList.java +++ b/src/main/java/seedu/address/model/person/UniquePersonList.java @@ -48,11 +48,10 @@ public void add(Person toAdd) { /** * Replaces the person {@code target} in the list with {@code editedPerson}. + * {@code target} must exist in the list. * The person identity of {@code editedPerson} must not be the same as another existing person in the list. - * - * @throws PersonNotFoundException if {@code target} could not be found in the list. */ - public void setPerson(Person target, Person editedPerson) throws PersonNotFoundException { + public void setPerson(Person target, Person editedPerson) { requireNonNull(editedPerson); int index = internalList.indexOf(target); @@ -69,10 +68,9 @@ public void setPerson(Person target, Person editedPerson) throws PersonNotFoundE /** * Removes the equivalent person from the list. - * - * @throws PersonNotFoundException if no such person could be found in the list. + * The person must exist in the list. */ - public void remove(Person toRemove) throws PersonNotFoundException { + public void remove(Person toRemove) { requireNonNull(toRemove); if (!internalList.remove(toRemove)) { throw new PersonNotFoundException(); diff --git a/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java b/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java index f757e25f5566..fa764426ca73 100644 --- a/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java +++ b/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java @@ -3,4 +3,4 @@ /** * Signals that the operation is unable to find the specified person. */ -public class PersonNotFoundException extends Exception {} +public class PersonNotFoundException extends RuntimeException {} diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 32964d022a42..870797d66d83 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -19,7 +19,6 @@ import seedu.address.model.Model; import seedu.address.model.person.NameContainsKeywordsPredicate; import seedu.address.model.person.Person; -import seedu.address.model.person.exceptions.PersonNotFoundException; import seedu.address.testutil.EditPersonDescriptorBuilder; /** @@ -127,12 +126,8 @@ public static void showPersonAtIndex(Model model, Index targetIndex) { */ public static void deleteFirstPerson(Model model) { Person firstPerson = model.getFilteredPersonList().get(0); - try { - model.deletePerson(firstPerson); - model.commitAddressBook(); - } catch (PersonNotFoundException pnfe) { - throw new AssertionError("Person in filtered list must exist in model.", pnfe); - } + model.deletePerson(firstPerson); + model.commitAddressBook(); } /** diff --git a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java index dab1a682a43e..a25f3b30a98b 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java @@ -31,7 +31,7 @@ public class DeleteCommandTest { private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); @Test - public void execute_validIndexUnfilteredList_success() throws Exception { + public void execute_validIndexUnfilteredList_success() { Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); DeleteCommand deleteCommand = prepareCommand(INDEX_FIRST_PERSON); @@ -53,7 +53,7 @@ public void execute_invalidIndexUnfilteredList_throwsCommandException() { } @Test - public void execute_validIndexFilteredList_success() throws Exception { + public void execute_validIndexFilteredList_success() { showPersonAtIndex(model, INDEX_FIRST_PERSON); Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); diff --git a/src/test/java/seedu/address/logic/commands/EditCommandTest.java b/src/test/java/seedu/address/logic/commands/EditCommandTest.java index 06612527d891..27c2947b591a 100644 --- a/src/test/java/seedu/address/logic/commands/EditCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/EditCommandTest.java @@ -39,7 +39,7 @@ public class EditCommandTest { private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); @Test - public void execute_allFieldsSpecifiedUnfilteredList_success() throws Exception { + public void execute_allFieldsSpecifiedUnfilteredList_success() { Person editedPerson = new PersonBuilder().build(); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); EditCommand editCommand = prepareCommand(INDEX_FIRST_PERSON, descriptor); @@ -54,7 +54,7 @@ public void execute_allFieldsSpecifiedUnfilteredList_success() throws Exception } @Test - public void execute_someFieldsSpecifiedUnfilteredList_success() throws Exception { + public void execute_someFieldsSpecifiedUnfilteredList_success() { Index indexLastPerson = Index.fromOneBased(model.getFilteredPersonList().size()); Person lastPerson = model.getFilteredPersonList().get(indexLastPerson.getZeroBased()); @@ -89,7 +89,7 @@ public void execute_noFieldSpecifiedUnfilteredList_success() { } @Test - public void execute_filteredList_success() throws Exception { + public void execute_filteredList_success() { showPersonAtIndex(model, INDEX_FIRST_PERSON); Person personInFilteredList = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); diff --git a/src/test/java/systemtests/DeleteCommandSystemTest.java b/src/test/java/systemtests/DeleteCommandSystemTest.java index 97d42add1209..29fbb5fc3930 100644 --- a/src/test/java/systemtests/DeleteCommandSystemTest.java +++ b/src/test/java/systemtests/DeleteCommandSystemTest.java @@ -19,7 +19,6 @@ import seedu.address.logic.commands.UndoCommand; import seedu.address.model.Model; import seedu.address.model.person.Person; -import seedu.address.model.person.exceptions.PersonNotFoundException; public class DeleteCommandSystemTest extends AddressBookSystemTest { @@ -118,11 +117,7 @@ public void delete() { */ private Person removePerson(Model model, Index index) { Person targetPerson = getPerson(model, index); - try { - model.deletePerson(targetPerson); - } catch (PersonNotFoundException pnfe) { - throw new AssertionError("targetPerson is retrieved from model.", pnfe); - } + model.deletePerson(targetPerson); return targetPerson; } diff --git a/src/test/java/systemtests/EditCommandSystemTest.java b/src/test/java/systemtests/EditCommandSystemTest.java index 6547b0dbc3df..9e9e4572ddb2 100644 --- a/src/test/java/systemtests/EditCommandSystemTest.java +++ b/src/test/java/systemtests/EditCommandSystemTest.java @@ -44,7 +44,6 @@ import seedu.address.model.person.Name; import seedu.address.model.person.Person; import seedu.address.model.person.Phone; -import seedu.address.model.person.exceptions.PersonNotFoundException; import seedu.address.model.tag.Tag; import seedu.address.testutil.PersonBuilder; import seedu.address.testutil.PersonUtil; @@ -52,7 +51,7 @@ public class EditCommandSystemTest extends AddressBookSystemTest { @Test - public void edit() throws Exception { + public void edit() { Model model = getModel(); /* ----------------- Performing edit operation while an unfiltered list is being shown ---------------------- */ @@ -235,13 +234,8 @@ private void assertCommandSuccess(String command, Index toEdit, Person editedPer private void assertCommandSuccess(String command, Index toEdit, Person editedPerson, Index expectedSelectedCardIndex) { Model expectedModel = getModel(); - try { - expectedModel.updatePerson( - expectedModel.getFilteredPersonList().get(toEdit.getZeroBased()), editedPerson); - expectedModel.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); - } catch (PersonNotFoundException e) { - throw new IllegalArgumentException("editedPerson isn't found in the model.", e); - } + expectedModel.updatePerson(expectedModel.getFilteredPersonList().get(toEdit.getZeroBased()), editedPerson); + expectedModel.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); assertCommandSuccess(command, expectedModel, String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson), expectedSelectedCardIndex);