Pré. | Proc. |
Liste des macros
Si vous devez parcourir en boucle ou itérer sur un ensemble d'objets contenus dans ou sous l' object actuel, vous pouvez le faire à l'aide de la macro %list . Cette macro effectue un passage itératif sur tous les objets dans la portée du gabarit actuel et appelle un autre gabarit pour traiter chacun d'eux.
La structure de base est la suivante :
%list=<Nom du modèle> @separator=<chaîne> @indent=<chaîne> (<conditions>) %
où <string> est une string littérale entre guillemets et <TemplateName> peut être l'un de ces noms gabarit :
- Attribut
- AttributImpl
- Classe
- Base de classe
- ClasseImpl
- Initialiseur de classe
- Interface de classe
- Contrainte
- Gabarit personnalisé ( gabarits personnalisés vous permettent de définir vos propres gabarits )
- Effort
- Classe intérieure
- Implémentation de la classe intérieure
- Fichier lié
- Métrique
- Namespace
- Opération
- OpérationImpl
- Paramètre
- Problème
- Exigence
- Ressource
- Risque
- Scénario
- Test
Exemple
Dans une transformation de classe, la classe peut contenir plusieurs attributs ; cet exemple appelle la transformation d'attribut et génère le résultat du traitement de la transformation pour chaque attribut de la classe concernée. La liste résultante sépare ses éléments par une seule nouvelle ligne et les indente respectivement de deux espaces. Si la classe concernée avait des attributs stéréotypés, ils seraient générés à l'aide du gabarit spécialisé approprié.
%list="Attribut" @separator="\n" @indent=" "%
L'attribut séparateur, désigné par @separator, spécifie l'espace qui doit être utilisé entre les éléments de la liste, à l'exclusion du dernier élément de la liste.
L'attribut indent, indiqué par @indent, spécifie l'espace par lequel chaque ligne de la sortie générée doit être indentée.
Cas particuliers
Il y a quelques cas particuliers à prendre en compte lors de l'utilisation de la macro %list :
- Si le gabarit d'attribut est utilisé comme argument de la macro %list, cela génère également des attributs dérivés des associations en exécutant le gabarit LinkedAttribute approprié
- Si le gabarit ClassBase est utilisé comme argument de la macro %list, cela génère également des bases de classe dérivées des liens dans le modèle en exécutant le gabarit LinkedClassBase approprié
- Si le gabarit ClassInterface est utilisé comme argument de la macro %list, cela génère également des bases de classe dérivées des liens dans le modèle en exécutant le gabarit LinkedClassInterface approprié
- Si InnerClass ou InnerClassImpl est utilisé comme argument de la macro %list, ces classes sont générées à l'aide des gabarits Class et ClassImpl respectivement ; ces arguments indiquent que les gabarits doivent être traités en fonction des classes internes de la classe concernée