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 versionOptionParser
public OptionParser addFlagParameter(java.lang.String optionName, java.lang.Runnable handler)
optionName
- The parameter namehandler
- The handler that is called when the flag is encountered.OptionParser
private 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.OptionParser
public 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)