/** * Parse a command * * @return the next index to process. i.e., if calling this method processes two commands, then * the return value should be index+2 */ protected int parseCommand(String args[], int index, Set<String> source) throws UsageError, Main.TerminationException { // Find a flag whose id matches args[index] and let it process the // arguments. for (OptFlag<?> flag : flags) { if (flag.ids.contains(args[index])) { Arg<?> arg = flag.handle(args, index + 1); arguments.add(arg); return arg.next(); } } if (!args[index].startsWith("-")) { index = parseSourceArg(args, index); } return index; }