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.

Strings im übergebenen String[] werden von links nach rechts geparst. Jeder String wird als kurze Option (wie „-v“), lange Option (wie „--verbose“), Argument für eine Option (wie „out.txt“ in „-f out.txt“) klassifiziert ") oder ein Positionsargument, das keine Option ist.

Jedes Optionsargument muss einem oder mehreren 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 für eine Auflistung von Objekten.

ArgsOptionParser (Object... optionSources)

Erstellt einen ArgsOptionParser für ein oder mehrere Objekte.

Ö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 Option ausgeben in Optionsobjekt .

parse (String... args)

Analysiert die Befehlszeilenargumente 'args' und setzt die @Option-Felder der 'optionSource', die dem Konstruktor bereitgestellt werden.

parse ( args) parse ( args)

Alternative parse(String) -Methode, die einen ERROR(/List) von Argumenten akzeptiert

parseBestEffort ( args) parseBestEffort ( args)

Alternative parseBestEffort(String) -Methode, die eine ERROR(/List) von Argumenten akzeptiert

parseBestEffort ( args, boolean forceContinue) parseBestEffort ( 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.

parseBestEffort (String... args)

Eine Best-Effort-Version von parse(String) .

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 : die Konfigurationsobjekte.

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

public  getInopOptions ()

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 .

Der Hilfetext für jede Option hat das folgende Format

   [-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

public  parse (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

public  parse ( 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

public  parseBestEffort ( 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

public  parseBestEffort ( 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 : Liste, die die übrig gebliebenen Argumente enthält.

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

public  parseBestEffort (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