Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

OptionWithValuesListHandler.java 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package org.eclipse.jgit.pgm.opt;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import org.eclipse.jgit.pgm.internal.CLIText;
  5. import org.kohsuke.args4j.CmdLineException;
  6. import org.kohsuke.args4j.CmdLineParser;
  7. import org.kohsuke.args4j.OptionDef;
  8. import org.kohsuke.args4j.spi.OptionHandler;
  9. import org.kohsuke.args4j.spi.Parameters;
  10. import org.kohsuke.args4j.spi.Setter;
  11. /**
  12. * Handler which allows to parse option with few values
  13. *
  14. * @since 4.2
  15. */
  16. public class OptionWithValuesListHandler extends OptionHandler<List<?>> {
  17. /**
  18. * Constructor for OptionWithValuesListHandler.
  19. *
  20. * @param parser
  21. * a {@link org.kohsuke.args4j.CmdLineParser} object.
  22. * @param option
  23. * a {@link org.kohsuke.args4j.OptionDef} object.
  24. * @param setter
  25. * a {@link org.kohsuke.args4j.spi.Setter} object.
  26. */
  27. public OptionWithValuesListHandler(CmdLineParser parser,
  28. OptionDef option, Setter<List<?>> setter) {
  29. super(parser, option, setter);
  30. }
  31. /** {@inheritDoc} */
  32. @Override
  33. public int parseArguments(Parameters params) throws CmdLineException {
  34. final List<String> list = new ArrayList<>();
  35. for (int idx = 0; idx < params.size(); idx++) {
  36. final String p;
  37. try {
  38. p = params.getParameter(idx);
  39. } catch (CmdLineException cle) {
  40. break;
  41. }
  42. list.add(p);
  43. }
  44. setter.addValue(list);
  45. return list.size();
  46. }
  47. /** {@inheritDoc} */
  48. @Override
  49. public String getDefaultMetaVariable() {
  50. return CLIText.get().metaVar_values;
  51. }
  52. }