Skip to content

Commit

Permalink
no message
Browse files Browse the repository at this point in the history
  • Loading branch information
Mahidharah committed Oct 26, 2023
1 parent 9e47842 commit cb3d04f
Show file tree
Hide file tree
Showing 2 changed files with 99 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package seedu.address.logic.commands;

import seedu.address.commons.core.index.Index;
import seedu.address.commons.util.ToStringBuilder;
import seedu.address.logic.Messages;
import seedu.address.logic.commands.exceptions.CommandException;
import seedu.address.model.Model;
import seedu.address.model.client.Client;

import java.util.List;

import static java.util.Objects.requireNonNull;

/**
* Deletes a developer identified using it's displayed index from the address book.
*/
public class DeleteClientCommand extends Command {

public static final String COMMAND_WORD = "delete-client";

public static final String MESSAGE_USAGE = COMMAND_WORD
+ ": Deletes the client identified by the index number used in the displayed developer list.\n"
+ "Parameters: INDEX (must be a positive integer)\n"
+ "Example: " + COMMAND_WORD + " 1";

public static final String MESSAGE_DELETE_CLIENT_SUCCESS = "Deleted Client: %1$s";

private final Index targetIndex;

public DeleteClientCommand (Index targetIndex) {
this.targetIndex = targetIndex;
}

@Override
public CommandResult execute(Model model) throws CommandException {
requireNonNull(model);
List<Client> lastShownList = model.getFilteredClientList();

if (targetIndex.getZeroBased() >= lastShownList.size()) {
throw new CommandException(Messages.MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX);
}

Client clientToDelete = lastShownList.get(targetIndex.getZeroBased());
model.deleteClient(clientToDelete);
return new CommandResult(String.format(MESSAGE_DELETE_CLIENT_SUCCESS, Messages.format(clientToDelete)),TabIndex.Client);
}

@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}

// instanceof handles nulls
if (!(other instanceof DeleteClientCommand)) {
return false;
}

DeleteClientCommand otherDeleteClientCommand = (DeleteClientCommand) other;
return targetIndex.equals(otherDeleteClientCommand.targetIndex);
}

@Override
public String toString() {
return new ToStringBuilder(this)
.add("targetIndex", targetIndex)
.toString();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package seedu.address.logic.parser;

import seedu.address.commons.core.index.Index;
import seedu.address.logic.commands.DeleteClientCommand;
import seedu.address.logic.commands.DeleteDeveloperCommand;
import seedu.address.logic.parser.exceptions.ParseException;

import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT;

/**
* Parses input arguments and creates a new DeleteDeveloperCommand object
*/
public class DeleteClientCommandParser implements Parser<DeleteClientCommand> {

/**
* Parses the given {@code String} of arguments in the context of the DeleteDeveloperCommand
* and returns a DeleteDeveloperCommand object for execution.
* @throws ParseException if the user input does not conform the expected format
*/
public DeleteClientCommand parse(String args) throws ParseException {
try {
Index index = ParserUtil.parseIndex(args);
return new DeleteClientCommand(index);
} catch (ParseException pe) {
throw new ParseException(
String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteClientCommand.MESSAGE_USAGE), pe);
}
}

}

0 comments on commit cb3d04f

Please sign in to comment.