Example usage for org.apache.commons.cli OptionBuilder hasOptionalArgs

List of usage examples for org.apache.commons.cli OptionBuilder hasOptionalArgs

Introduction

In this page you can find the example usage for org.apache.commons.cli OptionBuilder hasOptionalArgs.

Prototype

public static OptionBuilder hasOptionalArgs() 

Source Link

Document

The next Option can have an unlimited number of optional arguments.

Usage

From source file:com.aguin.stock.recommender.UserOptions.java

public static void main(String[] args) {
    options = new Options();
    Option optU = OptionBuilder.hasArg().withArgName("uid").isRequired(true).withType(String.class)
            .withDescription(/* w  w  w  .  j a v  a 2  s .c  o  m*/
                    "User ID : must be a valid email address which serves as the unique identity of the portfolio")
            .create("u");

    Option optI = OptionBuilder.hasOptionalArgs().withArgName("item").withType(String.class).isRequired(false)
            .withDescription(
                    "Stock(s) in your portfolio: Print all stocks selected by this option and preferences against them")
            .create("i");

    Option optP = OptionBuilder.hasOptionalArgs().withArgName("pref").isRequired(false).withType(Long.class)
            .withDescription(
                    "Preference(s) against stocks in portfolio : Print all preferences specified in option and all stocks listed against that preference. Multiple preferences may be specified to draw on the many-many relationship between stocks and preferences matrices")
            .create("p");

    Option optIP = OptionBuilder.hasArg().withArgName("itempref").withValueSeparator(':').isRequired(false)
            .withDescription(
                    "Enter stock and preferences over command line. Any new stock will be registered as a new entry along with preference. Each new preference for an already existing stock will overwrite the existing preference(so be careful!)")
            .create("ip");

    Option optF = OptionBuilder.hasArg().withArgName("itempreffile").withType(String.class)
            .withDescription("File to read stock preference data from").isRequired(false).create("f");

    Option optH = OptionBuilder.hasArg(false).withArgName("help").withType(String.class)
            .withDescription("Display usage").isRequired(false).create("h");

    options.addOption(optU);
    options.addOption(optI);
    options.addOption(optP);
    options.addOption(optIP);
    options.addOption(optF);
    options.addOption(optH);

    parser = new BasicParser();
    CommandLine line = null;

    try {
        line = parser.parse(options, args);
    } catch (MissingOptionException e) {
        System.out.println("Missing options");
        printUsage();
    } catch (ParseException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

    if (line.hasOption("help")) {
        printUsage();
    }
    UserArgumentEmailType uEmailId = new UserArgumentEmailType(line.getOptionValue("u"));
    String uEmailIdStr = uEmailId.toString();

    if (MongoDBUserModel.registered(uEmailIdStr)) {
        System.out.format("Already registered user %s\n", uEmailIdStr);
    } else {
        System.out.format("+--Starting transaction for user %s --+\n", uEmailIdStr);
    }

    if (line.hasOption("f")) {
        System.out.println("Query::UpdateDB: itempreffile(s)\n");
        String[] uItemPrefFiles = line.getOptionValues("f");
        for (String it : uItemPrefFiles) {
            System.out.format("Updating db with user file %s\n", it);
            UserItemPrefFile uItemPrefFile = new UserItemPrefFile(uEmailIdStr, it);
            uItemPrefFile.writeToDB();
        }
    }
    if (line.hasOption("i")) {
        System.out.println("Query::ReadDB: item(s)\n");
        String[] uItems = line.getOptionValues("i");
        for (String it : uItems) {
            System.out.format("Searching for item %s in db\n", it);
            UserItem uItem = new UserItem(uEmailIdStr, it);
            uItem.readFromDB();
        }
    }
    if (line.hasOption("p")) {
        System.out.println("Query::ReadDB: preference(s)");
        String[] uPrefs = line.getOptionValues("p");
        for (String it : uPrefs) {
            System.out.format("Searching for preference %s in db\n", it);
            UserPreference uPref = new UserPreference(uEmailIdStr, it);
            uPref.readFromDB();
        }
    }
    if (line.hasOption("ip")) {
        System.out.println("Query::UpdateDB: itempref(s)\n");
        String[] uItemPrefs = line.getOptionValues("ip");
        for (String it : uItemPrefs) {
            System.out.format("Updating item:preference pair %s\n", it);
            String[] pair = it.split(":");
            System.out.format("%s:%s:%s", uEmailIdStr, pair[0], pair[1]);
            UserItemPreference uItemPref = new UserItemPreference(uEmailIdStr, pair[0], pair[1]);
            uItemPref.writeToDB();
        }
    }
    System.out.format("+-- Ending transaction for user %s --+\n", uEmailIdStr);

}

From source file:com.comcast.oscar.cli.commands.Key.java

/**
 * Set option parameters for command Key
 * @return Option//from w  w w  .  ja va  2  s  .c  o  m
 */
public static Option OptionParameters() {
    OptionBuilder.withArgName("key filename");
    OptionBuilder.hasArgs(1);
    OptionBuilder.hasOptionalArgs();
    OptionBuilder.withValueSeparator(' ');
    OptionBuilder.withLongOpt("key");
    OptionBuilder.withDescription("Use this sharedsecret to compile the file - DOCSIS ONLY.");
    return OptionBuilder.create("k");
}

From source file:com.comcast.oscar.cli.commands.TLV.java

/**
 * Set option parameters for command TLV
 * @return Option//from   www  .j a  va 2 s . com
 */
public static final Option OptionParameters() {
    OptionBuilder.withArgName("TLV");
    OptionBuilder.hasArgs(1);
    OptionBuilder.hasOptionalArgs();
    OptionBuilder.withValueSeparator(' ');
    OptionBuilder.withLongOpt("tlv");
    OptionBuilder.withDescription("Insert this TLV during file compilation.");
    return OptionBuilder.create("t");
}

From source file:com.comcast.oscar.cli.commands.Firmware.java

/**
 * Set option parameters for command Firmware
 * @return Option/*from www .j av a2s. c  o  m*/
 */
public static final Option OptionParameters() {
    OptionBuilder.withArgName("filename");
    OptionBuilder.hasArgs(1);
    OptionBuilder.hasOptionalArgs();
    OptionBuilder.withValueSeparator(' ');
    OptionBuilder.withLongOpt("firmware");
    OptionBuilder.withDescription("Insert this firmware during file compilation.");
    return OptionBuilder.create("f");
}

From source file:com.comcast.oscar.cli.commands.MaxCPE.java

/**
 * Set option parameters for command Maximum CPE
 * @return Option/*from w w  w  .  jav a 2 s.  c  om*/
 */
public static final Option OptionParameters() {
    OptionBuilder.withArgName("maximum CPEs");
    OptionBuilder.hasArgs(1);
    OptionBuilder.hasOptionalArgs();
    OptionBuilder.withValueSeparator(' ');
    OptionBuilder.withLongOpt("maxCPE");
    OptionBuilder.withDescription("Insert the maximum CPEs during file compilation EX: 5.");
    return OptionBuilder.create("m");
}

From source file:com.comcast.oscar.cli.commands.DownstreamFrequency.java

/**
 * Set option parameters for command Downstream Frequency
 * @return Option//from   w w  w  .  ja  v a2s  .c om
 */
public static final Option OptionParameters() {
    OptionBuilder.withArgName("downstream frequency");
    OptionBuilder.hasArgs(1);
    OptionBuilder.hasOptionalArgs();
    OptionBuilder.withValueSeparator(' ');
    OptionBuilder.withLongOpt("dsfreq");
    OptionBuilder.withDescription("Insert this downstream frequency during file compilation EX: 723000000.");
    return OptionBuilder.create("df");
}

From source file:com.comcast.oscar.cli.commands.TLVDescription.java

/**
 * Set option parameters for command TLV description
 * @return Option/*from   w  ww. j  a  va  2 s. c om*/
 */
public static final Option OptionParameters() {
    OptionBuilder.withArgName("TLV dot notation");
    OptionBuilder.hasArgs(1);
    OptionBuilder.hasOptionalArgs();
    OptionBuilder.withValueSeparator(' ');
    OptionBuilder.withLongOpt("tlvdescription");
    OptionBuilder.withDescription("Display the TLV description (EX: 26.1).");
    return OptionBuilder.create("td");
}

From source file:com.comcast.oscar.cli.commands.TLVtoJSON.java

/**
 * Set option parameters for command TLV to JSON display
 * @return Option/*from  ww  w .j  a v a2  s. co  m*/
 */
public static final Option OptionParameters() {
    OptionBuilder.withArgName("TLV");
    OptionBuilder.hasArgs();
    OptionBuilder.hasOptionalArgs();
    OptionBuilder.withValueSeparator(' ');
    OptionBuilder.withLongOpt("tlv2json");
    OptionBuilder.withDescription(
            "View the JSON array of a TLV EX: 030101 (NetworkAccess: Type 3 Length 1 Value 1).");
    return OptionBuilder.create("t2j");
}

From source file:com.comcast.oscar.cli.commands.Input.java

/**
 * Set option parameters for command Input
 * @return Option/*ww  w . j av  a 2 s .c  o  m*/
 */
public static final Option OptionParameters() {
    OptionBuilder.withArgName("filename");
    OptionBuilder.hasArgs(1);
    OptionBuilder.hasOptionalArgs();
    OptionBuilder.withValueSeparator(' ');
    OptionBuilder.withLongOpt("input");
    OptionBuilder.withDescription("File to analyze and/or compile/decompile.");
    return OptionBuilder.create("i");
}

From source file:com.comcast.oscar.cli.commands.JSONtoTLV.java

/**
 * Set option parameters for command JSON to TLV display
 * @return Option/*from   w ww  . ja  v  a2  s. c o m*/
 */
public static final Option OptionParameters() {
    OptionBuilder.withArgName("filename");
    OptionBuilder.hasArgs();
    OptionBuilder.hasOptionalArgs();
    OptionBuilder.withValueSeparator(' ');
    OptionBuilder.withLongOpt("json2tlv");
    OptionBuilder.withDescription("View the TLV number of a JSON array within the file.");
    return OptionBuilder.create("j2t");
}