ArgsOptionParser
public
class
ArgsOptionParser
extends OptionSetter
| java.lang.Object | ||
| ↳ | com.android.tradefed.config.OptionSetter | |
| ↳ | com.android.tradefed.config.ArgsOptionParser | |
Füllt Option-Felder mit geparsten Befehlszeilenargumenten.
Strings im übergebenen String[] werden von links nach rechts geparst. 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 als nicht optionale Positionsparameter klassifiziert.
Jedes Optionsargument muss einem oder mehreren Option-Feldern zugeordnet werden. Eine lange Option wird dem Namen Option und eine kurze Option dem Kurznamen Option zugeordnet. Jeder Optionsname und jeder Optionskurzname muss in Bezug auf alle anderen Option-Felder innerhalb desselben Objekts 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 eindeutig auf ein Option-Feld innerhalb eines einzelnen Objekts zu verweisen. Dazu wird der vollständige Klassenname des Objekts oder sein OptionClass-Aliaswert verwendet, getrennt durch „:“, z. B.
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
Eine einfache Kurzoption besteht aus einem „-“, gefolgt von einem Zeichen für die Kurzoption. Wenn für die Option ein Argument erforderlich ist (was bei allen nicht booleschen Optionen der Fall ist), kann sie als separater Parameter geschrieben werden, muss es aber nicht. Sowohl „-f out.txt“ als auch „-fout.txt“ sind zulässig.
Es ist möglich, mehrere kurze Optionen nach einem einzelnen „-“ anzugeben, sofern alle (mit Ausnahme des letzten) keine Argumente erfordern.
Eine lange Option beginnt mit „--“, gefolgt von mehreren Zeichen. Wenn für die Option ein Argument erforderlich ist, kann es direkt nach dem Optionsnamen, getrennt durch „=“, oder als nächstes Argument angegeben werden. Das heißt, „--file=out.txt“ oder „--file out.txt“.
Für die boolesche Langoption „--name“ wird automatisch eine Option „--no-name“ erstellt. Bei der Option „--flag“ sind „--flag“, „--no-flag“, „--flag=true“ und „--flag=false“ alle gültig. „--flag true“ und „--flag false“ sind jedoch nicht zulässig, da „--flag“ allein ausreicht und das folgende „true“ oder „false“ separat interpretiert wird. Sie können „yes“ und „no“ als Synonyme für „true“ und „false“ verwenden.
Jeder String, der nicht mit „-“ beginnt und kein erforderliches Argument einer vorherigen Option ist, ist ein nicht optionales Positionsargument, ebenso wie alle nachfolgenden Strings. Jeder String nach „--“ ist ein nicht optionales Positionsargument.
Die Felder, die den Optionen entsprechen, werden aktualisiert, wenn die Optionen verarbeitet werden. Alle verbleibenden Positionsargumente 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) {
...
}
...
}
- die Manpage zu getopt(1)
- Das „optparse“-Modul von Python (http://docs.python.org/library/optparse.html)
- die POSIX-Richtlinien für die Utility-Syntax (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(Object... optionSources)
Erstellt ein |
|
ArgsOptionParser(Collection<Object> optionSources)
Erstellt ein |
|
Öffentliche Methoden | |
|---|---|
Set<String>
|
getInopOptions()
Gibt die Gruppe von Optionen zurück, mit denen keine Standardwerte geändert wurden. |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
Gibt Hilfetext für alle |
List<String>
|
parse(List<String> args)
Alternative |
List<String>
|
parse(String... args)
Parst die Befehlszeilenargumente „args“ und legt die @Option-Felder der „optionSource“ fest, die dem Konstruktor bereitgestellt werden. |
List<String>
|
parseBestEffort(List<String> args)
Alternative |
List<String>
|
parseBestEffort(List<String> args, boolean forceContinue)
Alternative |
List<String>
|
parseBestEffort(String... args)
Eine Best-Effort-Version von |
void
|
validateMandatoryOptions()
Prüft, ob alle als Pflichtfelder gekennzeichneten Felder festgelegt wurden. |
Öffentliche Konstruktoren
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
Erstellt ein ArgsOptionParser für ein oder mehrere Objekte.
| Parameter | |
|---|---|
optionSources |
Object: die Konfigurationsobjekte. |
| Löst aus | |
|---|---|
ConfigurationException |
wenn Konfigurationsobjekte nicht richtig konfiguriert sind. |
ArgsOptionParser
public ArgsOptionParser (Collection<Object> optionSources)
Erstellt ein ArgsOptionParser für eine Sammlung von Objekten.
| Parameter | |
|---|---|
optionSources |
Collection: die Konfigurationsobjekte. |
| Löst aus | |
|---|---|
ConfigurationException |
wenn Konfigurationsobjekte nicht richtig konfiguriert sind. |
Öffentliche Methoden
getInopOptions
public Set<String> getInopOptions ()
Gibt die Gruppe von Optionen zurück, mit denen keine Standardwerte geändert wurden.
| Gibt Folgendes zurück: | |
|---|---|
Set<String> |
|
getOptionHelp
public static String getOptionHelp (boolean importantOnly,
Object optionObject)Gibt Hilfetext für alle Option-Felder in optionObject aus.
Der Hilfetext für jede Option hat das folgende Format:
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]
| Parameter | |
|---|---|
importantOnly |
boolean: Wenn true, wird nur Hilfe für die wichtigen Optionen ausgegeben. |
optionObject |
Object: das Objekt, für das Hilfetext ausgegeben werden soll |
| Gibt Folgendes zurück: | |
|---|---|
String |
Ein String mit benutzerfreundlichem Hilfetext für alle Optionsfelder |
parse
public List<String> parse (List<String> args)
Alternative ERROR(/#parse(String. args))-Methode, die ein List von Argumenten akzeptiert
| Parameter | |
|---|---|
args |
List |
| Gibt Folgendes zurück: | |
|---|---|
List<String> |
ein List der Positionsargumente, die nach der Verarbeitung aller Optionen übrig bleiben. |
| Löst aus | |
|---|---|
ConfigurationException |
wenn beim Parsen der Argumente ein Fehler aufgetreten ist. |
parse
public List<String> parse (String... args)
Parst die Befehlszeilenargumente „args“ und legt die @Option-Felder der „optionSource“ fest, die dem Konstruktor bereitgestellt werden.
| Parameter | |
|---|---|
args |
String |
| Gibt Folgendes zurück: | |
|---|---|
List<String> |
ein List der Positionsargumente, die nach der Verarbeitung aller Optionen übrig bleiben. |
| Löst aus | |
|---|---|
ConfigurationException |
wenn beim Parsen der Argumente ein Fehler aufgetreten ist. |
parseBestEffort
public List<String> parseBestEffort (List<String> args)
Alternative ERROR(/#parseBestEffort(String. args))-Methode, die ein List von Argumenten akzeptiert
| Parameter | |
|---|---|
args |
List |
| Gibt Folgendes zurück: | |
|---|---|
List<String> |
List der verbleibenden Argumente |
parseBestEffort
public List<String> parseBestEffort (List<String> args,
boolean forceContinue)Alternative ERROR(/#parseBestEffort(String. args))-Methode, die ein List von Argumenten akzeptiert und das Parsen bis zum Ende erzwingen kann, auch wenn einige Argumente nicht geparst werden.
| Parameter | |
|---|---|
args |
List: Liste, die die verbleibenden Argumente enthält. |
forceContinue |
boolean: „True“, wenn das Parsen auch dann fortgesetzt werden soll, wenn einige Argumente nicht geparst werden. |
| Gibt Folgendes zurück: | |
|---|---|
List<String> |
List der verbleibenden Argumente |
parseBestEffort
public List<String> parseBestEffort (String... args)
Eine Best-Effort-Version von ERROR(/#parse(String. args)). Wenn eine ConfigurationException ausgelöst wird, wird diese Ausnahme intern abgefangen und die verbleibenden Argumente (einschließlich des Arguments, das die Ausnahme ausgelöst hat) werden zurückgegeben. Diese Methode löst keine Ausnahme aus.
| Parameter | |
|---|---|
args |
String |
| Gibt Folgendes zurück: | |
|---|---|
List<String> |
List der verbleibenden Argumente |
validateMandatoryOptions
public void validateMandatoryOptions ()
Prüft, ob alle als Pflichtfelder gekennzeichneten Felder festgelegt wurden.
| Löst aus | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|