:: Enseignements :: ESIPE :: E4INFO :: 2013-2014 :: Programmation Orientée Objet - Design Pattern ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Parsing de la ligne de commande |
Le but est de créer une API de parsing de la ligne de commande
Exercice 1 - OptionParser
Au lieu de ré-inventer la roue, on se dit que copier ce que fait Ruby
pourrait être une bonne idée. Hop, un petit coup de recherche sur
internet, et on tombe sur cette page,
http://ruby.about.com/od/advancedruby/a/optionparser.htm
, qui montre un exemple d'utilisation de la classe
OptionParser.
L'exemple de cette page traduit en Java, cela donne à peu près ceci
Le but de ce TP est de faire en sorte que le code du
main fonctionne.
-
On s'intéresse dans un premier temps à l'API uniquement, pas à son implantation.
Ecrire les déclarations de la classe OptionParser ainsie que celle de
la classe Options (le type de opts lors de l'appel à create)
de telle sorte que la classe Main compile.
-
A quel design-pattern vous fait pensez la classe Option.
Comparez la façon dont la classe Option est utilisée par
rapport au schéma classique d'utilisation de ce design pattern.
-
Implanter les classes OptionParser et Options.
-
Vérifier que l'option "--help" affiche bien l'aide comme prévu,
sinon modifier votre implantation pour que cela marche.
-
On souhaite ajouter le support des options ayant des arguments,
comme l'option --logfile dans le main.
Qu'elle(s) sont le ou les méthodes qui doivent être ajoutée(s)
à la classe OptionParser ?
Ajouter la ou les déclarations de méthodes dans OptionParser.
-
Comment gérer la conversion entre la chaine de caractères
correspondant un argument, ici le fichier de log et
l'objet correspondant, ici un objet de type Path ?
Ecrire la classe ArgumentConverter gérant la conversion des arguments.
L'initialisation de la classe devra se faire en utilisant le même pattern
que pour la question 2.
-
Implanter la gestion des arguments des options à la classe OptionParser.
© Université de Marne-la-Vallée