Package org.kohsuke.args4j.spi

Source Code of org.kohsuke.args4j.spi.BooleanOptionHandler

package org.kohsuke.args4j.spi;

import java.util.Arrays;
import java.util.List;

import org.kohsuke.args4j.OptionDef;
import org.kohsuke.args4j.CmdLineException;
import org.kohsuke.args4j.CmdLineParser;

/**
* Boolean {@link OptionHandler}.
*
* @author Kohsuke Kawaguchi
*/
public class BooleanOptionHandler extends OptionHandler<Boolean> {
  private static final List<String> ACCEPTABLE_VALUES = Arrays.asList(new String[] { "true", "on", "yes", "1",
      "false", "off", "no", "0" });
 
  public BooleanOptionHandler(CmdLineParser parser, OptionDef option, Setter<? super Boolean> setter) {
        super(parser, option, setter);
    }

    @Override
    public int parseArguments(Parameters params) throws CmdLineException {
      if (option.isArgument()) {
        String valueStr = params.getParameter(0).toLowerCase();
        int index = ACCEPTABLE_VALUES.indexOf(valueStr);
        if (index == -1) {
          throw new CmdLineException(Messages.ILLEGAL_BOOLEAN.format(valueStr));
        }
        setter.addValue(index < ACCEPTABLE_VALUES.size() / 2);
        return 1;
      } else {
        setter.addValue(true);
        return 0;
      }
    }

    @Override
    public String getDefaultMetaVariable() {
        return null;
    }
}
TOP

Related Classes of org.kohsuke.args4j.spi.BooleanOptionHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.