* @return the parsed Command.
* @throws ParseException thrown if the arguments could not be parsed.
*/
public Command parse(String[] args) throws ParseException {
if (args.length == 0) {
throw new ParseException("missing sub-command");
}
else {
if (commands.containsKey(args[0])) {
GnuParser parser = new GnuParser();
String[] minusCommand = new String[args.length - 1];
System.arraycopy(args, 1, minusCommand, 0, minusCommand.length);
return new Command(args[0], parser.parse(commands.get(args[0]), minusCommand,
commandWithArgs.get(args[0])));
}
else {
throw new ParseException(MessageFormat.format("invalid sub-command [{0}]", args[0]));
}
}
}