Les objets en entrée et en sortie du package contiennent un élément appelé packagedElement. Cet élément est une collection qui contient différents types d'objets UML valides. Les règles de mappage que vous créez dans cette leçon définissent comment la transformation traite les éléments de collection qui sont du type package ou classe.
La Leçon 3 : Création et spécification d'une déclaration de mappage Classe à classe a montré que pour chaque règle de mappage de déplacement d'une déclaration de mappage, une règle qui copie une valeur d'attribut du modèle source vers le modèle cible est ajoutée au code source de transformation généré. Pour chaque règle de mappage de sous-mappe, un extracteur qui extrait des éléments dans la collection spécifiée est généré dans le code source de la transformation. La règle de sous-mappe est appliquée à un objet si l'objet en entrée en cours est une instance du type en entrée qui est défini dans la déclaration de mappage.
Lorsque vous exécutez la transformation générée, si le modèle source contient un package, la transformation Package2PackageTransform est appelée et crée un package ayant le même nom dans le modèle cible. La transformation Package2PackageTransform balaie la collection de l'élément packagedElement. Pour chaque élément de la collection qui est du type package, ce qui signifie que le modèle source contient des packages imbriqués, la transformation appelle la transformation Package2PackageTransform. Pour chaque élément de la collection qui est du type classe, la transformation appelle les règles pour transformer la classe en une classe et une interface correspondantes dans le modèle en sortie cible.
Pour créer une déclaration de mappage Package à package dans le modèle de mappage :
Après avoir créé la déclaration de mappage, vous devez y ajouter un objet en entrée et un objet en sortie. Dans cette leçon, vous spécifiez un package UML comme objet en entrée et objet en sortie.
Pour ajouter un objet en entrée et un objet en sortie à la déclaration de mappage Package à package :
Pour créer les règles de mappage entre les attributs des objets package en entrée et en sortie: