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) { ... } ... }
- .
- 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(
Tworzy |
|
ArgsOptionParser(Object... optionSources)
Tworzy |
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 |
|
parse(String... args)
Analizuje argumenty wiersza poleceń „args” z użyciem pól @Option obiektu „optionSource” i dodany do konstruktora. |
|
parse(
Alternatywna metoda |
|
parseBestEffort(
Alternatywna metoda |
|
parseBestEffort(
Alternatywna metoda |
|
parseBestEffort(String... args)
|
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
publicgetInopOptions ()
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]
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ć
publicparse (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ć
publicparse ( 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
publicparseBestEffort ( 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
publicparseBestEffort ( 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
publicparseBestEffort (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 |