ArgsOptionParser
public
class
ArgsOptionParser
extends OptionSetter
Objeto java.lang. | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
Propaga campos Option
a partir de los argumentos de línea de comandos analizados.
Las cadenas en el String[] pasado se analizan de izquierda a derecha. Cada cadena se clasifica como un opción (como "-v"), una opción larga (como "--verbose"), un argumento de una opción (como “out.txt” in "-f out.txt"), o bien un argumento posicional de no opción.
Cada argumento de opción se debe asignar a uno o más campos Option
. Una opción larga se asigna
el nombre Option
y una opción corta se asigna al nombre corto de Option
. El nombre de cada 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 solo argumento de opción se puede asignar a varios campos Option
con el mismo nombre
en varios objetos. Se pueden asignar espacios de nombres a los argumentos Option
para hacer referencia de forma única a un
campo Option
dentro de un único objeto que usa el nombre completo de la clase de ese objeto o su
Valor de alias OptionClass
separado por ":". es decir,
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
Una opción corta y sencilla es el símbolo "-" seguida de un carácter breve de opción. Si la opción requiere (que es verdadero para cualquier opción no booleana), se puede escribir como un parámetro separado, pero no tiene por qué serlo. Es decir, "-f out.txt" y "-fout.txt" son aceptables.
Es posible especificar varias opciones cortas después de un solo "-" tanto como todos (excepto posiblemente el último) no requieren argumentos.
Las opciones largas comienzan con "--" seguido de varios caracteres. Si la opción requiere se puede escribir 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 el mensaje "--no-name" complementario. Dada una opción "--flag", luego, "--flag", "--no-flag", "--flag=true" y "--flag=false" todos son válidos, aunque no “--flag true” ni "--flag false" (dado que “--flag” por sí solo es suficiente, el después de "verdadero" o "false" se interpreta por separado). Puedes usar "yes" y "no" como sinónimos de "verdadero" y "false".
Cada cadena que no comience con "-" y no un argumento obligatorio de una opción previa es una argumento posicional de no opción, al igual que todas las strings sucesivas. Cada cadena después de un signo "--" es un argumento posicional de no opción.
Los campos correspondientes a las opciones se actualizan a medida que se procesan sus opciones. Cualquier restante los argumentos posicionales se muestran como una List<String>.
A continuación, te mostramos 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) { ... } ... }
- la página del manual de getopt(1)
- “optparse” de Python módulo (http://docs.python.org/library/optparse.html)
- los “Lineamientos 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).
También:
Resumen
Constructores públicos | |
---|---|
ArgsOptionParser(
Crea un |
|
ArgsOptionParser(Object... optionSources)
Crea un |
Métodos públicos | |
---|---|
|
getInopOptions()
Muestra el conjunto de opciones que no cambiaron ningún valor predeterminado. |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
Texto de ayuda resultante para todos los campos |
|
parse(String... args)
Analiza los argumentos de la línea de comandos 'args' y configura los campos @Option de 'optionSource'. que se proporcionan al constructor. |
|
parse(
Método |
|
parseBestEffort(
Método |
|
parseBestEffort(
Método |
|
parseBestEffort(String... args)
La mejor versión posible 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 |
: Son los objetos de configuración. |
Arroja | |
---|---|
ConfigurationException |
si los objetos de configuración están mal configurados. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
Crea un ArgsOptionParser
para uno o más objetos.
Parámetros | |
---|---|
optionSources |
Object : Son los objetos de configuración. |
Arroja | |
---|---|
ConfigurationException |
si los objetos de configuración están mal configurados. |
Métodos públicos
getInopOptions.
publicgetInopOptions ()
Muestra el conjunto de opciones que no cambiaron ningún valor predeterminado.
Muestra | |
---|---|
|
getOptionHelp
public static String getOptionHelp (boolean importantOnly, Object optionObject)
Texto de ayuda resultante para todos los campos Option
en optionObject.
El texto de ayuda de cada opción tendrá el siguiente formato:
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]
Parámetros | |
---|---|
importantOnly |
boolean : Si true , solo imprime la ayuda para las opciones importantes. |
optionObject |
Object : Es el objeto para el que se imprimirá el texto de ayuda. |
Muestra | |
---|---|
String |
Una cadena que contiene texto de ayuda fácil de usar para todos los campos de Opciones |
analizar
publicparse (String... args)
Analiza los argumentos de la línea de comandos 'args' y configura los campos @Option de 'optionSource'. que se proporcionan al constructor.
Parámetros | |
---|---|
args |
String |
Muestra | |
---|---|
|
Un ERROR(/List) de los argumentos posicionales restantes después de procesar todas las opciones. |
Arroja | |
---|---|
ConfigurationException |
si se produjo un error al analizar los argumentos. |
analizar
publicparse ( args)
Método parse(String)
alternativo que toma una ERROR(/List)
de argumentos
Parámetros | |
---|---|
args |
|
Muestra | |
---|---|
|
Un ERROR(/List) de los argumentos posicionales restantes después de procesar todas las opciones. |
Arroja | |
---|---|
ConfigurationException |
si se produjo un error al analizar los argumentos. |
analizarBestEffort
publicparseBestEffort ( args)
Método parseBestEffort(String)
alternativo que toma un elemento ERROR(/List)
de
argumentos
Parámetros | |
---|---|
args |
|
Muestra | |
---|---|
|
una ERROR(/List) de los argumentos restantes |
analizarBestEffort
publicparseBestEffort ( args, boolean forceContinue)
Método parseBestEffort(String)
alternativo que toma un elemento ERROR(/List)
de
y se pueden ver forzados a seguir analizando hasta el final, incluso si algunos argumentos
y analizarlos.
Parámetros | |
---|---|
args |
: Es la lista que contendrá los argumentos restantes. |
forceContinue |
boolean : Es verdadero si debe continuar con el análisis incluso si no se analizan algunos argumentos. |
Muestra | |
---|---|
|
una ERROR(/List) de los argumentos restantes |
analizarBestEffort
publicparseBestEffort (String... args)
La mejor versión posible de parse(String)
. Si se establece
arrojada, esa excepción se captura internamente, y los argumentos restantes (incluido el
que causó que se arrojara la excepción). Este método no arroja resultados.
Parámetros | |
---|---|
args |
String |
Muestra | |
---|---|
|
una ERROR(/List) de los argumentos restantes |
validarOpcionesMandatorias
public void validateMandatoryOptions ()
Valida que se hayan configurado todos los campos marcados como obligatorios.
Arroja | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |