Analizator ArgsOption

public class ArgsOptionParser
extends OptionSetter

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


Wypełnia pola Option przeanalizowanymi argumentami wiersza poleceń.

Ciągi w przekazanym elemencie String[] są analizowane od lewej do prawej. Każdy ciąg jest sklasyfikowany jako krótki format opcji (np. „-v”), długiej opcji (np. „--verbose”), argumentu opcji (np. „out.txt” w „-f out.txt”) lub argumentu pozycjonującym niebędącym opcją.

Każdy argument opcji musi być zmapowany na co najmniej 1 pole Option. Długa opcja jest mapowana na Nazwa Option i krótka opcja są mapowane na krótką nazwę Option. Nazwa każdej opcji krótka nazwa opcji musi być niepowtarzalna w stosunku do wszystkich innych Option pól w tym samym obiekcie.

Jeden argument opcji może zostać zmapowany na wiele pól Option o tej samej nazwie dla wielu obiektów. Argumenty Option można umieścić w przestrzeni nazw, aby jednoznacznie odwołać się do Option w jednym obiekcie przy użyciu pełnej nazwy klasy tego obiektu lub jego Alias OptionClass oddzielony znakiem „:”. IE

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

Prosta, krótka opcja to „-”, a po nim krótki znak opcji. Jeśli ta opcja wymaga tagu (który jest prawdą w przypadku każdej opcji nielogicznej), może być zapisany jako oddzielny parametr, ale nie musi. czyli „-f out.txt”. i „-fout.txt” są dopuszczalne.

Po znaku „-” można określić wiele opcji krótkich tak długo, jak długo wszystko (z wyjątkiem (prawdopodobnie ostatni) nie wymagają argumentów.

Długa opcja zaczyna się od „--” a po nim kilka znaków. Jeśli ta opcja wymaga tagu może zostać zapisany bezpośrednio po nazwie opcji, oddzielony znakiem „=” lub jako następny . (czyli „--file=out.txt” lub „--file out.txt”).

Długa opcja wartości logicznej „--name” automatycznie otrzymuje wartość „--no-name” aplikacji towarzyszącej. Dostępna jest opcja „--flaga”, a następnie „--flaga”, „--no-flaga”, „--flag=true” i „--flag=false” wszystkie są prawidłowe, Brak wartości „--flaga true” ani „--flag false” są dozwolone (ponieważ znak „--flag” jest wystarczający, po „true” lub „false” jest interpretowany oddzielnie). Możesz użyć opcji „tak” i „nie” jako synonimy dla wartości „true” i „false”.

Każdy ciąg znaków nie zaczyna się od znaku „-” i nie jest wymaganym argumentem poprzedniej opcji, bez opcji jako argumentu pozycjonującego, podobnie jak wszystkie kolejne ciągi znaków. Każdy ciąg znaków po „--” jest argument pozycjonowania niebędący opcją.

Pola odpowiadające opcji są aktualizowane w miarę przetwarzania ich opcji. Wszystkie pozostałe argumenty pozycjonowania są zwracane w postaci ciągu List<String>.

Oto prosty przykład:

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

 }

 
