ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.Object
? com.android.tradefed.config.OptionSetter
? com.android.tradefed.config.ArgsOptionParser


Popola Option campi da argomenti della riga di comando analizzato.

Le stringhe in String[] passate vengono analizzate da sinistra a destra. Ogni stringa è classificata come un'opzione corta (come "-v"), un'opzione lunga (come "--verbose"), un argomento per un'opzione (come "out.txt" in "-f out.txt "), o un argomento posizionale non opzionale.

Ogni argomento opzione deve mappare a una o più Option campi. Un'opzione lungo associato al Option nome, e una breve un'opzione mappe di Option nome breve. Ogni nome di opzione e l'opzione nome breve deve essere unico rispetto a tutti gli altri Option campi all'interno dello stesso oggetto.

Un argomento singola opzione può ottenere mappato a più Option campi con lo stesso nome a più oggetti. Option argomenti possono essere namespace per riferirsi unicamente ad Option di campo all'interno di un singolo oggetto utilizzando il nome completo della classe di quell'oggetto o il suo OptionClass valore di alias separati da ':'. cioè

 --classname:optionname optionvalue or
 --optionclassalias:optionname optionvalue.
 

Un'opzione breve semplice è un "-" seguito da un carattere di opzione breve. Se l'opzione richiede un argomento (che è vero per qualsiasi opzione non booleana), può essere scritta come parametro separato, ma non è necessario. Cioè, "-f out.txt" e "-fout.txt" sono entrambi accettabili.

È possibile specificare più opzioni brevi dopo un singolo "-" purché tutte (tranne forse l'ultima) non richiedano argomenti.

Un'opzione lunga inizia con "--" seguito da diversi caratteri. Se l'opzione richiede un argomento, può essere scritta direttamente dopo il nome dell'opzione, separata da "=", o come argomento successivo. (Cioè, "--file=out.txt" o "--file out.txt".)

Un'opzione booleana long '--name' ottiene automaticamente un compagno '--no-name'. Data un'opzione "--flag", allora, "--flag", "--no-flag", "--flag=true" e "--flag=false" sono tutti validi, anche se né "--flag true" né "--flag false" sono consentiti (poiché "--flag" di per sé è sufficiente, i seguenti "true" o "false" vengono interpretati separatamente). Puoi usare "sì" e "no" come sinonimi di "vero" e "falso".

Ogni stringa che non inizia con un "-" e non è un argomento obbligatorio di un'opzione precedente è un argomento posizionale non opzionale, come tutte le stringhe successive. Ogni stringa dopo un "--" è un argomento posizionale non opzionale.

I campi corrispondenti alle opzioni vengono aggiornati man mano che le loro opzioni vengono elaborate. Tutti gli argomenti posizionali rimanenti vengono restituiti come List<String>.

Ecco un semplice esempio:

 // 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) {
        ...
     }
     ...

 }

 
Vedi anche:
  • la pagina man di getopt(1)
  • Il modulo "optparse" di Python (http://docs.python.org/library/optparse.html)
  • le "Linee guida sulla sintassi dell'utilità" POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • gli "Standard per le interfacce della riga di comando" GNU (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

Guarda anche:

Riepilogo

Costruttori pubblici

ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources)

Crea un ArgsOptionParser per una collezione di oggetti.

ArgsOptionParser (Object... optionSources)

Crea un ArgsOptionParser per uno o più oggetti.

Metodi pubblici

getInopOptions ()

Restituisce l'insieme di opzioni che non hanno modificato alcun valore predefinito.

static String getOptionHelp (boolean importantOnly, Object optionObject)

Testo della guida di uscita per tutti Option campi in opzioneOggetto .

parse (String... args)

Analizza gli argomenti della riga di comando "args", impostando i campi @Option di "optionSource" forniti al costruttore.

parse ( args) parse ( args)

Alternate parse(String) metodo che accetta un ERROR(/List) di argomenti

parseBestEffort ( args) parseBestEffort ( args)

Alternate parseBestEffort(String) metodo che accetta un ERROR(/List) di argomenti

parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue)

Alternate parseBestEffort(String) metodo che accetta un ERROR(/List) di argomenti, e può essere costretto a continuare l'analisi fino alla fine, anche se alcuni argomenti non analizzano.

parseBestEffort (String... args)

Una versione best-effort di parse(String) .

void validateMandatoryOptions ()

Conferma che tutti i campi contrassegnati come obbligatori sono stati impostati.

Costruttori pubblici

ArgsOptionParser

public ArgsOptionParser ( optionSources)

Crea un ArgsOptionParser per una collezione di oggetti.

Parametri
optionSources : gli oggetti di configurazione.

tiri
ConfigurationException se gli oggetti di configurazione sono configurati in modo errato.

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

Crea un ArgsOptionParser per uno o più oggetti.

Parametri
optionSources Object : gli oggetti di configurazione.

tiri
ConfigurationException se gli oggetti di configurazione sono configurati in modo errato.

Metodi pubblici

getInopOptions

public  getInopOptions ()

Restituisce l'insieme di opzioni che non hanno modificato alcun valore predefinito.

ritorna

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Testo della guida di uscita per tutti Option campi in opzioneOggetto .

Il testo di aiuto per ogni opzione sarà nel seguente formato

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
il 'default ..." testo sarà omessa se il campo opzione è nullo o vuoto.

Parametri
importantOnly boolean : se true stampare unico aiuto per le opzioni importanti

optionObject Object : l'oggetto di aiuto di stampa di testo per

ritorna
String una stringa contenente un testo di aiuto intuitivo per tutti i campi Opzione

analizzare

public  parse (String... args)

Analizza gli argomenti della riga di comando "args", impostando i campi @Option di "optionSource" forniti al costruttore.

Parametri
args String

ritorna
un ERROR(/List) degli argomenti posizionali rimasto dopo l'elaborazione di tutte le opzioni.

tiri
ConfigurationException se si è verificato un errore durante l'analisi degli argomenti.

analizzare

public  parse ( args)

Alternate parse(String) metodo che accetta un ERROR(/List) di argomenti

Parametri
args

ritorna
un ERROR(/List) degli argomenti posizionali rimasto dopo l'elaborazione di tutte le opzioni.

tiri
ConfigurationException se si è verificato un errore durante l'analisi degli argomenti.

parseBestEffort

public  parseBestEffort ( args)

Alternate parseBestEffort(String) metodo che accetta un ERROR(/List) di argomenti

Parametri
args

ritorna
un ERROR(/List) degli argomenti avanzati

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

Alternate parseBestEffort(String) metodo che accetta un ERROR(/List) di argomenti, e può essere costretto a continuare l'analisi fino alla fine, anche se alcuni argomenti non analizzano.

Parametri
args : lista che conterrà gli argomenti rimasti.

forceContinue boolean : True se si deve continuare ad analizzare, anche se alcuni argomenti non analizzano.

ritorna
un ERROR(/List) degli argomenti avanzati

parseBestEffort

public  parseBestEffort (String... args)

Una versione best-effort di parse(String) . Se viene generata un'eccezione ConfigurationException, tale eccezione viene acquisita internamente e vengono restituiti gli argomenti rimanenti (incluso l'argomento che ha causato il lancio dell'eccezione). Questo metodo non lancia.

Parametri
args String

ritorna
un ERROR(/List) degli argomenti avanzati

validateMandatoryOptions

public void validateMandatoryOptions ()

Conferma che tutti i campi contrassegnati come obbligatori sono stati impostati.

tiri
ConfigurationException