List of usage examples for org.apache.commons.cli Option required
boolean required
To view the source code for org.apache.commons.cli Option required.
Click Source Link
From source file:org.apache.batchee.cli.BatchEECLI.java
private static Options buildOptions(final Class<? extends Runnable> cmd, Map<String, Field> fields) { final Options options = new Options(); Class<?> it = cmd;/*from www. j a va2s. c o m*/ while (it != null) { for (final Field f : it.getDeclaredFields()) { final org.apache.batchee.cli.command.api.Option option = f .getAnnotation(org.apache.batchee.cli.command.api.Option.class); final org.apache.batchee.cli.command.api.Arguments arguments = f .getAnnotation(org.apache.batchee.cli.command.api.Arguments.class); if (option != null && arguments != null) { throw new IllegalArgumentException("An @Option can't get @Arguments: " + f); } if (option != null) { final String name = option.name(); final Option.Builder builder = Option.builder(name).desc(option.description()).hasArg(); if (option.required()) { builder.required(); } options.addOption(builder.build()); fields.put(name, f); f.setAccessible(true); } else if (arguments != null) { if (fields.put("", f) != null) { throw new IllegalArgumentException("A command can only have a single @Arguments"); } f.setAccessible(true); } } it = it.getSuperclass(); } return options; }
From source file:org.voltdb.CLIConfig.java
public void parse(String cmdName, String[] args) { this.cmdName = cmdName; try {//from w w w . j av a 2 s .co m 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 a va2s .c o 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 w ww. ja v a 2s . c o m } o.setArgs(a.numberOfArgs()); o.setRequired(a.required()); o.setType(a.type()); o.setArgName(a.argName()); // assign to options list options.addOption(o); }