@Override public void execute(CommandLineArguments arguments) { if (arguments.argumentCount() < getArgumentCount()) { getCommandLineHandle().expectedArguments(getArguments()); return; } Scanner scanner = arguments.asScanner(); final String command = scanner.next(); ExecutableCommand subCommand = subCommands.get(command); if (subCommand != null) { String remainingArguments = ""; if (scanner.hasNext()) { remainingArguments = scanner.nextLine(); } subCommand.execute(new CommandLineArguments(remainingArguments)); } else { getCommandLineHandle().print("Unknown command '%s'", command); } }
@Override public void unregisterSubCommand(ExecutableCommand command) { subCommands.remove(command.getCommandName()); }
@Override public void registerSubCommand(ExecutableCommand command) { subCommands.put(command.getCommandName(), command); }