blob: 5601a418f79d858a64cb3382c9ae4b3bb26bfe89 (
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
50
51
52
53
54
55
56
57
58
59
|
package org.kohsuke.args4j;
import org.kohsuke.args4j.spi.OptionHandler;
/**
* Run-time copy of the Option or Argument annotation. By definition, unnamed options
* are arguments (and instances of this class). Named options are actually a subclass.
*
* @author Mark Sinke
*/
public class OptionDef {
private final String usage;
private final String metaVar;
private final boolean required;
private final boolean multiValued;
private final Class<? extends OptionHandler> handler;
public OptionDef(Argument a, boolean forceMultiValued) {
this(a.usage(), a.metaVar(), a.required(), a.handler(), a.multiValued() || forceMultiValued);
}
protected OptionDef(String usage, String metaVar, boolean required,
Class<? extends OptionHandler> handler, boolean multiValued) {
this.usage = usage;
this.metaVar = metaVar;
this.required = required;
this.handler = handler;
this.multiValued = multiValued;
}
public String usage() {
return usage;
}
public String metaVar() {
return metaVar;
}
public boolean required() {
return required;
}
public Class<? extends OptionHandler> handler() {
return handler;
}
public boolean isMultiValued() {
return multiValued;
}
public boolean isArgument() {
return true;
}
@Override
public String toString() {
return metaVar() != null ? metaVar() : "ARG";
}
}
|