Example usage for org.apache.commons.cli2.builder DefaultOptionBuilder reset

List of usage examples for org.apache.commons.cli2.builder DefaultOptionBuilder reset

Introduction

In this page you can find the example usage for org.apache.commons.cli2.builder DefaultOptionBuilder reset.

Prototype

public DefaultOptionBuilder reset() 

Source Link

Document

Resets the builder.

Usage

From source file:org.rzo.yajsw.WrapperExe.java

/**
 * Builds the options.//from  w  w  w. j a  va 2s .  c o m
 */
private static void buildOptions() {
    DefaultOptionBuilder oBuilder = new DefaultOptionBuilder("-", "--", true);
    ArgumentBuilder aBuilder = new ArgumentBuilder();
    GroupBuilder gBuilder = new GroupBuilder();

    gBuilder.withOption(oBuilder.reset().withId(OPTION_C).withShortName("c").withLongName("console")
            .withDescription("run as a Console application").create());
    gBuilder.withOption(oBuilder.reset().withId(OPTION_T).withShortName("t").withLongName("start")
            .withDescription("starT an NT service or Unix daemon").create());
    gBuilder.withOption(oBuilder.reset().withId(OPTION_P).withShortName("p").withLongName("stop")
            .withDescription("stoP a running NT service or Unix daemon").create());
    gBuilder.withOption(oBuilder.reset().withId(OPTION_TX).withShortName("tx").withLongName("startx")
            .withDescription("starT -internal a Posix daemon").create());
    gBuilder.withOption(oBuilder.reset().withId(OPTION_PX).withShortName("px").withLongName("stopx")
            .withDescription("stoP -internal- a running Posix daemon").create());
    gBuilder.withOption(oBuilder.reset().withId(OPTION_I).withShortName("i").withLongName("install")
            .withDescription("Install an NT service or Unix daemon").create());
    gBuilder.withOption(oBuilder.reset().withId(OPTION_R).withShortName("r").withLongName("remove")
            .withDescription("Remove an NT service or Unix daemon").create());
    gBuilder.withOption(oBuilder.reset().withId(OPTION_Q).withShortName("q").withLongName("query")
            .withDescription("Query the status of an NT service or Unix daemon").create());
    gBuilder.withOption(oBuilder.reset().withId(OPTION_Y).withShortName("y").withLongName("tray")
            .withDescription("Start System Tray Icon").create());
    gBuilder.withOption(oBuilder.reset().withId(OPTION_QS).withShortName("qs").withLongName("querysilent")
            .withDescription("Silent Query the status of an NT service or Unix daemon").create());

    Argument pid = aBuilder.reset().withName(PID).withDescription("PID of process to reconnect to")
            .withMinimum(1).withMaximum(1).withValidator(NumberValidator.getIntegerInstance()).create();

    gBuilder.withOption(oBuilder.reset().withId(OPTION_N).withShortName("n").withLongName("reconnect")
            .withDescription("recoNnect to existing application").withArgument(pid).create());

    Argument pid2 = aBuilder.reset().withName(PID).withDescription("PID of process to reconnect to")
            .withMinimum(1).withMaximum(1).withValidator(NumberValidator.getIntegerInstance()).create();

    Argument defaultFile = aBuilder.reset().withName(DEFAULT_FILE).withDescription("Default Configuration File")
            .withMinimum(0).withMaximum(1)
            .withValidator(VFSFileValidator.getExistingFileInstance().setBase(".")).create();
    /*
     * GroupBuilder childGbuilder = new GroupBuilder(); DefaultOptionBuilder
     * childoObuilder = new DefaultOptionBuilder("-", "--", true);
     * 
     * childGbuilder.withName(DEFAULT_FILE).withMinimum(0).withMaximum(1).
     * withOption(
     * childoObuilder.withId(OPTION_D).withArgument(defaultFile).
     * withShortName("d").withLongName("defaultConf").withDescription(
     * "Default Configuration File").create());
     * 
     * 
     * gBuilder.withOption(oBuilder.reset().withId(OPTION_G).withShortName("g"
     * ).withLongName("genconf").withDescription(
     * "Generate configuration file from pid"
     * ).withArgument(pid2).withChildren(childGbuilder.create()).create());
     */

    gBuilder.withOption(oBuilder.reset().withId(OPTION_D).withShortName("d").withLongName("defaultConf")
            .withDescription("Default Configuration File").withArgument(defaultFile).create());

    gBuilder.withOption(oBuilder.reset().withId(OPTION_G).withShortName("g").withLongName("genconf")
            .withDescription("Generate configuration file from pid").withArgument(pid2).create());

    FileValidator fValidator = VFSFileValidator.getExistingFileInstance().setBase(".");
    fValidator.setFile(false);
    // fValidator.setReadable(true);
    gBuilder.withOption(aBuilder.reset().withName(CONF_FILE)
            .withDescription("is the wrapper.conf to use.  Name must be absolute or relative").withMinimum(0)
            .withMaximum(1).create());

    Validator pValidator = new Validator() {

        public void validate(List values) throws InvalidArgumentException {
            for (Iterator it = values.iterator(); it.hasNext();) {
                String p = (String) it.next();
                if (!Pattern.matches("wrapper\\..*=.*", p)) {
                    throw new InvalidArgumentException(p);
                }
            }

        }

    };
    gBuilder.withOption(aBuilder.reset().withName(PROPERTIES)
            .withDescription(
                    "are configuration name-value pairs which override values. For example: wrapper.debug=true")
            .withMinimum(0).withValidator(pValidator).create());

    gBuilder.withMaximum(3);
    group = gBuilder.create();

}