public class ArgumentParser
extends java.lang.Object
ArgumentParser parsers a command line array into Java
objects and associates each object with the corresponding command line option
according to predefined schemes for options and parameters.
The format specification for options is:
[-<option>\[<type>[\<<regex>\>]{<parameter>[=<default>]}\]] ...
where
The format specification for parameters is:
[-<parameter>[<type>[<<regex>>]{[=<default>]}]]... [+<optionalParameter>[<type>[<<regex>>]{[=<default>]}]]... [<..>]
where
| Modifier and Type | Class and Description |
|---|---|
static class |
ArgumentParser.ArgumentFormat |
static class |
ArgumentParser.ArgumentParameter |
static class |
ArgumentParser.ArgumentParseException |
| Modifier and Type | Field and Description |
|---|---|
private java.util.Map<java.lang.String,ArgumentParser.ArgumentFormat> |
optionFormat |
private java.util.Map<? extends java.lang.String,? extends ArgumentParser.ArgumentFormat> |
parameterFormat |
static int |
TYPE_INTEGER |
static int |
TYPE_LONG |
static int |
TYPE_OCTET_STRING |
static int |
TYPE_STRING |
static java.lang.String[] |
TYPES |
| Constructor and Description |
|---|
ArgumentParser(java.lang.String optionFormat,
java.lang.String parameterFormat)
Creates an argument parser with the specified option and parameter formats.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addValues2Option(java.lang.String option,
java.util.List values,
java.util.Map<java.lang.String,java.util.List> options) |
static java.lang.Object |
getFirstValue(java.util.List<? extends java.lang.Object> optionValues)
Gets the first option value of a list of values - if available.
|
java.util.Map<java.lang.String,ArgumentParser.ArgumentFormat> |
getOptionFormat() |
java.util.Map<? extends java.lang.String,? extends ArgumentParser.ArgumentFormat> |
getParameterFormat() |
private static int |
getType(java.lang.String type) |
static java.lang.Object |
getValue(java.util.Map args,
java.lang.String name,
int index)
Gets the
n-th option value of a list of values - if available. |
static void |
main(java.lang.String[] args)
Test application to try out patterns and command line parameters.
|
java.util.Map<java.lang.String,java.util.List> |
parse(java.lang.String[] args)
Parses the given command line and returns a map of parameter/option names
to a
List of values. |
protected static java.util.Map<java.lang.String,ArgumentParser.ArgumentFormat> |
parseFormat(java.lang.String format,
boolean parameterFormat) |
protected java.lang.Object |
parseParameterValue(ArgumentParser.ArgumentParameter type,
java.lang.String value,
ArgumentParser.ArgumentFormat format,
int pos) |
protected java.util.List |
parseValues(java.lang.String[] args,
int offset,
ArgumentParser.ArgumentFormat format) |
static java.lang.String[] |
selectCommand(java.lang.String[] args,
java.lang.String optionFormat,
java.lang.String[][] commandSets)
Select a argument/parameter set from a given selection of sets by the
command contained in the supplied argument list.
|
public static final java.lang.String[] TYPES
public static final int TYPE_INTEGER
public static final int TYPE_LONG
public static final int TYPE_STRING
public static final int TYPE_OCTET_STRING
private java.util.Map<java.lang.String,ArgumentParser.ArgumentFormat> optionFormat
private java.util.Map<? extends java.lang.String,? extends ArgumentParser.ArgumentFormat> parameterFormat
public ArgumentParser(java.lang.String optionFormat,
java.lang.String parameterFormat)
optionFormat - the option format pattern to parse (see ArgumentParser).parameterFormat - the parameter format pattern to parse (see ArgumentParser).public java.util.Map<java.lang.String,ArgumentParser.ArgumentFormat> getOptionFormat()
public java.util.Map<? extends java.lang.String,? extends ArgumentParser.ArgumentFormat> getParameterFormat()
protected static java.util.Map<java.lang.String,ArgumentParser.ArgumentFormat> parseFormat(java.lang.String format, boolean parameterFormat)
private static int getType(java.lang.String type)
public java.util.Map<java.lang.String,java.util.List> parse(java.lang.String[] args)
throws java.text.ParseException
List of values. Each value may be of type
Integer, Long, and String.args - the command line argument list.java.text.ParseException - if the command line does not match the patterns for options and
parameters.protected void addValues2Option(java.lang.String option,
java.util.List values,
java.util.Map<java.lang.String,java.util.List> options)
protected java.util.List parseValues(java.lang.String[] args,
int offset,
ArgumentParser.ArgumentFormat format)
throws java.text.ParseException
java.text.ParseExceptionprotected java.lang.Object parseParameterValue(ArgumentParser.ArgumentParameter type, java.lang.String value, ArgumentParser.ArgumentFormat format, int pos) throws ArgumentParser.ArgumentParseException
public static java.lang.Object getFirstValue(java.util.List<? extends java.lang.Object> optionValues)
optionValues - a probably empty list of values - could be null.optionValues if it exists,
null otherwise.public static java.lang.Object getValue(java.util.Map args,
java.lang.String name,
int index)
n-th option value of a list of values - if available.args - a parameter and options list.name - the option or parameter name to returnindex - the index (zero based) of the option/parameter value to return.n-th (zero based) option value in
args.get(name) if it exists, null otherwise.public static void main(java.lang.String[] args)
org.snmp4j.OptionFormat and
org.snmp4j.ParameterFormat respectively.
The given command line is parsed using the specified patterns and the parsed values are returned on the console output.
The default option pattern is -o1[i{parameter1}] -o2[s,l]
and the default parameter pattern is
-param1[i] -param2[s<(udp|tcp):.*[/[0-9]+]?>] +optParam1[l{=-100}] ..
args - the command line arguments to match with the specified format patterns.public static java.lang.String[] selectCommand(java.lang.String[] args,
java.lang.String optionFormat,
java.lang.String[][] commandSets)
throws java.text.ParseException
args - the argument list to scan.optionFormat - the option format which is common to all commands (or their super set)commandSets - the possible command sets, where each set is identified by its command
string in the first element of the command set.java.text.ParseException - if the command found in args cannot be found in the
commandSets, or null if args
does not contain any command.