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ń.
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 (Object... optionSources) Tworzy |
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 |
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 | |
parseBestEffort ( args) parseBestEffort ( args) Alternatywna metoda | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) Alternatywna metoda | |
parseBestEffort (String... args) Najlepsza wersja | |
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 |
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
publicgetInopOptions ()
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 .
[-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ć
publicparse (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ć
publicparse ( 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
publicparseBestEffort ( args)
Alternatywna metoda parseBestEffort(String)
pobierająca argumenty ERROR(/List)
Parametry | |
---|---|
args |
Zwroty | |
---|---|
ERROR(/List) pozostałych argumentów |
przeanalizuj najlepszy wysiłek
publicparseBestEffort ( 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 | |
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
publicparseBestEffort (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 |