ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

Obiekt Java.lang.Object
com.android.tradefed.config.OptionSetter
com.android.tradefed.config.ArgsOptionParser


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

Ciągi znaków w przekazanym String[] są analizowane od lewej do prawej. Każdy ciąg znaków jest klasyfikowany jako opcja krótka (np. „-v”), opcja długa (np. „--verbose”), argument opcji (np. „out.txt” w „-f out.txt ") lub argument pozycyjny niebędący opcją.

Każdy argument opcji musi być odwzorowany na jedno lub więcej pól Option . Długa opcja jest odwzorowywana 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ą mieć przestrzeń nazw, aby jednoznacznie odnosić się do pola Option w pojedynczym obiekcie, używając pełnej nazwy klasy tego obiektu lub 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ż logiczna), może on zostać zapisany jako oddzielny parametr, ale nie jest to konieczne. Oznacza to, że dopuszczalne są zarówno „-f out.txt”, jak i „-fout.txt”.

Możliwe jest określenie wielu krótkich opcji po pojedynczym „-”, o ile wszystkie (z wyjątkiem ostatniej) nie wymagają argumentów.

Długa opcja zaczyna się od „--”, po którym następuje kilka znaków. Jeżeli opcja wymaga argumentu, może on zostać zapisany bezpośrednio po nazwie opcji, oddzielony znakiem „=", lub jako kolejny 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”, wówczas „--flag”, „--no-flag”, „--flag=true” i „--flag=false” są prawidłowe, chociaż ani „--flag true” ani „--flag false” są dozwolone (ponieważ „--flag” samo w sobie jest wystarczające, następujące „prawda” i „fałsz” są interpretowane osobno). Możesz użyć „tak” i „nie” jako synonimów „prawdy” i „fałszu”.

Każdy ciąg znaków nie zaczynający się od „-” i niebędący wymaganym argumentem poprzedniej opcji jest argumentem pozycyjnym niebędącym opcją, podobnie jak wszystkie kolejne ciągi znaków. Każdy ciąg znaków po „--” jest argumentem pozycyjnym niebędącym opcją.

Pola odpowiadające opcjom są aktualizowane w miarę przetwarzania ich opcji. Wszelkie 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 podręcznika getopt(1).
  • Moduł „optparse” Pythona (http://docs.python.org/library/optparse.html)
  • „Wytyczne dotyczące składni narzędzi” POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • „Standardy interfejsów wiersza poleceń” GNU (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

Zobacz też:

Streszczenie

Konstruktorzy publiczni

ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources)

Tworzy ArgsOptionParser dla kolekcji obiektów.

ArgsOptionParser (Object... optionSources)

Tworzy ArgsOptionParser dla jednego lub większej liczby obiektów.

Metody publiczne

getInopOptions ()

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

static String getOptionHelp (boolean importantOnly, Object optionObject)

Wyprowadź tekst pomocy dla wszystkich pól Option w opcjaObiekt .

parse (String... args)

Analizuje argumenty wiersza poleceń „args”, ustawiając pola @Option źródła opcji „optionSource” dostarczone konstruktorowi.

parse ( args) parse ( args)

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

parseBestEffort ( args) parseBestEffort ( args)

Alternatywna metoda parseBestEffort(String) pobierająca argumenty ERROR(/List)

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

Alternatywna metoda parseBestEffort(String) , która pobiera argumenty ERROR(/List) 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.

Konstruktorzy publiczni

ArgsOptionParser

public ArgsOptionParser ( optionSources)

Tworzy ArgsOptionParser dla kolekcji obiektów.

Parametry
optionSources : obiekty konfiguracyjne.

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

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

Tworzy ArgsOptionParser dla jednego lub większej liczby obiektów.

Parametry
optionSources Object : obiekty konfiguracyjne.

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

Metody publiczne

pobierzOpcjeInop

public  getInopOptions ()

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

Zwroty

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Wyprowadź 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ślny…” zostanie pominięty, jeśli pole opcji ma wartość null lub jest puste.

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

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

Zwroty
String String 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 źródła opcji „optionSource” dostarczone konstruktorowi.

Parametry
args String

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

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

analizować

public  parse ( args)

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

Parametry
args

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

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

przeanalizuj najlepszy wysiłek

public  parseBestEffort ( args)

Alternatywna metoda parseBestEffort(String) pobierająca argumenty ERROR(/List)

Parametry
args

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

przeanalizuj najlepszy wysiłek

public  parseBestEffort ( args, 
                boolean forceContinue)

Alternatywna metoda parseBestEffort(String) , która pobiera argumenty ERROR(/List) 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 analiza powinna być kontynuowana, nawet jeśli niektóre argumenty nie zostaną przeanalizowane.

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

przeanalizuj najlepszy wysiłek

public  parseBestEffort (String... args)

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

Parametry
args String

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

zweryfikuj obowiązkowe opcje

public void validateMandatoryOptions ()

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

Rzuca
com.android.tradefed.config.ConfigurationException
ConfigurationException