ArgsOptionParserArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.Objeto
com.android.tradefed.config.OptionSetter
com.android.tradefed.config.ArgsOptionParser


Rellena los campos Option a partir de argumentos de línea de comandos analizados.

Las cadenas en el String[] pasado se analizan de izquierda a derecha. Cada cadena se clasifica como una opción corta (como "-v"), una opción larga (como "--verbose"), un argumento para una opción (como "out.txt" en "-f out.txt "), o un argumento posicional sin opción.

Cada argumento de opción debe asignarse a uno o más campos 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 abreviado 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 un espacio de nombres para referirse de forma única a un campo Option dentro de un solo 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 breve simple es un "-" seguido de un carácter de opción breve. 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, "-fout.txt" y "-fout.txt" son aceptables.

Es posible especificar múltiples opciones cortas después de un solo "-" siempre que todas (excepto posiblemente la última) no requieran 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 larga booleana '--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 ni "--flag true" ni "--flag false" están permitidos (dado que "--flag" por sí solo es suficiente, el 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 un "-" y no es un argumento obligatorio de una opción anterior es un argumento posicional que no es una opción, como lo son 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. Los argumentos posicionales restantes se devuelven como List<String>.

Aquí hay un ejemplo simple:

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

 }

 
Consulte también:
  • la página de manual de 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 para una colección de objetos.

ArgsOptionParser (Object... optionSources)

Crea un ArgsOptionParser para uno o más objetos.

Métodos públicos

getInopOptions ()

Devuelve el conjunto de opciones que no cambió ningún valor predeterminado.

static String getOptionHelp (boolean importantOnly, Object optionObject)

Texto de ayuda de salida para todos los campos Option en objeto de opción .

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 parse(String) que toma un ERROR(/List) de argumentos

parseBestEffort ( args) parseBestEffort ( args)

Método alternativo parseBestEffort(String) que toma un ERROR(/List) de argumentos

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

Método alternativo parseBestEffort(String) que toma un ERROR(/List) de argumentos y se puede obligar a continuar analizando hasta el final, incluso si algunos argumentos no se analizan.

parseBestEffort (String... args)

Una versión de mejor esfuerzo de parse(String) .

void validateMandatoryOptions ()

Valida que se hayan configurado todos los campos marcados como obligatorios.

Constructores públicos

ArgsOptionParserArgsOptionParser

public ArgsOptionParser ( optionSources)

Crea un ArgsOptionParser para una colección de objetos.

Parámetros
optionSources : los objetos de configuración.

Lanza
ConfigurationException si los objetos de configuración están configurados incorrectamente.

ArgsOptionParserArgsOptionParser

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

public  getInopOptions ()

Devuelve el conjunto de opciones que no cambió ningún valor predeterminado.

Devoluciones

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Texto de ayuda de salida para todos los campos Option en objeto de opción .

El texto de ayuda para cada opción tendrá el siguiente formato

   [-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 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

public  parse (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 sobrantes después de procesar todas las opciones.

Lanza
ConfigurationException si se produjo un error al analizar los argumentos.

analizar gramaticalmente

public  parse ( args)

Método parse(String) que toma un ERROR(/List) de argumentos

Parámetros
args

Devoluciones
un ERROR(/List) de los argumentos posicionales sobrantes después de procesar todas las opciones.

Lanza
ConfigurationException si se produjo un error al analizar los argumentos.

analizarmejoresfuerzo

public  parseBestEffort ( 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

public  parseBestEffort ( args, 
                boolean forceContinue)

Método alternativo parseBestEffort(String) que toma un ERROR(/List) de argumentos y se puede obligar a continuar analizando hasta el final, incluso si algunos argumentos no se analizan.

Parámetros
args : lista que contendrá los argumentos sobrantes.

forceContinue boolean : verdadero si debe continuar analizándose incluso si algunos argumentos no se analizan.

Devoluciones
un ERROR(/List) de los argumentos sobrantes

analizarmejoresfuerzo

public  parseBestEffort (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

validarObligatorioOpciones

public void validateMandatoryOptions ()

Valida que se hayan configurado todos los campos marcados como obligatorios.

Lanza
com.android.tradefed.config.ConfigurationException
ConfigurationException