package kernel;
import java.util.Collection;
import java.util.Iterator;
import rescuecore2.config.Config;
import rescuecore2.messages.Command;
/**
An abstract base class for command filters.
*/
public abstract class AbstractCommandFilter implements CommandFilter {
@Override
public void initialise(Config config) {
}
@Override
public void filter(Collection<Command> commands, KernelState state) {
for (Iterator<Command> it = commands.iterator(); it.hasNext();) {
if (!allowed(it.next(), state)) {
it.remove();
}
}
}
/**
Find out if a particular command is allowed.
@param command The command.
@param state The kernel state.
@return True iff the command is allowed.
*/
protected abstract boolean allowed(Command command, KernelState state);
}