ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.Объект
com.android.tradefed.config.OptionSetter
com.android.tradefed.config.ArgsOptionParser


Заполняет поля Option из проанализированных аргументов командной строки.

Строки в переданном String[] анализируются слева направо. Каждая строка классифицируется как короткая опция (например, «-v»), длинная опция (например, «--verbose»), аргумент опции (например, «out.txt» в «-f out.txt). "), или неопциональный позиционный аргумент.

Каждый аргумент опции должен сопоставляться с одним или несколькими полями Option . Длинный параметр соответствует имени Option , а короткий параметр соответствует короткому имени Option . Каждое имя параметра и краткое имя параметра должны быть уникальными по отношению ко всем другим полям Option в том же объекте.

Один аргумент опции может быть сопоставлен с несколькими полями Option с одинаковым именем в нескольких объектах. Аргументы Option могут иметь пространство имен, позволяющее однозначно ссылаться на поле Option в одном объекте, используя полное имя класса этого объекта или значение его псевдонима OptionClass , разделенное знаком ':'. т.е.

 --classname:optionname optionvalue or
 --optionclassalias:optionname optionvalue.
 

Простая короткая опция — это «-», за которым следует короткий символ опции. Если для опции требуется аргумент (что справедливо для любой нелогической опции), его можно записать как отдельный параметр, но это не обязательно. То есть «-f out.txt» и «-fout.txt» приемлемы.

После одного «-» можно указать несколько коротких опций, если все они (кроме, возможно, последней) не требуют аргументов.

Длинный вариант начинается с «--», за которым следуют несколько символов. Если для параметра требуется аргумент, его можно записать непосредственно после имени параметра, разделив его знаком «=", или в качестве следующего аргумента. (То есть «--file=out.txt» или «--file out.txt».)

Логический длинный параметр «--name» автоматически получает сопутствующий вариант «--no-name». Учитывая опцию "--flag", тогда "--flag", "--no-flag", "--flag=true" и "--flag=false" являются допустимыми, но ни "--flag" true» или «--flag false» не допускаются (поскольку «--flag» самого по себе достаточно, следующие «true» или «false» интерпретируются отдельно). Вы можете использовать «да» и «нет» как синонимы «истина» и «ложь».

Каждая строка, не начинающаяся с «-» и не являющаяся обязательным аргументом предыдущей опции, является неопциональным позиционным аргументом, как и все последующие строки. Каждая строка после «--» является необязательным позиционным аргументом.

Поля, соответствующие опциям, обновляются по мере обработки их опций. Все оставшиеся позиционные аргументы возвращаются в виде List<String>.

Вот простой пример:

 // 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) {
        ...
     }
     ...

 }

 
См. также:
  • справочная страница getopt(1)
  • Модуль Python «optparse» (http://docs.python.org/library/optparse.html)
  • «Рекомендации по синтаксису POSIX» (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • «Стандарты GNU для интерфейсов командной строки» (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

См. также:

Краткое содержание

Общественные конструкторы

ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources)

Создает ArgsOptionParser для коллекции объектов.

ArgsOptionParser (Object... optionSources)

Создает ArgsOptionParser для одного или нескольких объектов.

Публичные методы

getInopOptions ()

Возвращает набор параметров, которые не изменили значений по умолчанию.

static String getOptionHelp (boolean importantOnly, Object optionObject)

Вывести текст справки для всех полей Option в вариантОбъект .

parse (String... args)

Анализирует аргументы командной строки «args», устанавливая поля @Option источника optionSource, предоставленного конструктору.

parse ( args) parse ( args)

Альтернативный метод parse(String) , который принимает ERROR(/List) аргументов

parseBestEffort ( args) parseBestEffort ( args)

Альтернативный метод parseBestEffort(String) , который принимает ERROR(/List) аргументов

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

Альтернативный метод parseBestEffort(String) , который принимает ERROR(/List) аргументов и может быть вынужден продолжать анализ до конца, даже если некоторые аргументы не анализируются.

parseBestEffort (String... args)

Самая оптимальная версия parse(String) .

void validateMandatoryOptions ()

Проверяет, что все поля, помеченные как обязательные, установлены.

Общественные конструкторы

ArgsOptionParser

public ArgsOptionParser ( optionSources)

Создает ArgsOptionParser для коллекции объектов.

Параметры
optionSources : объекты конфигурации.

Броски
ConfigurationException если объекты конфигурации настроены неправильно.

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

Создает ArgsOptionParser для одного или нескольких объектов.

Параметры
optionSources Object : объекты конфигурации.

Броски
ConfigurationException если объекты конфигурации настроены неправильно.

Публичные методы

getInopOptions

public  getInopOptions ()

Возвращает набор параметров, которые не изменили значений по умолчанию.

Возврат

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Вывести текст справки для всех полей Option в вариантОбъект .

Текст справки для каждого параметра будет иметь следующий формат:

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
Текст «По умолчанию...» будет опущен, если поле параметра имеет значение NULL или пусто.

Параметры
importantOnly boolean : если true выводить справку только по важным параметрам.

optionObject Object : объект для печати текста справки.

Возврат
String Строка, содержащая удобный текст справки для всех полей параметров.

анализировать

public  parse (String... args)

Анализирует аргументы командной строки «args», устанавливая поля @Option источника optionSource, предоставленного конструктору.

Параметры
args String

Возврат
ERROR(/List) позиционных аргументов, оставшихся после обработки всех опций.

Броски
ConfigurationException если произошла ошибка при анализе аргументов.

анализировать

public  parse ( args)

Альтернативный метод parse(String) , который принимает ERROR(/List) аргументов

Параметры
args

Возврат
ERROR(/List) позиционных аргументов, оставшихся после обработки всех опций.

Броски
ConfigurationException если произошла ошибка при анализе аргументов.

parseBestEffort

public  parseBestEffort ( args)

Альтернативный метод parseBestEffort(String) , который принимает ERROR(/List) аргументов

Параметры
args

Возврат
ERROR(/List) оставшихся аргументов

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

Альтернативный метод parseBestEffort(String) , который принимает ERROR(/List) аргументов и может быть вынужден продолжать анализ до конца, даже если некоторые аргументы не анализируются.

Параметры
args : список, который будет содержать оставшиеся аргументы.

forceContinue boolean : True, если анализ должен продолжаться, даже если некоторые аргументы не анализируются.

Возврат
ERROR(/List) оставшихся аргументов

parseBestEffort

public  parseBestEffort (String... args)

Самая лучшая версия parse(String) . Если генерируется исключение ConfigurationException, это исключение фиксируется внутренне, а остальные аргументы (включая аргумент, вызвавший создание исключения) возвращаются. Этот метод не выбрасывает.

Параметры
args String

Возврат
ERROR(/List) оставшихся аргументов

validateMandatoryOptions

public void validateMandatoryOptions ()

Проверяет, что все поля, помеченные как обязательные, установлены.

Броски
com.android.tradefed.config.ConfigurationException
ConfigurationException