package org.kohsuke.args4j.spi; import java.lang.annotation.Annotation; /** * Base class for the @Option and @Argument implementation classes. * @author Jan Materne */ public abstract class AnnotationImpl implements Annotation { private final Class<? extends Annotation> annotationType; protected AnnotationImpl(Class<? extends Annotation> annotationType) { this.annotationType = annotationType; } protected AnnotationImpl(Class<? extends Annotation> annotationType, ConfigElement ce) throws ClassNotFoundException { this(annotationType); aliases = ce.aliases != null ? ce.aliases : new String[0]; if (ce.handler != null) { handler = (Class<? extends OptionHandler>) Class.forName(ce.handler); } else { handler = OptionHandler.class; } metaVar = ce.metavar != null ? ce.metavar : ""; multiValued = ce.multiValued; required = ce.required; usage = ce.usage != null ? ce.usage : ""; } public String[] aliases; public String[] aliases() { return aliases; } public Class<? extends OptionHandler> handler; public Class<? extends OptionHandler> handler() { return handler; } public String metaVar; public String metaVar() { return metaVar; } public boolean multiValued; public boolean multiValued() { return multiValued; } public boolean required; public boolean required() { return required; } public String usage; public String usage() { return usage; } public Class<? extends Annotation> annotationType() { return annotationType; } public int index; public int index() { return index; } }