Après avoir ajouté un objet en entrée et en sortie à la déclaration de mappage Classe à interface, vous pouvez définir les règles de mappage entre les attributs des objets en entrée et en sortie.
Pour cette leçon, vous créez une règle de mappage personnalisée qui crée une interface appelée IClassName.
Vous créez aussi une règle de mappage de sous-mappe qui appelle la sous-mappe Opération à opération que vous créez dans la Leçon 3 : Création et spécification d'une déclaration de mappage Classe à classe, et vous ajoutez un filtre d'entrée à la règle de mappage de sous-mappe pour spécifier que seules les opérations publiques sont transformées dans l'interface cible.
Pour définir les règles de mappage entre les attributs des objets en entrée et en sortie :
- Créez une règle de mappage personnalisée entre les attributs name des objets en entrée et en sortie :
- Dans la zone de l'éditeur, dans l'objet en entrée classe, cliquez sur l'attribut name.
- Faites glisser la poignée de l'attribut name vers l'attribut name de l'objet en sortie Interface. Une règle de mappage de déplacement est créée.
- Sur l'élément Déplacement qui connecte les attributs name, cliquez sur la flèche vers le bas puis sur Personnalisé.
- Cliquez avec le bouton droit sur l'élément Personnalisé, puis cliquez sur Afficher dans la vue Propriétés.
- Dans la vue Propriétés, sur l'onglet Détails, cliquez sur En ligne et, dans la zone de texte sous la signature de la méthode, tapez le code suivant : Interface_tgt.setName("I"+Class_src.getName());
Remarque : Pour appeler la fonction Assistant de contenu, appuyez sur Ctrl+ESPACE quand vous tapez le code.
- Cliquez sur Appliquer.
- Créez une règle de mappage de sous-mappe entre les attributs ownedOperation des objets en entrée et en sortie.
- Dans la zone de l'éditeur, dans l'objet classe en entrée, cliquez sur l'attribut ownedOperation.
- Faites glisser la poignée de l'attribut ownedOperation vers l'attribut ownedOperation de l'objet en sortie Interface. Cet attribut étant une collection, une sous-mappe est créée par défaut.
- Si la vue Propriétés n'est pas ouverte, cliquez avec le bouton droit sur le nouvel élément Sous-mappe, puis cliquez sur Afficher dans la vue Propriétés.
- Si elle n'est pas déjà sélectionnée, dans la vue Propriétés, sur l'onglet Détails, dans la liste Mappe, sélectionnez Operation2Operation.
- A la règle de mappage de sous-mappe que vous créez à l'étape 2,
ajoutez un filtre d'entrée qui transforme seulement les opérations publiques dans l'interface cible :
- Dans la vue Propriétés, sur l'onglet Filtre d'entrée, cliquez sur Filtrer les éléments d'entrée puis sur En ligne.
- Dans la zone de texte sous l'option Code, sous la signature de la méthode, tapez le code suivant : if (ownedOperation_src.getVisibility().equals(VisibilityKind.PUBLIC_LITERAL))
{ return true; } return false;
Remarque : Le code que vous spécifiez pour un filtre d'entrée ou de sortie doit renvoyer une valeur booléenne. Vous pouvez spécifier seulement le corps de la méthode ; l'infrastructure de création de transformation définit la signature de la méthode. Pour afficher une liste des noms de variable valides, dans la zone de texte sous le bouton Intégré, appuyez sur Ctrl+ESPACE.
- Cliquez sur Appliquer.
- Cliquez sur .
Dans la leçon suivante, vous créez plusieurs déclarations de mappage dans le modèle Generalize_Classes.mapping ; ces déclarations de mappage définissent comment les paramètres et les types primitifs sont transformés lorsque vous exécutez la transformation générée.