ArgsOptionParser
public class ArgsOptionParser
extends OptionSetter
java.lang.Объект | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
Заполняет поля Option
из проанализированных аргументов командной строки.
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 (Object... optionSources) Создает |
Публичные методы | |
---|---|
getInopOptions () Возвращает набор параметров, которые не изменили никаких значений по умолчанию. | |
static String | getOptionHelp (boolean importantOnly, Object optionObject) Вывести текст справки для всех полей |
parse (String... args) Анализирует аргументы командной строки 'args', устанавливая поля @Option в 'optionSource', предоставленные конструктору. | |
parse ( args) parse ( args) Альтернативный метод | |
parseBestEffort ( args) parseBestEffort ( args) Альтернативный метод | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) Альтернативный метод | |
parseBestEffort (String... args) Наилучшая версия | |
void | validateMandatoryOptions () Проверяет, что все поля, помеченные как обязательные, были установлены. |
Публичные конструкторы
ArgsOptionParser
public ArgsOptionParser (optionSources)
Создает ArgsOptionParser
для коллекции объектов.
Параметры | |
---|---|
optionSources |
Броски | |
---|---|
ConfigurationException | если объекты конфигурации настроены неправильно. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
Создает ArgsOptionParser
для одного или нескольких объектов.
Параметры | |
---|---|
optionSources | Object : объекты конфигурации. |
Броски | |
---|---|
ConfigurationException | если объекты конфигурации настроены неправильно. |
Публичные методы
getInopOptions
publicgetInopOptions ()
Возвращает набор параметров, которые не изменили никаких значений по умолчанию.
Возвращает | |
---|---|
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. |
разобрать
publicparse (String... args)
Анализирует аргументы командной строки 'args', устанавливая поля @Option в 'optionSource', предоставленные конструктору.
Параметры | |
---|---|
args | String |
Возвращает | |
---|---|
ERROR(/List) позиционных аргументов, оставшихся после обработки всех опций. |
Броски | |
---|---|
ConfigurationException | если произошла ошибка при разборе аргументов. |
разобрать
publicparse ( args)
Альтернативный метод parse(String)
, который принимает ERROR(/List)
аргументов
Параметры | |
---|---|
args |
Возвращает | |
---|---|
ERROR(/List) позиционных аргументов, оставшихся после обработки всех опций. |
Броски | |
---|---|
ConfigurationException | если произошла ошибка при разборе аргументов. |
parseBestEffort
publicparseBestEffort ( args)
Альтернативный метод parseBestEffort(String)
, который принимает ERROR(/List)
аргументов
Параметры | |
---|---|
args |
Возвращает | |
---|---|
ERROR(/List) оставшихся аргументов |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
Альтернативный метод parseBestEffort(String)
, который принимает ERROR(/List)
аргументов и может принудительно продолжать синтаксический анализ до конца, даже если некоторые аргументы не анализируются.
Параметры | |
---|---|
args | |
forceContinue | boolean : Истинно, если он должен продолжать синтаксический анализ, даже если некоторые аргументы не анализируются. |
Возвращает | |
---|---|
ERROR(/List) оставшихся аргументов |
parseBestEffort
publicparseBestEffort (String... args)
Наилучшая версия parse(String)
. Если генерируется ConfigurationException, это исключение перехватывается внутри, а оставшиеся аргументы (включая аргумент, вызвавший создание исключения) возвращаются. Этот метод не бросает.
Параметры | |
---|---|
args | String |
Возвращает | |
---|---|
ERROR(/List) оставшихся аргументов |
валидатемандатериоптионс
public void validateMandatoryOptions ()
Проверяет, что все поля, помеченные как обязательные, были установлены.
Броски | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |