Example usage for org.apache.commons.cli Option opt

List of usage examples for org.apache.commons.cli Option opt

Introduction

In this page you can find the example usage for org.apache.commons.cli Option opt.

Prototype

String opt

To view the source code for org.apache.commons.cli Option opt.

Click Source Link

Document

the name of the option

Usage

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);
}