code: protected void parseOption(CliParserState parserState, String option, CliOptionContainer optionContainer, CliParameterConsumer parameterConsumer) {
  
      CliValueContainer valueContainer = this.valueMap.getOrCreate(optionContainer);
      PojoPropertyAccessorOneArg setter = optionContainer.getSetter();
      Class<?> propertyClass = setter.getPropertyClass();
      String argument;
      if (optionContainer.isTrigger()) {
        argument = "true";
      } else if (Boolean.class.equals(propertyClass)) {
        String lookahead = parameterConsumer.getCurrent();
        if ("true".equalsIgnoreCase(lookahead)) {
          parameterConsumer.getNext();
          argument = "true";
        } else if ("false".equalsIgnoreCase(lookahead)) {
          parameterConsumer.getNext();
          argument = "false";
        } else {
          // option (e.g. "--trigger") is not followed by "true" or "false"
          CliStyleHandling handling = this.cliState.getCliStyle().optionMissingBooleanValue();
          if (handling != CliStyleHandling.OK) {
            handling.handle(getLogger(), new CliOptionMissingValueException(option));
          }
          argument = "true";
        }
      } else {
        if (!parameterConsumer.hasNext()) {
          throw new CliOptionMissingValueException(option);
        }
        argument = parameterConsumer.getNext();
      }
      valueContainer.setValue(argument);
    }
docs: This method parses the value of a {@link CliOption}.
  
  @param parserState is the {@link CliParserState}.
  @param option is the command-line parameter that triggered the given {@code optionContainer}.
  @param optionContainer is the {@link CliOptionContainer} for the current option that has already been detected.
  @param parameterConsumer is the {@link CliParameterConsumer}.