ArgsOptionParser
public
class
ArgsOptionParser
extends OptionSetter
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 tablicy String[] są analizowane od lewej do prawej. Każdy ciąg jest klasyfikowany jako opcja krótka (np. „-v”), opcja długa (np. „--verbose”), argument opcji (np. „out.txt” w „-f out.txt”) lub argument pozycji inny niż opcja.
Każdy argument opcji musi być zmapowany na co najmniej 1 pole Option
. Długa opcja jest mapowana na nazwę Option
, a krótka opcja na nazwę Option
. Każda nazwa opcji i krótka nazwa opcji muszą być unikalne w stosunku do wszystkich innych pól Option
w tym samym obiekcie.
Jeden argument opcji może zostać zmapowany na wiele pól Option
o tej samej nazwie w wielu obiektach. Argumenty Option
można stosować w przestrzeni nazw, aby jednoznacznie odwołać się do pola Option
w pojedynczym obiekcie przy użyciu pełnej nazwy klasy tego obiektu lub jego wartości aliasu OptionClass
rozdzielonej znakiem „:”. np.
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue..
Prosta krótka opcja to znak „-”, po którym następuje krótki znak opcji. Jeśli opcja wymaga argumentu (co dotyczy każdej opcji niebędącej typu boolean), może on być zapisany jako osobny parametr, ale nie musi. Oznacza to, że dozwolone są zarówno „-f out.txt”, jak i „-fout.txt”.
Po jednym znaku „-” możesz podać wiele opcji krótkich, o ile wszystkie nie wymagają argumentów (chyba że wszystkie).
Długa opcja zaczyna się od ciągu „--”, po którym następuje kilka znaków. Jeśli opcja wymaga argumentu, może on być zapisany bezpośrednio po nazwie opcji, rozdzielony znakiem „=” lub jako kolejny argument. (czyli „--file=out.txt” lub „--file out.txt”).
Długa opcja logiczna „––name” automatycznie dostaje towarzysza „––no-name”. Jeśli opcja to „--flag”, to „--flag”, „--no-flag”, „--flag=true” i „--flag=false” są prawidłowe, ale ani „--flag true”, ani „--flag false” nie są dozwolone (ponieważ „--flag” jest wystarczające, a następujące „true” lub „false” jest interpretowane osobno). Możesz użyć „tak” i „nie” jako synonimów „prawda” i „fałsz”.
Każdy ciąg znaków, który nie zaczyna się od „-” i nie jest 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 nieopcjonalnym argumentem pozycyjnym.
Pola odpowiadające opcjom są aktualizowane po przetworzeniu opcji. Pozostałe argumenty pozycyjne są zwracane jako lista<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” w Pythonie (http://docs.python.org/library/optparse.html)
- „Wytyczne dotyczące składni narzędzi” w standardzie 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ż:
Podsumowanie
Konstruktory publiczne | |
---|---|
ArgsOptionParser(
Tworzy |
|
ArgsOptionParser(Object... optionSources)
Tworzy |
Metody publiczne | |
---|---|
|
getInopOptions()
Zwraca zestaw 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 |
|
parse(String... args)
Przetwarza argumenty wiersza poleceń „args”, ustawiając pola @Option obiektu „optionSource” przekazanego konstruktorowi. |
|
parse(
Alternatywna metoda |
|
parseBestEffort(
Alternatywna metoda |
|
parseBestEffort(
Alternatywna metoda |
|
parseBestEffort(String... args)
Wersja |
void
|
validateMandatoryOptions()
Sprawdzanie, czy wszystkie pola oznaczone jako wymagane zostały skonfigurowane. |
Konstruktory publiczne
ArgsOptionParser
public ArgsOptionParser (optionSources)
Tworzy ArgsOptionParser
dla kolekcji obiektów.
Parametry | |
---|---|
optionSources |
: obiekty konfiguracji. |
Rzuty | |
---|---|
ConfigurationException |
jeśli obiekty config są nieprawidłowo skonfigurowane. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
Tworzy ArgsOptionParser
dla co najmniej jednego obiektu.
Parametry | |
---|---|
optionSources |
Object : obiekty konfiguracji. |
Rzuty | |
---|---|
ConfigurationException |
jeśli obiekty konfiguracji są nieprawidłowo skonfigurowane. |
Metody publiczne
getInopOptions
publicgetInopOptions ()
Zwraca zestaw opcji, które nie zmieniły żadnych wartości domyślnych.
Zwroty | |
---|---|
|
getOptionHelp
public static String getOptionHelp (boolean importantOnly, Object optionObject)
Wyprowadza tekst pomocy dla wszystkich pól Option
w obiekcie optionObject.
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ślnie…” zostanie pominięty, jeśli pole opcji jest puste lub nieokreślone.
Parametry | |
---|---|
importantOnly |
boolean : jeśli true , wydrukuj tylko pomoc dotyczącą ważnych opcji |
optionObject |
Object : obiekt, dla którego zostanie wyświetlony tekst pomocy |
Zwroty | |
---|---|
String |
ciąg tekstowy zawierający przyjazny dla użytkownika tekst pomocy dla wszystkich pól opcji; |
parsowanie
publicparse (String... args)
Przetwarza argumenty wiersza poleceń „args”, ustawiając pola @Option obiektu „optionSource” przekazanego konstruktorowi.
Parametry | |
---|---|
args |
String |
Zwroty | |
---|---|
|
ERROR(/List) argumentów pozycyjnych pozostałych po przetworzeniu wszystkich opcji. |
Rzuty | |
---|---|
ConfigurationException |
if error occurred parsing the arguments. |
parsowanie
publicparse ( 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 |
if error occurred parsing the arguments. |
parseBestEffort
publicparseBestEffort ( args)
Alternatywna metoda parseBestEffort(String)
, która przyjmuje tablicę argumentówERROR(/List)
Parametry | |
---|---|
args |
|
Zwroty | |
---|---|
|
ERROR(/List) z pozostałych argumentów |
Analizuj Najlepszy Wysiłek
publicparseBestEffort ( args, boolean forceContinue)
Alternatywna metoda parseBestEffort(String)
, która przyjmuje ERROR(/List)
argumentów i może być wymuszona dalszym analizowaniem do końca, nawet jeśli niektóre argumenty nie są analizowane.
Parametry | |
---|---|
args |
: lista zawierająca pozostałe argumenty. |
forceContinue |
boolean : wartość True, jeśli ma być kontynuowana analiza, nawet jeśli niektóre argumenty nie zostaną przeanalizowane. |
Zwroty | |
---|---|
|
ERROR(/List) z pozostałych argumentów |
parseBestEffort
publicparseBestEffort (String... args)
Wersja parse(String)
z możliwie największą dokładnością. Jeśli zostanie rzucony wyjątek ConfigurationException, zostanie on przechwycony wewnętrznie, a pozostałe argumenty (w tym argument, który spowodował wyjątek) zostaną zwrócone. Ta metoda nie zgłasza wyjątku.
Parametry | |
---|---|
args |
String |
Zwroty | |
---|---|
|
ERROR(/List) z pozostałych argumentów |
sprawdzenieMandatoryOpcje
public void validateMandatoryOptions ()
Sprawdzanie, czy wszystkie pola oznaczone jako wymagane zostały skonfigurowane.
Rzuty | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |