OptionDef.java :  » Development » args4j » org » kohsuke » args4j » Java Open Source

Java Open Source » Development » args4j 
args4j » org » kohsuke » args4j » OptionDef.java
/**
 * (c) 2006 forcare BV
 * All rights reserved.
 */
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";
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.