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) { ... } ... }
- </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(
Crée un |
|
ArgsOptionParser(Object... optionSources)
Crée un |
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 |
|
parse(String... args)
Analyse les arguments de ligne de commande "args", en définissant les champs @Option de "optionSource" fournies au constructeur. |
|
parse(
Autre méthode |
|
parseBestEffort(
Autre méthode |
|
parseBestEffort(
Autre méthode |
|
parseBestEffort(String... args)
Version optimale de |
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
publicgetInopOptions ()
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]
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
publicparse (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
publicparse ( 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
publicparseBestEffort ( 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
publicparseBestEffort ( 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
publicparseBestEffort (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 |