Umsetzungsdetails für das Beispiel Modell-in-Text

Dieses Beispiel enthält die folgenden drei Umsetzungen:

Umsetzung

Beschreibung

Klasse in Text -> Konsole Bei dieser Umsetzung dient eine UML-Klasse als Quelle. Eine Beschreibung der Klasse (Name der Klasse, zugehörige Attribute und Operationen mit den Parametern für die Operationen) wird in die Konsolsicht geschrieben.
Klasse in Text -> Datei Diese Umsetzung entspricht der Umsetzung Klasse in Text -> Konsole. Das Ergebnis wird aber in eine Datei und nicht in die Sicht 'Konsole' geschrieben.
Zustand in JSP Bei dieser Umsetzung dient eine Zustandsmaschine als Quelle. Für jeden Zustand, der ein Stereotyp aus dem Profil "ScreenFlow" hat, wird eine JSP-Seite erzeugt.

Um genauer zu verstehen, wie die Umsetzungen funktionieren, sollten Sie die Umsetzungen ausführen und den Quellcode untersuchen. Beim Lesen des Quellcodes sollten Sie diese Richtlinien beachten:

  • Sehen Sie sich zuerst die Java-Klassen an, die die Regeln implementieren. Die Klassen befinden sich in Paketen mit der Endung .rules.
  • Eine Gruppe von Regeln wird in eine oder mehrere Umsetzungen kombiniert. Die Umsetzungen werden von Java-Klassen in Paketen mit der Endung .transforms implementiert. Es empfiehlt sich, zuerst den Code der transform-Klassen und dann den Code für die root transforms zu lesen.
  • Sehen Sie sich schließlich noch die Plug-in-Manifestdatei plugin.xml und den Code für die Klasse TransformationProvider an, um zu verstehen, wie die Umsetzungen mit den Umsetzungsservices zusammenhängen.

Umsetzung Klasse in Text

Bei dieser Umsetzung dient eine UML-Klasse, ein Paket oder ein Modell als Quelle. Die Namen der Klassen, ihrer Attribute und Operationen und die Parameter der Operationen werden entweder in die Sicht 'Konsole' oder in eine Datei geschrieben. Wenn Sie ein Modell oder ein Paket als Quelle auswählen, schreibt die Umsetzung die Details aller im Modell oder Paket enthaltenen Klassen in die Konsole.

Es gibt zwei Arten dieser Umsetzung:

  1. Klasse in Text > Konsole: Bei dieser Umsetzung wird die Ausgabe in die Sicht 'Konsole' geschrieben. Es wird kein Ziel benötigt.

    Diese Beispielumsetzung zeigt Ihnen, wie man Folgendes macht:

    • Einfache Regeln erstellen und zu einer oder mehreren Umsetzungen kombinieren
    • Einen Umsetzungsprovider erstellen
    • Eine Umsetzung und ihren Provider in der Plug-in-Manifestdatei plugin.xml beschreiben

  2. Klasse in Text > Datei: Bei dieser Umsetzung wird die Ausgabe in eine Datei geschrieben. Es wird ein Projekt als Ziel benötigt. Standardmäßig wird eine Datei mit dem Namen class2text.txt im Ordner ClassToTextOutput im von Ihnen angegebenen Projekt erstellt. Sie können den Standardnamen der Datei mit der Umsetzungseigenschaft Name der Zieldatei ändern.

    Diese Beispielumsetzung zeigt Ihnen, wie man zusätzlich Folgendes macht:

    • Die Umsetzungseigenschaften in der Plug-in-Manifestdatei plugin.xml beschreiben
    • Die Umsetzungseigenschaften innerhalb einer Regel ändern

Umsetzung Zustand in JSP

Bei dieser Umsetzung dient ein UML-Zustand auf einer Zustandsmaschine als Quelle. Mit JETs (Java Emitter Templates) wird eine Webseite in der Form einer JSP-Datei erzeugt. Wenn Sie eine Zustandsmaschine oder eine Region als Quelle auswählen, wird bei der Umsetzung eine JSP-Datei für jeden Zustand in der Zustandsmaschine oder der Region erzeugt, auf den das Profil "ScreenFlow" angewendet wurde.

Diese Beispielumsetzung zeigt Ihnen, wie man Folgendes macht:

  • Stereotype und Schlüsselwörter verwenden, um Regeln selektiv auszulösen
  • JET-Funktionalität und die Umsetzung zum Generieren von Text kombinieren

Um die Quellenzustandsmaschine für die Umsetzung vorzubereiten, müssen Sie das Profil "ScreenFlow" auf das UML-Modell anwenden, das die Zustandsmaschine enthält, und die Zustandsmaschine markieren, indem Sie die Stereotype im Profil "ScreenFlow" auf ihre Zustände anwenden. Das Profil "ScreenFlow" enthält vier Stereotype: form, editform, selectlist und display. Diese Stereotype legen den Darstellungsstil von dynamischen Inhalten auf der generierten Seite fest. Im Beispiel werden die Stereotype verwendet, um festzustellen, ob es sich beim Darstellungsstil um eine bearbeitbare Maske oder eine Auswahlliste oder Ähnliches handelt. Wenn Sie auf einen Zustand mehrere Stereotype anwenden, wird bei der Umsetzung nur das erste Stereotyp berücksichtigt.

In diesem Beispiel werden die Eigenschaften der Stereotype auch zur Bestimmung der Daten verwendet, die durch die JSP-Seiten ausgetauscht werden. Bei der Umsetzung wird nur dann eine JSP-Seite generiert, die einem Zustand entspricht, wenn eins der vier Stereotype auf den Zustand angewendet wird. Vorhandene JSP-Dateien werden bei der Ausführung der Umsetzung nicht überschrieben. Wenn Sie den Wert der Umsetzungseigenschaft zum Überschreiben von Ausgabedateien auf Wahr ändern, werden die Dateien bei der Umsetzung überschrieben.

Profil "ScreenFlow"

Die folgende Tabelle zeigt die Stereotype im Profil "ScreenFlow" mit ihren Eigenschaften. Die Werte in der Tabelle dienen nur zur Veranschaulichung.

Stereotyp

Basisklasse

Eigenschaften:Werte

Beschreibung

display
<<display>>
State entity:Contact
fields:name, address
Die generierte JSP-Seite zeigt die Kontaktinformationen Name und Adresse an.
editform
<<editform>>
State entity:Contact
fields:name, address
Die generierte JSP-Seite enthält eine Bearbeitungsmaske, in der der Benutzer die Kontaktinformationen Name und Adresse eingeben oder ändern kann.
form
<<form>>
State fields:userName Die generierte JSP-Seite enthält eine Maske zur Eingabe des Benutzernamens.
selectlist
<<selectlist>>
State entity:Contact
fields:name, address
selectfield:id
Die generierte JSP-Seite enthält eine Liste mit Kontakten, aus der ein Kontakt mit einer bestimmten ID ausgewählt werden kann.