Zobacz też:
    .
  • strona man getopt(1)
  • „optparse” w języku Python moduł (http://docs.python.org/library/optparse.html)
  • wytyczne POSIX dotyczące składni narzędzi (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • standardem GNU „Standards for Command Line Interfaces” (Standardy interfejsu wiersza poleceń) (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

Zobacz też:

Podsumowanie

Konstruktory publiczne

ArgsOptionParser( optionSources)

Tworzy ArgsOptionParser dla kolekcji obiektów.

ArgsOptionParser(Object... optionSources)

Tworzy ArgsOptionParser dla co najmniej jednego obiektu.

Metody publiczne

getInopOptions()

Zwraca zbiór opcji, które nie zmieniły żadnych wartości domyślnych.

static String getOptionHelp(boolean importantOnly, Object optionObject)

Wyjściowy tekst pomocy dla wszystkich pól Option w optionObject.

parse(String... args)

Analizuje argumenty wiersza poleceń „args” z użyciem pól @Option obiektu „optionSource” i dodany do konstruktora.

parse( args)

Alternatywna metoda parse(String), która przyjmuje ERROR(/List) argumentów

parseBestEffort( args)

Alternatywna metoda parseBestEffort(String), która wymaga ERROR(/List): argumenty

parseBestEffort( args, boolean forceContinue)

Alternatywna metoda parseBestEffort(String), która wymaga ERROR(/List): argumentów i może zostać wymuszone kontynuowanie analizy do końca, nawet jeśli niektóre argumenty analizować.

parseBestEffort(String... args)

parse(String) w optymalnej wersji.

void validateMandatoryOptions()

Sprawdza, czy wszystkie pola oznaczone jako obowiązkowe zostały ustawione.

Konstruktory publiczne

Analizator ArgsOption

public ArgsOptionParser ( optionSources)

Tworzy ArgsOptionParser dla kolekcji obiektów.

Parametry
optionSources : obiekty config.

Rzuty
ConfigurationException jeśli obiekty config są nieprawidłowo skonfigurowane.

Analizator ArgsOption

public ArgsOptionParser (Object... optionSources)

Tworzy ArgsOptionParser dla co najmniej jednego obiektu.

Parametry
optionSources Object: obiekty config.

Rzuty
ConfigurationException jeśli obiekty config są nieprawidłowo skonfigurowane.

Metody publiczne

getInopOptions

public  getInopOptions ()

Zwraca zbiór opcji, które nie zmieniły żadnych wartości domyślnych.

Zwroty

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Wyjściowy tekst pomocy dla wszystkich pól Option w optionObject.

Tekst pomocy do każdej opcji ma następujący format:

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
Opcja „Domyślne...” zostanie pominięty, jeśli pole opcji ma wartość null lub jest puste.

Parametry
importantOnly boolean: jeśli true ma tylko drukować pomoc dotyczącą ważnych opcji

optionObject Object: obiekt, dla którego zostanie wyświetlony tekst pomocy

Zwroty
String Ciąg tekstowy zawierający łatwy w użyciu tekst pomocy dla wszystkich pól Option

analizować

public  parse (String... args)

Analizuje argumenty wiersza poleceń „args” z użyciem pól @Option obiektu „optionSource” i dodany do konstruktora.

Parametry
args String

Zwroty
ERROR(/List) argumentów pozycjonujących pozostałe po przetworzeniu wszystkich opcji.

Rzuty
ConfigurationException , jeśli podczas analizowania argumentów wystąpił błąd.

analizować

public  parse ( args)

Alternatywna metoda parse(String), która przyjmuje ERROR(/List) argumentów

Parametry
args

Zwroty
ERROR(/List) argumentów pozycjonujących pozostałe po przetworzeniu wszystkich opcji.

Rzuty
ConfigurationException , jeśli podczas analizowania argumentów wystąpił błąd.

Analizuj Najlepszy Wysiłek

public  parseBestEffort ( args)

Alternatywna metoda parseBestEffort(String), która wymaga ERROR(/List): argumenty

Parametry
args

Zwroty
ERROR(/List) z pozostałych argumentów

Analizuj Najlepszy Wysiłek

public  parseBestEffort ( args, 
                boolean forceContinue)

Alternatywna metoda parseBestEffort(String), która wymaga ERROR(/List): argumentów i może zostać wymuszone kontynuowanie analizy do końca, nawet jeśli niektóre argumenty analizować.

Parametry
args : lista zawierająca pozostałe argumenty.

forceContinue boolean: ma wartość true, jeśli powinno być nadal analizowane, nawet jeśli niektóre argumenty nie są analizowane.

Zwroty
ERROR(/List) z pozostałych argumentów

Analizuj Najlepszy Wysiłek

public  parseBestEffort (String... args)

parse(String) w optymalnej wersji. Jeśli wyjątek konfiguracji ma wartość ten wyjątek jest przechwytywany wewnętrznie, a pozostałe argumenty (w tym który spowodował zgłoszenie wyjątku). Ta metoda nie zgłasza.

Parametry
args String

Zwroty
ERROR(/List) z pozostałych argumentów

sprawdzenieMandatoryOpcje

public void validateMandatoryOptions ()

Sprawdza, czy wszystkie pola oznaczone jako obowiązkowe zostały ustawione.

Rzuty
com.android.tradefed.config.ConfigurationException
ConfigurationException