public class OptionParser extends java.lang.Object
Allows parsing command line options
| Modifier and Type | Class and Description |
|---|---|
protected static interface |
OptionParser.AvailableOption |
private static class |
OptionParser.FoundOption |
static class |
OptionParser.OptionCount
How often an option may / must be specified on the command line.
|
static class |
OptionParser.OptionParseException
Exception thrown when an option cannot be parsed.
|
| Modifier and Type | Field and Description |
|---|---|
private java.util.HashMap<java.lang.String,OptionParser.AvailableOption> |
availableOptions |
private java.lang.String |
program |
| Constructor and Description |
|---|
OptionParser(java.lang.String program)
Create a new option parser.
|
| Modifier and Type | Method and Description |
|---|---|
OptionParser |
addArgumentParameter(java.lang.String optionName,
OptionParser.OptionCount count,
java.util.function.Consumer<java.lang.String> handler)
Add a parameter that expects a string attribute.
|
OptionParser |
addFlagParameter(java.lang.String optionName,
java.lang.Runnable handler)
Adds an option that may be used as a flag, e.g.
|
OptionParser |
addShortAlias(java.lang.String optionName,
java.lang.String shortName)
Adds an alias for the long option --optionName to the short version -name
|
private void |
checkOptionName(java.lang.String optionName) |
private OptionParser.AvailableOption |
findParameter(java.lang.String optionName) |
java.util.List<java.lang.String> |
parseOptions(java.util.List<java.lang.String> arguments)
Parses the options.
|
java.util.List<java.lang.String> |
parseOptionsOrExit(java.util.List<java.lang.String> arguments)
Same as
parseOptions(List), but exits if option parsing fails. |
private java.util.HashMap<java.lang.String,OptionParser.AvailableOption> availableOptions
private final java.lang.String program
public OptionParser(java.lang.String program)
program - The program name.public OptionParser addShortAlias(java.lang.String optionName, java.lang.String shortName)
optionName - The long optionshortName - The short versionOptionParserpublic OptionParser addFlagParameter(java.lang.String optionName, java.lang.Runnable handler)
optionName - The parameter namehandler - The handler that is called when the flag is encountered.OptionParserprivate void checkOptionName(java.lang.String optionName)
public OptionParser addArgumentParameter(java.lang.String optionName, OptionParser.OptionCount count, java.util.function.Consumer<java.lang.String> handler)
optionName - The name of the parameter.count - The number of times the parameter may occur.handler - A function that gets the current object and the parameter.
It should throw an OptionParser.OptionParseException if the parameter cannot be handled / is invalid.OptionParserpublic java.util.List<java.lang.String> parseOptionsOrExit(java.util.List<java.lang.String> arguments)
parseOptions(List), but exits if option parsing fails.arguments - The optionspublic java.util.List<java.lang.String> parseOptions(java.util.List<java.lang.String> arguments)
It first checks if all required options are present, if all options are known and validates the option count.
Then, all option handlers are called in the order in which the options are encountered.
arguments - Program argumentsOptionParser.OptionParseException - The error to display if option parsing failed.private OptionParser.AvailableOption findParameter(java.lang.String optionName)