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 в optionObject .

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 в optionObject .

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

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

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

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

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

разобрать

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 : Истинно, если он должен продолжать синтаксический анализ, даже если некоторые аргументы не анализируются.

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

parseBestEffort

public  parseBestEffort (String... args)

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

Параметры
args String

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

валидатемандатериоптионс

public void validateMandatoryOptions ()

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

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