List of usage examples for org.apache.commons.cli Option opt
String opt
To view the source code for org.apache.commons.cli Option opt.
Click Source Link
From source file:org.voltdb.CLIConfig.java
public void parse(String cmdName, String[] args) { this.cmdName = cmdName; try {/* w w w . j a v a 2s.com*/ options.addOption("help", "h", false, "Print this message"); // add all of the declared options to the cli for (Field field : getClass().getDeclaredFields()) { if (field.isAnnotationPresent(Option.class)) { Option option = field.getAnnotation(Option.class); String opt = option.opt(); if ((opt == null) || (opt.trim().length() == 0)) { opt = field.getName(); } String shortopt = option.shortOpt(); if ((shortopt == null) || (shortopt.trim().length() == 0)) { options.addOption(null, opt, option.hasArg(), option.desc()); helpmsgs.addOption(null, opt, option.hasArg(), option.desc()); } else { options.addOption(shortopt, opt, option.hasArg(), option.desc()); helpmsgs.addOption(shortopt, opt, option.hasArg(), option.desc()); } } else if (field.isAnnotationPresent(AdditionalArgs.class)) { AdditionalArgs params = field.getAnnotation(AdditionalArgs.class); String opt = params.opt(); if ((opt == null) || (opt.trim().length() == 0)) { opt = field.getName(); } options.addOption(opt, params.hasArg(), params.desc()); } } CommandLineParser parser = new PosixParser(); CommandLine cmd = parser.parse(options, args); if (cmd.hasOption("help")) { printUsage(); System.exit(0); } String[] leftargs = cmd.getArgs(); int leftover = 0; // string key-value pairs Map<String, String> kvMap = new TreeMap<String, String>(); for (Field field : getClass().getDeclaredFields()) { if (field.isAnnotationPresent(Option.class)) { Option option = field.getAnnotation(Option.class); String opt = option.opt(); if ((opt == null) || (opt.trim().length() == 0)) { opt = field.getName(); } if (cmd.hasOption(opt)) { if (option.hasArg()) { assignValueToField(field, cmd.getOptionValue(opt)); } else { if (field.getType().equals(boolean.class) || field.getType().equals(Boolean.class)) { field.setAccessible(true); try { field.set(this, true); } catch (Exception e) { throw new IllegalArgumentException(e); } } else { printUsage(); } } } else { if (option.required()) { printUsage(); } } field.setAccessible(true); kvMap.put(opt, field.get(this).toString()); } else if (field.isAnnotationPresent(AdditionalArgs.class)) { // Deal with --table=BLHA, offer nice error message later leftover++; } } if (leftargs != null) { if (leftargs.length <= leftover) { Field[] fields = getClass().getDeclaredFields(); for (int i = 0, j = 0; i < leftargs.length; i++) { for (; j < fields.length; j++) { if (fields[j].isAnnotationPresent(AdditionalArgs.class)) break; } fields[j].setAccessible(true); fields[j].set(this, leftargs[i]); } } else { System.err.println("Expected " + leftover + " args, but receive " + leftargs.length + " args"); printUsage(); System.exit(-1); } } // check that the values read are valid // this code is specific to your app validate(); // build a debug string StringBuilder sb = new StringBuilder(); for (Entry<String, String> e : kvMap.entrySet()) { sb.append(e.getKey()).append(" = ").append(e.getValue()).append("\n"); } configDump = sb.toString(); } catch (Exception e) { System.err.println("Parsing failed. Reason: " + e.getMessage()); printUsage(); System.exit(-1); } }
From source file:org.zend.sdkcli.internal.options.DetectOptionUtility.java
private static void addBoolean(Options options, Method method) { final Option a = method.getAnnotation(Option.class); // create option object final org.apache.commons.cli.Option o = new org.apache.commons.cli.Option(a.opt(), a.description()); if (a.longOpt() != null && a.longOpt().length() > 0) { o.setLongOpt(a.longOpt());/*from w w w .j av a 2s . co m*/ } o.setArgs(0); o.setRequired(a.required()); // assign to options list options.addOption(o); options.addOption(o); }
From source file:org.zend.sdkcli.internal.options.DetectOptionUtility.java
private static void addString(Options options, Method method) { final Option a = method.getAnnotation(Option.class); // create option object final org.apache.commons.cli.Option o = new org.apache.commons.cli.Option(a.opt(), a.description()); if (a.longOpt() != null && a.longOpt().length() > 0) { o.setLongOpt(a.longOpt());//from ww w. ja v a 2 s .com } o.setArgs(a.numberOfArgs()); o.setRequired(a.required()); o.setType(a.type()); o.setArgName(a.argName()); // assign to options list options.addOption(o); }