Example usage for org.apache.commons.cli2.validation NumberValidator getIntegerInstance

List of usage examples for org.apache.commons.cli2.validation NumberValidator getIntegerInstance

Introduction

In this page you can find the example usage for org.apache.commons.cli2.validation NumberValidator getIntegerInstance.

Prototype

public static NumberValidator getIntegerInstance() 

Source Link

Document

Returns a NumberValidator for an integer number format for the current default locale.

Usage

From source file:com.ibm.jaql.util.shell.JaqlShellArguments.java

@SuppressWarnings("unchecked")
static JaqlShellArguments parseArgs(String... args) {
    // option builders
    final DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
    final ArgumentBuilder abuilder = new ArgumentBuilder();
    final GroupBuilder gbuilder = new GroupBuilder();

    // create standard options
    Option optHelp = obuilder.withShortName("h").withShortName("?").withLongName("help")
            .withDescription("print this message").create();

    Option optJars = obuilder.withShortName("j").withLongName("jars")
            .withDescription(/*from   w  w  w.ja  v  a 2  s. c  om*/
                    "comma-separated list of jar files to include user defined expressions or data stores")
            .withArgument(abuilder.withName("args").withMinimum(1).withMaximum(1).create()).create();

    Option optSearchPath = obuilder.withShortName("jp").withLongName("jaql-path")
            .withDescription("colon seperated list of all search path entries")
            .withArgument(abuilder.withName("args").withMinimum(1).withMaximum(1).create()).create();

    Option optBatch = obuilder.withShortName("b").withLongName("batch")
            .withDescription("run in batch mode (i.e., do not read from stdin)").create();

    Option optOutOptions = obuilder.withShortName("o").withLongName("outoptions")
            .withDescription("output options: json, del and xml or an output IO descriptor. "
                    + "This option is ignored when not running in batch mode.")
            .withArgument(abuilder.withName("outoptions").withMinimum(1).withMaximum(1).create()).create();

    Option optEval = obuilder.withShortName("e").withLongName("eval")
            .withDescription("evaluate Jaql expression")
            .withArgument(abuilder.withName("expr").withMinimum(1).withMaximum(1).create()).create();

    // create mini-cluster options
    Option optCluster = obuilder.withShortName("c").withLongName("cluster")
            .withDescription("use existing cluster (i.e., do not launch a mini-cluster)").create();

    Option optNumNodes = obuilder.withShortName("n").withLongName("no-nodes")
            .withDescription("mini-cluster option: number of nodes to spawn")
            .withArgument(abuilder.withName("arg").withMinimum(1).withMaximum(1)
                    .withValidator(NumberValidator.getIntegerInstance()).create())
            .create();

    Option optDir = obuilder.withShortName("d").withLongName("hdfs-dir")
            .withDescription("mini-cluster option: root HDFs directory")
            .withArgument(abuilder.withName("arg").withMinimum(1).withMaximum(1).create()).create();

    Group clusterOptions = gbuilder.withName("Cluster options").withOption(optCluster).withOption(optDir)
            .withOption(optNumNodes).create();

    // create input files option
    Option optInputFiles = abuilder.withName("file").withDescription("list of input files").withMinimum(0)
            .create();

    Option optLog = obuilder.withShortName("l").withLongName("log")
            .withDescription("log options: json, del and xml or an output IO descriptor. ")
            .withArgument(abuilder.withName("arg").withMinimum(1).withMaximum(1).create()).create();

    // combine all options
    Group options = gbuilder.withName("options").withOption(optHelp).withOption(optJars)
            .withOption(optSearchPath).withOption(optBatch).withOption(optLog).withOption(optOutOptions)
            .withOption(optEval).withOption(optInputFiles).withOption(clusterOptions).create();

    // parse and print help if necessary
    CommandLine cl;
    try {
        Parser parser = new Parser();
        parser.setGroup(options);
        cl = parser.parse(args);
    } catch (OptionException e) {
        printHelpAndExit(e, null, options);
        return null;
    }
    if (cl.hasOption(optHelp)) {
        printHelpAndExit(null, options);
    }

    // validate arguments
    JaqlShellArguments result = new JaqlShellArguments();

    // mini-cluster options         
    if (cl.hasOption(optCluster)) {
        result.useExistingCluster = true;
    }
    if (cl.hasOption(optDir)) {
        if (result.useExistingCluster) {
            printHelpAndExit("Options " + optCluster.getPreferredName() + " and " + optDir.getPreferredName()
                    + " are mutually exclusive", options);
        }
        result.hdfsDir = (String) cl.getValue(optDir);
    }
    if (cl.hasOption(optNumNodes)) {
        if (result.useExistingCluster) {
            printHelpAndExit("Options " + optCluster.getPreferredName() + " and "
                    + optNumNodes.getPreferredName() + " are mutually exclusive", options);
        }
        result.numNodes = ((Number) cl.getValue(optNumNodes)).intValue();
    }

    // jar files
    if (cl.hasOption(optJars)) {
        result.jars = ((String) cl.getValue(optJars)).split(",");
        for (String jar : result.jars) {
            if (!new File(jar).exists()) {
                printHelpAndExit("Jar file " + jar + " not found", options);
            }
        }
    }

    // search path directories
    if (cl.hasOption(optSearchPath)) {
        result.searchPath = ((String) cl.getValue(optSearchPath)).split(":");
        for (String dir : result.searchPath) {
            if (!new File(dir).exists() || !new File(dir).isDirectory()) {
                printHelpAndExit("Search-path entry " + dir + " not found or is no directory", options);
            }
        }
    }

    if (cl.hasOption(optBatch)) {
        result.batchMode = true;
        if (cl.hasOption(optOutOptions)) {
            String format = (String) cl.getValue(optOutOptions);
            try {
                result.outputAdapter = getOutputAdapter(format);
            } catch (Exception e) {
                printHelpAndExit(e,
                        "\"" + format + "\" is neither a valid output format nor a valid IO descriptor",
                        options);
            }
        }
    }

    // input
    if (cl.hasOption(optEval)) {
        String eval = (String) cl.getValue(optEval);
        if (!eval.endsWith(";"))
            eval += ";";
        result.addInputStream(new ByteArrayInputStream(eval.getBytes()));
    }
    if (cl.hasOption(optInputFiles)) {
        List<String> files = (List<String>) cl.getValues(optInputFiles);
        for (String file : files) {
            try {
                result.addInputStream(new FileInputStream(file));
            } catch (FileNotFoundException e) {
                printHelpAndExit(e, "Input file " + file + " not found", options);
            }
        }
    }

    // error log
    if (cl.hasOption(optLog)) {
        String path = (String) cl.getValue(optLog);
        try {
            BufferedJsonRecord logFD = new BufferedJsonRecord();
            logFD.add(Adapter.TYPE_NAME, new JsonString("local"));
            logFD.add(Adapter.LOCATION_NAME, new JsonString(path));
            OutputAdapter oa = (OutputAdapter) JaqlUtil.getAdapterStore().output.getAdapter(logFD);
            result.logAdapter = oa;
        } catch (Exception e) {
            printHelpAndExit(e, "\"" + path + "\" invalid", options);
        }
    }

    if (!result.batchMode) {
        result.addStdin();
    }

    return result;
}

