ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

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


Wypełnia pola Option na podstawie przeanalizowanych argumentów wiersza poleceń.

Ciągi w przekazanym String[] są analizowane od lewej do prawej. Każdy ciąg jest klasyfikowany jako krótka opcja (taka jak "-v"), długa opcja (taka jak "--verbose"), argument opcji (taki jak "out.txt" w "-f out.txt ") lub nieopcjonalny argument pozycyjny.

Każdy argument opcji musi być odwzorowany na co najmniej jedno pole Option . Długa opcja jest mapowana na nazwę Option , a krótka opcja na krótką nazwę Option . Każda nazwa opcji i krótka nazwa opcji muszą być unikalne w odniesieniu do wszystkich innych pól Option w tym samym obiekcie.

Pojedynczy argument opcji może zostać odwzorowany na wiele pól Option o tej samej nazwie w wielu obiektach. Argumenty Option mogą być rozmieszczone w przestrzeni nazw, aby jednoznacznie odnosiły się do pola Option w pojedynczym obiekcie przy użyciu pełnej nazwy klasy tego obiektu lub jego wartości aliasu OptionClass oddzielonej znakiem „:”. tj.

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

Prostą krótką opcją jest „-”, po którym następuje krótki znak opcji. Jeśli opcja wymaga argumentu (co jest prawdą w przypadku dowolnej opcji innej niż boolowska), może być zapisana jako osobny parametr, ale nie musi. Oznacza to, że „-f out.txt” i „-fout.txt” są dopuszczalne.

Możliwe jest podanie wielu krótkich opcji po pojedynczym „-”, o ile wszystkie (z wyjątkiem być może ostatniej) nie wymagają argumentów.

Długa opcja zaczyna się od „--”, po którym następuje kilka znaków. Jeśli opcja wymaga argumentu, może on być zapisany bezpośrednio po nazwie opcji, oddzielony znakiem „=” lub jako następny argument. (To znaczy „--file=out.txt” lub „--file out.txt”.)

Długa opcja logiczna „--name” automatycznie otrzymuje towarzysza „--no-name”. Biorąc pod uwagę opcję „--flag”, wtedy „--flag”, „--no-flag”, „--flag=true” i „--flag=false” nie są poprawne, chociaż ani „--flag” true” ani „--flag false” są dozwolone (ponieważ samo „--flag” jest wystarczające, następujące po nich „true” lub „false” są interpretowane oddzielnie). Możesz użyć „tak” i „nie” jako synonimów „prawda” i „fałsz”.

Każdy Ciąg, który nie zaczyna się od „-” i nie jest wymaganym argumentem poprzedniej opcji, jest nieopcjonalnym argumentem pozycyjnym, podobnie jak wszystkie kolejne Ciągi. Każdy ciąg znaków po „--” jest nieopcjonalnym argumentem pozycyjnym.

Pola odpowiadające opcjom są aktualizowane w miarę przetwarzania ich opcji. Wszystkie pozostałe argumenty pozycyjne są zwracane jako 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).
  • Moduł „optparse” Pythona (http://docs.python.org/library/optparse.html)
  • POSIX „Utility Syntax Guidelines” (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • GNU „Standardy dla interfejsów wiersza poleceń” (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

Zobacz też:

Streszczenie

Konstruktory publiczne

ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources)

Tworzy ArgsOptionParser dla kolekcji obiektów.

ArgsOptionParser (Object... optionSources)

Tworzy ArgsOptionParser dla jednego lub więcej obiektów.

Metody publiczne

getInopOptions ()

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

static String getOptionHelp (boolean importantOnly, Object optionObject)

Wygeneruj tekst pomocy dla wszystkich pól Option w opcjaObiekt .

parse (String... args)

Analizuje argumenty wiersza poleceń „args”, ustawiając pola @Option elementu „optionSource” dostarczonego do konstruktora.

parse ( args) parse ( args)

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

parseBestEffort ( args) parseBestEffort ( args)

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

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

Alternatywna metoda parseBestEffort(String) , która pobiera ERROR(/List) argumentów i może zostać zmuszona do kontynuowania analizowania do końca, nawet jeśli niektóre argumenty nie zostaną przeanalizowane.

parseBestEffort (String... args)

Najlepsza wersja parse(String) .

void validateMandatoryOptions ()

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

Konstruktory publiczne

ArgsOptionParser

public ArgsOptionParser ( optionSources)

Tworzy ArgsOptionParser dla kolekcji obiektów.

Parametry
optionSources : obiekty konfiguracyjne.

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

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

Tworzy ArgsOptionParser dla jednego lub więcej obiektów.

Parametry
optionSources Object : obiekty konfiguracyjne.

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

Metody publiczne

getInopOptions

public  getInopOptions ()

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

Zwroty

getOptionPomoc

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Wygeneruj tekst pomocy dla wszystkich pól Option w opcjaObiekt .

Tekst pomocy dla każdej opcji będzie miał następujący format

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

Parametry
importantOnly boolean : jeśli true wyświetla tylko pomoc dla ważnych opcji

optionObject Object : obiekt, dla którego ma zostać wydrukowany tekst pomocy

Zwroty
String Ciąg zawierający przyjazny dla użytkownika tekst pomocy dla wszystkich pól Opcji

analizować

public  parse (String... args)

Analizuje argumenty wiersza poleceń „args”, ustawiając pola @Option elementu „optionSource” dostarczonego do konstruktora.

Parametry
args String

Zwroty
ERROR(/List) argumentów pozycyjnych pozostałych po przetworzeniu wszystkich opcji.

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

analizować

public  parse ( args)

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

Parametry
args

Zwroty
ERROR(/List) argumentów pozycyjnych pozostałych po przetworzeniu wszystkich opcji.

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

parseNajlepszy wysiłek

public  parseBestEffort ( args)

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

Parametry
args

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

parseNajlepszy wysiłek

public  parseBestEffort ( args, 
                boolean forceContinue)

Alternatywna metoda parseBestEffort(String) , która pobiera ERROR(/List) argumentów i może zostać zmuszona do kontynuowania analizowania do końca, nawet jeśli niektóre argumenty nie zostaną przeanalizowane.

Parametry
args : lista, która będzie zawierać pozostałe argumenty.

forceContinue boolean : Prawda, jeśli parsowanie powinno być kontynuowane, nawet jeśli niektóre argumenty nie są analizowane.

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

parseNajlepszy wysiłek

public  parseBestEffort (String... args)

Najlepsza wersja parse(String) . Jeśli zostanie zgłoszony wyjątek ConfigurationException, ten wyjątek jest przechwytywany wewnętrznie, a pozostałe argumenty (w tym argument, który spowodował zgłoszenie wyjątku) są zwracane. Ta metoda nie rzuca.

Parametry
args String

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

validateMandatoryOptions

public void validateMandatoryOptions ()

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

Rzuty
com.android.tradefed.config.ConfigurationException
ConfigurationException