private void checkNameDuplicates(Collection<OptionMetadata> options) { if (options.size() > 1) { Set<String> distinctNames = new HashSet<>(); options.forEach(om -> { if (!distinctNames.add(om.getName())) { throw new RuntimeException("Duplicate option declaration for '" + om.getName() + "'"); } }); } }
public HelpOption(OptionMetadata option) { this.option = Objects.requireNonNull(option); this.shortNameAllowed = true; this.longNameAllowed = option.getName().length() > 1; }
private OptionMetadata findMetadata(OptionSpec<?> option) { List<String> optionNames = option.options(); // TODO: allow lookup of option metadata by name to avoid linear scans... // Though we are dealing with small collection, so shouldn't be too horrible. for (OptionMetadata omd : optionMetadata) { if (optionNames.contains(omd.getName())) { return omd; } } // this was likely a command, not an option. return null; }
if (decorator.getOptionName().equals(omd.getName())) { overrider = overrider.andThen(new InPlaceResourceOverrider(decorator.getConfigResource().getUrl(), parser, singleConfigMerger)); if (pathDecorator.getOptionName().equals(omd.getName())) { String cliValue = cli.optionString(omd.getName()); overrider = overrider.andThen(new InPlaceMapOverrider( singletonMap(pathDecorator.getConfigPath(), cliValue)
parts.add(o.getOption().getName()); switch (o.getOption().getValueCardinality()) { case REQUIRED:
protected void addOption(OptionParser parser, OptionMetadata option) { // ensure non-null description String description = Optional.ofNullable(option.getDescription()).orElse(""); // TODO: how do we resolve short name conflicts? List<String> longAndShort = asList(option.getShortName(), option.getName()); OptionSpecBuilder optionBuilder = parser.acceptsAll(longAndShort, description); switch (option.getValueCardinality()) { case OPTIONAL: ArgumentAcceptingOptionSpec<String> optionSpec = optionBuilder.withOptionalArg().describedAs(option.getValueName()); if(option.getDefaultValue() != null) { optionSpec.defaultsTo(option.getDefaultValue()); } break; case REQUIRED: optionBuilder.withRequiredArg().describedAs(option.getValueName()); break; default: break; } }
public HelpOption(OptionMetadata option) { this.option = Objects.requireNonNull(option); this.shortNameAllowed = true; this.longNameAllowed = option.getName().length() > 1; }
private void checkNameDuplicates(Collection<OptionMetadata> options) { if (options.size() > 1) { Set<String> distinctNames = new HashSet<>(); options.forEach(om -> { if (!distinctNames.add(om.getName())) { throw new RuntimeException("Duplicate option declaration for '" + om.getName() + "'"); } }); } }
private OptionMetadata findMetadata(OptionSpec<?> option) { List<String> optionNames = option.options(); // TODO: allow lookup of option metadata by name to avoid linear scans... // Though we are dealing with small collection, so shouldn't be too horrible. for (OptionMetadata omd : optionMetadata) { if (optionNames.contains(omd.getName())) { return omd; } } // this was likely a command, not an option. return null; }
parts.add(o.getOption().getName()); switch (o.getOption().getValueCardinality()) { case REQUIRED:
protected void addOption(OptionParser parser, OptionMetadata option) { // ensure non-null description String description = Optional.ofNullable(option.getDescription()).orElse(""); // TODO: how do we resolve short name conflicts? List<String> longAndShort = asList(option.getShortName(), option.getName()); OptionSpecBuilder optionBuilder = parser.acceptsAll(longAndShort, description); switch (option.getValueCardinality()) { case OPTIONAL: optionBuilder.withOptionalArg().describedAs(option.getValueName()); break; case REQUIRED: optionBuilder.withRequiredArg().describedAs(option.getValueName()); default: break; } }