Chapter 9 Guide de référence de la génération (GTL)


Introduction au langage de génération par template

Le langage de génération par template (GTL, Generation Template Language) PowerAMC est un langage de génération de texte basé sur des templates. Vous pouvez utiliser le langage de génération par template afin de générer du texte pour n'importe quelle métaclasse (type d'objet) d'un modèle, pour générer du code ou des rapports, ou pour produire des formats externes, tels XMI.

Un template de langage de génération par template contient du texte et des variables qui sont résolues à l'aide d'informations extraites du modèle, telles que le nom d'une classe ou d'un type de données d'un attribut, ou une collection d'objets, telle que la liste des attributs d'une classe. Vous pouvez également tester des variables et contrôler leur format.

Lorsque vous générez un modèle, PowerAMC évalue les métaclasses qui doivent faire l'objet d'une génération de fichier, et crée un fichier pour chaque objet qui appartient à cette métaclasse, en appliquant les templates appropriés et en résolvant les éventuelles variables.

Le langage de génération par template fonctionne sur les métaclasses définies dans le métamodèle PowerAMC (voir le chapitre "Fichiers de ressources et métamodèle public PowerAMC"), et sur les éventuelles extensions définies dans le profil du modèle (voir le chapitre "Gestion des profils").

Le langage de génération par template est un langage orienté objet et prend donc en charge les héritages et le polymorphisme afin de permettre la réutilisation et la maintenance. Les macros fournissent des structures de programmation générique pour le test de variables (par exemple : .if), et pour l'itération des éléments dépendant d'un objet (v: .foreach.). Des macros conditionnelles, itératives et de format de texte sont également disponibles.

Dans ce chapitre, la plupart des exemples utilisent le langage Java. Toutefois, le mécanisme décrit dans cette section est également applicable à tous les langages objets et à toutes les définitions étendues de modèle.

 


Copyright (C) 2007. Sybase Inc. All rights reserved.