Chapter 9 Guide de référence de la génération (GTL)
Un template se compose de texte et de variables, et peut également contenir des macros. Il s'agit d'un fragment de texte généré pour un objet. Il se comporte comme un type de propriété particulier dont la valeur est recalculée chaque fois que vous l'obtenez. Le contenu d'un template est constitué par le code généré au format texte.
Un template est associé à une métaclasse donnée, vous pouvez définir autant de templates que vous le souhaitez pour une métaclasse donnée, cette dernière est disponible pour tous les objets (instances) de cette métaclasse. Une métaclasse est une classe du métamodèle (ou classe abstraite). Il peut s'agir d'un attribut d'entité provenant d'un Modèle Conceptuel de Données (MCD), d'une table d'un Modèle Physique de Données (MPD), d'une opération d'un Modèle Orienté Objet (MOO), etc ...Les templates permettent d'accéder complètement aux attributs et collections du métamodèle PowerAMC ainsi qu'à tous les éléments du modèle.
Les templates sont utilisés pour générer des fichiers, leur rôle est de produire du texte à des fins de génération. Lors de la génération, l'évaluation d'un template génère toujours du texte qui peut être stocké dans un fichier et utilisé pour rassembler des informations sur un objet donné.
Un template peut également faire référence à n'importe quel template (y compris à lui-même) afin de promouvoir la récursion et le partage de code de template, le second template est évalué et sa valeur est située dans le résultat du premier template.
Exemple de template :
.foreach_item (Parameters) %definition% .next(", ")
Exemples
Vous allez trouver des exemples spécifiques de l'utilisation des templates dans les différentes sections de ce chapitre.
Un template est construit à l'aide de la syntaxe suivante :
template = <template-complexe> template-complexe = (<macro-bloc> | <macro-simple> | <simple-template<)* template-simple = (<texte> | <bloc-variables> | <bloc-conditionnel>)*
Pour plus d'informations sur certaines parties de la syntaxe ci-dessus, reportez-vous à leur définition dans la suite de ce chapitre.
Vous pouvez utiliser des templates simples ou complexes. Un template simple ne contient pas de macros, tandis qu'un template complexe en contient.
La syntaxe d'un template simple se présente comme suit :
%Visibility% %DataType% %Code% [= %InitialValue%]
Lorsqu'il est évalué, ce template qui contient les 4 variables Visibility, DataType, Code et InitialValue qui seront remplacées par les valeurs provenant de l'objet courant dans le modèle. Compte tenu du fait que le signe = et la valeur de la dernière variable InitialValue se trouvent entre crochets, cette section du template ne sera générée que si InitialValue n'est pas void.
La syntaxe d'un template complexe peut se présenter comme suit :
Chaque variable entre % peut être le nom d'un attribut, ou bien une propriété de l'objet courant, ou encore le nom d'un template.
Pour plus d'informations sur les variables, reportez-vous à la section "Définition des variables".
Dans Java, ouvrez le dossier Profile\Operation\Templates dans le langage objet pour afficher tous les templates utilisés pour la génération d'opérations existant dans le MOO.
Copyright (C) 2005. Sybase Inc. All rights reserved. |
![]() |