ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

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


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

Ciągi w przekazanym 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 pozycyjny bez opcji.

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

Pojedynczy argument opcji może zostać zamapowany na wiele pól Option o tej samej nazwie w wielu obiektach. Argumenty Option mogą być umieszczane w przestrzeni nazw, aby jednoznacznie odwoływać 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órej następuje krótki znak opcji. Jeśli opcja wymaga argumentu (co jest prawdziwe w przypadku każdej opcji innej niż logiczna), może być zapisana jako oddzielny parametr, ale nie musi tak być. Oznacza to, że akceptowalne są "-f out.txt" i "-fout.txt".

Możliwe jest określenie wielu krótkich opcji po jednym „-”, 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 być napisana bezpośrednio po nazwie opcji, oddzielona 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”, wówczas „--flag”, „--no-flag”, „--flag=true” i „--flag=false” są poprawne, ale żaden z „--flag” prawda” ani „--flag fałsz” są dozwolone (ponieważ samo „--flag” jest wystarczające, następujące „prawda” lub „fałsz” są interpretowane oddzielnie). Możesz użyć „tak” i „nie” jako synonimów „prawda” i „fałsz”.

Każdy String, który nie zaczyna się od "-" i nie jest wymaganym argumentem poprzedniej opcji, jest argumentem pozycyjnym nie będącym opcją, tak jak wszystkie kolejne Stringi. Każdy ciąg znaków po „--” jest argumentem pozycyjnym nie bę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 także:
  • strona podręcznika getopt(1)
  • Moduł Pythona „optparse” (http://docs.python.org/library/optparse.html)
  • POSIX „Wytyczne dotyczące składni narzędzi” (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 co najmniej jednego obiektu.

Metody publiczne

getInopOptions ()

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

static String getOptionHelp (boolean importantOnly, Object optionObject)

Wyświetl tekst pomocy dla wszystkich pól Option w opcjaObiekt .

parse (String... args)

Analizuje argumenty wiersza polecenia „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 parseBestEffort(String) , która przyjmuje ERROR(/List) argumentów

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

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

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.

Rzuty
ConfigurationException jeśli obiekty konfiguracyjne są niepoprawnie skonfigurowane.

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

Tworzy ArgsOptionParser dla co najmniej jednego obiektu.

Parametry
optionSources Object : obiekty konfiguracyjne.

Rzuty
ConfigurationException jeśli obiekty konfiguracyjne są niepoprawnie skonfigurowane.

Metody publiczne

getInopOptions

public  getInopOptions ()

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

Zwroty

UzyskajPomocOpcji

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Wyświetl tekst pomocy dla wszystkich pól Option w opcjaObiekt .

Tekst pomocy dla każdej opcji będzie w następującym formacie

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
Tekst „Default...” zostanie pominięty, jeśli pole opcji ma wartość NULL lub jest 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 String zawierający przyjazny dla użytkownika tekst pomocy dla wszystkich pól opcji

analizować

public  parse (String... args)

Analizuje argumenty wiersza polecenia „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 parsowania 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 parsowania argumentów.

parseBestEffort

public  parseBestEffort ( args)

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

Parametry
args

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

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

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

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

forceContinue boolean : Prawda, jeśli powinna kontynuować parsowanie, nawet jeśli niektóre argumenty nie parsują.

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

parseBestEffort

public  parseBestEffort (String... args)

Najlepsza wersja parse(String) . Jeśli zostanie zgłoszony 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

zatwierdźOpcje obowiązkowe

public void validateMandatoryOptions ()

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

Rzuty
ConfigurationException