All Downloads are FREE. Search and download functionalities are using the official Maven repository.

chaschev.util.JOptOptions Maven / Gradle / Ivy

package chaschev.util;

import chaschev.lang.OpenBean;
import joptsimple.*;
import joptsimple.internal.AbbreviationMap;

import java.util.List;

/**
* User: chaschev
* Date: 8/25/12
*/
public class JOptOptions {
    protected final static OptionParser parser = new OptionParser();

    protected final OptionSet optionSet;

    public JOptOptions(String[] args) {
        optionSet = parser.parse(args);
    }

    public  T get(OptionSpec optionSpec) {
        return optionSet.valueOf(optionSpec);
    }

    public  List getList(OptionSpec optionSpec) {
        return optionSet.valuesOf(optionSpec);
    }

    public String printHelpOn(){
        return printHelpOn(160, 2);
    }

    public String printHelpOn(int desiredOverallWidth, int desiredColumnSeparatorWidth)  {
//        try {
        return new BuiltinHelpFormatter(desiredOverallWidth, desiredColumnSeparatorWidth).format(((AbbreviationMap) OpenBean.getFieldValue(
            parser, "recognizedOptions")).toJavaUtilMap());
//            parser.printHelpOn(sink);
//        } catch (IOException e) {
//            throw Exceptions.runtime(e);
//        }
    }

    public boolean has(OptionSpec optionSpec) {
        return optionSet.has(optionSpec);
    }

    public OptionSet getOptionSet() {
        return optionSet;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy