03.07.2013 Views

Acceleo 2.6 : Référence

Acceleo 2.6 : Référence

Acceleo 2.6 : Référence

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<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()

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!