package org.atomnuke.cli.command;
import java.util.Iterator;
import org.atomnuke.atombus.config.model.Binding;
import org.atomnuke.util.config.ConfigurationException;
import org.atomnuke.cli.CliConfigurationHandler;
import org.atomnuke.util.cli.command.AbstractCommand;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author zinic
*/
public abstract class AbstractNukeCommand extends AbstractCommand {
private final CliConfigurationHandler configurationHandler;
private final Logger logger;
public AbstractNukeCommand(CliConfigurationHandler configurationHandler) {
this.configurationHandler = configurationHandler;
this.logger = logger();
}
private Logger logger() {
return LoggerFactory.getLogger(getClass());
}
protected Logger log() {
return logger;
}
protected final CliConfigurationHandler getConfigHandler() {
return configurationHandler;
}
protected void unbindSink(CliConfigurationHandler cfgHandler, String sinkActorId) throws ConfigurationException {
for (Iterator<Binding> bindingItr = cfgHandler.getBindings().iterator(); bindingItr.hasNext();) {
if (bindingItr.next().getSinkActor().equals(sinkActorId)) {
bindingItr.remove();
}
}
cfgHandler.write();
}
protected void unbindSource(CliConfigurationHandler cfgHandler, String sourceActorId) throws ConfigurationException {
for (Iterator<Binding> bindingItr = cfgHandler.getBindings().iterator(); bindingItr.hasNext();) {
if (bindingItr.next().getSourceActor().equals(sourceActorId)) {
bindingItr.remove();
}
}
cfgHandler.write();
}
}