13e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beustpackage com.beust.jcommander.args;
23e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
33e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beustimport com.beust.jcommander.HostPort;
43e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beustimport com.beust.jcommander.HostPortConverter;
53e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beustimport com.beust.jcommander.IStringConverter;
63e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beustimport com.beust.jcommander.Parameter;
73e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beustimport com.beust.jcommander.converters.IParameterSplitter;
83e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
93e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beustimport org.testng.collections.Lists;
103e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
113e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beustimport java.util.Arrays;
123e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beustimport java.util.List;
133e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
143e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beustpublic class ArgsList {
153e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  @Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
163e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  public List<String> groups;
173e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
183e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  @Parameter(names = "-ints")
193e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  public List<Integer> ints;
203e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
213e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  @Parameter(names = "-hp", converter = HostPortConverter.class, splitter = SemiColonSplitter.class)
223e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  public List<HostPort> hostPorts;
233e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
243e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  @Parameter(names = "-hp2", converter = HostPortConverter.class)
253e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  public List<HostPort> hp2;
263e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
273e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  @Parameter(names = "-uppercase", listConverter = UppercaseConverter.class)
283e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  public List<String> uppercase;
293e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
303e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  public static class UppercaseConverter implements IStringConverter<List<String>> {
313e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust    public List<String> convert(String value) {
323e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust      List<String> result = Lists.newArrayList();
333e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust      String[] s = value.split(",");
343e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust      for (String p : s) {
353e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust        result.add(p.toUpperCase());
363e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust      }
373e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust      return result;
383e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust    }
393e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  }
403e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
413e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  public static class SemiColonSplitter implements IParameterSplitter {
423e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
433e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust    public List<String> split(String value) {
443e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust      return Arrays.asList(value.split(";"));
453e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust    }
463e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
473e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust  }
483e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust
493e7cb52cbf4ca537cafb6617b20387225672ad1aCedric Beust}
50