summaryrefslogtreecommitdiffstats
path: root/src/test/java/com/beust/jcommander/args/ArgsList.java
blob: e827773f5179d0dc2c3d292f96c1f9b9bf053caf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.beust.jcommander.args;

import com.beust.jcommander.HostPort;
import com.beust.jcommander.HostPortConverter;
import com.beust.jcommander.IStringConverter;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.converters.IParameterSplitter;

import org.testng.collections.Lists;

import java.util.Arrays;
import java.util.List;

public class ArgsList {
  @Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
  public List<String> groups;

  @Parameter(names = "-ints")
  public List<Integer> ints;

  @Parameter(names = "-hp", converter = HostPortConverter.class, splitter = SemiColonSplitter.class)
  public List<HostPort> hostPorts;

  @Parameter(names = "-hp2", converter = HostPortConverter.class)
  public List<HostPort> hp2;

  @Parameter(names = "-uppercase", listConverter = UppercaseConverter.class)
  public List<String> uppercase;

  public static class UppercaseConverter implements IStringConverter<List<String>> {
    public List<String> convert(String value) {
      List<String> result = Lists.newArrayList();
      String[] s = value.split(",");
      for (String p : s) {
        result.add(p.toUpperCase());
      }
      return result;
    }
  }

  public static class SemiColonSplitter implements IParameterSplitter {

    public List<String> split(String value) {
      return Arrays.asList(value.split(";"));
    }
    
  }

}