ArgsOptionParser
public
class
ArgsOptionParser
extends OptionSetter
java.lang.Object | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
Fügt Option
-Felder aus geparsten Befehlszeilenargumenten ein.
Strings im übergebenen String[] werden von links nach rechts analysiert. Jeder String wird als kurze Option (z. B. „-v“), lange Option (z. B. „--verbose“), Argument für eine Option (z. B. „out.txt“ in „-f out.txt“) oder nicht als Option verwendetes Positionalargument klassifiziert.
Jedes Optionsargument muss einem oder mehreren Option
-Feldern zugeordnet werden. Eine lange Option wird dem Option
-Namen zugeordnet und eine kurze Option dem Kurznamen von Option
. Jeder Optionsname und jeder Optionskurzname muss im Vergleich zu allen anderen Option
-Feldern im selben Objekt eindeutig sein.
Ein einzelnes Optionsargument kann mehreren Option
-Feldern mit demselben Namen in mehreren Objekten zugeordnet werden. Option
-Argumente können mit einem Namespace versehen werden, um sich eindeutig auf ein Option
-Feld innerhalb eines einzelnen Objekts zu beziehen. Dazu wird der vollständige Klassenname dieses Objekts oder sein OptionClass
-Aliaswert durch einen Doppelpunkt getrennt.
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
Eine einfache Kurzoption besteht aus einem Bindestrich gefolgt von einem Kurzoptionenzeichen. Wenn für die Option ein Argument erforderlich ist (was für alle nicht booleschen Optionen zutrifft), kann es als separater Parameter geschrieben werden, muss es aber nicht. Das heißt, sowohl „-f out.txt“ als auch „-fout.txt“ sind zulässig.
Es ist möglich, nach einem einzelnen Bindestrich mehrere kurze Optionen anzugeben, sofern für alle Optionen (außer möglicherweise der letzten) keine Argumente erforderlich sind.
Eine lange Option beginnt mit „--“, gefolgt von mehreren Zeichen. Wenn für die Option ein Argument erforderlich ist, kann es direkt nach dem Namen der Option geschrieben werden, durch „=“ getrennt oder als nächstes Argument. Das ist „–file=out.txt“ oder „–file out.txt“.
Für eine boolesche Langoption wie „–name“ wird automatisch die Option „–no-name“ hinzugefügt. Wenn eine Option „--flag“ lautet, sind „--flag“, „--no-flag“, „--flag=true“ und „--flag=false“ gültig. „--flag true“ und „--flag false“ sind jedoch nicht zulässig, da „--flag“ allein ausreicht und das nachfolgende „true“ oder „false“ separat interpretiert wird. Sie können „ja“ und „nein“ als Synonyme für „wahr“ und „falsch“ verwenden.
Jeder String, der nicht mit einem Bindestrich beginnt und kein obligatorisches Argument einer vorherigen Option ist, ist ein nicht optionelles Positionalargument, ebenso wie alle nachfolgenden Strings. Jeder String nach einem „--“ ist ein nicht optionelles Positionalargument.
Die Felder, die den Optionen entsprechen, werden aktualisiert, während die Optionen verarbeitet werden. Alle verbleibenden Positionalparameter werden als List<String> zurückgegeben.
Hier ein einfaches Beispiel:
// Non-@Option fields will be ignored. class Options { @Option(name = "quiet", shortName = 'q') boolean quiet = false; // Here the user can use --no-color. @Option(name = "color") boolean color = true; @Option(name = "mode", shortName = 'm') String mode = "standard; // Supply a default just by setting the field. @Option(name = "port", shortName = 'p') int portNumber = 8888; // There's no need to offer a short name for rarely-used options. @Option(name = "timeout" ) double timeout = 1.0; @Option(name = "output-file", shortName = 'o' }) File output; // Multiple options are added to the collection. // The collection field itself must be non-null. @Option(name = "input-file", shortName = 'i') List<File> inputs = new ArrayList<File>(); } Options options = new Options(); List<String> posArgs = new OptionParser(options).parse("--input-file", "/tmp/file1.txt"); for (File inputFile : options.inputs) { if (!options.quiet) { ... } ... }
- in der Manpage zu getopt(1)
- Python-Modul „optparse“ (http://docs.python.org/library/optparse.html)
- die POSIX-Richtlinien für die Syntax von Dienstprogrammen (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
- die GNU-Standards für Befehlszeilenschnittstellen (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
Weitere Informationen
Zusammenfassung
Öffentliche Konstruktoren | |
---|---|
ArgsOptionParser(
Erstellt eine |
|
ArgsOptionParser(Object... optionSources)
Erstellt eine |
Öffentliche Methoden | |
---|---|
|
getInopOptions()
Gibt die Optionen zurück, bei denen keine Standardwerte geändert wurden. |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
Hilfetext für alle |
|
parse(String... args)
Hier werden die Befehlszeilenargumente „args“ geparst und die @Option-Felder der „optionSource“ festgelegt, die dem Konstruktor übergeben wurden. |
|
parse(
Alternative |
|
parseBestEffort(
Alternative |
|
parseBestEffort(
Alternative |
|
parseBestEffort(String... args)
Eine Best-Effort-Version von |
void
|
validateMandatoryOptions()
Prüft, ob alle als erforderlich gekennzeichneten Felder festgelegt wurden. |
Öffentliche Konstruktoren
ArgsOptionParser
public ArgsOptionParser (optionSources)
Erstellt eine ArgsOptionParser
für eine Sammlung von Objekten.
Parameter | |
---|---|
optionSources |
: die Konfigurationsobjekte. |
Ausgabe | |
---|---|
ConfigurationException |
wenn Konfigurationsobjekte nicht ordnungsgemäß konfiguriert sind. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
Erstellt eine ArgsOptionParser
für ein oder mehrere Objekte.
Parameter | |
---|---|
optionSources |
Object : die Konfigurationsobjekte. |
Ausgabe | |
---|---|
ConfigurationException |
wenn Konfigurationsobjekte nicht ordnungsgemäß konfiguriert sind. |
Öffentliche Methoden
getInopOptions
publicgetInopOptions ()
Gibt die Optionen zurück, bei denen keine Standardwerte geändert wurden.
Returns | |
---|---|
|
getOptionHelp
public static String getOptionHelp (boolean importantOnly, Object optionObject)
Hilfetext für alle Option
-Felder in optionObject ausgeben.
Der Hilfetext für jede Option hat folgendes Format:
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]
Parameter | |
---|---|
importantOnly |
boolean : Wenn true festgelegt ist, wird nur die Hilfe für die wichtigen Optionen gedruckt. |
optionObject |
Object : das Objekt, für das Hilfetext gedruckt werden soll |
Returns | |
---|---|
String |
Ein String mit nutzerfreundlichem Hilfetext für alle Optionsfelder |
parse
publicparse (String... args)
Hier werden die Befehlszeilenargumente „args“ geparst und die @Option-Felder der „optionSource“ festgelegt, die dem Konstruktor übergeben wurden.
Parameter | |
---|---|
args |
String |
Returns | |
---|---|
|
ein ERROR(/List) der Positionsargumente, die nach der Verarbeitung aller Optionen übrig bleiben. |
Ausgabe | |
---|---|
ConfigurationException |
wird ausgegeben, wenn beim Parsen der Argumente ein Fehler auftritt. |
parse
publicparse ( args)
Alternative parse(String)
-Methode, die eine ERROR(/List)
von Argumenten annimmt
Parameter | |
---|---|
args |
|
Returns | |
---|---|
|
ein ERROR(/List) der Positionsargumente, die nach der Verarbeitung aller Optionen übrig bleiben. |
Ausgabe | |
---|---|
ConfigurationException |
wird ausgegeben, wenn beim Parsen der Argumente ein Fehler auftritt. |
parseBestEffort
publicparseBestEffort ( args)
Alternative parseBestEffort(String)
-Methode, die eine ERROR(/List)
von Argumenten annimmt
Parameter | |
---|---|
args |
|
Returns | |
---|---|
|
ERROR(/List) der verbleibenden Argumente |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
Alternative parseBestEffort(String)
-Methode, die eine ERROR(/List)
von Argumenten annimmt und gezwungen werden kann, bis zum Ende zu parsen, auch wenn einige Argumente nicht geparst werden.
Parameter | |
---|---|
args |
: Liste mit den verbleibenden Argumenten. |
forceContinue |
boolean : „Wahr“, wenn das Parsen fortgesetzt werden soll, auch wenn einige Argumente nicht geparst werden. |
Returns | |
---|---|
|
ERROR(/List) der verbleibenden Argumente |
parseBestEffort
publicparseBestEffort (String... args)
Eine Best-Effort-Version von parse(String)
. Wenn eine ConfigurationException auftritt, wird diese Ausnahme intern erfasst und die verbleibenden Argumente (einschließlich des Arguments, das zur Ausnahme geführt hat) werden zurückgegeben. Diese Methode wirft keine Fehler.
Parameter | |
---|---|
args |
String |
Returns | |
---|---|
|
ERROR(/List) der verbleibenden Argumente |
validateMandatoryOptions
public void validateMandatoryOptions ()
Prüft, ob alle als obligatorisch gekennzeichneten Felder festgelegt wurden.
Ausgabe | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |