List of usage examples for org.apache.commons.cli2.validation NumberValidator getIntegerInstance
public static NumberValidator getIntegerInstance()
NumberValidator
for an integer number format for the current default locale. 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(); }