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