ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.Object
   ↳ com.android.tradefed.config.OptionSetter (link em inglês)
     ↳ com.android.tradefed.config.ArgsOptionParser


Preenche os campos Option com base nos argumentos de linha de comando analisados.

As strings na String transmitida[] são analisadas da esquerda para a direita. Cada string é classificada como um opção (como "-v"), uma opção longa (como "--detalhado"), um argumento para uma opção (como “out.txt” em "-f out.txt") ou um argumento posicional sem opção.

Cada argumento de opção precisa ser mapeado para um ou mais campos Option. Uma opção longa mapeia para o Option, e uma opção curta é mapeada para o nome curto Option. Cada nome de opção e o nome curto da opção deve ser único em relação a todas as outras Campos Option no mesmo objeto.

Um único argumento de opção pode ser mapeado para vários campos Option com o mesmo nome. em vários objetos. Os argumentos Option podem receber namespaces para se referirem exclusivamente a um campo Option em um único objeto, usando o nome completo da classe desse objeto ou Valor de alias OptionClass separado por ':'. isto é,

 --classname:optionname optionvalue or
 --optionclassalias:optionname optionvalue.
 

Uma opção curta simples é um "-" seguido por um curto caractere de opção. Se a opção exigir uma (o que é verdadeiro para qualquer opção não booleana), ele pode ser escrito como um parâmetro separado, mas não precisam ser. Ou seja, "-f out.txt" e "-fout.txt" são aceitáveis.

É possível especificar várias opções curtas após um único "-" contanto que todos (exceto possivelmente a última) não exigem argumentos.

Uma opção longa começa com "--" seguido por vários caracteres. Se a opção exigir uma , ele pode ser escrito logo após o nome da opção, separado por "=" ou como o próximo . Ou seja, "--file=out.txt" ou "--file out.txt".

Uma opção booleana longa "--name" recebe automaticamente "--no-name" companheiro Se tiver uma opção, "--flag", depois "--flag", "--no-flag", "--flag=true" e "--flag=false" são todos válidos, "--flag true" nem "--flag false" são permitidas (já que "--flag" por si só é suficiente, a após "true" ou "falso" são interpretados separadamente). Use "yes" e "não" como sinônimos para "verdadeiro" e "false".

Cada string que não começa com um "-" e não um argumento obrigatório de uma opção anterior é uma argumento posicional non-option, assim como todas as strings sucessivas. Cada string após um "--" é um argumento posicional sem opção.

Os campos correspondentes às opções são atualizados à medida que as opções são processadas. Qualquer valor restante argumentos posicionais são retornados como List<String>.

Veja um exemplo simples:

 // 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 também:

  • a página do manual do getopt(1)
  • "optparse" do Python módulo (http://docs.python.org/library/optparse.html)
  • as "Diretrizes de sintaxe de utilitários" no formato POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • o GNU "Padrões para interfaces de linha de comando" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

Confira também:

Resumo

Construtores públicos

ArgsOptionParser( optionSources)

Cria um ArgsOptionParser para uma coleção de objetos.

ArgsOptionParser(Object... optionSources)

Cria um ArgsOptionParser para um ou mais objetos.

Métodos públicos

getInopOptions()

Retorna o conjunto de opções que não mudaram os valores padrão.

static String getOptionHelp(boolean importantOnly, Object optionObject)

Texto de ajuda de saída para todos os campos Option em optionObject.

parse(String... args)

Analisa os argumentos de linha de comando "args", definindo os campos @Option de "optionSource" fornecida ao construtor.

parse( args)

Método parse(String) alternativo que usa uma ERROR(/List) de argumentos

parseBestEffort( args)

Método parseBestEffort(String) alternativo, que usa um ERROR(/List) de argumentos

parseBestEffort( args, boolean forceContinue)

Método parseBestEffort(String) alternativo, que usa um ERROR(/List) de e pode ser forçado a continuar a análise até o final, mesmo se alguns argumentos não analisar.

parseBestEffort(String... args)

Uma versão de melhor esforço de parse(String).

void validateMandatoryOptions()

Valida se todos os campos marcados como obrigatórios foram definidos.

Construtores públicos

ArgsOptionParser

public ArgsOptionParser ( optionSources)

Cria um ArgsOptionParser para uma coleção de objetos.

Parâmetros
optionSources : os objetos de configuração.

Gera
ConfigurationException se os objetos de configuração estiverem configurados incorretamente.

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

Cria um ArgsOptionParser para um ou mais objetos.

Parâmetros
optionSources Object: os objetos de configuração.

Gera
ConfigurationException se os objetos de configuração estiverem configurados incorretamente.

Métodos públicos

getInopOptions

public  getInopOptions ()

Retorna o conjunto de opções que não mudaram os valores padrão.

Retorna

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Texto de ajuda de saída para todos os campos Option em optionObject.

O texto de ajuda para cada opção estará no seguinte formato

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
A caixa de seleção "Padrão..." texto será omitido se o campo da opção for nulo ou vazio.

Parâmetros
importantOnly boolean: se true exibir apenas ajuda para as opções importantes.

optionObject Object: o objeto para mostrar o texto de ajuda.

Retorna
String uma string contendo texto de ajuda fácil de usar para todos os campos de opção

análise

public  parse (String... args)

Analisa os argumentos de linha de comando "args", definindo os campos @Option de "optionSource" fornecida ao construtor.

Parâmetros
args String

Retorna
uma ERROR(/List) dos argumentos posicionais que sobraram após o processamento de todas as opções.

Gera
ConfigurationException se ocorreu um erro ao analisar os argumentos.

análise

public  parse ( args)

Método parse(String) alternativo que usa uma ERROR(/List) de argumentos

Parâmetros
args

Retorna
uma ERROR(/List) dos argumentos posicionais que sobraram após o processamento de todas as opções.

Gera
ConfigurationException se ocorreu um erro ao analisar os argumentos.

parseMelhorEffort

public  parseBestEffort ( args)

Método parseBestEffort(String) alternativo, que usa um ERROR(/List) de argumentos

Parâmetros
args

Retorna
um ERROR(/List) dos argumentos restantes

parseMelhorEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

Método parseBestEffort(String) alternativo, que usa um ERROR(/List) de e pode ser forçado a continuar a análise até o final, mesmo se alguns argumentos não analisar.

Parâmetros
args : lista que conterá os argumentos restantes.

forceContinue boolean: verdadeiro se a análise continuar mesmo se alguns argumentos não forem analisados.

Retorna
um ERROR(/List) dos argumentos restantes

parseMelhorEffort

public  parseBestEffort (String... args)

Uma versão de melhor esforço de parse(String). Se uma ConfigurationException for gerada, essa exceção é capturada internamente, e os argumentos restantes (incluindo o que fez com que a exceção fosse gerada) são retornados. Esse método não é gerado.

Parâmetros
args String

Retorna
um ERROR(/List) dos argumentos restantes

validateMandatoryOptions

public void validateMandatoryOptions ()

Valida se todos os campos marcados como obrigatórios foram definidos.

Gera
ConfigurationException