Chapter 4 Gestion des profils
Les scripts de transformation ont accès à des méthodes helper spéciales via l'objet transformation interne. Ces méthodes sont les suivantes:
| Nom | Définition | Paramètres | Renvoie |
|---|---|---|---|
| CopyObject | Duplique un objet existant et définit une source pour l'objet dupliqué. | source : objet à dupliquer
étiquette* : identificateur texte de l'objet |
Une copie du nouvel objet |
| SetSource | Définit l'objet source d'un objet généré. Il est recommandé de définir systématiquement l'objet source afin de pouvoir retrouver l'origine d'un objet généré. | source : objet source
cible : objet cible étiquette* : identificateur texte de l'objet |
— |
| GetSource | Extrait l'objet source d'un objet généré. | cible : objet cible
étiquette* : identificateur texte de l'objet |
Objet source |
| GetTarget | Extrait l'objet cible d'un objet source. | source : objet source
étiquette* : identificateur texte de l'objet |
Objet cible |
* étiquette facultative utilisée pour améliorer l'historique de la génération, voir le paragraphe suivant
Le mécanisme d'historique de la génération est utilisé pour extraire l'identificateur de l'objet source afin d'identifier l'origine d'un objet cible et l'afficher dans l'onglet Version. Cette opération est rendue possible par le fait qu'il existait une correspondance un-à-un entre les objets source et cible.
Maintenant qu'un objet source peut être transformé et avoir plusieurs cibles, vous pouvez rencontrer des problèmes pour identifier l'origine d'un objet, tout particulièrement dans la boîte de dialogue de fusion. Le mécanisme suivant est utilisé pour aider à identifier l'origine d'un objet :
Si l'objet source est transformé en un seul objet La transformation est utilisée comme identificateur interne de l'objet cible.
Si l'objet source est transformé en plusieurs objets Pour pouvez définir une étiquette (tag) pour identifier le résultat de la transformation. Cette étiquette est une valeur sélectionnée par l'utilisateur qui ne doit comporter que des caractères alphanumériques. Il est recommandé d'utiliser une valeur "stable", c'est-à-dire une valeur qui ne risque pas d'être modifiée lors de générations successives, par exemple un stéréotype. Par exemple, MOO1 contient la classe Customer, vous appliquez un script de transformation à cet objet pour créer un EJB. Deux nouvelles classes sont créées à partir de la classe source : une pour l'interface home, et l'autre pour l'interface remote. Dans le script de transformation, vous devez affecter une étiquette "home" pour l'interface home, et "remote" pour l'interface remote. L'étiquette s'affiche entre signes <> dans l'onglet Version pour un objet, en regard de l'objet source.
Dans l'exemple suivant, vous utilisez le mécanisme de l'étiquette pour identifier les classes attachées à un composant :
'setting tag for all classes attached to component
for each Clss in myComponent.Classes
if clss <> obj then
trfm.SetSource obj,Clss," GenatedFromEJB"+ obj.name +"target" +Clss.Name
For each ope in clss.Operations
if Ope.Name = Clss.Code Then 'then it is a constructor _Bean operation
trfm.SetSource obj,Ope," GenatedFromEJB"+ obj.name +"target" +Ope.Name
end if
if Ope.Name = Clss.Name Then 'then it is a constructor operation
trfm.SetSource obj,Ope," GenatedFromEJB"+ obj.name +"target" +Ope.Name
end if
if Ope.name = "equals" Then 'then it is an equals operation and should be tagged
trfm.SetSource obj,Ope," GenatedFromEJB"+ obj.name +"target" +Ope.Name
end if
next
end if
next
| Copyright (C) 2006. Sybase Inc. All rights reserved. |
| |