ArgsOptionParser
public class ArgsOptionParser
extends OptionSetter
java.lang.Object | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
Remplit les champs Option
à partir des arguments de ligne de commande analysés.
Option
. Une option longue correspond au nom Option
et une option courte correspond au nom abrégé Option
. Chaque nom d'option et nom abrégé d'option doit être unique par rapport à tous les autres champs Option
dans le même objet. Un seul argument d'option peut être mappé à plusieurs champs Option
portant le même nom sur plusieurs objets. Les arguments Option
peuvent avoir un espace de noms pour faire référence de manière unique à un champ Option
dans un seul objet en utilisant le nom de classe complet de cet objet ou sa valeur d'alias OptionClass
séparée par ':'. c'est-à-dire --classname:optionname optionvalue or --optionclassalias:optionname optionvalue.Une option courte simple est un "-" suivi d'un caractère d'option courte. Si l'option nécessite un argument (ce qui est vrai pour toute option non booléenne), il peut être écrit comme paramètre séparé, mais ce n'est pas obligatoire. Autrement dit, "-f out.txt" et "-fout.txt" sont tous deux acceptables. Il est possible de spécifier plusieurs options courtes après un seul "-" tant que toutes (sauf éventuellement la dernière) ne nécessitent pas d'arguments. Une option longue commence par "--" suivi de plusieurs caractères. Si l'option nécessite un argument, il peut être écrit directement après le nom de l'option, séparé par "=", ou comme argument suivant. (C'est-à-dire "--file=out.txt" ou "--file out.txt".) Une option booléenne longue '--name' obtient automatiquement un compagnon '--no-name'. Étant donné une option "--flag", alors, "--flag", "--no-flag", "--flag=true" et "--flag=false" sont tous valides, bien que ni "--flag true" ni "--flag false" ne sont autorisés (puisque "--flag" en lui-même est suffisant, le "true" ou "false" suivant est interprété séparément). Vous pouvez utiliser "oui" et "non" comme synonymes de "vrai" et "faux". Chaque chaîne qui ne commence pas par un "-" et qui n'est pas un argument obligatoire d'une option précédente est un argument positionnel non optionnel, comme le sont toutes les chaînes successives. Chaque chaîne après un "--" est un argument positionnel non optionnel. Les champs correspondant aux options sont mis à jour au fur et à mesure que leurs options sont traitées. Tous les arguments positionnels restants 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 :
- la page de manuel getopt(1)
- Module "optparse" de Python (http://docs.python.org/library/optparse.html)
- les "Directives de syntaxe des utilitaires" POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
- les "Standards for Command Line Interfaces" GNU (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
Voir également:
Résumé
Constructeurs publics | |
---|---|
ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources) Crée un | |
ArgsOptionParser (Object... optionSources) Crée un |
Méthodes publiques | |
---|---|
getInopOptions () Renvoie l'ensemble des options qui n'ont modifié aucune valeur par défaut. | |
static String | getOptionHelp (boolean importantOnly, Object optionObject) Générer un texte d'aide pour tous les champs |
parse (String... args) Analyse les arguments de ligne de commande 'args', en définissant les champs @Option de 'optionSource' fournis au constructeur. | |
parse ( args) parse ( args) Méthode alternative | |
parseBestEffort ( args) parseBestEffort ( args) Méthode alternative | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) Méthode alternative | |
parseBestEffort (String... args) Une version au mieux de | |
void | validateMandatoryOptions () Valide 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 |
Lance | |
---|---|
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 : les objets de configuration. |
Lance | |
---|---|
ConfigurationException | si les objets de configuration sont mal configurés. |
Méthodes publiques
getInopOptions
publicgetInopOptions ()
Renvoie l'ensemble des options qui n'ont modifié aucune valeur par défaut.
Retour | |
---|---|
getOptionHelp
public static String getOptionHelp (boolean importantOnly, Object optionObject)
Générer un texte d'aide pour tous les champs Option
dans optionObjet .
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]Le texte "Par défaut..." sera omis si le champ d'option est nul ou vide.
Paramètres | |
---|---|
importantOnly | boolean : si true , n'affiche que l'aide pour les options importantes |
optionObject | Object : l'objet pour lequel imprimer le texte d'aide |
Retour | |
---|---|
String | une chaîne contenant un texte d'aide convivial pour tous les champs d'option |
analyser
publicparse (String... args)
Analyse les arguments de ligne de commande 'args', en définissant les champs @Option de 'optionSource' fournis au constructeur.
Paramètres | |
---|---|
args | String |
Retour | |
---|---|
une ERROR(/List) des arguments positionnels restants après le traitement de toutes les options. |
Lance | |
---|---|
ConfigurationException | si une erreur s'est produite, analysez les arguments. |
analyser
publicparse ( args)
Méthode alternative parse(String)
qui prend une ERROR(/List)
d'arguments
Paramètres | |
---|---|
args |
Retour | |
---|---|
une ERROR(/List) des arguments positionnels restants après le traitement de toutes les options. |
Lance | |
---|---|
ConfigurationException | si une erreur s'est produite, analysez les arguments. |
parseBestEffort
publicparseBestEffort ( args)
Méthode alternative parseBestEffort(String)
qui prend une ERROR(/List)
d'arguments
Paramètres | |
---|---|
args |
Retour | |
---|---|
une ERROR(/List) des arguments restants |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
Méthode alternative parseBestEffort(String)
qui prend une ERROR(/List)
d'arguments et peut être forcée de continuer l'analyse jusqu'à la fin, même si certains arguments ne sont pas analysés.
Paramètres | |
---|---|
args | |
forceContinue | boolean : Vrai s'il doit continuer à analyser même si certains arguments ne sont pas analysés. |
Retour | |
---|---|
une ERROR(/List) des arguments restants |
parseBestEffort
publicparseBestEffort (String... args)
Une version au mieux de parse(String)
. Si une ConfigurationException est levée, cette exception est capturée en interne et les arguments restants (y compris l'argument qui a provoqué la levée de l'exception) sont renvoyés. Cette méthode ne jette pas.
Paramètres | |
---|---|
args | String |
Retour | |
---|---|
une ERROR(/List) des arguments restants |
validerMandatoryOptions
public void validateMandatoryOptions ()
Valide que tous les champs marqués comme obligatoires ont été définis.
Lance | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |