summaryrefslogtreecommitdiffstats
path: root/args4j/args4j/src/org/kohsuke/args4j/NamedOptionDef.java
blob: 5ad895a900a25b5cc2ac6112d8de7a49e41ebba8 (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
package org.kohsuke.args4j;

/**
 * Run-time copy of the Option or Argument annotation.
 */
public final class NamedOptionDef extends OptionDef {
    private final String name;
	private final String[] aliases;
    
    public NamedOptionDef(Option o, boolean forceMultiValued) {
    	super(o.usage(),o.metaVar(),o.required(),o.handler(),o.multiValued() || forceMultiValued);
    	
    	this.name = o.name();
    	this.aliases = o.aliases();
    }
    
    public String name() {
    	return name;
    }
    
    public String[] aliases() {
    	return aliases;
    }
    
    @Override
    public String toString() {
    	if (aliases.length > 0) {
    		String str = "";
    		for (String alias : aliases) {
    			if (str.length() > 0) {
    				str += ", ";
    			}
    			str += alias;
    		}
    		return name() + " (" + str + ")";
    	}
    	return name();
    }
    
    @Override
    public boolean isArgument() {
    	return false;
    }
}