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