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.
Les chaînes de la String[] transmise sont analysées de gauche à droite. Chaque chaîne est classée comme une option courte (par exemple, "-v"), une option longue (par exemple, "--verbose"), un argument d'une option (par exemple, "out.txt" dans "-f out.txt") ou un argument de position non optionnel.
Chaque argument d'option doit être mappé sur un ou plusieurs champs Option
. Une option longue est mappée sur le nom Option
, et une option courte est mappée sur le nom abrégé Option
. Chaque nom et nom court d'option doivent être uniques par rapport à tous les autres champs Option
du même objet.
Un seul argument d'option peut être mappé sur plusieurs champs Option
portant le même nom dans 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 seul objet à l'aide du nom de classe complet de cet objet ou de sa valeur d'alias OptionClass
séparée par :
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
Une option courte simple se présente sous la forme d'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), elle peut être écrite en tant que paramètre distinct, mais ce n'est pas obligatoire. Autrement dit, "-f out.txt" et "-fout.txt" sont tous deux acceptables.
Vous pouvez spécifier plusieurs options courtes après un seul "-", à condition que toutes (sauf peut-être 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 longue booléenne "--name" reçoit automatiquement un compagnon "--no-name". Étant donné une option "--flag", les options "--flag", "--no-flag", "--flag=true" et "--flag=false" sont toutes valides, bien que ni "--flag true" ni "--flag false" ne soient autorisés (puisque "--flag" seul est suffisant, le "true" ou "false" suivant est interprété séparément). Vous pouvez utiliser "yes" et "no" comme synonymes de "true" et "false".
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 de position non optionnel, comme toutes les chaînes successives. Chaque chaîne après un "--" est un argument de position non optionnel.
Les champs correspondant aux options sont mis à jour à mesure que leurs options sont traitées. Les arguments de position 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) { ... } ... }
- la page de manuel getopt(1)
- Module "optparse" de Python (http://docs.python.org/library/optparse.html)
- les "Consignes de syntaxe des utilitaires" POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
- les "Normes pour les interfaces de ligne de commande" GNU (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 d'options pour lesquelles aucune valeur par défaut n'a été modifiée. |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
Affiche le 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 l'objet "optionSource" fourni au constructeur. |
|
parse(
Méthode |
|
parseBestEffort(
Méthode |
|
parseBestEffort(
Méthode |
|
parseBestEffort(String... args)
Version 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 un ensemble d'objets.
Paramètres | |
---|---|
optionSources |
: objets de configuration. |
Génère | |
---|---|
ConfigurationException |
si les objets de configuration ne sont pas configurés correctement. |
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 ne sont pas configurés correctement. |
Méthodes publiques
getInopOptions
publicgetInopOptions ()
Renvoie l'ensemble d'options pour lesquelles aucune valeur par défaut n'a été modifiée.
Renvoie | |
---|---|
|
getOptionHelp
public static String getOptionHelp (boolean importantOnly, Object optionObject)
Affiche le texte d'aide pour 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 imprimer le texte d'aide |
Renvoie | |
---|---|
String |
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 l'objet "optionSource" fourni au constructeur.
Paramètres | |
---|---|
args |
String |
Renvoie | |
---|---|
|
un ERROR(/List) des arguments positionnels restants après le traitement de toutes les options. |
Génère | |
---|---|
ConfigurationException |
en cas d'erreur lors de l'analyse des arguments. |
analyser
publicparse ( args)
Méthode parse(String)
alternative qui accepte un ERROR(/List)
d'arguments
Paramètres | |
---|---|
args |
|
Renvoie | |
---|---|
|
un ERROR(/List) des arguments positionnels restants après le traitement de toutes les options. |
Génère | |
---|---|
ConfigurationException |
en cas d'erreur lors de l'analyse des arguments. |
parseBestEffort
publicparseBestEffort ( args)
Méthode parseBestEffort(String)
alternative qui accepte un ERROR(/List)
d'arguments
Paramètres | |
---|---|
args |
|
Renvoie | |
---|---|
|
ERROR(/List) de gauche sur les arguments |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
Méthode parseBestEffort(String)
alternative qui prend un ERROR(/List)
d'arguments et peut être forcée à continuer l'analyse jusqu'à la fin, même si certains arguments ne sont pas analysés.
Paramètres | |
---|---|
args |
: liste contenant les arguments restants. |
forceContinue |
boolean : "True" si l'analyse doit continuer même si certains arguments ne sont pas analysés. |
Renvoie | |
---|---|
|
ERROR(/List) de gauche sur les arguments |
parseBestEffort
publicparseBestEffort (String... args)
Version de parse(String)
optimisée. Si une exception ConfigurationException est générée, elle est capturée en interne et les arguments restants (y compris l'argument à l'origine de l'exception) sont renvoyés. Cette méthode ne génère pas d'exception.
Paramètres | |
---|---|
args |
String |
Renvoie | |
---|---|
|
ERROR(/List) de gauche sur les arguments |
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 |