/** * Indicates that the Option will require an argument. * * @return this builder, to allow method chaining */ public Builder hasArg() { return hasArg(true); }
/** * Create command line option with only long name and only one argument. * * @param longOpt long version of option * @param argName name of argument for help message * @param desc description of option */ private Option createSingleArgOpt(String longOpt, String argName, String desc) { return Option.builder().longOpt(longOpt).hasArg().argName(argName).desc(desc).build(); }
/** * Create command line option with short name, long name, and only one argument. * * @param shortOpt short version of option * @param longOpt long version of option * @param argName name of argument for help message * @param desc description of option */ private Option createSingleArgOpt(String shortOpt, String longOpt, String argName, String desc) { return Option.builder(shortOpt).longOpt(longOpt).hasArg().argName(argName).desc(desc).build(); }
checkOption(Option.builder("a").desc("desc").longOpt("aaa").build(), "a", "desc", "aaa", Option.UNINITIALIZED, null, false, false, defaultSeparator, String.class); checkOption(Option.builder("a").desc("desc").hasArg(true).build(), "a", "desc", null, 1, null, false, false, defaultSeparator, String.class); checkOption(Option.builder("a").desc("desc").hasArg(false).build(), "a", "desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator, String.class); checkOption(Option.builder("a").desc("desc").hasArg(true).build(), "a", "desc", null, 1, null, false, false, defaultSeparator, String.class); checkOption(Option.builder("a").desc("desc").numberOfArgs(3).build(),
private Options getOptions() { Options options = new Options(); Option help = Option.builder("h") .longOpt("help") .desc("Prints this help message") .build(); options.addOption(help); buildOptionsGroup(options); Option t = Option.builder("t") .required() .hasArg() .argName("file") .build(); Option w = Option.builder("w") .required() .hasArg() .argName("word") .build(); Option o = Option.builder("o") .hasArg() .argName("directory") .build(); options.addOption(t); options.addOption(w); options.addOption(o); return options; }
private Constructor<? extends T> inferConstructorOptions(Options otherOptions) { Constructor<? extends T> selectedConstructor = null; for (Constructor<?> constructor : this.klazz.getConstructors()) { if (canUseConstructor(constructor)) { if (selectedConstructor == null) { selectedConstructor = (Constructor<? extends T>) constructor; } else { throw new RuntimeException("Multiple usable constructors for " + this.klazz.getName()); } } } if (selectedConstructor == null) { throw new RuntimeException("There is no usable constructor for " + this.klazz.getName()); } int constructorIdx = 0; for (String argument : selectedConstructor.getAnnotation(CliObjectSupport.class).argumentNames()) { Option option = Option.builder(argument).required().hasArg().build(); otherOptions.addOption(option); constructoArgumentsMap.put(option.getOpt(), constructorIdx); constructorIdx++; } return selectedConstructor; }
private Options inferOptionsFromMethods() { Options options = new Options(); for (Method method : klazz.getMethods()) { if (canUseMethod(method)) { CliObjectOption annotation = method.isAnnotationPresent(CliObjectOption.class) ? method.getAnnotation(CliObjectOption.class) : null; String optionName = annotation == null || Strings.isNullOrEmpty(annotation.name()) ? method.getName() : annotation.name(); String description = annotation == null ? "" : annotation.description(); Option.Builder builder = Option.builder(optionName).desc(description); boolean hasArg = method.getParameterTypes().length > 0; if (hasArg) { builder.hasArg(); } Option option = builder.build(); options.addOption(option); this.methodsMap.put(option.getOpt(), method); } } return options; }
/** * Adds the deprecated command line options to the given options collection. * These are split out for purposes of not including them in the help * message. We need to add the deprecated options so as not to break * existing scripts. * * @param options a collection of command line arguments */ @SuppressWarnings({"static-access", "deprecation"}) private void addDeprecatedOptions(final Options options) { final Option proxyServer = Option.builder().argName("url").hasArg().longOpt(ARGUMENT.PROXY_URL) .desc("The proxy url argument is deprecated, use proxyserver instead.") .build(); final Option appName = Option.builder(ARGUMENT.APP_NAME_SHORT).argName("name").hasArg().longOpt(ARGUMENT.APP_NAME) .desc("The name of the project being scanned.") .build(); options.addOption(Option.builder().longOpt("disableNSP") .desc("Disable the NSP Package Analyzer.").build()); options.addOption(proxyServer); options.addOption(appName); }
.hasArg() .argName("SECS") .desc("How long in between reported metrics. Will be rounded up to the next 10 sec boundary.\n" .hasArg() .argName("SECS") .desc("How long of a rolling window should be in each report. Will be rounded up to the next report interval boundary.\n" .hasArg() .argName("TYPE:PATH?OPTIONS") .desc("Provide the config for a reporter to run. Supported types are:\n"
@Test public void testHelpWithLongOptSeparator() throws Exception { Options options = new Options(); options.addOption( "f", true, "the file" ); options.addOption(Option.builder("s").longOpt("size").desc("the size").hasArg().argName("SIZE").build()); options.addOption(Option.builder().longOpt("age").desc("the age").hasArg().build()); HelpFormatter formatter = new HelpFormatter(); assertEquals(HelpFormatter.DEFAULT_LONG_OPT_SEPARATOR, formatter.getLongOptSeparator()); formatter.setLongOptSeparator("="); assertEquals("=", formatter.getLongOptSeparator()); StringWriter out = new StringWriter(); formatter.printHelp(new PrintWriter(out), 80, "create", "header", options, 2, 2, "footer"); assertEquals( "usage: create" + EOL + "header" + EOL + " --age=<arg> the age" + EOL + " -f <arg> the file" + EOL + " -s,--size=<SIZE> the size" + EOL + "footer" + EOL, out.toString()); }
public Option createOption() { return Option.builder(shortName).longOpt(longName).desc(description).hasArg(hasArg).build(); }
private static Options createOptions() { final Options options = createHelpOptions(); options.addOption(Option.builder(PLAINTEXT_KEY).longOpt("plaintext").hasArg().required() .desc("Plaintext that needs to be encrypted") .argName("plainText").build()); options.addOption(Option.builder(PASSPHRASE_KEY).longOpt("key").hasArg().required() .desc("Passphrase used for encrypting plain text") .argName("pass phrase").build()); options.addOption(Option.builder(VERSION_KEY).longOpt("version").hasArg().required() .desc("Version it will use to encrypt Version: " + Version.versionStrings()) .argName("crypto version").build()); return options; } }
@Test public void testUsageWithLongOptSeparator() throws Exception { Options options = new Options(); options.addOption( "f", true, "the file" ); options.addOption(Option.builder("s").longOpt("size").desc("the size").hasArg().argName("SIZE").build()); options.addOption(Option.builder().longOpt("age").desc("the age").hasArg().build()); HelpFormatter formatter = new HelpFormatter(); formatter.setLongOptSeparator("="); StringWriter out = new StringWriter(); formatter.printUsage(new PrintWriter(out), 80, "create", options); assertEquals("usage: create [--age=<arg>] [-f <arg>] [-s <SIZE>]", out.toString().trim()); } }
private static Options initOptions(Options options) { options.addOption(new Option(StringUtils.EMPTY + HELP_OPTION, "print this message")); options.addOption(Option.builder(StringUtils.EMPTY + PLAIN_PWD_OPTION).argName("plain password").hasArg() .desc("plain password to be encrypted").build()); options.addOption(Option.builder(StringUtils.EMPTY + MASTER_PWD_OPTION).argName("master password").hasArg() .desc("master password used to encrypt the plain password").build()); options.addOption(Option.builder(StringUtils.EMPTY + MASTER_PWD_FILE_OPTION).argName("master password file") .hasArg().desc("file that contains the master password used to encrypt the plain password").build()); options.addOption(new Option(StringUtils.EMPTY + STRONG_ENCRYPTOR_OPTION, "use strong encryptor")); options.addOption(Option.builder(StringUtils.EMPTY + ENCRYPTED_PWD_OPTION).argName("decrypt the input").hasArg().build()); return options; }
private Options buildExpectedOptions() { final Options options = new Options(); for (final Map.Entry<String, String> entry : OPTIONS_MAP.entrySet()) { final Option option = Option.builder(null).required(true).longOpt(entry.getKey()).desc(entry.getValue()).hasArg().build(); options.addOption(option); } return options; }
@Test public void testDefaultArgName() { Option option = Option.builder("f").hasArg().required(true).build(); Options options = new Options(); options.addOption(option); StringWriter out = new StringWriter(); HelpFormatter formatter = new HelpFormatter(); formatter.setArgName("argument"); formatter.printUsage(new PrintWriter(out), 80, "app", options); assertEquals("usage: app -f <argument>" + EOL, out.toString()); }
@Before public void setUp() throws Exception { parser = new DefaultParser(); Option optionT1 = Option.builder("t1").hasArg().numberOfArgs(1).optionalArg(true).argName("t1_path").build(); Option optionA = Option.builder("a").hasArg(false).build(); Option optionB = Option.builder("b").hasArg(false).build(); Option optionLast = Option.builder("last").hasArg(false).build(); options = new Options().addOption(optionT1).addOption(optionA).addOption(optionB).addOption(optionLast); }
@Override public Options getOptions() { return new Options().addOption(Option.builder(REPLICATION) .required(false) .hasArg(true) .desc("number of replicas to have for each block of the loaded file") .build()); }
@Override public Options getOptions() { return new Options().addOption( Option.builder("f") .required(false) .hasArg() .desc("format") .build() ); }