Fichiers d'extension

Les fichiers d'extension (*.xem) permettent de personnaliser et d'étendre les métaclasses, paramètres et génération de PowerAMC. Vous pouvez utiliser des extensions afin de définir des propriétés supplémentaires pour des types de données existants ou de nouveaux types d'objets, pour modifier l'interface de PowerAMC (en réorganisant et ajoutant des onglets de feuilles de propriétés, des outils de Boîte à outils et des commandes de menus), mais aussi afin de définir des cibles et options de génération supplémentaires.

PowerAMC fournit des fichiers d'extension prédéfinis et vous pouvez créer vos propres fichiers d'extension. Chaque fichier d'extension contient deux catégories de premier niveau :

Vous pouvez visualiser et éditer le profil dans un fichier de ressource en ouvrant ce dernier dans l'Editeur de ressources et en développant la catégorie Profile racine. Vous pouvez ajouter des extensions à une métaclasse (un type d'objet, telle que Class dans un MOO ou Table dans un MPD), ou à un stéréotype ou critère, qui a été précédemment défini sur une métaclasse :



Dans l'exemple ci-dessus :

Les extensions sont héritées, ainsi les extensions d'une métaclasses sont disponibles pour ses enfants stéréotypés, et par celles auxquelles s'applique le critère.



Ainsi, dans l'exemple ci-avant, les classes ayant le stéréotype MonStéréotype ont l'attribut étendu Attribut_5, tandis que ceux qui ont ce stéréotype ET remplissent le critère AutreCritère ont l'attribut Attribut_4 et l'attribut Attribut_5

Remarque : Etant donné que vous pouvez attacher plusieurs fichiers de ressources à un modèle (par exemple, un langage cible et un ou plusieurs fichiers d'extension) vous pouvez créer des conflits, dans lesquels plusieurs extensions portant un nom identique (par exemple, deux définitions de stéréotype différentes) sont définies sur la même métaclasse dans des fichiers de ressources distincts. Si un tel conflit se produit, le fichier d'extension prévaut le plus souvent. Lorsque deux extensions sont en conflit, la priorité va à celui qui apparaît le premier dans la liste.