From source file:it.jnrpe.client.JNRPEClient.java

/**
 * Configures the command line parser.//w w  w . j a v  a  2  s.com
 * 
 * @return The command line parser configuration
 */
private static Group configureCommandLine() {
    DefaultOptionBuilder oBuilder = new DefaultOptionBuilder();
    ArgumentBuilder aBuilder = new ArgumentBuilder();
    GroupBuilder gBuilder = new GroupBuilder();

    DefaultOption nosslOption = oBuilder.withLongName("nossl").withShortName("n")
            .withDescription("Do no use SSL").create();

    DefaultOption weakSslOption = oBuilder.withLongName("weakCiherSuites").withShortName("w")
            .withDescription("Enable weak cipher suites").create();

    DefaultOption unknownOption = oBuilder.withLongName("unknown").withShortName("u")
            .withDescription("Make socket timeouts return an UNKNOWN state instead of CRITICAL").create();

    DefaultOption hostOption = oBuilder.withLongName("host").withShortName("H")
            .withDescription("The address of the host running the JNRPE/NRPE daemon")
            .withArgument(aBuilder.withName("host").withMinimum(1).withMaximum(1).create()).create();

    NumberValidator positiveInt = NumberValidator.getIntegerInstance();
    positiveInt.setMinimum(0);
    DefaultOption portOption = oBuilder.withLongName("port").withShortName("p")
            .withDescription("The port on which the daemon is running (default=5666)")
            .withArgument(aBuilder.withName("port").withMinimum(1).withMaximum(1)
                    .withDefault(Long.valueOf(DEFAULT_PORT)).withValidator(positiveInt).create())
            .create();

    DefaultOption timeoutOption = oBuilder.withLongName("timeout").withShortName("t")
            .withDescription("Number of seconds before connection times out (default=10)")
            .withArgument(aBuilder.withName("timeout").withMinimum(1).withMaximum(1)
                    .withDefault(Long.valueOf(DEFAULT_TIMEOUT)).withValidator(positiveInt).create())
            .create();

    DefaultOption commandOption = oBuilder.withLongName("command").withShortName("c")
            .withDescription("The name of the command that the remote daemon should run")
            .withArgument(aBuilder.withName("command").withMinimum(1).withMaximum(1).create()).create();

    DefaultOption argsOption = oBuilder.withLongName("arglist").withShortName("a").withDescription(
            "Optional arguments that should be passed to the command.  Multiple arguments should be separated by "
                    + "a space (' '). If provided, this must be the last option supplied on the command line.")
            .withArgument(aBuilder.withName("arglist").withMinimum(1).create()).create();

    DefaultOption helpOption = oBuilder.withLongName("help").withShortName("h")
            .withDescription("Shows this help").create();

    Group executionOption = gBuilder.withOption(nosslOption).withOption(weakSslOption).withOption(unknownOption)
            .withOption(hostOption).withOption(portOption).withOption(timeoutOption).withOption(commandOption)
            .withOption(argsOption).create();

    return gBuilder.withOption(executionOption).withOption(helpOption).withMinimum(1).withMaximum(1).create();
}

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

/**
 * Builds the options./*  ww  w .  ja v a  2 s.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();

}