Package fr.gpmsi

Class Groovy


  • public class Groovy
    extends Object
    Lanceur de scripts. C'est la classe centrale, qui permet d'exécuter des traitements en utilisant un script Groovy fourni par l'utilisateur. On utilise pour cela l'option -script <chemin_du_script>

    Les arguments du script peuvent être passés dynamiquement. On peut passer un drapeau (-f:<nom>) ou un argument avec une valeur (-a:<nom> <valeur>). Les préfixes spéciaux qui commencent par "?" servent à demander via une petite fenêtre surgissante une réponse à l'utilisateur.

    • ?s : demander une String
    • ?d : demander une date (au format jj/mm/aaaa)
    • ?f : demander un fichier
    • ?g : demander un répertoire
    • ?p : demander un mot de passe

    Ex : passage de la valeur "simpson" pour l'argument "monnom" : -a:monnom simpson.
    Ex : demander à l'utilisateur d'entrer un nom : -a:monnom ?
    Ex : demander à l'utilisateur d'entrer un nom, avec un texte d'invite : -a:monnom "?sVeuillez entrer un nom de personnage"
    Ex : demander à l'utilisateur de choisir un fichier : -a:monfic "?fVeuillez choisir un fichier"
    Ex : demander à l'utilisateur de choisir un répertoire : -a:monrep "?gVeuillez choisir un répertoire"
    Ex : demander à l'utilisateur de choisir une date : -a:madate "?dVeuillez choisir une date"
    Ex : demander à l'utilisateur d'entrer un mot de passe : -a:monmot "?pVeuillez entrer un mot de passe pour truc"
    Ex : Paramètre commence vraiment par ?, deviendra directement "?interro" sans rien demander à l'utilisateur : -a:moninterrogation "??interro"

    Dans le code groovy, on pourra récupérer la valeur via le tableau "args".
    Ex : def monnom = args['monnom']

    Il y a quelques objets prédéfinis dans la liaison ('binding') avec l'environnement de script :

    • args : les arguments du script
    • flags : les drapeaux
    • lg : le log (Log4j)
    • scriptPath : le chemin du script
    • scriptUri : le 'scripturi' passé en argument le cas échéant (voir option correspondante)
    • nl : le séparateur de ligne (System.getProperty("line.separator"))
    • userHome : le répertoire de l'utilisateur (System.getProperty("user.home"))
    • frenchDateFormat : un SimpleDateFormat au format francais dd/MM/yyyy
    • pmsiDateFormat : un SimpleDateFormat au format francais mais sans séparateurs, pour les fichiers PMSI ddMMyyyy
    • debug : true si on est passe en mode debug (via l'option -debug, voir plus bas), false sinon
    Autres options permises :
    • -debug : passer en mode debogage (emet des messages de debogage)(active le niveau DEBUG de log4j)
    • -enc <encodage> : change l'encodage par defaut des script (par defaut c'est UTF-8)
    • -scripturi : a utiliser à la place de l'option "script" si on veut définir un chemin relatif sous forme d'URI pour rechercher un script. C'est nécessaire notamment si le script que l'on donne en argument fait partie d'un package. Par exemple si mon script se trouve dans C:\mes_scripts\valorisation\calcul2.groovy et qu'en fait "valorisation" est un package, il faut appeler le script de la façon suivante : -extracp file:/C:/mes_scripts/ -scripturi valorisation/calcul2.groovy
    • -extracp: définir un élément de classpath supplémentaire. Cette option est à utiliser avec -scripturi pour donner le point de départ des scripts. C'est nécessaire lorsque l'on définit les scripts dans des packages, cela permet de définir le répertoire racine des scripts. Le chemin doit être une URL et se terminer par un slash (s'il n'y a pas de slash à la fin, gpmsi.Groovy en rajoute un d'office et émet un avertissement). On ajouter plusieurs fois cette option et ainsi ajouter plusieurs extracp.

    Il est également possible d'utiliser un objet interne déjà compilé à l'aide de l'option -run (au lieu de l'option -script). Il faut alors donner le nom de la classe et pas un chemin.
    Ex : -run fr.gpmsi.groovytests.LibsTest
    La classe doit étendre Script