Détails d’échantillon de transformation modèle vers texte

Cet échantillon contient les trois transformations suivantes :

Transformation

Description

Classe vers texte -> Console Cette transformation accepte une classe UML comme source et inscrit une description de la classe (son nom, ses attributs et opération et les paramètres des opérations) vers l’affichage de la console.
Classe vers texte -> Fichier Cette transformation est la même que celle de la console de classe vers texte mais elle inscrit le résultat vers un fichier plutôt que vers l’affichage de la console.
Etat vers JSP Cette transformation accepte un automate fini comme source et génère une page JSP pour chaque état ayant un stéréotype du profil ScreenFlow.

Pour comprendre la construction des transformations, exécutez les transformations et explorez le code source. Quand vous lisez le code source, suivez ces conseils :

  • Regardez dans un premier temps les classes Java qui implémentent les règles. Les classes apparaissent en packages dont les noms se terminent par .rules.
  • Un ensemble de règles est combiné en une ou plusieurs transformations. Les transformations sont implémentées en packages par les classes Java dont les noms finissent par .transforms. Il peut être préférable de lire le code pour les classes de transformation en premier puis de lire le code pour les transformations de racine.
  • Enfin, pour comprendre comment les transformations sont connectées au service de transformation, regardez le fichier de manifeste plug-in plugin.xml, et le code pour la classe fournisseur de transformation TransformationProvider.

Transformation classe vers texte

Cette transformation accepte une classe UML, un package ou un modèle comme source et inscrit les noms des classes, de leurs attributs, les opérations ainsi que les paramètres des opérations, vers l’affichage de la console ou vers un fichier. Si vous choisissez un modèle ou un package comme source, la transformation inscrit les détails de toutes les classes que le modèle ou le package contient.

Cette transformation possède deux variations :

  1. Classe vers texte -> Console : Cette transformation inscrit les sorties vers l’affichage de la console et elle ne nécessite pas de cible.

    Cette transformation d'échantillon explique comment faire pour :

    • Créer des règles simples et les combiner en une ou plusieurs transformations.
    • Créer un fournisseur de transformation.
    • Décrire une transformation et ses fournisseurs dans le fichier du manifeste plug-in plugin.xml.

  2. Classe vers texte -> Fichier : Cette transformation inscrit les sorties vers un fichier et nécessite un projet en tant que cible. Elle crée par défaut un fichier nommé class2text.txt dans le dossier ClassToTextOutput, dans le projet que vous spécifiez. Vous pouvez utiliser la propriété de transformation Target File Name pour changer le nom par défaut du fichier.

    Cette transformation d'échantillon explique comment faire ces manipulations complémentaires :

    • Décrire les propriétés de la transformation dans le fichier du manifeste plug-in plugin.xml.
    • Manipuler les propriétés de la transformation au sein d’une règle.


Transformation Etat vers JSP

Cette transformation accepte un état UML dans un automate fini comme source et génère une page Web sous la forme d’un fichier JSP en utilisant Java Emitter Templates (JET). Si vous choisissez un automate fini ou une région comme source, la transformation génère un fichier JSP pour chaque état dans l’automate fini ou la région ayant un stéréotype du profil ScreenFlow appliqué.

Cette transformation d'échantillon explique comment faire les choses suivantes :

  • Utiliser les stéréotypes et les mots clés pour déclencher des règles de manière sélective.
  • Générer du texte en combinant les fonctionnalités de JET et la transformation

Pour préparer l’automate fini source pour la transformation, vous devez appliquer le profil ScreenFlow au modèle UML qui contient l’automate fini et marquer l’automate fini en appliquant les stéréotypes dans le profil ScreenFlow à ses états. Le profil ScreenFlow contient quatre stéréotypes : forme, éditerforme, sélectionliste et affichage. Ces stéréotypes déterminent le style de l’affichage des contenus dynamiques de la page générée. L’échantillon utilise les stéréotypes pour déterminer si le style de l’affichage est une forme éditable ou une liste sélectable et ainsi de suite. Si vous appliquez plus d’un stéréotype à un état, la transformation ne prend en compte que le premier stéréotype.

L’échantillon utilise également les propriétés des stéréotypes pour déterminer les données qui sont échangées au travers des pages JSP. La transformation génère une page JSP qui correspond à un état uniquement quand l’un des quatre stéréotypes est appliqué à l’état. Si les fichiers JSP existent déjà, la transformation ne les superpose pas lorsqu’elle est exécutée. Si vous voulez que la transformation superpose les fichiers, définissez la valeur de la propriété de la transformation superposer les fichiers de sorties sur vrai.

Le profil « ScreenFlow »

Le tableau suivant montre les stéréotypes dans le profile ScreenFlow et leurs propriétés. Les valeurs indiquées dans le tableau sont données à titre indicatif uniquement.

Stéréotype

Classe de base

Propriétés : Valeurs

Description

affichage
<<affichage>>
Etat entité : Contact
Champs : nom, adresse
Indique que la page JSP générée affiche les détails du contact : nom et adresse
Editeforme
<<éditeforme>>
Etat entité : Contact
Champs : nom, adresse
Indique que la page JSP générée contient une forme éditable dans laquelle un utilisateur peut entrer ou éditer les détails du contact : nom et adresse
forme
<<forme>>
Etat Champ : nom d’utilisateur Indique que la page JSP générée contient une forme pour entrer le nom d’utilisateur.
sélectionliste
<<sélectionliste>>
Etat entité : Contact
Champs : nom, adresse
Sélection de champ : Identifiant
Indique que la page JSP générée contient une liste de contacts qui peut être utilisée pour sélectionner un contact avec une identité spécifique.