docs: boolean parseCmdLineArgs(String[] args) throws IllegalArgumentException {
          for (int i = 0; i < args.length; i++) {
              if (args[i].toLowerCase().contains("help") || args[i].toLowerCase().contains("usage")) {
                  // print the usage information and exit.
                  printUsage();
                  return true;
              }
              boolean accepted = false;
              for (Option option : options) {
                  if (args[i].equalsIgnoreCase(option.name)) {
                      if (i + option.nargs < args.length) {
                          i += option.accept(args, i + 1);
                      } else {
                          throw new IllegalArgumentException(getLocalizedParmString("CWTRA0022E",
                                                                                    new Object[] { option.name, option.nargs }));
                      }
                      accepted = true;
                      break;
                  }
              }
              if (!accepted) {
                  throw new IllegalArgumentException(getLocalizedParmString("CWTRA0023E", new Object[] { args[i] }));
              }
          }
          return false;
      }