You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 1/112
ACCELEO<br />
<strong>Référence</strong><br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 2/112<br />
Ce manuel est la propriété exclusive de ses auteurs et a été concédé par ces derniers au profit de la société<br />
OBEO, SARL au capital de 45.000 € dont le siège social est sis 2 rue Robert Schuman, 44400 Rezé, inscrite<br />
au Registre du Commerce et des sociétés de NANTES sous le numéro 485.129.860.<br />
Ce manuel est protégé au titre des dispositions légales et réglementaires régissant les droits de propriété<br />
intellectuelle. Il traite d’un produit logiciel dénommé ACCELEO, actuellement distribué sous licence open<br />
source EPL par la société OBEO. Ce manuel a été fait avec la plus grande attention. Toutefois, des erreurs<br />
ont pu se glisser dans la version de ce manuel. OBEO ne peut être, en aucun cas, tenue pour responsable<br />
des suites que ces erreurs pourraient entraîner.<br />
La distribution de ce manuel n’est pas libre. Ce manuel peut-être téléchargé gratuitement après<br />
enregistrement sur le site de la société OBEO, et peut-être consulté dans le cadre d'une utilisation<br />
commerciale ou non de la technologie ACCELEO. Cependant, la copie, la traduction et la redistribution de<br />
ce document sur support électronique ou sur papier nécessite une autorisation de la part de OBEO.<br />
Nous rappelons à votre attention que les dispositions légales régissant les conditions d’utilisation et de<br />
distribution de ce manuel sont regroupées au sein du Code de la Propriété Intellectuelle, notamment dans<br />
son Titre II – Droits des auteurs (Articles L121-1 à L123-12).<br />
Nous nous réservons le droit de modifier sans avis préalable ce manuel ou le produit.<br />
Merci de respecter ces dispositions.<br />
________________<br />
« OBEO », « ACCELEO », ainsi que les logos OBEO et ACCELEO associés à ce manuel sont déposés par<br />
OBEO SARL en France et/ou dans d'autres pays du monde.<br />
Tous les autres noms, titres, dessins, et logos sont la propriété exclusive de leurs auteurs respectifs et sont<br />
protégés au titre des droits de propriété intellectuelle.<br />
Ce manuel a été rédigé avec les outils suivants : OpenOffice<br />
Auteurs : Jonathan MUSSET, Etienne JULIOT, Stéphane LACRAMPE<br />
avec la participation de : Goulwen LE FUR, Julien DUPONT, Guillaume RAIMBAULT, Nathalie LEPINE,<br />
William PIERS, Cédric BRUN, Freddy ALLILAIRE, et Laurent GOUBET<br />
© Copyright 2006-2008 Obeo. Tous droits réservés
Table des matières<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 3/112<br />
1 - Introduction.......................................................................................................................7<br />
1.1 - Connaissances minimales requises..........................................................................7<br />
2 - Les éléments de syntaxe..................................................................................................8<br />
2.1 - comment....................................................................................................................8<br />
2.2 - metamodel.................................................................................................................8<br />
2.3 - import.........................................................................................................................8<br />
2.4 - script..........................................................................................................................9<br />
2.5 - for...............................................................................................................................9<br />
<strong>2.6</strong> - if...............................................................................................................................10<br />
3 - Liste des services...........................................................................................................11<br />
3.1 - ContextServices......................................................................................................11<br />
3.1.1 - get.....................................................................................................................12<br />
3.1.2 - peek..................................................................................................................13<br />
3.1.3 - pop....................................................................................................................14<br />
3.1.4 - push..................................................................................................................15<br />
3.1.5 - put.....................................................................................................................16<br />
3.2 - ENodeServices........................................................................................................17<br />
3.2.1 - adapt................................................................................................................18<br />
3.2.2 - cast...................................................................................................................19<br />
3.2.3 - current..............................................................................................................20<br />
3.2.4 - current..............................................................................................................21<br />
3.2.5 - debug...............................................................................................................22<br />
3.<strong>2.6</strong> - filter...................................................................................................................23<br />
3.2.7 - minimize...........................................................................................................24<br />
3.2.8 - nContains.........................................................................................................25<br />
3.2.9 - nFirst................................................................................................................26<br />
3.2.10 - nGet................................................................................................................27<br />
3.2.11 - nGet................................................................................................................28<br />
3.2.12 - nGet................................................................................................................29<br />
3.2.13 - nLast...............................................................................................................30<br />
3.2.14 - nMinimize.......................................................................................................31<br />
3.2.15 - nPeek.............................................................................................................32<br />
3.2.16 - nPop...............................................................................................................33<br />
3.2.17 - nPush.............................................................................................................34<br />
3.2.18 - nPut................................................................................................................35<br />
3.2.19 - nReverse........................................................................................................36
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 4/112<br />
3.2.20 - nSize..............................................................................................................37<br />
3.2.21 - nSort...............................................................................................................38<br />
3.2.22 - nSort...............................................................................................................39<br />
3.2.23 - reverse...........................................................................................................40<br />
3.2.24 - sep..................................................................................................................41<br />
3.2.25 - sepStr.............................................................................................................42<br />
3.2.26 - sort.................................................................................................................43<br />
3.2.27 - sort.................................................................................................................44<br />
3.2.28 - toString...........................................................................................................45<br />
3.2.29 - trace...............................................................................................................46<br />
3.2.30 - trace...............................................................................................................47<br />
3.2.31 - until.................................................................................................................48<br />
3.3 - EObjectServices .....................................................................................................50<br />
3.3.1 - eAllContents.....................................................................................................51<br />
3.3.2 - eAllContents.....................................................................................................52<br />
3.3.3 - eClass..............................................................................................................53<br />
3.3.4 - eContainer........................................................................................................54<br />
3.3.5 - eContainer........................................................................................................55<br />
3.3.6 - eContainingFeature..........................................................................................56<br />
3.3.7 - eContainmentFeature......................................................................................57<br />
3.3.8 - eContents.........................................................................................................58<br />
3.3.9 - eCrossReferences...........................................................................................59<br />
3.3.10 - eResource......................................................................................................60<br />
3.3.11 - eResourceName............................................................................................61<br />
3.3.12 - getRootContainer...........................................................................................62<br />
3.3.13 - load.................................................................................................................63<br />
3.4 - PropertiesServices..................................................................................................64<br />
3.4.1 - getBestProperty................................................................................................65<br />
3.4.2 - getProperty.......................................................................................................66<br />
3.4.3 - getProperty.......................................................................................................67<br />
3.5 - RequestServices ....................................................................................................68<br />
3.5.1 - delete................................................................................................................69<br />
3.5.2 - delete................................................................................................................70<br />
3.5.3 - evaluate............................................................................................................71<br />
3.5.4 - select................................................................................................................72<br />
3.5.5 - select................................................................................................................73<br />
3.6 - ResourceServices...................................................................................................74
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 5/112<br />
3.6.1 - getFileContent..................................................................................................75<br />
3.6.2 - getChainPath....................................................................................................76<br />
3.7 - SpecialsServices.....................................................................................................77<br />
3.7.1 - i.........................................................................................................................78<br />
3.7.2 - args...................................................................................................................79<br />
3.8 - StringServices ........................................................................................................80<br />
3.8.1 - charAt...............................................................................................................81<br />
3.8.2 - endsWith..........................................................................................................82<br />
3.8.3 - equalsIgnoreCase............................................................................................83<br />
3.8.4 - indentSpace.....................................................................................................84<br />
3.8.5 - indentTab.........................................................................................................85<br />
3.8.6 - indexOf.............................................................................................................86<br />
3.8.7 - indexOf.............................................................................................................87<br />
3.8.8 - lastIndexOf.......................................................................................................88<br />
3.8.9 - lastIndexOf.......................................................................................................89<br />
3.8.10 - length..............................................................................................................90<br />
3.8.11 - matches..........................................................................................................91<br />
3.8.12 - replaceAll........................................................................................................92<br />
3.8.13 - replaceFirst.....................................................................................................93<br />
3.8.14 - split.................................................................................................................94<br />
3.8.15 - startsWith.......................................................................................................95<br />
3.8.16 - substring.........................................................................................................96<br />
3.8.17 - substring.........................................................................................................97<br />
3.8.18 - toL1Case........................................................................................................98<br />
3.8.19 - toLowerCase..................................................................................................99<br />
3.8.20 - toU1Case.....................................................................................................100<br />
3.8.21 - toUpperCase................................................................................................101<br />
3.8.22 - trim...............................................................................................................102<br />
3.9 - XpathServices.......................................................................................................103<br />
3.9.1 - ancestor..........................................................................................................104<br />
3.9.2 - child................................................................................................................105<br />
3.9.3 - descendant.....................................................................................................106<br />
3.9.4 - following.........................................................................................................107<br />
3.9.5 - followingSibling..............................................................................................111<br />
3.9.6 - parent.............................................................................................................112<br />
3.9.7 - preceding........................................................................................................113<br />
3.9.8 - precedingSibling.............................................................................................114
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 6/112<br />
3.9.9 - self..................................................................................................................115
1 - Introduction<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 7/112<br />
Ce document est une présentation détaillée de la syntaxe et des services de l'outil de génération de code<br />
<strong>Acceleo</strong>, initié par la société Obeo.<br />
Ce générateur de code est dédié aux personnes qui veulent tirer profit des technologies MDA pour<br />
accroître la productivité de leurs développements informatiques. Il permet de générer des fichiers à partir<br />
de modèles UML, MOF, EMF...<br />
Il s'agit d'un plugin caractérisé par :<br />
– Son intégration complète à l'environnement Eclipse et au framework EMF<br />
– La gestion de la synchronisation entre le code et le modèle<br />
– La génération incrémentale<br />
– La simplicité d'adaptation à tout type de cible technique<br />
– La facilité de mise au point et de maintenabilité des templates<br />
– La colorisation syntaxique, la complétion, la détection d'erreurs<br />
Ce document de référence s'inscrit dans un ensemble de documentations proposées par la société Obeo.<br />
Chaque documentation aborde une facette différente de la maîtrise d'<strong>Acceleo</strong> :<br />
– guide utilisateur : documentation des fonctionnalités d'<strong>Acceleo</strong><br />
– tutoriel utilisateur : prise en main d'<strong>Acceleo</strong><br />
– tutoriel architecte : guide pour la création et la personnalisation de modules de génération<br />
1.1 - Connaissances minimales requises<br />
Ce présent guide ne se veut pas être une formation pour l'ensemble des problématiques couvertes par le<br />
MDA et <strong>Acceleo</strong> en particulier. Ainsi, la lecture de ce guide requiert les connaissances suivantes :<br />
– Java<br />
– modélisation (par exemple : UML)<br />
– utilisation d'Eclipse<br />
La connaissance des concepts suivants sera également un plus, mais ne sera pas indispensable à la<br />
lecture de cette documentation :<br />
– méta-modèles<br />
– méta-modèle UML2<br />
– développement de plugins Eclipse<br />
– MDA ou MDD
2 - Les éléments de syntaxe<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 8/112<br />
Les parties variables des scripts de génération sont délimitées par les balises . Cependant pour<br />
des raisons de conflits (par exemple, avec les balises du langage JSP), il est possible d'utiliser les balises<br />
[% et %]. Ce choix se fait dynamiquement en fonction de la première balise du fichier, celle de la section<br />
“ import ” (cf. Guide de l'utilisateur).<br />
2.1 - comment<br />
Il est possible de commenter les scripts de génération en insérant des explications d'une ou plusieurs<br />
lignes entre les balises (ou [% - - et - - %]).<br />
2.2 - metamodel<br />
Le mot clé “ metamodel ” permet de définir le méta modèle utilisé dans le script de génération. L'instruction<br />
est la première de la section import (cf. Guide de l'utilisateur). La syntaxe de cette instruction est :<br />
<br />
où URIDeMonMetamodèle est l'URI qui identifie le méta modèle utilisé. Les principales URI utilisées sont :<br />
– méta modèle UML 1.4 : http://www.obeo.fr/uml14<br />
– méta modèle UML 1.3 : http://www.obeo.fr/uml13<br />
– méta modèle UML 2.0 : http://www.eclipse.org/uml2/1.0.0/UML ou http://www.eclipse.org/uml2/2.0.0/UML<br />
– méta modèle Ecore : http://www.eclipse.org/emf/2002/Ecore<br />
Exemples d'utilisation :<br />
<br />
Cette section d'import définit que le méta modèle utilisé par les scripts de ce fichier est le métamodèle UML 1.4.<br />
2.3 - import<br />
L'instruction “ import ” est utilisée dans la section import (cf. Guide de l'utilisateur) d'un script de génération.<br />
Cette instruction permet de faire un lien vers un autre template ou un fichier de service. Il est dès lors<br />
possible d'appeler les scripts ou les services de ce fichier. Le concept sous-jacent à cette instruction est<br />
semblable à celui de la notion “ import ” dans le langage Java. La syntaxe de cette instruction est :
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 9/112<br />
où monPackage est le chemin du fichier (exemple : “ fr.obeo.acceleo ”), maClassDeServices est le nom de<br />
la classe Java où j'ai défini mes propres services et monTemplateDeScripts est le nom du template dans<br />
lequel se trouve les scripts de génération que j'ai écrit.<br />
Exemples d'utilisation<br />
<br />
Cette section d'import explique que les scripts de ce fichier peuvent utiliser les scripts définis dans le fichier<br />
“ commonScript.mt ” ainsi que les services de la classe “ StringServices.java ”.<br />
2.4 - script<br />
La balise “ script ” permet d'identifier le script de génération et le type d'objet sur lequel il s'applique. La<br />
syntaxe de cette balise est :<br />
<br />
où monType est le type d'objet sur lequel s'applique le script (“ Package ”, “ Class ”, “ Attribute ”, ...),<br />
identifiant est une chaîne de caractères qui identifie le script, nomDuFichierGénéré est une chaîne de<br />
caractères qui correspond au chemin d'accès du fichier produit lors de la génération (extension comprise),<br />
maDescription est une chaîne de caractères qui décrit l'action du script, et monPost est un traitement<br />
appelé pour le résultat de l'évaluation du template.<br />
Les paramètres “ type ” et “ name ” sont obligatoires. Les paramètres “ file ”, “ description ”, et ”post” sont<br />
optionnels.<br />
Le couple de paramètres (“ type ”, “ name ”) est l'identifiant du script. Pour un type donné, les noms de<br />
chaque script doivent être différents.<br />
Le paramètre “ file ” peut contenir l'appel à un autre script qui se charge de la génération du chemin d'accès<br />
du fichier à générer (cf. Exemples d'utilisation).<br />
Exemples d'utilisation :<br />
<br />
Ici sont toutes les instructions de mon script “ generate ”.<br />
<br />
src/monPackage/monSousPackage/monNomDeFichier.java<br />
Dans cet exemple, un fichier nommé “ monNomDeFichier.java ” est enregistré dans le répertoire nommé<br />
“ monSousPackage ”, lui même contenu dans le répertoire “ monPackage ” du répertoire “ src ” du projet. Ce fichier<br />
contiendra le texte suivant : “ Ici sont toutes les instructions de mon script “ generate ”. ”.<br />
2.5 - for<br />
L'instruction “ for ” est l'implémentation d'une boucle. La syntaxe de cette instruction est :<br />
<br />
instructions exécutées sur chaque élément de maListeDObjets.<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 10/112<br />
où maListeDObjets est une liste au sens <strong>Acceleo</strong> du terme (type “ ENodeList ”) d'objets au sens <strong>Acceleo</strong><br />
(entier (“ int ”), booléen (“ boolean ”), chaîne de caractères (“ String ”), liste (“ ENodeList ”) ou objets<br />
(“ EObject ”)).<br />
Exemples d'utilisation :<br />
<br />
Le nom de la classe est : .<br />
<br />
Cet exemple génère pour chacune des classes contenues dans l'objet courant : “ Le nom de la classe est :<br />
NomDeLaClasse. ” où NomDeLaClasse est le nom de la classe de l'itération courante.<br />
<strong>2.6</strong> - if<br />
L'instruction “ if ” permet de tester une condition. La syntaxe de cette instruction est :<br />
<br />
instructions exécutées si expressionBooléenne est vrai<br />
<br />
instructions exécutées sinon (expressionBooléenne est faux)<br />
<br />
où expressionBooléenne est une instruction qui fournit un booléen. Il est possible d'utiliser ces différents<br />
opérateurs : == (égal), != (différent), < (strictement inférieur), (strictement<br />
supérieur), >= (supérieur ou égal), || (disjonction), && (conjonction) et ! (négation). Les opérandes sont des<br />
valeurs, des objets et des appels à des scripts, à des services ou à des liens de méta modèles.<br />
Exemples d'utilisation<br />
<br />
public List myList = new ArrayList();<br />
<br />
public String myString = “”;<br />
<br />
Cet exemple génère “ public List myList = new ArrayList(); ” si l'objet courant à le stéréotype “ Entity ” sinon il génère<br />
“ public String myString = “” ”.
3 - Liste des services<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 11/112<br />
ENode est un type abstrait de donnée défini par <strong>Acceleo</strong> qui sert à encapsuler une valeur. Il s'adapte à tous<br />
les types d'objets voulus dans les services : entier (int), booléen (boolean), chaîne de caractères (String),<br />
liste (ENodeList) ou objet (EObject). Grâce à ce type, les exceptions Java “ NullPointerException ” et<br />
“ OutOfBoundException ” ne sont pas levées mais un objet vide est renvoyé. Ainsi, l'enchaînement d'appels<br />
des méthodes est toujours possible.<br />
EObject est l'équivalent en EMF de la classe java.lang.Object dans le langage Java, c'est la base de toutes<br />
les classes EMF.<br />
3.1 - ContextServices<br />
Cette classe regroupe les services utilisant le contexte et la pile. Ces services sont appelés en priorité car<br />
ils s'appliquent sur n'importe quel type d'objet. L'implémentation de ces services doit prendre en compte<br />
tous les cas possibles d'objets.<br />
Nombre de services inclus : 5<br />
Disponibilité : <strong>Acceleo</strong> v2.0
3.1.1 - get<br />
get(String)<br />
Renvoie l'objet référencé par la clé donnée en paramètre dans le contexte.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 12/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String key : la clé qui référence l'objet.<br />
L'objet référencé par la clé key du contexte.<br />
<strong>Acceleo</strong> V2.0<br />
Le service “ get ” permet de récupérer un objet identifié par la clé key dans le contexte du script. Il simule la<br />
récupération d'une variable stockée sous la forme (clé, valeur). Il permet de récupérer un objet posé par le<br />
service “ put ” dans le contexte. Le contexte s'étend sur le script courant ainsi que sur tous les scripts<br />
auxquels il fait appel.<br />
Par exemple, pour un calcul compliqué et coûteux en temps, il permet de ne calculer qu'une seule fois la<br />
valeur d'un objet, qui après avoir été référencée dans le contexte peut être récupérée.<br />
Si la clé ne référence aucun objet, il renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
Si on écrit dans le code , une chaîne de caractère vide est générée et<br />
« monObject » est stocké.<br />
A un autre endroit dans le code, pour générer le nom de “ monObjet ”, il faut écrire .<br />
Voir aussi<br />
put()
3.1.2 - peek<br />
peek()<br />
Renvoie l'objet au sommet de la pile du contexte.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 13/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
Le sommet de la pile si elle n'est pas vide, sinon une chaîne vide.<br />
<strong>Acceleo</strong> V2.0<br />
Le service “ peek ” renvoie le sommet de la pile du contexte. Le contexte s'étend sur le script courant ainsi<br />
que sur tous les scripts auxquels il fait appel. Il ne dépile pas le sommet.<br />
Si la pile est vide, il renvoie une chaîne vide.<br />
Exemple(s) d'utilisation<br />
Soit a un objet, et les lignes suivantes dans un script (des instructions peuvent s'intercaler entre ces lignes),<br />
: On empile l'objet a, une chaîne de caractère vide est générés.<br />
: On récupère l'objet a mais on ne le dépile pas. On génère le nom de l'objet a.<br />
: On récupère toujours a. Cette fois ci, on génère le type de l'objet a.<br />
: On dépile a mais on ne récupère rien. Une chaîne de caractère vide est générée.<br />
: La pile étant vide, on récupère un objet vide.<br />
Voir aussi<br />
push(), pop()
3.1.3 - pop<br />
pop()<br />
Dépile le sommet de la pile du contexte.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 14/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
rien<br />
Description détaillée<br />
<strong>Acceleo</strong> V2.0<br />
Le service “ pop ” dépile le sommet de la pile du contexte. Le contexte s'étend sur le script courant ainsi<br />
que sur tous les scripts auxquels il fait appel. Il ne renvoie pas l'objet stocké au sommet. Une chaîne vide<br />
est générée à l'endroit où il est appelé.<br />
Exemple(s) d'utilisation<br />
Soient a, b, c des objets et les instructions suivantes (d'autres instructions peuvent être ajoutées entre ces lignes) :<br />
: la pile est a.<br />
: la pile est a | b.<br />
: la pile est a. On ne récupère pas b. On génère une chaîne de caractères vide.<br />
: la pile est a | c.<br />
: la pile est a. On ne récupère pas c. On génère une chaîne de caractères vide.<br />
: la pile est vide. On ne récupère pas a. On génère une chaîne de caractères vide.<br />
Voir aussi<br />
push(), peek()
3.1.4 - push<br />
push()<br />
Empile le receveur sur la pile du contexte.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 15/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
rien<br />
Description détaillée<br />
<strong>Acceleo</strong> V2.0<br />
Le service “ push ” empile le receveur sur la pile du contexte. Le contexte s'étend sur le script courant ainsi<br />
que sur tous les scripts auxquels il fait appel. Une chaîne vide est générée à l'endroit où il est appelé.<br />
Exemple(s) d'utilisation<br />
Soient a, b, c des objets et les instructions suivantes (d'autres instructions peuvent être ajoutées entre ces lignes) :<br />
: On empile a. On génère une chaîne de caractère vide.<br />
: la pile est a | b. On génère une chaîne de caractère vide.<br />
: la pile est a. On ne récupère pas b. On génère une chaîne de caractères vide.<br />
: la pile est a | c. On génère une chaîne de caractère vide.<br />
: la pile est a. On ne récupère pas c. On génère une chaîne de caractères vide.<br />
: la pile est vide. On ne récupère pas a. On génère une chaîne de caractères vide.<br />
Voir aussi<br />
pop(), peek()
3.1.5 - put<br />
put(String)<br />
Stocke le receveur dans le contexte avec comme identifiant la clé donnée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 16/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String key : la clé identifiant l'objet recherché.<br />
rien<br />
Description détaillée<br />
<strong>Acceleo</strong> V2.0<br />
Le service “ put ” stocke le receveur sous la forme (clé, valeur) dans le contexte. Le contexte s'étend sur le<br />
script courant ainsi que sur les scripts auxquels il fait appel. On récupère cet objet à partir de la sa clé<br />
grâce au service “ get ”.<br />
Exemple(s) d'utilisation<br />
Si on écrit dans le code , on enregistre dans le contexte du script et sous<br />
l'identifiant “ idDeMonObjet ”, l'objet “ monObjet ”. Une chaîne de caractère vide est générée.<br />
A un autre endroit dans le code, pour générer le nom de “ monObjet ”, il faut écrire .<br />
Voir aussi<br />
get()
3.2 - ENodeServices<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 17/112<br />
Cette classe regroupe les services ENodeServices. Ces services sont appelés en priorité car ils<br />
s'appliquent sur n'importe quel type d'objet. L'implémentation de ces services doit prendre en compte tous<br />
les cas possibles d'objets.<br />
Nombre de services inclus : 30<br />
Disponibilité : <strong>Acceleo</strong> v1.0
3.2.1 - adapt<br />
adapt(String)<br />
Renvoie le receveur adapté au type donné en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 18/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String type : le type de l'objet voulu (Eobject, String, boolean, int, double, List,<br />
ENodeList).<br />
L'élement adapté au type.<br />
<strong>Acceleo</strong> V2.0<br />
Le service “ adapt ” renvoie un objet qui a le type donné en paramètre.<br />
S'il est appelé sur un receveur vide, il renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
<br />
La chaîne de caractères " 1234 " est adpatée en entier 1234.
3.2.2 - cast<br />
cast(String) : obsolète<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 19/112<br />
Renvoie tous les objets du receveur qui ont le type donné en paramètre. Identique au service filter..<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String type : le type des objets recherchés.<br />
Une liste contenant les objets du type donné.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ cast ” renvoie seulement les objets qui ont le type donné en paramètre. Les objets sont gardés si ce sont<br />
des “ EObject ” du type donné ou si ce ne sont pas des “ EObject ”. La notion est proche de celle de “ cast ” dans le<br />
langage Java.<br />
S'il est appelé sur un receveur vide, il renvoie un objet vide. S'il est appelé sur un receveur autre qu'une liste, il renvoie<br />
le receveur s'il est du type donné en paramètre sinon un objet vide.<br />
Obsolète : utiliser filter(String).<br />
Exemple(s) d'utilisation<br />
1 er<br />
exemple :<br />
– a est une instance de A<br />
– b est une instance de B<br />
– c est une instance de C<br />
– B hérite de A<br />
Si le type donné est A sur une liste d'objet {a, “ \n ”, b, c}, le résultat est {a, “ \n ”, b}<br />
2 ème<br />
exemple :<br />
<br />
Avec le service “ eAllContents ” on récupère la liste de tous les objets enfants du receveur. Sur cette liste, on ne garde<br />
que les objets de type “ Class ” ou dont le type hérite de “ Class ”.<br />
Voir aussi<br />
adapt(), filter()
3.2.3 - current<br />
current()<br />
Renvoie l'objet courant.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 20/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
L'objet courant<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ current ” renvoie l'objet courant. Il rend explicite le receveur lors de l'appel d'un service. Il peut<br />
être comparée au “ this” du langage Java.<br />
Le receveur peut être implicite comme dans un script ou dans une boucle. Dans un script, ce service<br />
renvoie l'objet concerné par le script (). Dans les boucles (), il<br />
permet de récupérer l'objet de l'itération courante.<br />
Ce service peut être utilisé pour une comparaison avec l'objet de la requête.<br />
Si le receveur est vide, il renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
<br />
<br />
<br />
Dans cette boucle “ for ” on ne travaille que sur les attributs contenus dans le receveur. On ne génère que le nom des<br />
classes qui s'appellent exactement comme l'attribut de l'itération courante. Si le modèle contient les classes de nom<br />
“ nom1 ”, “ nom2 ” et “ nom3 ” ainsi que les attributs “ nom2 ”, “ nom3 ” et “ nom4 ”, il ne sera généré que “ nom2 ” et<br />
“ nom3 ”.<br />
Voir aussi<br />
current(ENode), self()
3.2.4 - current<br />
current(ENode)<br />
Renvoie l'objet courant.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 21/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
ENode level : le niveau dans la hiérarchie parente<br />
L'objet courant<br />
<strong>Acceleo</strong> V2.0<br />
Le service “ current ” renvoie l'objet courant du niveau en paramètre dans la hiérarchie d'imbrication des<br />
" for ". Si le niveau est un entier i, le service renvoie le i ème parent du noeud courant. Current(0) correspond<br />
à current(), current(1) correspond à l'élément du for imbriqué précédent. Si le niveau est une chaîne de<br />
caractères, le service renvoie le parent qui a le niveau comme type.<br />
Ce service peut être utilisé pour une comparaison avec l'objet de la requête.<br />
Si le receveur est vide, il renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
== <br />
== <br />
current(0) représente les attributs, current(1) représente les classes,<br />
current(2) et current(“Package”) représentent les packages.<br />
Voir aussi<br />
current(), self()
3.2.5 - debug<br />
debug()<br />
Affiche une description sommaire de l'objet courant.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 22/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
L'objet courant<br />
<strong>Acceleo</strong> V1.1<br />
Le service “ debug ” affiche le type et la valeur du noeud courant. Il fait appel au service<br />
“ trace ”.<br />
Voir aussi<br />
trace(), trace(String)
3.<strong>2.6</strong> - filter<br />
filter(String)<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 23/112<br />
Renvoie tous les objets du receveur qui ont le type donné en paramètre. Identique au service Cast.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String type : le type des objets recherchés.<br />
Une liste contenant les objets du type donné.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ filter ” renvoie seulement les objets qui ont le type donné en paramètre. Les objets sont gardés<br />
si ce sont des “ EObject ” du type donné ou si ce ne sont pas des “ EObject ”. Ce service agit comme un<br />
filtre sur une liste en fonction du type.<br />
S'il est appelé sur un receveur vide, il renvoie un objet vide. S'il est appelé sur un receveur autre qu'une<br />
liste, il renvoie le receveur s'il est du type donné en paramètre sinon un objet vide.<br />
Exemple(s) d'utilisation<br />
1 er<br />
exemple :<br />
– a est une instance de A<br />
– b est une instance de B<br />
– c est une instance de C<br />
– B hérite de A<br />
Si le type donné est A sur une liste d'objet {a, “ \n ”, b, c}, le résultat est {a, “ \n ”, b}<br />
2 ème<br />
exemple :<br />
<br />
Avec le service “ eAllContents ” on récupère la liste de tous les objets enfants du receveur. Sur cette liste, on ne garde<br />
que les objets de type “ Class ” ou dont le type hérite de “ Class ”.<br />
Voir aussi<br />
cast()
3.2.7 - minimize<br />
minimize() : obsolète<br />
Supprime du receveur tous les objets dupliqués.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 24/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La liste des objets sans doublons<br />
<strong>Acceleo</strong> V1.0<br />
Le service “minimize” renvoie une liste sans doublon. Chaque objet de la liste retournée est unique. Il utilise<br />
le service “ toString ” des objets pour la comparaison des objets.<br />
Si le receveur est vide, il renvoie un objet vide. S'il est appelé sur un receveur autre qu'une liste, il renvoie<br />
ce receveur.<br />
Obsolète : utiliser nMinimize().<br />
Exemple(s) d'utilisation<br />
Soit a, b, c, d, e des objets ENode.<br />
Sur une liste d'objets {a, a, b, b, b, c, d, e, e, e, e}, minimize() renvoie {a, b, c, d, e}.<br />
Voir aussi<br />
nMinimize, toString()
3.2.8 - nContains<br />
nContains(ENode)<br />
Indique si un élément est présent dans le receveur ou non.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 25/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
ENode element : l'élément recherché<br />
Vrai si la liste contient l'élément spécifié.<br />
<strong>Acceleo</strong> V1.1<br />
Le service “ eContains ” renvoie un booléen qui indique si la liste courante contient l'objet<br />
passé en paramètre.<br />
Si le receveur est un objet autre qu'une liste, il compare celui-ci avec celui passé en<br />
paramètre grâce à la méthode “ equals ”.<br />
Exemple(s) d'utilisation<br />
Sur une liste d'objet {a, b, c} :<br />
– nContains(a) renvoie “ true ”<br />
– nContains(d) renvoie “ false ”
3.2.9 - nFirst<br />
nFirst()<br />
Retourne le premier élément d'une liste.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 26/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
Le premier élément de la liste courante.<br />
<strong>Acceleo</strong> V1.1<br />
Le service “ nFirst ” renvoie le premier élément de la liste courante. Il appel le service<br />
“ nGet(0) ”.<br />
Si le receveur est un objet autre qu'une liste, alors il renvoie l'objet.<br />
Exemple(s) d'utilisation<br />
Sur une liste d'objet {a, b, c}, le service renvoie a.<br />
Voir aussi<br />
nGet(int) , nLast()
3.2.10 - nGet<br />
nGet(String) : obsolète<br />
Renvoie l'objet référencé par la clé donnée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 27/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String key : la clé qui référence l'objet.<br />
L'objet référencé par la clé key du contexte.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ nGet ” permet de récupérer un objet identifié par la clé key dans le contexte du script. Il simule<br />
la récupération d'une variable stockée sous la forme (clé, valeur). Il permet de récupérer un objet posé par<br />
le service “ nPut ” dans le contexte. Le contexte s'étend sur le script courant ainsi que sur tous les scripts<br />
auxquels il fait appel.<br />
Par exemple, pour un calcul compliqué et coûteux en temps, il permet de ne calculer qu'une seule fois la<br />
valeur d'un objet, qui après avoir été référencée dans le contexte peut être récupérée.<br />
Si la clé ne référence aucun objet, il renvoie un objet vide.<br />
Obsolète : utiliser get(String).<br />
Exemple(s) d'utilisation<br />
Si on écrit dans le code , une chaîne de caractère vide est générée et<br />
« monObject » est stocké.<br />
A un autre endroit dans le code, pour générer le nom de “ monObjet ”, il faut écrire .<br />
Voir aussi<br />
get(String), put()
3.2.11 - nGet<br />
nGet(int)<br />
Renvoie l'objet de la liste courante dont l'indice est donné en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 28/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
int index : l'indice de l'objet recherché.<br />
L'objet à l'indice donné.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ nGet ” renvoie l'objet du receveur à l'indice donné.<br />
Si le receveur est vide ou si l'indice est supérieur à la taille de la liste, il renvoie un objet vide. Si le receveur<br />
est un objet autre qu'une liste et que l'indice est 0, il renvoie l'objet. Si le receveur est un objet autre qu'une<br />
liste et que l'indice est différent de 0, il renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
Dans un modèle contenant les classes “ c1 ”, “ c2 ” et “ c3 ”, “ eAllContents(“ Class ”) ” renvoie la liste de toutes ces<br />
classes. Si on écrit on génère le nom de la classe “ c1 ”. Si on écrit <<br />
%eAllContents(“ Class ”).nGet(1).name%> on génère le nom de la classe “ c2 ” et ainsi de suite...
3.2.12 - nGet<br />
nGet(int, int)<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 29/112<br />
Renvoie les objets de la liste courante dont les indices sont dans l'intervalle donné en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
int begin : l'indice de début de l'objet recherché.<br />
Int end : l'indice de fin de l'objet recherché.<br />
Les objets dans l'intervalle donné.<br />
<strong>Acceleo</strong> V2.0<br />
Le service “ nGet ” renvoie les objets du receveur de l'intervalle donné.<br />
Si le receveur est vide ou si l'indice est supérieur à la taille de la liste, il renvoie un objet vide. Si le receveur<br />
est un objet autre qu'une liste et que l'indice de début est 0, il renvoie l'objet. Si le receveur est un objet<br />
autre qu'une liste et que l'indice est différent de 0, il renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
Dans un modèle contenant les classes “ c1 ”, “ c2 ” et “ c3 ”, “ eAllContents(“ Class ”) ” renvoie la liste de toutes ces<br />
classes. Si on écrit on génère le nom de la classe “ c1 ”. Si on écrit <<br />
%eAllContents(“ Class ”).nGet(1).name%> on génère le nom de la classe “ c2 ” et ainsi de suite...
3.2.13 - nLast<br />
nLast()<br />
Retourne le dernier élément d'une liste.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 30/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
Le dernier élément de la liste courante.<br />
<strong>Acceleo</strong> V1.1<br />
Le service “ nLast ” renvoie le dernier élément de la liste courante. Il appel le service<br />
“ nGet(int) ”, avec, en paramètre, la longueur de la liste diminuée de 1.<br />
Si le receveur est un objet autre qu'une liste, alors il renvoie l'objet.<br />
Exemple(s) d'utilisation<br />
Sur une liste d'objet {a, b, c}, le service renvoie c.<br />
Voir aussi<br />
nFirst(), nGet(int)
3.2.14 - nMinimize<br />
nMinimize()<br />
Supprime du receveur tous les objets dupliqués.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 31/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La liste des objets sans doublons<br />
<strong>Acceleo</strong> V2.0<br />
Le service “nMinimize” renvoie une liste sans doublon. Chaque objet de la liste retournée est unique. Il<br />
utilise le service “ toString ” des objets pour la comparaison des objets.<br />
Si le receveur est vide, il renvoie un objet vide. S'il est appelé sur un receveur autre qu'une liste, il renvoie<br />
ce receveur.<br />
Exemple(s) d'utilisation<br />
Soit a, b, c, d, e des objets ENode.<br />
Sur une liste d'objets {a, a, b, b, b, c, d, e, e, e, e}, nMinimize() renvoie {a, b, c, d, e}.<br />
Voir aussi<br />
toString()
3.2.15 - nPeek<br />
nPeek() : obsolète<br />
Renvoie l'objet au sommet de la pile du contexte.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 32/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
Le sommet de la pile si elle n'est pas vide, sinon une chaîne vide.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ nPeek ” renvoie le sommet de la pile du contexte. Le contexte s'étend sur le script courant ainsi<br />
que sur tous les scripts auxquels il fait appel. Il ne dépile pas le sommet.<br />
Si la pile est vide, il renvoie une chaîne vide.<br />
Obsolète : utiliser peek().<br />
Exemple(s) d'utilisation<br />
Soit a un objet, et les lignes suivantes dans un script (des instructions peuvent s'intercaler entre ces lignes),<br />
: On empile l'objet a, une chaîne de caractère vide est générés.<br />
: On récupère l'objet a mais on ne le dépile pas. On génère le nom de l'objet a.<br />
: On récupère toujours a. Cette fois ci, on génère le type de l'objet a.<br />
: On dépile a mais on ne récupère rien. Une chaîne de caractère vide est générée.<br />
: La pile étant vide, on récupère un objet vide.<br />
Voir aussi<br />
peek(), push(), pop()
3.2.16 - nPop<br />
nPop() : obsolète<br />
Dépile le sommet de la pile du contexte.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 33/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
rien<br />
Description détaillée<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ nPop ” dépile le sommet de la pile du contexte. Le contexte s'étend sur le script courant ainsi<br />
que sur tous les scripts auxquels il fait appel. Il ne renvoie pas l'objet stocké au sommet. Une chaîne vide<br />
est générée à l'endroit où il est appelé.<br />
Obsolète : utiliser pop().<br />
Exemple(s) d'utilisation<br />
Soient a, b, c des objets et les instructions suivantes (d'autres instructions peuvent être ajoutées entre ces lignes) :<br />
: la pile est a.<br />
: la pile est a | b.<br />
: la pile est a. On ne récupère pas b. On génère une chaîne de caractères vide.<br />
: la pile est a | c.<br />
: la pile est a. On ne récupère pas c. On génère une chaîne de caractères vide.<br />
: la pile est vide. On ne récupère pas a. On génère une chaîne de caractères vide.<br />
Voir aussi<br />
pop(), push(), peek()
3.2.17 - nPush<br />
nPush() : obsolète<br />
Empile le receveur sur la pile du contexte.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 34/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
rien<br />
Description détaillée<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ nPush ” empile le receveur sur la pile du contexte. Le contexte s'étend sur le script courant<br />
ainsi que sur tous les scripts auxquels il fait appel. Une chaîne vide est générée à l'endroit où il est appelé.<br />
Obsolète : utiliser push().<br />
Exemple(s) d'utilisation<br />
Soient a, b, c des objets et les instructions suivantes (d'autres instructions peuvent être ajoutées entre ces lignes) :<br />
: On empile a. On génère une chaîne de caractère vide.<br />
: la pile est a | b. On génère une chaîne de caractère vide.<br />
: la pile est a. On ne récupère pas b. On génère une chaîne de caractères vide.<br />
: la pile est a | c. On génère une chaîne de caractère vide.<br />
: la pile est a. On ne récupère pas c. On génère une chaîne de caractères vide.<br />
: la pile est vide. On ne récupère pas a. On génère une chaîne de caractères vide.<br />
Voir aussi<br />
push(), pop(), peek()
3.2.18 - nPut<br />
nPut(String) : obsolète<br />
Stocke le receveur dans le contexte avec comme identifiant la clé donnée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 35/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String key : la clé identifiant l'objet recherché.<br />
rien<br />
Description détaillée<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ nPut ” stocke le receveur sous la forme (clé, valeur) dans le contexte. Le contexte s'étend sur<br />
le script courant ainsi que sur les scripts auxquels il fait appel. On récupère cet objet à partir de la sa clé<br />
grâce au service “ nGet ”.<br />
Obsolète : utiliser put(String).<br />
Exemple(s) d'utilisation<br />
Si on écrit dans le code , on enregistre dans le contexte du script et sous<br />
l'identifiant “ idDeMonObjet ”, l'objet “ monObjet ”. Une chaîne de caractère vide est générée.<br />
A un autre endroit dans le code, pour générer le nom de “ monObjet ”, il faut écrire .<br />
Voir aussi<br />
put(String), get()
3.2.19 - nReverse<br />
nReverse()<br />
Retourne une liste dont ses éléments sont dans l'ordre inverse.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 36/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
Une nouvelle liste avec ses élements inversés.<br />
<strong>Acceleo</strong> V2.0<br />
Le service “nReverse ” renvoie la liste courante dans l'ordre inverse.<br />
Si le receveur est un objet autre qu'une liste, alors il renvoie l'objet.<br />
Exemple(s) d'utilisation<br />
Sur une liste d'objet {a, b, c}, le service renvoie {c, b, a}.
3.2.20 - nSize<br />
nSize()<br />
Renvoie la taille de l'objet.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 37/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La taille de l'objet.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ nSize ” renvoie le nombre d'objets du receveur. Si le receveur est un objet quelconque, il<br />
renvoie 1. Si le receveur est un booléen ou un entier, il renvoie 1. Si le receveur est une liste, il renvoie la<br />
taille de la liste. Contrairement à ce qu'on pourrait penser, si le receveur est une chaîne de caractères, il<br />
renvoie le nombre de caractères de la chaîne et non 1. Si le receveur est vide, il renvoie 0.<br />
Exemple(s) d'utilisation<br />
Il peut être utile de générer le nombre de classes d'un modèle dans un rapport. On peut récupérer ce nombre grâce à<br />
cette ligne de code : . Le service “ eAllContents ” renvoi une liste contenant toutes<br />
les classes du modèles. Le service “ nSize ” donne le nombre d'objets dans cette liste.<br />
Ce service peut aussi permettre de ne générer une méthode que si une classe contient au moins un attribut. Dans ce<br />
cas, cette méthode se trouvera entre les balises 0) {%> et .
3.2.21 - nSort<br />
nSort()<br />
Trie les objets du receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 38/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La liste triée.<br />
<strong>Acceleo</strong> V2.0<br />
Si le receveur est une liste, le service “ nSort ” trie les objets qu'elle contient en fonction de leur service<br />
“ toString ”. L'ordre se fait ensuite selon l'ordre des chaînes de caractères (les chiffres sont avant les<br />
lettres). Les entiers se retrouvent par conséquent avant les chaînes de caractères qui commencent par une<br />
lettre. Les doublons de la liste ne sont pas supprimés.<br />
Si le receveur est un objet, il renvoie cet objet. Si le receveur est vide, il renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
Si le receveur est une liste d'objet dont les valeurs (résultat de la commande toString()} sont {“ class ”, “ attribute ”, “ 5 ”,<br />
“ stereotype ”, “ class ”}, le résultat est { “ 5 ”, “ attribute ”, "class", “ class ”, “ stereotype ”}.<br />
Voir aussi<br />
nSort(String)
3.2.22 - nSort<br />
nSort(String)<br />
Trie les objets d'une liste selon l'ordre indiqué par l'expression.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 39/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String call : L'expression permettant de comparer chaque élément.<br />
La liste triée.<br />
<strong>Acceleo</strong> V2.0<br />
Le service "nSort(String)" permet de comparer les éléments d'une liste selon l'ordre donné par une<br />
expression donnée en paramètre et de renvoyer cette liste triée. Les doublons ne sont pas supprimés.<br />
Si le receveur n'est pas une liste, il renvoie l'objet courant.<br />
Exemple(s) d'utilisation<br />
Soit maListe la liste d'objets {d, a, c, f, b, e}, ces objets ayant pour nom {“class”, “attribute”, “5”, “stereotype”, “class”}<br />
retournera pour résultat { “ 5 ”, “ attribute ”, "class", “ class ”, “ stereotype ”}.<br />
Voir aussi<br />
nSort()
3.2.23 - reverse<br />
reverse() : obsolète<br />
Retourne une liste dont ses éléments sont dans l'ordre inverse.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 40/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
Une nouvelle liste avec ses élements inversés.<br />
<strong>Acceleo</strong> V2.0<br />
Le service “reverse ” renvoie la liste courante dans l'ordre inverse.<br />
Si le receveur est un objet autre qu'une liste, alors il renvoie l'objet.<br />
Obsolète : utiliser nReverse().<br />
Exemple(s) d'utilisation<br />
Sur une liste d'objet {a, b, c}, le service renvoie {c, b, a}.<br />
Voir aussi<br />
nReverse()
3.2.24 - sep<br />
sep(String)<br />
Ajoute le séparateur donné entre chaque objet du receveur.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 41/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String separator : le séparateur à ajouter.<br />
Une liste avec un séparateur entre chaque objet du receveur.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ sep ” concatène un séparateur entre chaque objet du receveur si ce dernier est une liste. Si le<br />
receveur est un objet, il renvoie cet objet. Si le receveur est vide, il renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
1 er<br />
exemple :<br />
Soit a, b et c des objets.<br />
Si on applique le service sep(“ \t ”) sur la liste d'objets {a, b, c}, il renvoie {a, “ \t ”, b, “ \t ”, c}.<br />
2 ème<br />
exemple :<br />
Pour générer une liste de paramètres dans une méthode avec une virgule après chaque paramètre, on peut écrire la<br />
suite d'instructions suivante : . Si les paramètres sont “ a ”, “ b ” et<br />
“ c ”, les instructions généreront : “ a, b, c ”.
3.2.25 - sepStr<br />
sepStr(String) : obsolète<br />
Ajoute une séparateur entre chaque élément d'une liste et sérialise le résultat.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 42/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String separator : Le séparateur à concaténer entre chaque élément du receveur<br />
Une chaîne de caractère contenant un séparateur entre chaque élément<br />
<strong>Acceleo</strong> V1.1<br />
Le service “ sep ” concatène un séparateur entre chaque objet du receveur si ce dernier est une liste. Si le<br />
receveur est un objet, il renvoie cet objet. Si le receveur est vide, il renvoie un objet vide.<br />
Obsolète : utiliser sep(String).<br />
Exemple(s) d'utilisation<br />
Si le séparateur est “ t ” et que le receveur est la liste {a, b, c}, le résultat est une chaîne de caractères : “ a t b t c ”.<br />
Voir aussi<br />
sep(String)
3.2.26 - sort<br />
sort() : obsolète<br />
Trie les objets du receveur en supprimant les doublons.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 43/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La liste triée.<br />
<strong>Acceleo</strong> V1.0<br />
Si le receveur est une liste, le service “ sort ” trie les objets qu'elle contient en fonction de leur service<br />
“ toString ”. L'ordre se fait ensuite selon l'ordre des chaînes de caractères (les chiffres sont avant les<br />
lettres). Les entiers se retrouvent par conséquent avant les chaînes de caractères qui commencent par une<br />
lettre. Les doublons de la liste sont supprimés.<br />
Si le receveur est un objet, il renvoie cet objet. Si le receveur est vide, il renvoie un objet vide.<br />
Obsolète : utiliser nSort().<br />
Exemple(s) d'utilisation<br />
Si le receveur est une liste d'objet dont les valeurs (résultat de la commande toString()} sont {“ class ”, “ attribute ”, “ 5 ”,<br />
“ stereotype ”, “ class ”}, le résultat est { “ 5 ”, “ attribute ”, “ class ”, “ stereotype ”}.<br />
Voir aussi<br />
nSort()
3.2.27 - sort<br />
sort(String) : obsolète<br />
Trie les objets d'une liste selon l'ordre indiqué par l'expression.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 44/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String call : L'expression permettant de comparer chaque élément.<br />
La liste triée.<br />
<strong>Acceleo</strong> V1.1<br />
Le service sort() permet de comparer les éléments d'une liste selon l'ordre donné par une expression<br />
donnée en paramètre et de renvoyer cette liste triée.<br />
Si le receveur n'est pas une liste, il renvoie l'objet courant.<br />
Obsolète : utiliser nsort(String).<br />
Exemple(s) d'utilisation<br />
Soit maListe la liste d'objets {d, a, c, f, b, e}<br />
<br />
Voir aussi<br />
nSort(String)
3.2.28 - toString<br />
toString()<br />
Renvoie une chaîne de caractères correspondant au receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 45/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
L'objet sous forme de chaîne de caractères.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ toString ” transforme l'objet en une chaîne de caractères. Ce service est semblable à celui du<br />
langage Java.<br />
Si le receveur est un entier, un double ou un booléen, ce service renvoie la valeur de l'entier, du double ou<br />
du booléen. Si le receveur est une chaîne de caractères, il renvoie cette chaîne. Si le receveur est une liste<br />
ou un objet EMF, il renvoie le résultat de la méthode “ toString ” implémentée par EMF, c'est à dire une<br />
description des attributs de cet objet. Enfin, si le receveur est vide, il renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
Soit a, b et c des objet EMF et maListe la liste d'objets {a, b, c} au sens EMF (EList) :<br />
: renvoie le nombre d'enfants du receveur sous forme de chaîne de caractères<br />
: renvoie une description de a : “ package_de_a.type_de_a (attribut1 : valeur1, attribut2 : valeur2, ...) ”<br />
: renvoie une description de chacun des attributs de liste : “ package_de_a.type_de_a<br />
(attribut1a : valeur1a, attribut2a : valeur2a, ...) package_de_b.type_de_b (attribut1b : valeur1b, attribut2b : valeur2b, ...)<br />
package_de_c.type_de_c (attribut1c : valeur1c, attribut2c : valeur2c, ...) ”
3.2.29 - trace<br />
trace()<br />
Affiche une description sommaire de l'objet courant.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 46/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
L'objet courant<br />
<strong>Acceleo</strong> V1.1<br />
Le service “ trace ” affiche le type et la valeur du noeud courant. Il fait appel au service “ trace(String) ” en<br />
passant une chaîne de caractères vide en paramètre.<br />
Exemple(s) d'utilisation<br />
Soit a une classe :<br />
écrit dans la console [numéroDeLaTrace] type = classe value = “ a ”<br />
Voir aussi<br />
trace(String), debug()
3.2.30 - trace<br />
trace(String)<br />
Affiche une description sommaire de l'objet courant.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 47/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String template : Un template à évaluer pour chaque objet<br />
L'objet courant<br />
<strong>Acceleo</strong> V1.1<br />
Le service “ trace ” affiche le type et la valeur du noeud courant évalué par le template passé en paramètre.<br />
Exemple(s) d'utilisation<br />
Pour afficher dans la console tous les noms des attributs d'une classe :<br />
<br />
<br />
Voir aussi<br />
trace(), debug()<br />
3.2.31 - until<br />
until(String,String) : obsolète<br />
Renvoie l'objet pointé par le lien link du receveur, le type de l'objet étant donné en paramètre.<br />
Receveur<br />
Paramètres<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 48/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String link : le lien où doit être recherché un objet de type type<br />
String type : le type de l'objet recherché<br />
L'objet recherché<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ until ” recherche récursivement sur le lien link un objet de type type. La récursivité s'arrête<br />
quand un objet du type donné est trouvé. Si le receveur est du type donné, le service renvoie le receveur.<br />
Le receveur doit être un objet EMF (“ EObject ”). Si le receveur n'est pas un objet EMF, il renvoie un objet<br />
vide.<br />
Obsolète : ce service n'est pas remplacé, les services EMF implémentent déjà cette opération.<br />
Exemple(s) d'utilisation<br />
– a est une instance de la classe A<br />
– b est une instance de la classe B<br />
– c est une instance de la classe C<br />
– “ container ” est un lien du type classe<br />
– c.container renvoie b<br />
– b.container renvoie a<br />
– a.container renvoie null<br />
: génère le nom de l'instance a.<br />
: génère le nom de l'instance a.<br />
: génère le nom de l'instance a.<br />
: génère une chaîne de caractères vide.
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 49/112
3.3 - EObjectServices<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 50/112<br />
Cette classe regroupe les services EObjectServices. Ces services sont le lien vers les méthodes EMF du<br />
même nom, ils font appel à celles-ci. Pour de plus amples informations sur ces méthodes, voir la javadoc<br />
de EMF présente sur http://download.eclipse.org/tools/emf/2.1.2/javadoc/ (cf. classe “ EObject ”).<br />
Nombre de services inclus : 13<br />
Disponibilité : <strong>Acceleo</strong> v1.0
3.3.1 - eAllContents<br />
eAllContents()<br />
Renvoie la descendance du receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
La liste de la descendance<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 51/112<br />
Le service “ eAllContents ” renvoie tous les objets directement et indirectement contenus dans le receveur.<br />
Il renvoie les fils, petits-fils, arrière-petits-fils, etc... du receveur. Il ne fait aucune distinction de type, chaque<br />
objet contenu est renvoyé dans la liste de retour.<br />
Le receveur peut-être implicite (lors d'une utilisation dans un script ou une boucle).<br />
Si le receveur est vide, il renvoie une liste vide.<br />
Exemple(s) d'utilisation<br />
– a, b, c, d et e sont des objets.<br />
– a contient b et c, b contient d et d contient e.<br />
: renvoie {b, c, d, e}<br />
: renvoie {d, e}<br />
: renvoie une liste vide.<br />
Voir aussi<br />
eAllContents(String)
3.3.2 - eAllContents<br />
eAllContents(String)<br />
Renvoie la descendance du receveur dont le type est donné.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
String type : le type des objets recherchés<br />
La liste des objets contenus de type type.<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 52/112<br />
Le service “ eAllContents ” renvoie tous les objets directement et indirectement contenus dans le receveur,<br />
s'ils sont du type donné. Il renvoie l'ensemble des fils, petits-fils, arrière-petits-fils, etc... qui ont le type<br />
demandé.<br />
Si le receveur est vide, il renvoie une liste vide.<br />
Exemple(s) d'utilisation<br />
– p est un package<br />
– a est une classe de type “ Class ”, elle a pour attribut b de type “ int ”, c de type “ int ” et d de type “ boolean ”<br />
– e est une classe de type “ Class ”, elle a pour attribut f de type “ int ”, g de type “ String ” et h de type “ Object ”<br />
: renvoie {b, c, f}<br />
: renvoie {a, e}<br />
: renvoie {g}<br />
: renvoie {b, c}<br />
: renvoie une liste vide<br />
: renvoie une liste vide<br />
Voir aussi<br />
eAllContents()
3.3.3 - eClass<br />
eClass()<br />
Renvoie la classe du receveur<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
La classe du receveur<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 53/112<br />
Le service “ eClass ” renvoie la classe du métamodèle qui correspond au type du receveur. Son résultat<br />
correspond à l'attribut “ class ” dans le langage Java.<br />
Ce service peut permettre de tester le type d'un objet.<br />
Exemple(s) d'utilisation<br />
La suite d'instructions contenues entre les balises et est exécutée<br />
seulement si a est une classe.
3.3.4 - eContainer<br />
eContainer()<br />
Renvoie l'objet parent du receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
Le parent du receveur<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ eContainer ” renvoie l'objet qui contient le receveur quel que soit le type de celui-ci.<br />
Si le receveur n'a pas de parent ou si le receveur est vide, il renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
a est une classe qui contient un attribut b<br />
: renvoie a<br />
: renvoie un objet vide<br />
Voir aussi<br />
eContainer(String), eContainingFeature(), eContainmentFeature(), eResource()<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 54/112
3.3.5 - eContainer<br />
eContainer(String)<br />
Renvoie l'objet parent du type donné.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
String type : le type de l'objet recherché<br />
L'objet parent du type donné<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 55/112<br />
Le service “ eContainer ” recherche récursivement l'ancêtre le plus proche du type donné. La recherche<br />
s'arrête lorsque un objet du type demandé est trouvé. Si le receveur est du type demandé, le service<br />
renvoie le receveur.<br />
Si le receveur n'a pas de parent, si le receveur est vide ou si aucun ancêtre n'est du type demandé, il<br />
renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
– p est un package de type “ Package ”<br />
– p contient a, une classe de type “ Class ”<br />
– a contient b, un attribut de type “ String ”<br />
: renvoie p<br />
: renvoie p<br />
: renvoie un objet vide<br />
: renvoie un objet vide<br />
Voir aussi<br />
eContainer(), eContainingFeature(), eContainmentFeature(), eResource()
3.3.6 - eContainingFeature<br />
eContainingFeature()<br />
Renvoie le lien qui relie le receveur avec son objet parent.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
Le lien avec l'objet parent<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ eContainingFeature ” renvoie le lien avec l'objet parent instancié par le receveur.<br />
Si le receveur est vide ou qu'il n'a pas de parent, il renvoie un lien vide.<br />
Exemple(s) d'utilisation<br />
<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 56/112
3.3.7 - eContainmentFeature<br />
eContainmentFeature()<br />
Renvoie le lien qui relie le receveur avec son objet parent.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
Le lien avec l'objet parent<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ eContainmentFeature ” renvoie le lien avec l'objet parent instancié par le receveur.<br />
Si le receveur est vide ou qu'il n'a pas de parent, il renvoie un lien vide.<br />
Exemple(s) d'utilisation<br />
<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 57/112
3.3.8 - eContents<br />
eContents()<br />
Renvoie les objets directement contenus dans le receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
La liste des fils du receveur<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 58/112<br />
Le service “ eContents ” renvoie la liste de tous les objets enfants directs du receveur. Cette liste ne<br />
contient pas les petits-fils du receveur. Ce service ne fait pas de distinction liée aux types des fils du<br />
receveur.<br />
Si le receveur est vide ou ne contient aucun objet, il renvoie une liste vide.<br />
Exemple(s) d'utilisation<br />
– p est un package qui contient a, une classe<br />
– a contient b et c, des attributs<br />
: renvoie {b, c}<br />
: renvoie {a}<br />
: renvoie une liste vide<br />
Voir aussi<br />
eAllContents(), eAllContents(String)
3.3.9 - eCrossReferences<br />
eCrossReferences()<br />
Renvoie la liste des références du receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
La liste des références<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 59/112<br />
Le service “ eCrossReferences ” renvoie la liste des objets référencés par un lien dans le receveur. Les<br />
objets référencés par des liens de contenance ne sont pas pris en compte. La liste de ces objets est<br />
déterminée à partir des liens du receveur.<br />
Si le receveur est vide ou qu'il n'a aucun lien autre que des liens de contenance, une liste vide est<br />
renvoyée.<br />
Exemple(s) d'utilisation<br />
– a est une classe qui hérite d'une classe b et qui implémente une interface c, elle a les attribut d et e.<br />
: renvoie {b, c}. d et e ne sont pas renvoyé car le lien avec la classe a est un lien de<br />
contenance et non un lien de référence.
3.3.10 - eResource<br />
eResource()<br />
Renvoie le chemin du fichier contenant le modèle<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
Le chemin du fichier<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 60/112<br />
Le service “ eResource ” renvoie l'adresse du fichier où est contenu le receveur. Pour y accéder, ce service<br />
recherche l'élément de haut niveau à partir duquel il pourra récupérer le chemin du fichier qui contient cet<br />
objet.<br />
Exemple(s) d'utilisation<br />
Si on appelle ce service sur la classe “ ArticleDeBlog ”, il renvoie<br />
“ /resource/fr.obeo.sample.demo.weblog.model/uml2/WebLog_fr.uml2 ”.
3.3.11 - eResourceName<br />
eResourceName()<br />
Donne le nom de la ressource (extension comprise).<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
Le nom de la ressource (extension comprise).<br />
<strong>Acceleo</strong> V1.1<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 61/112<br />
Le service “ eResourceName ” renvoie le nom du fichier qui contient cet objet (extension comprise). Si ce<br />
nom ne peut pas être trouvé, il renvoie null.<br />
Exemple(s) d'utilisation<br />
L'appel de ce service sur un objet contenu dans le fichier “ C:/Obeo/models/MyModel.xmi ” renvoie “ MyModel.xmi ”.<br />
Voir aussi<br />
eResource()
3.3.12 - getRootContainer<br />
getRootContainer()<br />
Renvoie l'objet de haut niveau du modèle qui contient l'élément courant.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
L'élément de haut-niveau<br />
<strong>Acceleo</strong> V1.1<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 62/112<br />
Le service “ getRootContainer ” renvoie l'élément racine du modèle courant. Cet objet n'a pas de parent : il<br />
est directement contenu dans la ressource.<br />
Exemple(s) d'utilisation<br />
Si un modèle contient un objet a qui contient un objet b qui lui-même contient un objet c :<br />
renvoie a.<br />
Voir aussi<br />
eContainer(), eContainer(String)
3.3.13 - load<br />
load(String)<br />
Charge un modèle et renvoie l'objet de haut niveau.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
String path : le chemin du modèle à charger<br />
L'objet de haut-niveau<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 63/112<br />
Le service “ load ” charge un modèle à partir du chemin passé en paramètre. Si le chargement s'effectue<br />
correctement, le service renvoie l'élément de haut niveau du modèle. Si le chemin est incorrect ou si le<br />
modèle ne peut pas se charger correctement, une exception est levée.<br />
Exemple(s) d'utilisation<br />
L'exécution de l'instruction permet de récupérer<br />
l'élément de haut-niveau qui contient tous les types primitifs en UML2.
3.4 - PropertiesServices<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 64/112<br />
Cette classe regroupe les services PropertiesServices. Les propriétés sont stockées sous la forme clé =<br />
valeur dans un fichier d'extension “ .properties ”. Ces propriétés permettent de paramétrer les scripts.<br />
Ces services recherchent, en premier lieu, la clé dans les fichiers de propriétés présents dans le même<br />
répertoire que la chaîne de génération (fichier d'extension “ .chain ”) ou, dans un deuxième temps, dans le<br />
même répertoire que le template de génération (fichier d'extension “ .mt ”). S'ils ne trouvent pas de fichier de<br />
propriétés dans ces répertoires ou s'ils ne contiennent pas la clé demandée, ils génèrent une exception<br />
“ Empty feature evaluation ”. Si la clé existe plusieurs fois dans ces fichiers, ils prennent la valeur de la<br />
première occurrence trouvée.<br />
Il est à noter que lors d'une pré-visualisation dans l'éditeur réflectif (éditeur d'<strong>Acceleo</strong>), les fichiers de<br />
propriétés doivent obligatoirement être présent dans le même répertoire que le fichier de génération (“ .mt ”).<br />
Nombre de services inclus : 3<br />
Disponibilité : <strong>Acceleo</strong> v1.0<br />
Schéma de fonctionnement général :<br />
Le fichier de<br />
propriétés est dans le<br />
même répertoire que<br />
la chaîne de<br />
génération<br />
Une propriété : de sa définition à sa génération
3.4.1 - getBestProperty<br />
getBestProperty(String)<br />
Pré-requis : comprendre la méthode getProperty(String)<br />
Renvoie la valeur de la propriété dont la clé est la plus proche de celle donnée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 65/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String key : l'identifiant de la propriété.<br />
La valeur de la propriété la plus proche.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ getBestProperty ” renvoie la valeur identifiée par la clé donnée en paramètre. Cette valeur est<br />
stockée dans un fichier de propriétés (“ .properties”). Si la clé n'est trouvé dans aucun des fichiers de<br />
propriétés, il recommence la recherche avec une clé minimale jusqu'à trouver une clé assez proche.<br />
Si aucune valeur n'est trouvée, il renvoie un objet vide.<br />
Ce service recherche en premier lieu, la clé dans les fichiers de propriétés présents dans le même<br />
répertoire que la chaîne de génération (fichier d'extension “ .chain ”) ou, dans un deuxième temps, dans le<br />
même répertoire que le template de génération (fichier d'extension “ .mt ”). S'il ne trouve pas de fichier de<br />
propriétés dans ces répertoires ou s'ils ne contiennent pas la clé demandée, il génère une exception<br />
“ Empty feature evaluation ”. S'il existe plusieurs fois la clé dans ces fichiers, il prend la valeur de la<br />
première occurrence trouvée.<br />
Exemple(s) d'utilisation<br />
Pour une clé “ aa.bb.cc.dd ”, le service renvoie le résultat de getProperty(“ aa.bb.cc.dd ”) ou, s'il ne trouve pas cette clé,<br />
getProperty(“ aa.bb.cc ”) ou, s'il ne trouve pas cette clé, getProperty(“ aa.bb ”), ou ...<br />
Ce service peut être utilisé pour donner une valeur par défaut à une série de propriétés préfixées. Si toutes les<br />
propriétés commencent par “ fr.obeo ”, toutes les propriétés préfixées de cette manière auront au minimum cette valeur<br />
à moins que la propriété soit précisée.<br />
Voir aussi<br />
getProperty()
3.4.2 - getProperty<br />
getProperty(String)<br />
Renvoie la propriété référencée par la clé key.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 66/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String key : la clé qui identifie la propriété<br />
La valeur de la propriété identifiée par key<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ getProperty ” recherche la clé key dans un fichier de propriétés. S'il la trouve, il renvoie la<br />
valeur associée à cette clé sinon il renvoie un objet vide.<br />
Ce service recherche en premier lieu, la clé dans les fichiers de propriétés présents dans le même<br />
répertoire que la chaîne de génération (fichier d'extension “ .chain ”) ou, dans un deuxième temps, dans le<br />
même répertoire que le template de génération (fichier d'extension “ .mt ”). S'il ne trouve pas de fichier de<br />
propriétés dans ces répertoires ou s'ils ne contiennent pas la clé demandée, il génère une exception<br />
“ Empty feature evaluation ”. S'il existe plusieurs fois la clé dans ces fichiers, il prend la valeur de la<br />
première occurrence trouvée.<br />
Exemple(s) d'utilisation<br />
cf. exemple p. 35<br />
Permet à l'utilisateur de personnaliser sa génération. Par exemple, les noms de package peuvent être écrits dans un<br />
fichier de propriétés. Chacun des scripts de génération viendra chercher la valeur correspondante pour compléter les<br />
espaces où il a besoin du nom de package.<br />
Voir aussi<br />
getProperty(String, String)
3.4.3 - getProperty<br />
getProperty(String,String)<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 67/112<br />
Renvoie la propriété référencée par la clé key dans le fichier de propriété name (sans extension).<br />
Receveur<br />
Paramètres<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String name : le nom du fichier de propriétés (sans extension)<br />
String key : la clé de la propriété<br />
La valeur de la propriété<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ getProperty ” recherche la clé key dans le fichier de propriétés name. S'il la trouve, il renvoie la<br />
valeur associée à cette clé sinon il renvoie un objet vide.<br />
Ce service recherche en premier lieu, la clé dans les fichiers de propriétés présents dans le même<br />
répertoire que la chaîne de génération (fichier d'extension “ .chain ”) ou, dans un deuxième temps, dans le<br />
même répertoire que le template de génération (fichier d'extension “ .mt ”). S'il ne trouve pas de fichier de<br />
propriétés dans ces répertoires ou s'ils ne contiennent pas la clé demandée, il génère une exception<br />
“ Empty feature evaluation ”. S'il existe plusieurs fois la clé dans ces fichiers, il prend la valeur de la<br />
première occurrence trouvée.<br />
Exemple(s) d'utilisation<br />
cf. exemple p. 35 : aux instructions entourées du fichier “ entity.mt ”, on peut ajouter un premier paramètre “ weblog ”.<br />
Dans ce cas, le fichier de propriétés est obligatoirement “ weblog.properties ”.<br />
Permet à l'utilisateur de personnaliser sa génération. Par exemple, les noms de package peuvent être écrits dans un<br />
fichier de propriétés. Chacun des scripts de génération viendra chercher la valeur correspondante pour compléter les<br />
espaces où il a besoin du nom de package.<br />
Voir aussi<br />
getProperty()
3.5 - RequestServices<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 68/112<br />
Cette classe regroupe les services RequestServices. Ces services s'appliquent sur tous les types d'objets.<br />
Ils permettent de faire des requêtes sur cet objet.<br />
Nombre de services inclus : 5<br />
Disponibilité : <strong>Acceleo</strong> v1.0
3.5.1 - delete<br />
delete(String) : obsolète<br />
Supprime de la liste les éléments qui valident la condition passée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 69/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String call : expression de condition à évaluer sur chacun des éléments<br />
La liste sans les éléments qui ont vérifié l'expression call<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ delete ” évalue pour chacun des éléments de la liste si la condition de l'expression call est<br />
vérifiée. Si oui, on supprime cet élément sinon on passe à l'élément suivant. Une fois tous les éléments<br />
passés en revue, on renvoie la liste.<br />
Ce service est l'inverse du service “ select ” dans le sens ou les éléments sont supprimés si la condition est<br />
satisfaite.<br />
Si le service est appelé sur un objet autre qu'une liste, il renvoie l'objet s'il ne satisfait pas la condition de<br />
l'expression call sinon il renvoie un objet vide. Si le service est appelé sur un objet vide, il renvoie un objet<br />
vide.<br />
Obsolète : utiliser les expressions avec les “ [] ”. Pour plus d'information, regarder la section " Requêtage "<br />
du Guide utilisateur.<br />
<strong>Acceleo</strong> propose donc une syntaxe à base de crochets '[...]', qui se rapproche de la syntaxe Xpath, pour ne<br />
conserver dans les éléments à gauche de la requête que les éléments qui répondent au critère exprimé à<br />
l'intérieur des crochets. A l'intérieur des crochets, l'objet courant est celui que l'on cherche à filtrer. Voici des<br />
équivalents de l'exemple d'utilisation.<br />
<br />
Exemple(s) d'utilisation<br />
<br />
Le service “ eAllContents ” permet de récupérer la liste de toutes les classes contenues dans le receveur. Sur cette liste,<br />
on enlève toutes celles qui n'ont aucun attribut (dont la taille de la liste des attributs est égal à 0).<br />
Voir aussi<br />
Section " Requêtage " du Guide utilisateur, select()
3.5.2 - delete<br />
delete(String,String) : obsolète<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 70/112<br />
Supprime de la liste les éléments dont l'expression passée en paramètre est égale à la valeur passée en<br />
paramètre.<br />
Receveur<br />
Paramètres<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String call : expression à évaluer sur chacun des éléments<br />
String value : valeur qui valide l'expression call<br />
La liste sans les éléments qui ont vérifié call = value<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ delete ” évalue pour chacun des éléments de la liste si l'expression call est égale à la valeur value. Si oui,<br />
on supprime cet élément sinon on passe à l'élément suivant. Une fois tous les éléments passés en revue, on renvoie la<br />
liste.<br />
Ce service est l'inverse du service “ select ” dans le sens ou les éléments sont supprimés si la condition est satisfaite.<br />
Si le service est appelé sur un objet autre qu'une liste, il renvoie l'objet s'il ne satisfait pas la condition de l'expression<br />
call sinon il renvoie un objet vide. Si le service est appelé sur un objet vide, il renvoie un objet vide.<br />
Obsolète : utiliser les expressions avec les “ [] ”. Pour plus d'information, regarder la section " Requêtage " du Guide<br />
utilisateur.<br />
<strong>Acceleo</strong> propose donc une syntaxe à base de crochets '[...]', qui se rapproche de la syntaxe Xpath, pour ne conserver<br />
dans les éléments à gauche de la requête que les éléments qui répondent au critère exprimé à l'intérieur des crochets. A<br />
l'intérieur des crochets, l'objet courant est celui que l'on cherche à filtrer. Voici des équivalents de l'exemple d'utilisation.<br />
<br />
Exemple(s) d'utilisation<br />
<br />
Le service “ eAllContents ” permet de récupérer la liste de toutes les classes contenues dans le receveur. Sur cette liste,<br />
on enlève toutes celles qui n'ont aucun attribut (dont la taille de la liste des attributs est égal à 0). On récupère donc la<br />
liste des classes qui ont au moins un attribut.<br />
Voir aussi<br />
Section " Requêtage " du Guide utilisateur, select()
3.5.3 - evaluate<br />
evaluate(String)<br />
Renvoie l'objet de l'évaluation de l'expression passée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 71/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String call : l'expression à évaluer<br />
Le résultat de l'évaluation de l'expression.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “evaluate” exécute l'expression comme une expression d'<strong>Acceleo</strong> sur le receveur. Il renvoie<br />
l'objet qui résulte de l'évaluation de cette expression. Si l'expression ne renvoie rien, il renvoie un objet<br />
vide.<br />
Si le receveur est vide, il renvoie un objet vide.<br />
Exemple(s) d'utilisation<br />
<br />
Le service “ eAllContents ” renvoie la liste de toutes les classes contenues dans le receveur. Sur chaque élément de<br />
cette liste, on vient chercher le nombre d'attributs qu'elle contient (“ attributes.nSize() ”). Enfin, entre chacun de ces<br />
nombres, on vient concaténer un signe +. Le service “ evaluate ” permet de résoudre cette somme. On récupère ainsi le<br />
nombre d'attributs indirectement contenus dans le receveur.<br />
Sans le service “ evaluate ”, l'instruction aurait<br />
renvoyé une chaîne de caractères correspondant à la description de la somme et non pas son résultat.
3.5.4 - select<br />
select(String) : obsolète<br />
Garde dans la liste seulement les éléments qui valident la condition passée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 72/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String call : l'expression de la condition à vérifier<br />
La liste contenant seulement les éléments qui ont vérifié l'expression<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ select ” évalue pour chacun des éléments de la liste si la condition de l'expression call est<br />
vérifiée. Si non, on supprime cet élément et on passe à l'élément suivant. Une fois tous les éléments<br />
passés en revue, on renvoie la liste.<br />
Ce service est l'inverse du service “ delete ”dans le sens ou les éléments sont supprimés si la condition<br />
n'est pas satisfaite.<br />
Si le service est appelé sur un objet autre qu'une liste, il renvoie l'objet s'il ne satisfait pas la condition de<br />
l'expression call sinon il renvoie un objet vide. Si le service est appelé sur un objet vide, il renvoie un objet<br />
vide.<br />
Obsolète : utiliser les expressions avec les “ [] ”. Pour plus d'information, regarder la section " Requêtage "<br />
du Guide utilisateur.<br />
<strong>Acceleo</strong> propose donc une syntaxe à base de crochets '[...]', qui se rapproche de la syntaxe Xpath, pour ne<br />
conserver dans les éléments à gauche de la requête que les éléments qui répondent au critère exprimé à<br />
l'intérieur des crochets. A l'intérieur des crochets, l'objet courant est celui que l'on cherche à filtrer. Voici<br />
l'équivalent de l'exemple d'utilisation.<br />
<br />
Exemple(s) d'utilisation<br />
<br />
Le service “ eAllContents ” permet de récupérer la liste de toutes les classes contenues dans le receveur. Sur cette liste,<br />
on ne garde seulement que celles qui n'ont aucun attribut (dont la taille de la liste des attributs est égal à 0).<br />
Voir aussi<br />
Section " Requêtage " du Guide utilisateur, delete()
3.5.5 - select<br />
select(String,String) : obsolète<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 73/112<br />
Garde dans la liste seulement les éléments dont l'expression passée en paramètre est égale à la valeur<br />
passée en paramètre.<br />
Receveur<br />
Paramètres<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String call : l'expression à évaluer sur chacun des éléments<br />
String value : valeur qui valide l'expression call<br />
La liste contenant seulement les éléments qui ont vérifié l'expression<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ select ” évalue pour chacun des éléments de la liste si l'expression call est égale à la valeur value. Si non,<br />
on supprime cet élément et on passe à l'élément suivant. Une fois tous les éléments passés en revue, on renvoie la<br />
liste.<br />
Ce service est l'inverse du service “ delete ” dans le sens ou les éléments sont supprimés si la condition n'est pas<br />
satisfaite.<br />
Si le service est appelé sur un objet autre qu'une liste, il renvoie l'objet s'il ne satisfait pas la condition de l'expression<br />
call sinon il renvoie un objet vide. Si le service est appelé sur un objet vide, il renvoie un objet vide.<br />
Obsolète : utiliser les expressions avec les “ [] ”. Pour plus d'information, regarder la section " Requêtage " du Guide<br />
utilisateur.<br />
<strong>Acceleo</strong> propose donc une syntaxe à base de crochets '[...]', qui se rapproche de la syntaxe Xpath, pour ne conserver<br />
dans les éléments à gauche de la requête que les éléments qui répondent au critère exprimé à l'intérieur des crochets. A<br />
l'intérieur des crochets, l'objet courant est celui que l'on cherche à filtrer. Voici l'équivalent de l'exemple d'utilisation.<br />
<br />
Exemple(s) d'utilisation<br />
<br />
Le service “ eAllContents ” permet de récupérer la liste de toutes les classes contenues dans le receveur. Sur cette liste,<br />
on ne garde seulement que celles qui n'ont aucun attribut (dont la taille de la liste des attributs est égal à 0).<br />
Voir aussi<br />
Section " Requêtage " du Guide utilisateur, delete()
3.6 - ResourceServices<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 74/112<br />
Cette classe regroupe les services ResourceServices. Ces services permettent d'effectuer des actions sur<br />
les ressources eclipse.<br />
Nombre de services inclus : 1<br />
Disponibilité : <strong>Acceleo</strong> v1.1
3.6.1 - getFileContent<br />
getFileContent(String)<br />
Renvoie le contenu d'un fichier.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 75/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
String path : Le chemin du fichier dont on cherche le contenu.<br />
Le contenu du fichier<br />
<strong>Acceleo</strong> V1.1<br />
Le service “ getContentFile ” permet de récupérer le contenu d'un fichier dont le chemin d'accès est passé<br />
en paramètre. Si le fichier est vide ou s'il n'est pas trouvé, il renvoie un tampon vide.<br />
Le contenu du fichier est renvoyé sous forme textuelle.<br />
Exemple(s) d'utilisation<br />
renvoie le contenu sous forme XML (chaîne de caractères) du<br />
modèle MyModel, ce qui permet, par exemple de récupérer le numéro de version du XMI utilisé.
3.6.2 - getChainPath<br />
getChainPath()<br />
Renvoie le chemin de la chaîne de haut niveau qui a lancé la génération en cours.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 76/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
Le chemin de la chaîne qui a lancé la génération<br />
<strong>Acceleo</strong> V2.5.1<br />
Le service “getChainPath” permet de récupérer le chemin de la chaîne de haut niveau qui a lancé la<br />
génération.<br />
Exemple(s) d'utilisation<br />
renvoie le chemin de la chaîne de haut niveau qui a lancé la génération.
3.7 - SpecialsServices<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 77/112<br />
Cette classe regroupe les services SpecialsServices. Ces services sont spécifiques à la syntaxe <strong>Acceleo</strong>.<br />
Ils permettent de récupérer des informations propres au déroulement d'une génération.<br />
Nombre de services inclus : 2<br />
Disponibilité : <strong>Acceleo</strong> v1.0
i()<br />
3.7.1 - i<br />
Renvoie l'indice de l'itération courante.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 78/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
L'objet de l'itération courante<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ i ” renvoie l'indice courant, dans une boucle “ for ”.<br />
La première itération renvoie 0.<br />
Exemple(s) d'utilisation<br />
public void method(, ) {...<br />
Cette ligne d'instruction permet de générer la signature de la méthode “ method ”. On ne génère pas de virgule avant le<br />
premier paramètre, si on est dans la première itération de la boucle “ for ”.
3.7.2 - args<br />
args(int)<br />
Renvoie l'argument passé en paramètre du script à la position donnée.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 79/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
int pos : position du paramètre recherché.<br />
Le paramètre recherché<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ args ” renvoie le paramètre du script situé à la position donnée.<br />
Le premier argument a pour indice 0.<br />
Exemple(s) d'utilisation<br />
Pour faire appel à un script “ monScript ” avec les paramètres “ test ” et “ autreTest ”, on peut écrire l'instruction<br />
suivante :<br />
<br />
Le script “ monScript ” récupère ces paramètres grâce à ces instructions :<br />
<br />
Voici le premier argument (“ test ”) : <br />
Voici le deuxième argument (“ autreTest ”) :
3.8 - StringServices<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 80/112<br />
Cette classe regroupe les services StringServices. Ces services sont un lien vers les méthodes Java du<br />
même nom. Pour de plus amples informations sur ces méthodes, voir la javadoc de Java présente sur<br />
http://java.sun.com/j2se/1.5.0/docs/api/.<br />
Nombre de services inclus : 22<br />
Disponibilité : <strong>Acceleo</strong> v1.0
3.8.1 - charAt<br />
charAt(int)<br />
Renvoie le caractère à la position donnée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
int index : position du caractère recherché.<br />
Le caractère recherché<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 81/112<br />
Le service “ charAt ” renvoie le caractère à la position donnée. Il utilise la méthode charAt() du langage<br />
Java. L'indice du premier caractère est 0.<br />
Exemple(s) d'utilisation<br />
<br />
Le service “ eContainer ” renvoie le parent de l'objet courant. On vient ensuite vérifier si le nom de ce parent à la<br />
caractère “ a ” en première position.
3.8.2 - endsWith<br />
endsWith(String)<br />
Indique si le receveur se termine par la chaîne donnée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
String arg : le suffixe recherché<br />
Vrai si le suffixe du receveur est arg sinon faux.<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 82/112<br />
Le service “ endsWith ” indique si le suffixe du receveur est celui donné en paramètre. Il utilise la méthode<br />
endsWith du langage Java. Si la chaîne passée en paramètre est vide, alors le résultat renvoyé est vrai,<br />
sinon il utilise la méthode “ equals ” du langage Java.<br />
Exemple(s) d'utilisation<br />
<br />
Le service “ eResource ” renvoie une chaîne de caractère correspondant au chemin du fichier courant. Si cette chaîne<br />
se termine par “ .xmi ” alors la condition est vérifiée.<br />
Voir aussi<br />
startsWith(), indexOf()
3.8.3 - equalsIgnoreCase<br />
equalsIgnoreCase(String)<br />
Indique si deux chaînes de caractères sont égales ou non en ignorant la casse.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
String arg : une chaîne de caractères pour comparer<br />
Vrai si les chaînes sont égales, sinon faux<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 83/112<br />
Le service “ equalsIgnoreCase ” indique l'égalité entre la chaîne de caractères du receveur et celle passée<br />
en paramètre sans prendre la casse en considération. Il utilise la méthode “ equalsIgnoreCase ” du langage<br />
Java. Chaque caractère est comparé un à un. Ces caractères sont considérés égaux si une de ces trois<br />
conditions est vérifiée : l'opérateur “ == ” sur ces caractères renvoie vrai, ou la mise en majuscule de<br />
chacun de ces caractères renvoie le même résultat ou la mise en minuscule de chacun de ces caractères<br />
renvoie le même résultat.<br />
Exemple(s) d'utilisation<br />
<br />
Le service “ eContainer ” renvoie le parent de l'objet courant. Si le nom de celui est “ maClass ” ou “ MACLASS ” ou<br />
“ maclass ” ou “ MaClAsS ” etc..., alors la condition est vérifiée.
3.8.4 - indentSpace<br />
indentSpace()<br />
Renvoie la chaîne de caractères indentée par un espace.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 84/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La chaîne de caractères indentée par un espace<br />
<strong>Acceleo</strong> V1.2<br />
Le service “ indentSpace ” renvoie la chaîne de caractère réceptrice indentée par un espace.<br />
Exemple(s) d'utilisation<br />
génère “ abcdefg ”.<br />
Voir aussi<br />
indentTab()
3.8.5 - indentTab<br />
indentTab()<br />
Renvoie la chaîne de caractères indentée par une tabulation.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 85/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La chaîne de caractères indentée par une tabulation<br />
<strong>Acceleo</strong> V1.2<br />
Le service “ indentTab ” renvoie la chaîne de caractère réceptrice indentée par une tabulation.<br />
Exemple(s) d'utilisation<br />
génère “ abcdefg ”.<br />
Voir aussi<br />
indentSpace()
3.8.6 - indexOf<br />
indexOf(String)<br />
Renvoie la première position d'une chaîne de caractères à l'intérieur du receveur.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
String arg : la chaîne de caractères recherchée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 86/112<br />
L'indice de la première occurrence de la chaîne arg ou -1 si arg n'a pas été trouvée.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ indexOf ” renvoie l'indice du premier caractère de la première occurrence de la chaîne arg<br />
trouvée dans le receveur. Ce service utilise la méthode “ indexOf ” du langage Java. Il renvoie la plus petite<br />
valeur de k tel que “ receveur.startsWith(arg, k) ” est vrai.<br />
Si la chaîne arg n'est pas trouvée dans le receveur, il renvoie -1.<br />
Exemple(s) d'utilisation<br />
: permet de retrouver l'indice de fin du disque de “ monCheminDAcces ”<br />
Voir aussi<br />
indexOf(String, int), lastIndexOf(String), startsWith(), endsWith()
3.8.7 - indexOf<br />
indexOf(String,int)<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 87/112<br />
Renvoie la première position d'une chaîne de caractères à l'intérieur du receveur à partir d'un certain indice<br />
donné en paramètre.<br />
Receveur<br />
Paramètres<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
String arg : la chaîne de caractères recherchée<br />
int index : l'indice à partir duquel on commence la recherche<br />
L'indice de la première occurrence de la chaîne arg dans le receveur, ou -1 si arg n'a<br />
pas été trouvée<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ indexOf ” renvoie l'indice du premier caractère de la première occurrence de la chaîne arg<br />
trouvée dans le receveur à partir du rang index. Ce service utilise la méthode “ indexOf ” du langage Java.<br />
Il renvoie la plus petite valeur de k tel que “ k >= index ” et “ receveur.startsWith(arg, k) ” est vrai.<br />
Si la chaîne arg n'est pas trouvée dans le receveur, il renvoie -1. Si index est supérieur à la longueur du<br />
receveur, il renvoie -1.<br />
Exemple(s) d'utilisation<br />
: permet de retrouver l'indice de fin du premier<br />
dossier de monCheminDAcces.<br />
Voir aussi<br />
indexOf(String), lastIndexOf(String, int), startsWith(), endsWith()
3.8.8 - lastIndexOf<br />
lastIndexOf(String)<br />
Renvoie la dernière position d'une chaîne de caractères à l'intérieur du receveur.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
String arg : la chaîne de caractères recherchée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 88/112<br />
L'indice de la dernière occurrence de la chaîne arg ou -1 si arg n'a pas été trouvée.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ lastIndexOf ” renvoie l'indice du premier caractère de la dernière occurrence de la chaîne arg<br />
trouvée dans le receveur. Ce service utilise la méthode “ lastIndexOf ” du langage Java. Il renvoie la plus<br />
grande valeur de k tel que “ receveur.startsWith(arg, k) ” est vrai.<br />
Si la chaîne arg n'est pas trouvée dans le receveur, il renvoie -1.<br />
Exemple(s) d'utilisation<br />
: permet de retrouver l'indice du premier caractère du nom du fichier de<br />
monCheminDAcces.<br />
Voir aussi<br />
lastIndexOf(String, int), indexOf(String), startsWith(), endsWith()
3.8.9 - lastIndexOf<br />
lastIndexOf(String,int)<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 89/112<br />
Renvoie la dernière position d'une chaîne de caractères à l'intérieur du receveur avant un certain indice<br />
donné en paramètre.<br />
Receveur<br />
Paramètres<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
String arg : la chaîne de caractères recherchée<br />
int index : l'indice avant lequel on fait la recherche<br />
L'indice de la dernière occurrence de la chaîne arg dans le receveur, ou -1 si arg n'a<br />
pas été trouvée.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ lastIndexOf ” renvoie l'indice du premier caractère de la dernière occurrence de la chaîne arg<br />
trouvée dans le receveur à partir du rang index. Ce service utilise la méthode “ lastIndexOf ” du langage<br />
Java. Il renvoie la plus grande valeur de k tel que “ k
3.8.10 - length<br />
length()<br />
Renvoie la longueur de la chaîne de caractères.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
La longueur de la chaîne de caractères<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 90/112<br />
Le service “ length ” renvoie la longueur de la chaîne de caractères. Il utilise la méthode “ length ” du<br />
langage Java.<br />
Exemple(s) d'utilisation<br />
: retourne la longueur de l'attribut “ name ” de l'objet.
3.8.11 - matches<br />
matches(String)<br />
Indique si le receveur correspond à l'expression régulière passée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
String regex : l'expression régulière<br />
Vrai si le receveur correspond à l'expression régulière regex, sinon faux<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 91/112<br />
Le service “ matches ” indique si le receveur est de la forme de l'expression régulière. Il utilise la méthode<br />
“ matches ” du langage Java. Voici les expressions régulières de caractères :<br />
• [abc] a, b, ou c (simple classe)<br />
• [^abc] Tous les caractères sauf a, b, ou c (négation)<br />
• [a-zA-Z] de a jusqu'à z ou de A jusqu'à Z, inclusif<br />
• [a-d[m-p]] de a jusqu'à d, ou de m jusqu'à p: [a-dm-p] (union)<br />
• [a-z&&[def]] d, e, ou f (intersection)<br />
• [a-z&&[^bc]] de a jusqu'à z, sauf b et c: [ad-z] (soustraction)<br />
• [a-z&&[^m-p]] de a jusqu'à z, sauf de m jusqu'à p: [a-lq-z](soustraction)<br />
Référez vous à la javadoc du langage Java pour connaître les expressions régulières sur les autres types<br />
de donnée.<br />
Exemple(s) d'utilisation<br />
: renvoie toutes les opérations qui commencent par “ get ”
3.8.12 - replaceAll<br />
replaceAll(String,String)<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 92/112<br />
Remplaces toutes les occurrences de la première chaîne de caractères par la deuxième chaîne de<br />
caractères.<br />
Receveur<br />
Paramètres<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
String s1 : la chaîne à remplacer<br />
String s2 : la chaîne qui remplace s1<br />
La nouvelle chaîne de caractères<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ replaceAll ” recherche chaque occurrence de la première chaîne de caractères passée en<br />
paramètre dans le receveur et la remplace par la deuxième chaîne de caractères passée en paramètre. Il<br />
utilise la méthode “ replaceAll ” du langage Java.<br />
Exemple(s) d'utilisation<br />
package : remplace tous les “ / ” par des “ . ”<br />
Voir aussi<br />
replaceFirst()
3.8.13 - replaceFirst<br />
replaceFirst(String,String)<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 93/112<br />
Remplaces la première occurrence de la première chaîne de caractères par la deuxième chaîne de<br />
caractères.<br />
Receveur<br />
Paramètres<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
String s1 : la chaîne à remplacer<br />
String s2 : la chaîne qui remplace s1<br />
La nouvelle chaîne de caractères<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ replaceFirst ” recherche la première occurrence de la première chaîne de caractères passée<br />
en paramètre dans le receveur et la remplace par la deuxième chaîne de caractères passée en paramètre.<br />
Il utilise la méthode “ replaceFirst ” du langage Java.<br />
Exemple(s) d'utilisation<br />
: remplace le préfixe “ I ” de “ monInterface ” par “ i”, renvoie<br />
“ moninterface ”<br />
Voir aussi<br />
replaceAll()
3.8.14 - split<br />
split(String)<br />
Découpe le receveur en plusieurs chaînes de caractères selon celle donnée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
String regex : L'expression régulière qui délimite<br />
La liste de tous les découpages<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 94/112<br />
Le service “ split ” découpe le receveur en deux chaînes de caractères distinctes à chaque fois qu'il<br />
rencontre la chaîne arg. Il utilise la méthode “ split ” du langage Java.<br />
Exemple(s) d'utilisation<br />
Sur une chaîne “ boo:and:foo ”,<br />
– avec “ : ” passé en paramètre, le résultat est {“ boo ”, “ and ”, “ foo ”}<br />
– avec “ o ” passé en paramètre, le résultat est {“ b ”, “”, “ :and:f ”}
3.8.15 - startsWith<br />
startsWith(String)<br />
Indique si le receveur commence par la chaîne donnée en paramètre.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
String<br />
Description détaillée<br />
String arg : le préfixe recherché<br />
Vrai si le préfixe du receveur est arg sinon faux.<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 95/112<br />
Le service “ startsWith ” indique si le préfixe du receveur est celui donné en paramètre. Il utilise la méthode<br />
“ startsWith ” du langage Java. Si la chaîne passée en paramètre est vide, alors le résultat renvoyé est vrai,<br />
sinon il utilise la méthode “ equals ” du langage Java.<br />
Exemple(s) d'utilisation<br />
<br />
... : suite d'instructions exécutées seulement pour les objets dont le nom commence par “ i ” comme “ interface ”<br />
<br />
Voir aussi<br />
endsWith(), indexOf()
3.8.16 - substring<br />
substring(int)<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 96/112<br />
Renvoie une chaîne de caractères qui commence à l'indice spécifié et se termine à la fin de la chaîne.<br />
Receveur<br />
Paramètre<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
int begin : l'indice de début, inclus<br />
Le morceau de chaîne de caractères<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ substring ” retourne la fin du receveur à partir de l'indice passé en paramètre. Il utilise la<br />
méthode “ substring ” du langage Java. Le caractère à l'indice begin est inclus dans le résultat.<br />
Si l'indice passé en paramètre est négatif ou supérieur à la longueur du receveur, une chaîne vide est<br />
renvoyée.<br />
Exemple(s) d'utilisation<br />
: renvoie le dernier segment de la chaîne de<br />
caractères d'un chemin d'accès (par exemple, le nom de fichier).<br />
Voir aussi<br />
substring(int, int)
3.8.17 - substring<br />
substring(int,int)<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 97/112<br />
Renvoie une chaîne de caractères qui commence au premier indice spécifié et se termine au deuxième<br />
indice spécifié.<br />
Receveur<br />
Paramètres<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
int begin : indice de début, inclus<br />
int end : indice de fin, exclu<br />
Le morceau de chaîne de caractères<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ substring ” retourne la chaîne comprise entre les indices passés en paramètre. Il utilise la<br />
méthode “ substring ” du langage Java. Le caractère à l'indice begin est inclus dans le résultat. Le<br />
caractère à l'indice end est exclus du résultat.<br />
Une chaîne vide est renvoyée :<br />
– si l'indice begin est négatif<br />
– si l'indice end est négatif<br />
– si l'indice begin est supérieur à la longueur du receveur<br />
– si l'indice end est supérieur à l'indice begin<br />
Si l'indice end est supérieur à la longueur de la chaîne de caractères, le service fait appel au service<br />
“ substring ” avec, en paramètre, l'indice begin.<br />
Exemple(s) d'utilisation<br />
<br />
renvoie le nom du fichier sans l'extension<br />
Voir aussi<br />
substring(int)
3.8.18 - toL1Case<br />
toL1Case()<br />
Permet de mettre le premier caractère d'une chaîne en minuscule.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 98/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La chaîne de caractères avec le premier caractère en minuscule<br />
<strong>Acceleo</strong> V1.2<br />
Le service “ toL1Case ” renvoie une chaîne de caractère avec le premier caractère de celle-ci en minuscule.<br />
Exemple(s) d'utilisation<br />
génère “ aBCDEFGH ”.<br />
Voir aussi<br />
toUpperCase(), toLowerCase()
3.8.19 - toLowerCase<br />
toLowerCase()<br />
Renvoie une chaîne de caractère avec tous les caractères en minuscules.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 99/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La chaîne en minuscules<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ toLowerCase ” renvoie une chaîne de caractères en changeant la casse de tous les<br />
caractères. Chacun de ceux-ci est en minuscule. Il fait appel à la méthode “ toLowerCase ” du langage<br />
Java.<br />
Exemple(s) d'utilisation<br />
: renvoie “ monpackage ”.<br />
Voir aussi<br />
toUpperCase()
3.8.20 - toU1Case<br />
toU1Case()<br />
Permet de mettre le premier caractère d'une chaîne en majuscule.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 100/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La chaîne de caractères avec le premier caractère en majuscule<br />
<strong>Acceleo</strong> V1.1<br />
Le service “ toU1Case ” renvoie la chaîne de caractère avec le premier caractère de celle-ci en majuscule.<br />
Exemple(s) d'utilisation<br />
génère “ Abcdefgh ”.<br />
Voir aussi<br />
toUpperCase(), toLowerCase()
3.8.21 - toUpperCase<br />
toUpperCase()<br />
Renvoie une chaîne avec tous les caractères en majuscules.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 101/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La chaîne en majuscules<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ toUpperCase ” renvoie le receveur en changeant la casse de tous les caractères. Chacun de<br />
ceux-ci est en majuscule. Il fait appel à la méthode “ toUpperCase ” du langage Java.<br />
Exemple(s) d'utilisation<br />
: renvoie “ MA_CONSTANTE ”<br />
Voir aussi<br />
toLowerCase()
3.8.22 - trim<br />
trim()<br />
Supprime tous les espaces en début et en fin du receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 102/112<br />
ENode, c'est à dire tous les types d'objets (int, double, boolean, String, ENodeList,<br />
EObject)<br />
La chaîne sans espace au début et à la fin.<br />
<strong>Acceleo</strong> V1.0<br />
Le service “ trim ” supprime les espaces présents en début et en fin de la chaîne de caractères. Il utilise la<br />
méthode “ trim ” du langage Java.<br />
Exemple(s) d'utilisation<br />
: génère la chaîne de caractères “ abc ”
3.9 - XpathServices<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 103/112<br />
Cette classe regroupe les services XpathServices. Ces services permettent de naviguer dans le modèle en<br />
utilisant les termes du langage Xpath. Le schéma ci-dessous regroupe l'ensemble des services proposés<br />
ainsi que leurs significations. Pour de plus amples informations sur le langage Xpath, voir le site<br />
http://www.w3.org/TR/xpath.<br />
Nombre de services inclus : 9<br />
Disponibilité : <strong>Acceleo</strong> v1.0
3.9.1 - ancestor<br />
ancestor()<br />
Renvoie la liste de tous les ancêtres de l'objet.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
La liste de tous les ancêtres de l'objet<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 104/112<br />
Le service “ ancestor ” a la même sémantique que la notion d'ancêtre en Xpath : il renvoie l'ensemble des<br />
ancêtres (parent, grands-parent, arrière-grands-parent, etc...) de l'objet du receveur.<br />
Exemple(s) d'utilisation<br />
: renvoie toutes la hiérarchie qui supporte “ maClass ”<br />
Voir aussi<br />
parent(), descendant()
3.9.2 - child<br />
child()<br />
Renvoie l'ensemble des enfants directs du receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
La liste des enfants de l'objet<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 105/112<br />
Le service “ child ” a la même sémantique que la notion d'enfant en Xpath : il renvoie l'ensemble des<br />
enfants de l'objet du receveur. Seul les enfants directs sont renvoyés.<br />
Exemple(s) d'utilisation<br />
: renvoie tous les enfants directs de “ maClass ”, c'est à dire, les attributs, les opérations, etc...<br />
Voir aussi<br />
descendant(), parent()
3.9.3 - descendant<br />
descendant()<br />
Renvoie l'ensemble de la descendance du receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
La liste de toute sa descendance<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 106/112<br />
Le service “ descendant ” a la même sémantique que la notion de descendance en Xpath : il renvoie<br />
l'ensemble des descendants (enfants, petits-enfants, arrière-petits-enfants, etc...) de l'objet du receveur.<br />
Exemple(s) d'utilisation<br />
: renvoie tous les fils et petits-fils de “ monPackage ”, c'est à dire les classes de ce<br />
package, les attributs et les opérations de ces classes.<br />
Voir aussi<br />
child(), eAllContents(), ancestor()
3.9.4 - following<br />
following()<br />
Renvoie l'ensemble des objets suivants le receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
La liste des objets suivants le receveur<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 107/112<br />
Le service “ following ” a la même sémantique que la notion de noeuds suivants en Xpath : il renvoie<br />
l'ensemble des objets suivants l'objet du receveur<br />
Exemple(s) d'utilisation<br />
<br />
Voir aussi<br />
followingSibling(), preceding()
3.9.5 - followingSibling<br />
followingSibling()<br />
Renvoie l'ensemble des frères suivants du receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
La liste des frères suivants du receveur<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 108/112<br />
Le service “ followingSibling ” a la même sémantique que la notion de frères suivants en Xpath : il renvoie<br />
l'ensemble des objets suivants, des“ petits-frères ”, de l'objet du receveur<br />
Exemple(s) d'utilisation<br />
: Je suis le dernier descendant, le benjamin, de mon parent.<br />
Voir aussi<br />
following(), precedingSibling()
3.9.6 - parent<br />
parent()<br />
Renvoie le parent immédiat du receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
Le parent de l'objet courant<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 109/112<br />
Le service “ parent ” a la même sémantique que la notion de parent en Xpath : il renvoie le parent immédiat<br />
(un seul niveau) de l'objet du receveur.<br />
Exemple(s) d'utilisation<br />
: renvoie la classe qui contient l'attribut “ monAttribut ”<br />
Voir aussi<br />
eContainer(), ancestor()
3.9.7 - preceding<br />
preceding()<br />
Renvoie tous les objets précédant le receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
La liste des objets précédant l'objet courant<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 110/112<br />
Le service “ preceding ” a la même sémantique que la notion de noeuds précédents en Xpath : il renvoie<br />
l'ensemble des objets qui précède l'objet du receveur<br />
Exemple(s) d'utilisation<br />
<br />
Voir aussi<br />
precedingSibling(), following()
3.9.8 - precedingSibling<br />
precedingSibling()<br />
Renvoie l'ensemble des frères précédents du receveur.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
La liste des frères précédents du receveur<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 111/112<br />
Le service “ precedingSibling ” a la même sémantique que la notion de frères précédents en Xpath : il<br />
renvoie l'ensemble des objets précédents, des“ grands-frères ”, de l'objet du receveur<br />
Exemple(s) d'utilisation<br />
: Je suis le premier descendant, l'aîné de mon parent<br />
Voir aussi<br />
preceding(), followingSibling()
3.9.9 - self<br />
self()<br />
Renvoie l'objet courant.<br />
Receveur<br />
Retour<br />
Disponibilité<br />
Description détaillée<br />
EObject, c'est à dire tous les types d'objet décrit par EMF<br />
L'objet courant<br />
<strong>Acceleo</strong> V1.0<br />
<strong>Acceleo</strong> <strong>2.6</strong> : <strong>Référence</strong><br />
Page 112/112<br />
Le service “ self ” a la même sémantique que la notion de noeud courant en Xpath : il renvoie l'objet<br />
courant, c'est à dire le receveur.<br />
Exemple(s) d'utilisation<br />
Voir les exemples dans current()<br />
Voir aussi<br />
current()