docs: protected void processOption(String arg, ListIterator<String> iter) throws ParseException
      {
          boolean hasOption = getOptions().hasOption(arg);
  
          // if there is no option throw an UnrecognisedOptionException
          if (!hasOption)
          {
              throw new UnrecognizedOptionException("Unrecognized option: " + arg, arg);
          }
  
          // get the option represented by arg
          Option opt = (Option) getOptions().getOption(arg).clone();
          
          // update the required options and groups
          updateRequiredOptions(opt);
          
          // if the option takes an argument value
          if (opt.hasArg())
          {
              processArgs(opt, iter);
          }
          
          // set the option on the command line
          cmd.addOption(opt);
      }