@Override public ParserState onComplete() { if (getHasArgument() && values.isEmpty()) { throw new CommandLineArgumentException( String.format("No argument was provided for command-line option '%s'.", optionString)); } ParsedCommandLineOption parsedOption = commandLine.addOption(optionString.option, option); if (values.size() + parsedOption.getValues().size() > 1 && !option.getAllowsMultipleArguments()) { throw new CommandLineArgumentException( String.format( "Multiple arguments were provided for command-line option '%s'.", optionString)); } for (String value : values) { parsedOption.addArgument(value); } if (option.getDeprecationWarning() != null) { new PrintStream(CommandLineParser.this.deprecationPrinter) .println( "The " + optionString + " option is deprecated - " + option.getDeprecationWarning()); } if (option.getSubcommand() != null) { return state.onNonOption(option.getSubcommand()); } return state; }