|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.android.sdklib.util.CommandLineParser
public class CommandLineParser
Parses the command-line and stores flags needed or requested.
This is a base class. To be useful you want to:parseArgs(String[])
and then
call getValue(String, String, String)
.
Nested Class Summary | |
---|---|
protected static class |
CommandLineParser.Accept
|
protected static class |
CommandLineParser.Arg
An argument accepted by the command-line, also called "a flag". |
protected static class |
CommandLineParser.Mode
The mode of an argument specifies the type of variable it represents, whether an extra parameter is required after the flag and how to parse it. |
Field Summary | |
---|---|
static java.lang.String |
GLOBAL_FLAG_VERB
Internal verb name for internally hidden flags. |
static java.lang.String |
KEY_HELP
The global help flag. |
static java.lang.String |
KEY_SILENT
The global silent flag. |
static java.lang.String |
KEY_VERBOSE
The global verbose flag. |
static java.lang.String |
NO_VERB_OBJECT
String to use when the verb doesn't need any object. |
Constructor Summary | |
---|---|
CommandLineParser(com.android.utils.ILogger logger,
java.lang.String[][] actions)
Constructs a new command-line processor. |
Method Summary | |
---|---|
boolean |
acceptLackOfVerb()
Indicates if this command-line can work when no verb is specified. |
protected void |
define(CommandLineParser.Mode mode,
boolean mandatory,
java.lang.String verb,
java.lang.String directObject,
java.lang.String shortName,
java.lang.String longName,
java.lang.String description,
java.lang.Object defaultValue)
Internal helper to define a new argument for a give action. |
protected void |
exit()
Exits in case of error. |
protected CommandLineParser.Arg |
findLongArg(java.lang.String verb,
java.lang.String directObject,
java.lang.String longName)
Finds an CommandLineParser.Arg given an action name and a long flag name. |
protected CommandLineParser.Arg |
findShortArg(java.lang.String verb,
java.lang.String directObject,
java.lang.String shortName)
Finds an CommandLineParser.Arg given an action name and a short flag name. |
java.lang.String |
getDirectObject()
Returns the direct object name from the command-line. |
java.lang.Object |
getValue(java.lang.String verb,
java.lang.String directObject,
java.lang.String longFlagName)
Raw access to parsed parameter values. |
java.lang.String |
getVerb()
Returns the verb name from the command-line. |
boolean |
isHelpRequested()
Helper that returns true if --help was requested. |
boolean |
isSilent()
Helper that returns true if --silent was requested. |
boolean |
isVerbose()
Helper that returns true if --verbose was requested. |
protected void |
listOptions(java.lang.String verb,
java.lang.String directObject)
Internal helper to print all the option flags for a given action name. |
void |
parseArgs(java.lang.String[] args)
Parses the command-line arguments. |
void |
printHelpAndExit(java.lang.String errorFormat,
java.lang.Object... args)
Prints the help/usage and exits. |
void |
printHelpAndExitForAction(java.lang.String verb,
java.lang.String directObject,
java.lang.String errorFormat,
java.lang.Object... args)
Prints the help/usage and exits. |
protected void |
setValue(java.lang.String verb,
java.lang.String directObject,
java.lang.String longFlagName,
java.lang.Object value)
Internal setter for raw parameter value. |
protected void |
stderr(java.lang.String format,
java.lang.Object... args)
Prints a line to stderr. |
protected void |
stdout(java.lang.String format,
java.lang.Object... args)
Prints a line to stdout. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String GLOBAL_FLAG_VERB
public static final java.lang.String NO_VERB_OBJECT
public static final java.lang.String KEY_HELP
public static final java.lang.String KEY_VERBOSE
public static final java.lang.String KEY_SILENT
Constructor Detail |
---|
public CommandLineParser(com.android.utils.ILogger logger, java.lang.String[][] actions)
logger
- An SDK logger object. Must not be null.actions
- The list of actions recognized on the command-line.
See the javadoc of mActions
for more details.mActions
Method Detail |
---|
public boolean acceptLackOfVerb()
public boolean isVerbose()
public boolean isSilent()
public boolean isHelpRequested()
public java.lang.String getVerb()
public java.lang.String getDirectObject()
public java.lang.Object getValue(java.lang.String verb, java.lang.String directObject, java.lang.String longFlagName)
verb
- The verb name, including GLOBAL_FLAG_VERB
. If null, all possible
verbs that match the direct object condition will be examined and the first
value set will be used.directObject
- The direct object name, including NO_VERB_OBJECT
. If null,
all possible direct objects that match the verb condition will be examined and
the first value set will be used.longFlagName
- The long flag name for the given action. Mandatory. Cannot be null.
protected void setValue(java.lang.String verb, java.lang.String directObject, java.lang.String longFlagName, java.lang.Object value)
verb
- The verb name, including GLOBAL_FLAG_VERB
.directObject
- The direct object name, including NO_VERB_OBJECT
.longFlagName
- The long flag name for the given action.value
- The new current value object stored in the parameter, which depends on the
argument mode.public void parseArgs(java.lang.String[] args)
args
- The arguments typically received by a main method.protected CommandLineParser.Arg findLongArg(java.lang.String verb, java.lang.String directObject, java.lang.String longName)
CommandLineParser.Arg
given an action name and a long flag name.
CommandLineParser.Arg
found or null.protected CommandLineParser.Arg findShortArg(java.lang.String verb, java.lang.String directObject, java.lang.String shortName)
CommandLineParser.Arg
given an action name and a short flag name.
CommandLineParser.Arg
found or null.public void printHelpAndExit(java.lang.String errorFormat, java.lang.Object... args)
errorFormat
- Optional error message to print prior to usage using String.formatargs
- Arguments for String.formatpublic void printHelpAndExitForAction(java.lang.String verb, java.lang.String directObject, java.lang.String errorFormat, java.lang.Object... args)
verb
- If null, displays help for all verbs. If not null, display help only
for that specific verb. In all cases also displays general usage and action list.directObject
- If null, displays help for all verb objects.
If not null, displays help only for that specific action
In all cases also display general usage and action list.errorFormat
- Optional error message to print prior to usage using String.formatargs
- Arguments for String.formatprotected void listOptions(java.lang.String verb, java.lang.String directObject)
protected void define(CommandLineParser.Mode mode, boolean mandatory, @NonNull java.lang.String verb, @NonNull java.lang.String directObject, @NonNull java.lang.String shortName, @NonNull java.lang.String longName, @NonNull java.lang.String description, @Nullable java.lang.Object defaultValue)
mode
- The CommandLineParser.Mode
for the argument.mandatory
- The argument is required (never if CommandLineParser.Mode.BOOLEAN
)verb
- The verb name. Never null. Can be GLOBAL_FLAG_VERB
.directObject
- The action name. Can be NO_VERB_OBJECT
.shortName
- The one-letter short argument name. Can be empty but not null.longName
- The long argument name. Can be empty but not null.description
- The description. Cannot be null.defaultValue
- The default value (or values), which depends on the selected
CommandLineParser.Mode
.protected void exit()
protected void stdout(java.lang.String format, java.lang.Object... args)
format
- The string to be formatted. Cannot be null.args
- Format arguments.protected void stderr(java.lang.String format, java.lang.Object... args)
format
- The string to be formatted. Cannot be null.args
- Format arguments.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |