ArgsOptionParser
public class ArgsOptionParser
extends OptionSetter
java.lang.Object | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
Füllt Option
aus geparsten Befehlszeilenargumenten.
Option
zugeordnet werden. Eine lange Option wird dem Option
und eine kurze Option dem Kurznamen Option
zugeordnet. Jeder Optionsname und Optionskurzname muss in Bezug auf alle anderen Option
innerhalb desselben Objekts eindeutig sein. Ein einzelnes Optionsargument kann mehreren Option
mit demselben Namen über mehrere Objekte hinweg zugeordnet werden. Option
können so benannt werden, dass sie eindeutig auf ein Option
innerhalb eines einzelnen Objekts verweisen, indem der vollständige Klassenname dieses Objekts oder sein OptionClass
Aliaswert, getrennt durch „:“, verwendet wird. dh --classname:optionname optionvalue or --optionclassalias:optionname optionvalue.Eine einfache Kurzoption ist ein "-" gefolgt von einem Kurzoptionszeichen. Wenn die Option ein Argument erfordert (was für jede nicht-boolesche Option gilt), kann es als separater Parameter geschrieben werden, muss es aber nicht. Das heißt, "-f out.txt" und "-fout.txt" sind beide akzeptabel. Es ist möglich, mehrere kurze Optionen nach einem einzelnen "-" anzugeben, solange alle (außer möglicherweise der letzten) keine Argumente erfordern. Eine lange Option beginnt mit "--", gefolgt von mehreren Zeichen. Wenn die Option ein Argument erfordert, kann es direkt nach dem Optionsnamen geschrieben werden, getrennt durch "=", oder als nächstes Argument. (Das heißt, „--file=out.txt“ oder „--file out.txt“.) Eine boolesche lange Option „--name“ erhält automatisch einen „--no-name“-Begleiter. Bei einer Option „--flag“ sind dann „--flag“, „--no-flag“, „--flag=true“ und „--flag=false“ alle gültig, obwohl weder „--flag true" oder "--flag false" sind erlaubt (da "--flag" alleine ausreicht, wird das folgende "true" oder "false" separat interpretiert). Sie können „ja“ und „nein“ als Synonyme für „wahr“ und „falsch“ verwenden. Jeder String, der nicht mit einem "-" beginnt und kein erforderliches Argument einer vorherigen Option ist, ist ein Positionsargument, das keine Option ist, ebenso wie alle nachfolgenden Strings. Jeder String nach einem "--" ist ein Positionsargument, das keine Option ist. Die den Optionen entsprechenden Felder werden aktualisiert, wenn ihre Optionen verarbeitet werden. Alle verbleibenden Positionsargumente werden als List<String> zurückgegeben. Hier ist 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) { ... } ... }Siehe auch:
- die Manpage getopt(1).
- Pythons "optparse"-Modul (http://docs.python.org/library/optparse.html)
- die POSIX „Utility Syntax Guidelines“ (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
- die GNU "Standards for Command Line Interfaces" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
Siehe auch:
Zusammenfassung
Öffentliche Konstrukteure | |
---|---|
ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources) Erstellt einen | |
ArgsOptionParser (Object... optionSources) Erstellt einen |
Öffentliche Methoden | |
---|---|
getInopOptions () Gibt den Satz von Optionen zurück, die keine Standardwerte geändert haben. | |
static String | getOptionHelp (boolean importantOnly, Object optionObject) Hilfetext für alle |
parse (String... args) Analysiert die Befehlszeilenargumente 'args' und setzt die @Option-Felder der 'optionSource', die dem Konstruktor bereitgestellt werden. | |
parse ( args) parse ( args) Alternative | |
parseBestEffort ( args) parseBestEffort ( args) Alternative | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) Alternative | |
parseBestEffort (String... args) Eine Best-Effort-Version von | |
void | validateMandatoryOptions () Bestätigt, dass alle als Pflichtfelder markierten Felder gesetzt wurden. |
Öffentliche Konstrukteure
ArgsOptionParser
public ArgsOptionParser (optionSources)
Erstellt einen ArgsOptionParser
für eine Auflistung von Objekten.
Parameter | |
---|---|
optionSources |
Wirft | |
---|---|
ConfigurationException | wenn Konfigurationsobjekte falsch konfiguriert sind. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
Erstellt einen ArgsOptionParser
für ein oder mehrere Objekte.
Parameter | |
---|---|
optionSources | Object : die Konfigurationsobjekte. |
Wirft | |
---|---|
ConfigurationException | wenn Konfigurationsobjekte falsch konfiguriert sind. |
Öffentliche Methoden
getInopOptions
publicgetInopOptions ()
Gibt den Satz von Optionen zurück, die keine Standardwerte geändert haben.
Kehrt zurück | |
---|---|
getOptionHelp
public static String getOptionHelp (boolean importantOnly, Object optionObject)
Hilfetext für alle Option
ausgeben in Optionsobjekt .
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]Der Text „Standard...“ wird weggelassen, wenn das Optionsfeld null oder leer ist.
Parameter | |
---|---|
importantOnly | boolean : wenn true nur Hilfe für die wichtigen Optionen drucken |
optionObject | Object : Das Objekt, für das Hilfetext gedruckt werden soll |
Kehrt zurück | |
---|---|
String | eine Zeichenfolge mit benutzerfreundlichem Hilfetext für alle Optionsfelder |
analysieren
publicparse (String... args)
Analysiert die Befehlszeilenargumente 'args' und setzt die @Option-Felder der 'optionSource', die dem Konstruktor bereitgestellt werden.
Parameter | |
---|---|
args | String |
Kehrt zurück | |
---|---|
a ERROR(/List) der Positionsargumente, die nach Verarbeitung aller Optionen übrig bleiben. |
Wirft | |
---|---|
ConfigurationException | wenn ein Fehler beim Analysieren der Argumente aufgetreten ist. |
analysieren
publicparse ( args)
Alternative parse(String)
-Methode, die einen ERROR(/List)
von Argumenten akzeptiert
Parameter | |
---|---|
args |
Kehrt zurück | |
---|---|
a ERROR(/List) der Positionsargumente, die nach Verarbeitung aller Optionen übrig bleiben. |
Wirft | |
---|---|
ConfigurationException | wenn ein Fehler beim Analysieren der Argumente aufgetreten ist. |
parseBestEffort
publicparseBestEffort ( args)
Alternative parseBestEffort(String)
-Methode, die eine ERROR(/List)
von Argumenten akzeptiert
Parameter | |
---|---|
args |
Kehrt zurück | |
---|---|
ein ERROR(/List) der übrig gebliebenen Argumente |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
Alternative parseBestEffort(String)
-Methode, die einen ERROR(/List)
von Argumenten akzeptiert und gezwungen werden kann, die Analyse bis zum Ende fortzusetzen, selbst wenn einige Argumente nicht analysiert werden.
Parameter | |
---|---|
args | |
forceContinue | boolean : True, wenn die Analyse fortgesetzt werden soll, auch wenn einige Argumente nicht analysiert werden. |
Kehrt zurück | |
---|---|
ein ERROR(/List) der übrig gebliebenen Argumente |
parseBestEffort
publicparseBestEffort (String... args)
Eine Best-Effort-Version von parse(String)
. Wenn eine ConfigurationException ausgelöst wird, wird diese Ausnahme intern erfasst, und die verbleibenden Argumente (einschließlich des Arguments, das das Auslösen der Ausnahme verursacht hat) werden zurückgegeben. Diese Methode wirft nicht.
Parameter | |
---|---|
args | String |
Kehrt zurück | |
---|---|
ein ERROR(/List) der übrig gebliebenen Argumente |
validateMandatoryOptions
public void validateMandatoryOptions ()
Bestätigt, dass alle als Pflichtfelder markierten Felder gesetzt wurden.
Wirft | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |