/** * @return A list containing all options sorted by their short name. */ public ImmutableList<Option> getOptions() { final List<Option> options = newArrayList(); for (final OptionParser exec : newLinkedHashSet(optionMap.values())) { options.add(exec.getOption()); } Collections.sort(options, new Comparator<Option>() { @Override public int compare(@Nullable Option o1, @Nullable Option o2) { return verifyNotNull(o1).getShortName().compareTo( verifyNotNull(o2).getShortName()); } }); return ImmutableList.copyOf(options); }
arg); checkAlreadySelected( !selectedOptions.contains(optParser.get().getOption()), optParser.get().getOption(), "Option is already selected: %s.", optParser.get().getOption()); if (groupMap.containsKey(optParser.get().getOption())) { newLinkedHashSet(groupMap.get(optParser.get().getOption()))); optParser.get().getOption(), "An option from the same group as '%s' has already been selected: " + "'%s'.", optParser.get().getOption(), intersect); selectedOptions.add(optParser.get().getOption()); if (optParser.get().getOption().isHelpOption()) { return Optional.of(printHelp()); optParser.get().parse(arguments); } catch (IllegalArgumentException | IllegalStateException e) { throw new CliException(e.getMessage(), e, CauseType.HANDLER_FAILURE, optParser.get().getOption());
if (!exec.getOption().isHelpOption()) { add(adapt(exec, shortPrefix,
@SuppressWarnings({"unchecked", "rawtypes"}) static OptionParser adapt(OptionParser exec, String shortPrefix, String longPrefix) { final Option opt = exec.getOption(); if (opt instanceof OptionArg<?>) { final OptionArg<?> adapted = adaptNames( Option.builder((OptionArg<?>) opt), shortPrefix, longPrefix) .build(); return ((ArgParser) exec).newInstance(adapted); } final OptionNoArg adapted = adaptNames( Option.builder((OptionNoArg) opt), shortPrefix, longPrefix) .build(); return ((NoArgParser<?>) exec).newInstance(adapted); }
void add(OptionParser e) { final Option option = e.getOption(); final String sn = option.getShortName(); checkDuplicateOption(sn); optionNames.add(sn); optionMap.put(sn, e); if (option.getLongName().isPresent()) { final String ln = option.getLongName().get(); checkDuplicateOption(ln); optionNames.add(ln); optionMap.put(ln, e); } if (buildingGroup) { groups.get(groups.size() - 1).add(option); } }