ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.Object
   ↳ com.android.tradefed.config.OptionSetter
     ↳ com.android.tradefed.config.ArgsOptionParser


Renseigne les champs Option à partir des arguments de ligne de commande analysés.

Les chaînes de la chaîne transmise[] sont analysées de gauche à droite. Chaque chaîne est classée comme une chaîne courte option (telle que "-v"), une option longue (telle que "--verbose"), un argument d'une option (par exemple "out.txt" dans "-f out.txt") ou d'un argument positionnel sans option.

Chaque argument d'option doit correspondre à un ou plusieurs champs Option. Une longue option correspond Le nom Option, et une option courte correspond au nom court de Option. Chaque nom d'option et le nom court de l'option doit être unique par rapport à toutes les autres Champs Option dans le même objet.

Un seul argument d'option peut être mappé sur plusieurs champs Option portant le même nom. entre plusieurs objets. Les arguments Option peuvent être associés à un espace de noms pour faire référence de manière unique à un Champ Option dans un même objet en utilisant le nom de classe complet de cet objet ou son Valeur d'alias OptionClass séparée par le caractère ":". ie

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

Une option courte simple est un « - » suivi d'un caractère d'option court. Si l'option nécessite une (qui est vrai pour toutes les options non booléennes), il peut être écrit en tant que paramètre distinct, mais ce n'est pas nécessaire. Par exemple, "-f out.txt" et "-fout.txt" sont toutes deux acceptables.

Il est possible de spécifier plusieurs options courtes après un seul "-" tant que toutes (sauf éventuellement le dernier) ne nécessitent pas d'argument.

Une option longue commence par "--" suivi de plusieurs caractères. Si l'option nécessite une l'argument, il peut être écrit directement après le nom de l'option, séparé par le signe "=", ou comme prochain mot clé . (Par exemple, "--file=out.txt" ou "--file out.txt".)

Une option booléenne longue "--name" obtient automatiquement un "--no-name" compagnon. Option proposée "--flag", puis "--flag", "--no-flag", "--flag=true" et "--flag=false" sont tous valides, ni "--flag true" ni "--flag false" (dans la mesure où "--flag" seul suffit, suivi de "true" ou "false" est interprétée séparément). Vous pouvez utiliser « oui » et "non" en tant que synonymes pour "true" et "false".

Chaque chaîne ne commence pas par un "-" et non obligatoire d'une option précédente est argument positionnel sans option, comme toutes les chaînes successives. Chaque chaîne après "--" est un un argument positionnel sans option.

Les champs correspondant aux options sont mis à jour à mesure que ces options sont traitées. Tout restant Les arguments positionnels sont renvoyés sous forme de List<String>.

Voici un exemple 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) {
        ...
     }
     ...

 }

 
Voir aussi: <ph type="x-smartling-placeholder">
    </ph>
  • la page de manuel getopt(1)
  • la classe "optparse" de Python module (http://docs.python.org/library/optparse.html)
  • les « directives de syntaxe d’utilitaire » de POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • les normes GNU pour les interfaces de ligne de commande (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

Voir aussi :

Résumé

Constructeurs publics

ArgsOptionParser( optionSources)

Crée un ArgsOptionParser pour une collection d'objets.

ArgsOptionParser(Object... optionSources)

Crée un ArgsOptionParser pour un ou plusieurs objets.

Méthodes publiques

getInopOptions()

Renvoie l'ensemble des options pour lesquelles aucune valeur par défaut n'a été modifiée.

static String getOptionHelp(boolean importantOnly, Object optionObject)

Texte d'aide à la sortie de tous les champs Option dans optionObject.

parse(String... args)

Analyse les arguments de ligne de commande "args", en définissant les champs @Option de "optionSource" fournies au constructeur.

parse( args)

Autre méthode parse(String) qui accepte un ERROR(/List) d'arguments

parseBestEffort( args)

Autre méthode parseBestEffort(String) qui accepte un ERROR(/List) de arguments

parseBestEffort( args, boolean forceContinue)

Autre méthode parseBestEffort(String) qui accepte un ERROR(/List) de et peut être obligé de poursuivre l'analyse jusqu'à la fin, même si certains analyser.

parseBestEffort(String... args)

Version optimale de parse(String).

void validateMandatoryOptions()

Vérifie que tous les champs marqués comme obligatoires ont été définis.

Constructeurs publics

ArgsOptionParser

public ArgsOptionParser ( optionSources)

Crée un ArgsOptionParser pour une collection d'objets.

Paramètres
optionSources : objets de configuration.

Génère
ConfigurationException si les objets de configuration sont mal configurés.

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

Crée un ArgsOptionParser pour un ou plusieurs objets.

Paramètres
optionSources Object: objets de configuration.

Génère
ConfigurationException si les objets de configuration sont mal configurés.

Méthodes publiques

getInopOptions

public  getInopOptions ()

Renvoie l'ensemble des options pour lesquelles aucune valeur par défaut n'a été modifiée.

Renvoie

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Texte d'aide à la sortie de tous les champs Option dans optionObject.

Le texte d'aide de chaque option sera au format suivant :

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
L'option "Par défaut..." le texte sera omis si le champ d'option est nul ou vide.

Paramètres
importantOnly boolean: si true n'affiche l'aide que pour les options importantes.

optionObject Object: objet pour lequel afficher le texte d'aide.

Renvoie
String Une chaîne contenant un texte d'aide convivial pour tous les champs Option

analyser

public  parse (String... args)

Analyse les arguments de ligne de commande "args", en définissant les champs @Option de "optionSource" fournies au constructeur.

Paramètres
args String

Renvoie
une ERROR(/List) des arguments positionnels restants après le traitement de toutes les options.

Génère
ConfigurationException si une erreur s'est produite lors de l'analyse des arguments.

analyser

public  parse ( args)

Autre méthode parse(String) qui accepte un ERROR(/List) d'arguments

Paramètres
args

Renvoie
une ERROR(/List) des arguments positionnels restants après le traitement de toutes les options.

Génère
ConfigurationException si une erreur s'est produite lors de l'analyse des arguments.

analyser BestEffort

public  parseBestEffort ( args)

Autre méthode parseBestEffort(String) qui accepte un ERROR(/List) de arguments

Paramètres
args

Renvoie
une ERROR(/List) des arguments de gauche

analyser BestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

Autre méthode parseBestEffort(String) qui accepte un ERROR(/List) de et peut être obligé de poursuivre l'analyse jusqu'à la fin, même si certains analyser.

Paramètres
args : liste contenant les arguments de gauche.

forceContinue boolean : "true" si l'analyse doit se poursuivre même si certains arguments ne le sont pas.

Renvoie
une ERROR(/List) des arguments de gauche

analyser BestEffort

public  parseBestEffort (String... args)

Version optimale de parse(String). Si une configurationException est générée, cette exception est capturée en interne et les arguments restants (y compris le ayant entraîné la génération de l'exception) sont renvoyés. Cette méthode ne génère aucune exception.

Paramètres
args String

Renvoie
une ERROR(/List) des arguments de gauche

validateMandatoryOptions

public void validateMandatoryOptions ()

Vérifie que tous les champs marqués comme obligatoires ont été définis.

Génère
com.android.tradefed.config.ConfigurationException
ConfigurationException