@Override protected boolean containsOption(String name) { return this.source.has(name); }
private static void setupParser() { parser = new OptionParser(); parser.accepts("help", "Print usage information"); parser.accepts("cluster", "Path to cluster xml") .withRequiredArg() .describedAs("cluster.xml"); parser.accepts("stores", "Path to store definition xml") .withRequiredArg() .describedAs("stores.xml"); }
/** * Adds OPT_FORMAT option to OptionParser, with one argument. * * @param parser OptionParser to be modified * @param required Tells if this option is required or optional */ public static void acceptsFormat(OptionParser parser) { parser.accepts(OPT_FORMAT, "format of key or entry, could be hex, json or binary") .withRequiredArg() .describedAs("hex | json | binary") .ofType(String.class); }
@Test public void withRequiredArg_ofTypeEnum() { OptionParser parser = new OptionParser(); parser.accepts("o1").withRequiredArg().ofType(OptionEnum.class); OptionSet options = parser.parse("--o1=VAL_1"); PropertySource<?> ps = new JOptCommandLinePropertySource(options); assertThat(ps.getProperty("o1"), equalTo("VAL_1")); }
public static OptionParser getParser() { OptionParser parser = new OptionParser(); parser.acceptsAll(Arrays.asList("bdb"), "Store level BDB folder") .withRequiredArg() .ofType(String.class) .describedAs("input-file-or-folder"); parser.acceptsAll(Arrays.asList("o", "output"), "Output folder of text dump") .withRequiredArg() .ofType(String.class) .describedAs("output-folder"); return parser; }
static OptionSpec<String> compressionCodecOption(OptionParser optParser) { return optParser .accepts("codec", "Compression codec") .withRequiredArg() .ofType(String.class) .defaultsTo("null"); }
@Test public void withOptionalArg_andArgIsMissing() { OptionParser parser = new OptionParser(); parser.accepts("foo").withOptionalArg(); OptionSet options = parser.parse("--foo"); PropertySource<?> ps = new JOptCommandLinePropertySource(options); assertThat(ps.containsProperty("foo"), is(true)); assertThat((String)ps.getProperty("foo"), equalTo("")); }
@Override public String[] getPropertyNames() { List<String> names = new ArrayList<>(); for (OptionSpec<?> spec : this.source.specs()) { String lastOption = CollectionUtils.lastElement(spec.options()); if (lastOption != null) { // Only the longest name is used for enumerating names.add(lastOption); } } return StringUtils.toStringArray(names); }
@Test public void withMissingOption() { OptionParser parser = new OptionParser(); parser.accepts("foo").withRequiredArg().withValuesSeparatedBy(','); OptionSet options = parser.parse(); // <-- no options whatsoever PropertySource<?> ps = new JOptCommandLinePropertySource(options); assertThat(ps.getProperty("foo"), nullValue()); }
/** * Adds OPT_D | OPT_DIR option to OptionParser, with one argument. * * @param parser OptionParser to be modified * @param required Tells if this option is required or optional */ public static void acceptsDir(OptionParser parser) { parser.acceptsAll(Arrays.asList(OPT_D, OPT_DIR), "directory path for input/output") .withRequiredArg() .describedAs("dir-path") .ofType(String.class); }
static OptionSpec<Integer> compressionLevelOption(OptionParser optParser) { return optParser .accepts("level", "Compression level (only applies to deflate and xz)") .withRequiredArg() .ofType(Integer.class) .defaultsTo(Deflater.DEFAULT_COMPRESSION); }
@Override protected boolean containsOption(String name) { return this.source.has(name); }
@Test public void withRequiredArg_andMultipleArgsPresent_usingRepeatedOption() { OptionParser parser = new OptionParser(); parser.accepts("foo").withRequiredArg().withValuesSeparatedBy(','); OptionSet options = parser.parse("--foo=bar", "--foo=baz", "--foo=biz"); CommandLinePropertySource<?> ps = new JOptCommandLinePropertySource(options); assertEquals(Arrays.asList("bar","baz","biz"), ps.getOptionValues("foo")); assertThat(ps.getProperty("foo"), equalTo("bar,baz,biz")); }
/** * Adds OPT_F | OPT_FILE option to OptionParser, with one argument. * * @param parser OptionParser to be modified * @param required Tells if this option is required or optional */ public static void acceptsFile(OptionParser parser) { parser.acceptsAll(Arrays.asList(OPT_F, OPT_FILE), "file path for input/output") .withRequiredArg() .describedAs("file-path") .ofType(String.class); }
@Test public void withRequiredArg_andArgIsPresent() { OptionParser parser = new OptionParser(); parser.accepts("foo").withRequiredArg(); OptionSet options = parser.parse("--foo=bar"); PropertySource<?> ps = new JOptCommandLinePropertySource(options); assertThat((String)ps.getProperty("foo"), equalTo("bar")); }
/** * Adds OPT_S | OPT_STORE option to OptionParser, with one argument. * * @param parser OptionParser to be modified * @param required Tells if this option is required or optional */ public static void acceptsStoreSingle(OptionParser parser) { parser.acceptsAll(Arrays.asList(OPT_S, OPT_STORE), "store name") .withRequiredArg() .describedAs("store-name") .ofType(String.class); }
@Test public void withDottedOptionName() { OptionParser parser = new OptionParser(); parser.accepts("spring.profiles.active").withRequiredArg(); OptionSet options = parser.parse("--spring.profiles.active=p1"); CommandLinePropertySource<?> ps = new JOptCommandLinePropertySource(options); assertThat(ps.getProperty("spring.profiles.active"), equalTo("p1")); }
/** * Adds OPT_Z | OPT_ZONE option to OptionParser, with one argument. * * @param parser OptionParser to be modified * @param required Tells if this option is required or optional */ public static void acceptsZone(OptionParser parser) { parser.acceptsAll(Arrays.asList(OPT_Z, OPT_ZONE), "zone id") .withRequiredArg() .describedAs("zone-id") .ofType(Integer.class); }
@Test public void withRequiredArg_andMultipleArgsPresent_usingDelimiter() { OptionParser parser = new OptionParser(); parser.accepts("foo").withRequiredArg().withValuesSeparatedBy(','); OptionSet options = parser.parse("--foo=bar,baz,biz"); CommandLinePropertySource<?> ps = new JOptCommandLinePropertySource(options); assertEquals(Arrays.asList("bar","baz","biz"), ps.getOptionValues("foo")); assertThat(ps.getProperty("foo"), equalTo("bar,baz,biz")); }
@Test public void withDefaultNonOptionArgsNameAndNonOptionArgsPresent() { OptionParser parser = new OptionParser(); parser.accepts("o1").withRequiredArg(); parser.accepts("o2"); OptionSet optionSet = parser.parse("--o1=v1", "noa1", "--o2", "noa2"); PropertySource<?> ps = new JOptCommandLinePropertySource(optionSet); assertThat(ps.containsProperty("nonOptionArgs"), is(true)); assertThat(ps.containsProperty("o1"), is(true)); assertThat(ps.containsProperty("o2"), is(true)); String nonOptionArgs = (String)ps.getProperty("nonOptionArgs"); assertThat(nonOptionArgs, equalTo("noa1,noa2")); }