Métaclasses (Profile)

Les métaclasses sont définies dans le métamodèle PowerAMC et constituent la base pour vos extensions. Vous ajoutez une métaclasse dans la catégorie Profile lorsque vous devez l'étendre afin de modifier son comportement, ajouter de nouvelles propriétés, changer sa feuille de propriétés ou son symbole, ou même l'exclure de vos modèles.

Vous pouvez soit faire des extensions d'un type d'objet existant, soit créer un tout nouveau type d'objet de modélisation en ajoutant la métaclasse ExtendedObject, ExtendedSubObject ou ExtendedLink (voir Objets, sous-objets et liens étendus (Profile)).

Dans l'exemple suivant, FederationController est un tout nouveau type d'objet créé en ajoutant la métaclasse ExtendedObject et en définissant un stéréotype sur cette dernière. Diverses spécialisations de la métaclasse Table sont définies par le biais des critères et stéréotypes :


Les extensions sont héritées, de sorte que toute extension effectuée sur une métaclasse est disponible pour tous ses enfants stéréotypés, et ceux qui sont sujets aux critères. Les divers attributs étendus définis sous la métaclasse de table seront disponibles pour les instances de table en fonction des règles suivantes :
  • NiveauSecurite - Toutes les tables.
  • CleCryptage - Tables pour lesquelles le critère TableSecurisee est évalué à true.
  • CheminReplication - Tables pour lesquelles les critères TableSecurisee et Repliquee sont tous les deux évalués à true.
  • IDUtilisateurExterne - Tables qui ont le stéréotype TableFederee ou TablePrioritaire.
  • Disponibilite - Tables qui ont le stéréotype TablePrioritaire.

Par exemple, une table qui a le stéréotype TableFederee, et pour laquelle le critère TableSecurisee est évalué à true affiche les attributs NiveauSecurite, CleCryptage et IDUtilisateurExterne, tandis qu'une table qui a le stéréotype TablePrioritaire, et pour laquelle les critères TableSecurisee et Repliquee sont tous les deux évalués à true, va afficher ces attributs, ainsi que les attributs CheminReplication et Disponibilite.

  1. Pointez sur la catégorie Profile, cliquez le bouton droit de la souris, puis sélectionnez Ajouter des métaclasses :
  2. Sélectionnez une ou plusieurs métaclasses à ajouter au profil. Vous pouvez utiliser les sous-onglets pour passer des métaclasses appartenant au module courant (par exemple, le MOO) aux métaclasses standard qui appartiennent au module PdCommon.


    [facultatif] Utilisez l'outil Modifier le filtre de métaclasse pour afficher :
    • Toutes les métaclasses.
    • Les métaclasses concrètes - pour les types d'objets qui peuvent être créés dans un modèle, telles que Class ou Interface.
    • Les métaclasses abstraites -qui ne sont jamais instanciées mais sont utilisées pour définir des extensions communes. Par exemple, ajoutez la métaclasse Classifier dans votre profil pour définir les extensions qui seront héritées à la fois par les classes et les interfaces.
    Remarque : Pour plus d'information sur l'affichage et la navigation des métaclasses dans le métamodèle, voir Métamodèle public PowerAMC.
  3. Cliquez sur OK pour ajouter la métaclasse sélectionnée dans votre profil :


  4. [facultatif] Renseignez les propriétés suivantes :

    Propriété

    Description

    Nom

    [lecture seule] Spécifie le nom de la métaclasse. Cliquez sur le bouton à droite de cette zone pour afficher l'Aide sur les objets du métamodèle correspondant à la métaclasse.

    Parent

    [lecture seule] Spécifie le parent de la métaclasse. Cliquez sur le bouton à droite de cette zone pour afficher la feuille de propriétés de la métaclasse parent. Si la métaclasse parent n'est pas présente dans le profil, un message vous invite à l'ajouter automatiquement.

    Conventions de dénomination de code

    [métaclasses concrètes dans les fichiers de cible uniquement] Spécifie le format par défaut pour initialiser le script de conversion de nom en code pour les instances de la métaclasse. Les formats suivants sont disponibles :
    • firstLowerWord - Premier mot en minuscules, et la première lettre de chaque mot suivant en majuscule

    • FirstUpperChar - Premier caractère de chaque mot en majuscule

    • lower_case - Tous les mots en minuscules et séparés par un tiret

    • UPPER_CASE - Tous les mots en minuscules et séparés par un tiret bas

    Pour plus d'informations sur les scripts de conversion et les conventions de dénomination, voir Guide des fonctionnalités générales > Modélisation avec PowerAMC > Objets > Conventions de dénomination.

    Caractères illégaux

    [métaclasses concrètes dans les fichiers cible] Spécifie une liste de caractères illégaux qui ne peuvent pas être utilisés dans la génération de code pour la métaclasse. La liste des caractères doit être placée entre guillemets, par exemple :

    "/!=<>""'()"

    Lorsque vous travaillez sur un MOO, cette liste spécifique à l'objet prévaut sur les valeurs spécifiées dans le paramètre IllegalChar pour le langage objet (voir Catégorie Settings : langage objet).

    Activer la sélection pour la génération de fichiers

    Spécifie que les instances de la métaclasse peuvent être sélectionnées pour générer des fichier sur l'onglet Sélection de la boîte de dialogue Génération dans le cadre d'une génération étendue (voir Génération de vos fichiers dans le cadre d'une génération standard ou étendue).

    Exclure du modèle

    [métaclasses concrètes uniquement] Empêche la création d'instances de la métaclasse dans le modèle et supprime toute référence à la métaclasse dans les menus, Boîte à outils, feuilles de propriétés etc, afin de simplifier l'interface. Par exemple, si vous n'utilisez pas les règles de gestion, vous pouvez cocher cette case pour la métaclasse BusinessRule afin de masquer les règles de gestion dans vos modèles.

    Lorsque plusieurs fichiers de ressources sont attachés à un modèle, la métaclasse est exclue si l'un au moins des fichiers de ressources exclut cette métaclasse et qu'aucun autre fichier de ressources ne l'active de façon explicite. Si un modèle contient déjà des instances de cette métaclasse, les objets sont conservés mais il est impossible d'en créer de nouveaux..

    Commentaire

    Spécifie un commentaire descriptif pour la métaclasse.