net.opentsdb.tools
public final class ArgP extends Object
Example:
public static void main(String[] args) { final ArgP argp = new ArgP(); argp.addOption("--verbose", "Whether or not to be verbose."); argp.addOption("--path", "PATH", "The input path to read."); try { args = argp.parse(args); } catch (IllegalArgumentException e) { System.err.println(e.getMessage()); System.err.print(argp.usage()); // Note: usage already ends with \n. System.exit(1); } final boolean verbose = argp.has("--verbose"); final String path = argp.get("--path"); // Check that it's non-null. ... }This parser honors the convention that argument
--
means
"stop parsing options".
This class is not thread-safe.
Constructor and Description |
---|
ArgP()
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addOption(String name,
String help)
Registers an option that doesn't take a value in this argument parser.
|
void |
addOption(String name,
String meta,
String help)
Registers an option in this argument parser.
|
void |
addUsageTo(StringBuilder buf)
Appends the usage to the given buffer.
|
String |
get(String name)
Returns the value of the given option, if it was given.
|
String |
get(String name,
String defaultv)
Returns the value of the given option, or a default value.
|
HashMap<String,String> |
getParsed()
Returns a the parsed options and values
|
boolean |
has(String name)
Returns whether or not the given option was given.
|
boolean |
optionExists(String name)
Returns whether or not the given option name exists.
|
String[] |
parse(String[] args)
Parses the command line given in argument.
|
String |
toString() |
String |
usage()
Returns a usage string.
|
public void addOption(String name, String meta, String help)
name
- The name of the option to recognize (e.g. --foo
).meta
- The meta-variable to associate with the value of the option.help
- A short description of this option.IllegalArgumentException
- if the given name was already used.IllegalArgumentException
- if the name doesn't start with a dash.IllegalArgumentException
- if any of the given strings is empty.public void addOption(String name, String help)
name
- The name of the option to recognize (e.g. --foo
).help
- A short description of this option.IllegalArgumentException
- if the given name was already used.IllegalArgumentException
- if the name doesn't start with a dash.IllegalArgumentException
- if any of the given strings is empty.public boolean optionExists(String name)
Calling
addOption
(foo, ...)
entails that optionExists(foo)
returns true
.
name
- The name of the option to recognize (e.g. --foo
).public String[] parse(String[] args)
IllegalArgumentException
- if the given command line wasn't valid.public String get(String name)
null
if the option wasn't given, or if the option doesn't
take a value (in which case you should use has(java.lang.String)
instead).name
- The name of the option to recognize (e.g. --foo
).IllegalArgumentException
- if this option wasn't registered with
addOption(java.lang.String, java.lang.String, java.lang.String)
.IllegalStateException
- if parse(java.lang.String[])
wasn't called.public String get(String name, String defaultv)
name
- The name of the option to recognize (e.g. --foo
).defaultv
- The default value to return if the option wasn't given.IllegalArgumentException
- if this option wasn't registered with
addOption(java.lang.String, java.lang.String, java.lang.String)
.IllegalStateException
- if parse(java.lang.String[])
wasn't called.public boolean has(String name)
name
- The name of the option to recognize (e.g. --foo
).IllegalArgumentException
- if this option wasn't registered with
addOption(java.lang.String, java.lang.String, java.lang.String)
.IllegalStateException
- if parse(java.lang.String[])
wasn't called.public void addUsageTo(StringBuilder buf)
buf
- The buffer to write to.public String usage()