package org.infinispan.cli;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.infinispan.cli.commands.Command;
import org.infinispan.commons.util.ServiceFinder;
public class CommandRegistry {
private Map<String, Command> commands;
public CommandRegistry() {
commands = new HashMap<String, Command>();
for (Command cmd : ServiceFinder.load(Command.class)) {
String name = cmd.getName();
if (commands.containsKey(name)) {
throw new RuntimeException("Command " + cmd.getClass().getName() + " overrides "
+ commands.get(name).getClass().getName());
}
commands.put(name, cmd);
}
}
public Set<String> getCommandNames() {
return Collections.unmodifiableSet(commands.keySet());
}
public Command getCommand(String name) {
return commands.get(name);
}
}