Pourquoi et quand exécuter cette tâche
- Dans la vue Explorateur de projets du plan de travail d'exécution, développez la branche du
projet source, puis la branche Modèles et enfin la branche Source1 ;
développez ensuite les classes A et B. Chaque classe a un attribut dont le type se trouve être l'autre classe dans le même
package.
- Développez la branche du projet cible et faites un double clic sur le fichier
de configuration de transformation nommé transform source1 to target1.tc.
- Dans l'éditeur de configuration de transformation, cliquez sur Exécuter.
- Dans le projet cible, développez la branche Modèles,
puis la branche Target1 ; développez ensuite les interfaces IA et
IB (elles ont été générées par la transformation à partir des classes A et B). Notez que le type de chaque attribut est l'interface dans le modèle cible qui
correspond à la classe dans le modèle source.
- Dans le projet source, développez Source2. Ce dossier contient un package avec une seule classe, nommée C, qui a
un attribut dont le type est une classe dans l'autre modèle d'entrée,
la classe A dans Source1 (package P1). Cette référence croisée est le vif du sujet de notre exemple.
- Dans le projet cible, faites un double clic sur le fichier de
configuration de transformation transform source2 to target2.tc.
- Dans l'éditeur de configuration de transformation, cliquez sur Exécuter.
- Dans le projet cible, développez la branche Modèles,
puis la branche Target2 et enfin la branche de
l'interface IC, qui a été
générée par la transformation à partir de la classe C. Le type de l'attribut dans le modèle cible généré est le même que ce qu'il
était dans le modèle d'entrée : classe A dans Source1. Cette absence de changement
vient du fait que la transformation de Source2 vers Target2 n'a pas d'informations sur
la transformation de Source1 vers Target1.
Résultats
Si, comme dans le présent exemple, vous transformez plusieurs modèles
contenant des références entre eux que vous souhaitez mettre à jour pour
les faire pointer sur les objets correspondants, vous ne pouvez pas
les transformer l'un après l'autre.
Vous devez les transformer en même temps. La section suivante indique
comment procéder.
Remarque : Si le modèle qui contient l'élément référencé n'est pas supposé
être transformé, ce qui signifie que la référence croisée est
statique, vous n'avez pas besoin de suivre les instructions ci-après.
Vous pouvez vous contenter de transformer le modèle qui contient l'élément référençant,
comme vous le faites habituellement.
Ces instructions concernent uniquement le cas où la cible de la référence croisée
doit être transformée.