package org.kohsuke.args4j; /** * Run-time copy of {@link Option} annotation. */ public final class NamedOptionDef extends OptionDef { private final String name; private final String[] aliases; /** * @deprecated * multi-valuedness as option definition does not make sense. It's driven by the setter. */ public NamedOptionDef(Option o, boolean forceMultiValued) { this(o); } public NamedOptionDef(Option o) { super(o.usage(),o.metaVar(),o.required(),o.handler(),false); 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; } }