Details zum Beispiel für Modell-zu-Text-Umsetzungen

Dieses Beispiel enthält die folgenden Umsetzungen:
Umsetzung Beschreibung
Klasse-zu-Text > Konsole Diese Umsetzung akzeptiert eine UML-Klasse (Unified Modeling Language) als Quelle und erstellt für die Konsolsicht eine Beschreibung der Klasse, die den Namen der Klasse, die zugehörigen Attribute und Operationen, sowie die Parameter der Operationen enthält.
Klasse-zu-Text > Datei Diese Umsetzung entspricht der Umsetzung Klasse-zu-Text > Konsole, die Ergebnisse werden jedoch nicht in die Konsolsicht, sondern in eine Datei geschrieben.
Zustand-zu-JSP Diese Umsetzung akzeptiert eine Zustandsmaschine als Quelle und generiert eine JSP-Seite (JavaServer Pages) für jeden Zustand, der über ein Stereotyp aus dem Profil 'ScreenFlow' verfügt.
Führen Sie die Umsetzungen aus, und untersuchen Sie den Quellcode, um festzustellen, wie die Umsetzungen aufgebaut sind. Gehen Sie beim Lesen des Quellcodes wie folgt vor:
  • Werfen Sie zunächst einen Blick auf die Java-Klassen, die für die Implementierung der Regeln zuständig sind. Die Klassen sind in Paketen enthalten, deren Namen mit .rules enden.
  • Eine Gruppe von Regeln wird in einer oder mehreren Umsetzungen kombiniert. Die Umsetzungen werden von Java-Klassen in Paketen implementiert, deren Namen mit Umsetzungen enden. Es empfiehlt sich, zuerst den Code für die Umsetzungsklassen und dann den Code für die Rootumsetzungen zu lesen.
  • Werfen Sie abschließend einen Blick auf die Plug-in-Manifestdatei 'plugin.xml' und den Code für die Klasse 'TransformationProvider', um herauszufinden, wie Umsetzungen mit dem Umsetzungsservice verbunden sind.
Übergeordnetes Thema: Modell-zu-Text-Umsetzung

Klasse-to-Text-Umsetzung

Diese Umsetzung akzeptiert eine UML-Klasse, ein Paket oder ein Modell als Quelle und schreibt die Namen der Klassen, die zugehörigen Attribute und Operationen, sowie die Parameter der Operationen in die Konsolsicht oder in eine Datei. Wenn Sie ein Modell oder ein Paket als Quelle auswählen, schreibt die Umsetzung die Details für alle Klassen, die das Modell oder das Paket enthält.
Zu dieser Umsetzung gibt es zwei Varianten:
  1. Klasse-zu-Text > Konsole: Diese Umsetzung schreibt die Ausgabe in die Konsolsicht und benötigt kein Ziel. Diese Beispielumsetzung zeigt Ihnen, wie Sie die folgenden Aktionen ausführen können:
    • Einfache Regeln erstellen und diese in in einer oder mehreren Umsetzungen kombinieren
    • Einen Umsetzungsprovider erstellen
    • Eine Umsetzung und den zugehörigen Provider in der Plug-in-Manifestdatei 'plugin.xml' beschreiben
  2. Klasse-zu-Text > Konsole: Diese Umsetzung schreibt die Ausgabe in eine Datei und benötigt ein Projekt als Ziel. Standardmäßig wird dabei im angegeben Projekt eine Datei namens 'class2text.txt' im Ordner 'ClassToTextOutput' erstellt. Der Standardname der Datei kann mit Hilfe der Umsetzungseigenschaft 'Zieldateiname' geändert werden. Diese Beispielumsetzung zeigt Ihnen, wie Sie die folgenden zusätzlichen Aktionen ausführen können:
    • Die Umsetzungseigenschaften in der Plug-in-Manifestdatei 'plugin.xml' beschreiben
    • Die Umsetzungseigenschaften innerhalb einer Regel bearbeiten

Zustand-zu JSP-Umsetzung

Diese Umsetzung akzeptiert einen UML-Zustand in einer Zustandsmaschine als Quelle und generiert eine Webseite in Form einer JSP-Datei unter Verwendung von Java Emitter Templates (JET). Wenn Sie eine Zustandsmaschine oder eine Region als Quelle auswählen, generiert die Umsetzung eine JSP-Datei für jeden Zustand in der Zustandsmaschine oder Region, auf den ein Stereotyp aus dem Profil 'ScreenFlow' angewendet wurde.

Diese Beispielumsetzung zeigt Ihnen, wie Sie die folgenden Aktionen ausführen können:

  • Stereotypen und Schlüsselwörter zum selektiven Auslösen von Regeln verwenden
  • JET-Funktionalität und die Umsetzung zur Generierung von Text kombinieren

Zur Vorbereitung der Zustandsmaschine (Quelle) auf die Umsetzung müssen Sie das Profil 'ScreenFlow' auf das UML-Modell anwenden, das die Zustandsmaschine enthält. Dann müssen Sie die Zustandsmaschine formatieren, indem Sie die Stereotype aus dem Profil 'ScreenFlow' auf die Zustände anwenden. Das Profil 'ScreenFlow' enthält vier Stereotype: 'form', 'editform', 'selectlist' und 'display'. Über diese Stereotype wird die Anzeigedarstellung des dynamischen Inhalts der generierten Seite festgelegt. Das Beispiel legt anhand der Stereotype fest, ob zur Anzeigedarstellung beispielsweise ein editierbares Formular oder eine auswählbare Liste verwendet wird. Wenn Sie mehrere Stereotype auf einen Zustand anwenden, wird von der Umsetzung nur das erste Stereotyp berücksichtigt.

Darüber hinaus stellt das Beispiel anhand der Eigenschaften der Stereotype fest, welche Daten über die JSP-Seiten ausgetauscht werden. Die Umsetzung generiert nur dann eine JSP-Seite, die einem Zustand entspricht, wenn eines der vier Stereotype auf den Zustand angewendet wird. Wenn die JSP-Dateien bereits vorhanden sind, werden diese bei Ausführung der Umsetzung nicht überschrieben. Zum Überschreiben der Dateien können Sie den Wert für die Umsetzungseigenschaft 'Ausgabedateien überschreiben' auf true setzen.

Profil 'ScreenFlow'

In der folgenden Tabelle sind die Stereotype im Profil 'ScreenFlow' sowie die zugehörigen Eigenschaften aufgelistet. Die Werte in der Tabelle dienen lediglich zu Darstellungszwecken.

Stereotyp Basisklasse Eigenschaften:Werte Beschreibung
«display» Zustand Entität:Felder für Kontaktinformationen:Name, Adresse Gibt an, dass die generierte JSP-Seite die Kontaktinformationen (Name und Adresse) anzeigt.
«editform» Zustand Entität:Felder für Kontaktinformationen:Name, Adresse Gibt an, dass die generierte JSP-Seite ein editierbares Formular enthält, in dem der Benutzer die Kontaktinformationen (Name und Adresse) angeben oder ändern kann.
«form» Zustand Felder:Benutzername Gibt an, dass die generierte JSP-Seite ein Formular zur Eingabe des Benutzernamens enthält.
«selectlist» Zustand Entität:Felder für Kontaktinformationen:Name, Adresse Feld auswählen:ID Gibt an, dass die generierte JSP-Seite eine Liste mit Ansprechpartnern enthält, in der Sie einen Ansprechpartner mit einer bestimmten ID auswählen können.

Feedback