/** * Gets the registered command of the given arguments. * @param args * The arguments given by the user. * * @return The subcommand or null if none were found. * * @see #findSubCommand(String[]) */ RegisteredCommand<?> getRegisteredCommand(String[] args) { final CommandSearch cmd = findSubCommand(args); return cmd != null ? cmd.cmd : null; }
/** * Finds a subcommand of the given arguments. * * @param args * The arguments the user input. * * @return The identified subcommand. * * @see #findSubCommand(String[], boolean) */ private CommandSearch findSubCommand(String[] args) { return findSubCommand(args, false); }
CommandOperationContext commandOperationContext = preCommandOperation(issuer, commandLabel, args, isAsync); final CommandSearch search = findSubCommand(args, true);
public void execute(CommandIssuer issuer, String commandLabel, String[] args) { commandLabel = commandLabel.toLowerCase(); try { CommandOperationContext commandContext = preCommandOperation(issuer, commandLabel, args, false); if (args.length > 0) { CommandSearch cmd = findSubCommand(args); if (cmd != null) { execSubcommand = cmd.getCheckSub(); final String[] execargs = Arrays.copyOfRange(args, cmd.argIndex, args.length); executeCommand(commandContext, issuer, execargs, cmd.cmd); return; } } if (subCommands.get(DEFAULT) != null && args.length == 0) { findAndExecuteCommand(commandContext, DEFAULT, issuer, args); } else if (subCommands.get(CATCHUNKNOWN) != null) { if (!findAndExecuteCommand(commandContext, CATCHUNKNOWN, issuer, args)) { help(issuer, args); } } else if (subCommands.get(DEFAULT) != null) { findAndExecuteCommand(commandContext, DEFAULT, issuer, args); } } finally { postCommandOperation(); } }