ArgsOptionParser
public class ArgsOptionParser
extends OptionSetter
java.lang.Objeto | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
Completa campos Option
a partir de argumentos de línea de comando analizados.
Option
. Una opción larga se asigna al nombre de la Option
y una opción corta se asigna al nombre corto Option
. Cada nombre de opción y nombre corto de opción debe ser único con respecto a todos los demás campos Option
dentro del mismo objeto. Un único argumento de opción se puede asignar a varios campos Option
con el mismo nombre en varios objetos. Los argumentos Option
pueden tener espacios de nombres para hacer referencia de forma única a un campo Option
dentro de un único objeto utilizando el nombre de clase completo de ese objeto o su valor de alias OptionClass
separado por ':'. es decir, --classname:optionname optionvalue or --optionclassalias:optionname optionvalue.Una opción corta simple es un "-" seguido de un carácter de opción corta. Si la opción requiere un argumento (lo cual es cierto para cualquier opción no booleana), puede escribirse como un parámetro separado, pero no es necesario. Es decir, "-f out.txt" y "-fout.txt" son ambos aceptables. Es posible especificar múltiples opciones cortas después de un solo "-" siempre que ninguna (excepto posiblemente la última) requiera argumentos. Una opción larga comienza con "--" seguida de varios caracteres. Si la opción requiere un argumento, puede escribirse directamente después del nombre de la opción, separado por "=", o como el siguiente argumento. (Es decir, "--file=out.txt" o "--file out.txt".) Una opción booleana larga '--name' obtiene automáticamente un complemento '--no-name'. Dada una opción "--flag", entonces, "--flag", "--no-flag", "--flag=true" y "--flag=false" son todos válidos, aunque ninguno de ellos "--flag true" ni "--flag false" están permitidos (dado que "--flag" por sí solo es suficiente, lo siguiente "true" o "false" se interpreta por separado). Puede utilizar "sí" y "no" como sinónimos de "verdadero" y "falso". Cada cadena que no comienza con "-" y no es un argumento obligatorio de una opción anterior es un argumento posicional que no es una opción, al igual que todas las cadenas sucesivas. Cada cadena después de "--" es un argumento posicional que no es una opción. Los campos correspondientes a las opciones se actualizan a medida que se procesan sus opciones. Cualquier argumento posicional restante se devuelve como una Lista<Cadena>. He aquí un ejemplo sencillo:
// 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) { ... } ... }Ver también:
- la página del manual getopt(1)
- Módulo "optparse" de Python (http://docs.python.org/library/optparse.html)
- las "Pautas de sintaxis de utilidades" de POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
- los "Estándares para interfaces de línea de comandos" de GNU (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
Ver también:
Resumen
Constructores públicos | |
---|---|
ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources) Crea un | |
ArgsOptionParser (Object... optionSources) Crea un |
Métodos públicos | |
---|---|
getInopOptions () Devuelve el conjunto de opciones que no cambiaron ningún valor predeterminado. | |
static String | getOptionHelp (boolean importantOnly, Object optionObject) Texto de ayuda de salida para todos los campos |
parse (String... args) Analiza los argumentos de la línea de comandos 'args', configurando los campos @Option del 'optionSource' proporcionado al constructor. | |
parse ( args) parse ( args) Método | |
parseBestEffort ( args) parseBestEffort ( args) Método alternativo | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) Método alternativo | |
parseBestEffort (String... args) Una versión de mejor esfuerzo de | |
void | validateMandatoryOptions () Valida que se hayan configurado todos los campos marcados como obligatorios. |
Constructores públicos
ArgsOptionParser
public ArgsOptionParser (optionSources)
Crea un ArgsOptionParser
para una colección de objetos.
Parámetros | |
---|---|
optionSources |
Lanza | |
---|---|
ConfigurationException | si los objetos de configuración están configurados incorrectamente. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
Crea un ArgsOptionParser
para uno o más objetos.
Parámetros | |
---|---|
optionSources | Object : los objetos de configuración. |
Lanza | |
---|---|
ConfigurationException | si los objetos de configuración están configurados incorrectamente. |
Métodos públicos
getInopOptions
publicgetInopOptions ()
Devuelve el conjunto de opciones que no cambiaron ningún valor predeterminado.
Devoluciones | |
---|---|
getOptionAyuda
public static String getOptionHelp (boolean importantOnly, Object optionObject)
Texto de ayuda de salida para todos los campos Option
en opciónObjeto .
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]El texto 'Predeterminado...' se omitirá si el campo de opción es nulo o está vacío.
Parámetros | |
---|---|
importantOnly | boolean : si es true solo imprime la ayuda para las opciones importantes |
optionObject | Object : el objeto para imprimir el texto de ayuda. |
Devoluciones | |
---|---|
String | una cadena que contiene texto de ayuda fácil de usar para todos los campos de opción |
analizar gramaticalmente
publicparse (String... args)
Analiza los argumentos de la línea de comandos 'args', configurando los campos @Option del 'optionSource' proporcionado al constructor.
Parámetros | |
---|---|
args | String |
Devoluciones | |
---|---|
un ERROR(/List) de los argumentos posicionales que quedan después de procesar todas las opciones. |
Lanza | |
---|---|
ConfigurationException | si se produjo un error al analizar los argumentos. |
analizar gramaticalmente
publicparse ( args)
Método parse(String)
que toma un ERROR(/List)
de argumentos
Parámetros | |
---|---|
args |
Devoluciones | |
---|---|
un ERROR(/List) de los argumentos posicionales que quedan después de procesar todas las opciones. |
Lanza | |
---|---|
ConfigurationException | si se produjo un error al analizar los argumentos. |
analizarMejorEsfuerzo
publicparseBestEffort ( args)
Método alternativo parseBestEffort(String)
que toma un ERROR(/List)
de argumentos
Parámetros | |
---|---|
args |
Devoluciones | |
---|---|
un ERROR(/List) de los argumentos sobrantes |
analizarMejorEsfuerzo
publicparseBestEffort ( args, boolean forceContinue)
Método alternativo parseBestEffort(String)
que toma un ERROR(/List)
de argumentos y se puede forzar a continuar analizando hasta el final, incluso si algunos argumentos no se analizan.
Parámetros | |
---|---|
args | |
forceContinue | boolean : Verdadero si debe continuar analizando incluso si algunos argumentos no se analizan. |
Devoluciones | |
---|---|
un ERROR(/List) de los argumentos sobrantes |
analizarMejorEsfuerzo
publicparseBestEffort (String... args)
Una versión de mejor esfuerzo de parse(String)
. Si se lanza una ConfigurationException, esa excepción se captura internamente y se devuelven los argumentos restantes (incluido el argumento que provocó que se lanzara la excepción). Este método no arroja.
Parámetros | |
---|---|
args | String |
Devoluciones | |
---|---|
un ERROR(/List) de los argumentos sobrantes |
validarOpcionesMandatorias
public void validateMandatoryOptions ()
Valida que se hayan configurado todos los campos marcados como obligatorios.
Lanza | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |