Accès au métamodèle à l'aide du langage de génération par template

Le langage de génération par template (Generation Template Language, GTL) utilise des templates afin de générer des fichiers. Un template est un fragment de code défini sur une métaclasse PowerAMC et les métaclasses qui héritent de cette classe. Il peut être utilisé dans différents contextes pour la génération de texte et de code.

Ces templates peuvent être considérés comme des extensions de métamodèle car ils sont des types particuliers d'attributs de classes de métamodèle. Vous pouvez définir autant de templates que nécessaire pour n'importe quelle métaclasse donnée en utilisant la syntaxe suivante :

<métamodèle-nomclasse> / <nom-template>

Les templates sont hérités par tous les descendants de la métaclasse pour laquelle ils sont définis, ce qui permet de les utiliser afin de partager du code de template entre différentes métaclasses ayant un ancêtre commun. Par exemple, si vous définissez un template pour la classe abstraite BaseObjects, toutes les classes liées via des liens de généralisation à cette classe héritent de ce template.

Le langage de génération par template utilise des macros telles que foreach_item, afin de procéder à l'itération dans les collections d'objets. Le template spécifié dans le bloc est converti sur tous les objets contenus dans la collection spécifiée. Le métamodèle fournit des informations très utiles concernant les collections de métaclasses sur lesquelles vous définissez un template contenant une macro d'itération.

Les attributs calculés suivants sont des extensions de métamodèle spécifiques au langage de génération par template :

Métaclasse

Attributs

PdCommon.BaseObject

  • isSelected (boolean) - True si l'objet correspondant fait partie de la sélection dans la boîte de dialogue de génération

  • isShorctut (boolean) - True si l'objet était accessible via un raccourci

PdCommon.BaseModel

  • GenOptions (struct) - Permet d'accéder aux options de génération définies par l'utilisateur

PdOOM.*

  • ActualComment (string) - Commentaire supprimé (avec /**, /*, */ et // supprimés)

PdOOM.Association

  • RoleAMinMultiplicity (string)

  • RoleAMaxMultiplicity (string)

  • RoleBMinMultiplicity (string)

  • RoleBMaxMultiplicity (string)

PdOOM.Attribute

  • MinMultiplicity (string)

  • MaxMultiplicity (string)

  • Overridden (boolean)

  • DataTypeModifierPrefix (string)

  • DataTypeModifierSuffix (string)

  • @<tag> [spécifique Java] (string) - Attribut étendu Javadoc@< tag> avec formatage supplémentaire

PdOOM.Class

  • MinCardinality (string)

  • MaxCardinality (string)

  • SimpleTypeAttribute [XML-specific]

  • @<tag> [spécifique Java] (string) - Attribut étendu Javadoc@<tag> avec formatage supplémentaire

PdOOM.Interface

  • @<tag> [spécifique Java] (string) - Attribut étendu Javadoc@<tag> avec formatage supplémentaire

PdOOM.Operation

  • DeclaringInterface (object)

  • GetSetAttribute (object)

  • Overridden (boolean)

  • ReturnTypeModifierPrefix (string)

  • ReturnTypeModifierSuffix (string)

  • @<tag> [spécifique Java] (string) - Attribut étendu Javadoc@<tag> avec formatage supplémentaire (particulièrement pour @throws, @exception, @params)

PdOOM.Parameter

  • DataTypeModifierPrefix (string)

  • DataTypeModifierSuffix (string)

Les collections calculées suivantes sont des extensions de métamodèle spécifiques au langage de génération par template :

Nom de métaclasse

Nom de collection

PdCommon.BaseModel

Generated <metaclass-name>List - Collection de tous les objets du type <metaclass-name> qui font partie de la sélection dans la boîte de dialogue de génération

PdCommon. BaseClassifierMapping

SourceLinks

PdCommon. BaseAssociationMapping

SourceLinks