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


Définition du langage de génération par template (GTL)

Vous avez la possibilité de définir vos propres préférences de génération dans un langage objet (fichier .XOL) ou bien dans une définition étendue de modèle (fichier .XEM) et personnaliser ainsi le processus de génération en utilisant le langage de génération par template (GTL).

Le langage de génération par template est un langage basé sur des templates utilisés par PowerAMC pour la génération de texte. Ce langage vous permet une meilleure adaptation et un contrôle total de la génération car la logique de génération est entièrement contenue dans le langage objet ou la définition étendue de modèle que vous avez la possibilité d'éditer. En outre, il vous permet d'ajouter facilement des modules de génération de code supplémentaires adaptés à vos besoins.

Présentation du processus

Le langage de génération par template permet de générer du texte pour chaque objet (appelé métaclasse) contenu dans un modèle. Ce type de génération peut permettre de produire du code, générer des rapports (extraire de l'information textuelle du modèle) ou produire un format tel que XMI permettant l'échange avec d'autres applications.

Vous pouvez générer un fichier par métaclasse (par exemple, une classe dans un MOO ou une table dans un MPD), mais vous pouvez également générer du texte pour une métaclasse qui sera inclus dans un fichier plus global généré pour un autre objet.

Ce fragment de texte est appelé template. Il se compose de texte mêlé de variables qui correspondent à des données provenant du modèle.

Vous pouvez accéder à n'importe quelle information contenue dans le modèle par l'intermédiaire de variables. Ces informations peuvent être de simples attributs (par exemple le nom d'une classe, un type de données d'attribut, etc.) ou une collection d'objets (par exemple, la liste des attributs d'une classe). Le GTL permet également de tester des variables, et d'utiliser certaines macros dans le but de générer une disposition particulière.

Le processus de génération évalue quelles sont les métaclasses pour lesquelles des fichiers doivent être générés, puis, sur cette base, crée un fichier pour chaque objet dans le modèle qui appartient à cette métaclasse. Lors de la génération, chaque template et chaque variable est évalué et remplacé par sa valeur dans le fichier généré.

Documentation des métaclasses

PowerAMC est fourni avec un métamodèle publié dans un Modèle Orienté Objet (metamodel.moo) qui illustre la façon dont les métaclasses interagissent dans le logiciel. Tous les objets contenus dans le métamodèle PowerAMC ont un nom et un code, qui correspondent au nom public des métadonnées. Un fichier d'aide HTML (pdvbs11.chm) est également fourni pour vous permettre d'identifier les propriétés et méthodes qui peuvent être utilisées pour décomposer un objet PowerAMC.

Concepts pris en charge

Le langage de génération par template prend en charge des concepts orientés objet tels que les héritages et le polymorphisme et permet donc de réutiliser les objets et d'assurer plus facilement leur maintenance. Il met également à votre disposition des macros conditionnelles, itératives et de format de texte permettant de spécifier la logique des templates. Les macros fournissent les structures de programmation génériques pour le test des variables (par exemple : .if) et permettent l'itération entre les éléments dépendant d'un objet (par exemple : .foreach.).

Java pour les exemples

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) 2005. Sybase Inc. All rights reserved.