package org.atomnuke.cli.command.binding;
import java.util.Iterator;
import org.atomnuke.atombus.config.model.Binding;
import org.atomnuke.cli.CliConfigurationHandler;
import org.atomnuke.cli.command.AbstractNukeCommand;
import org.atomnuke.util.cli.command.result.CommandFailure;
import org.atomnuke.util.cli.command.result.CommandResult;
import org.atomnuke.util.cli.command.result.CommandSuccess;
/**
*
* @author zinic
*/
public class DeleteBinding extends AbstractNukeCommand {
private static final int BINDING_ID = 0;
public DeleteBinding(CliConfigurationHandler configurationHandler) {
super(configurationHandler);
}
@Override
public String getCommandToken() {
return "rm";
}
@Override
public String getCommandDescription() {
return "Removes a binding definition.";
}
@Override
public CommandResult perform(String[] arguments) throws Exception {
if (arguments.length != 1) {
return new CommandFailure("Deleting a binding defintiion requires one argument: <binding-id>");
}
final CliConfigurationHandler cfgHandler = getConfigHandler();
for (Iterator<Binding> bindingItr = cfgHandler.getBindings().iterator(); bindingItr.hasNext();) {
if (bindingItr.next().getId().equals(arguments[BINDING_ID])) {
bindingItr.remove();
cfgHandler.write();
return new CommandSuccess();
}
}
return new CommandFailure("No binding with an id matching, \"" + arguments[BINDING_ID] + "\" seems to exist.");
}
}