Die GeneSEZ Workflow Komponenten sind Wrapper um die Workflow Komponenten von openArchitectureWare um deren Handhabung einfach zu gestalten und für einige Einstellungen Standardwerte bereitzustellen. Die allgemein nutzbaren Workflow Komponenten sind im Package de.genesez.platforms.common.workflow enthalten, die in anderen Plattform-Projekten spezialisiert werden können. Dies Betrifft insbesondere den Generator zur Ausführung von Modell-zu-Text Transformationen.
Unbedingt erforderliche Parameter werden fett dargestellt und als erste aufgeführt. Parameter die mehrmals angegeben werden können sind mit multi-value gekennzeichnet, Parameter die nur einmal angegeben werden können mit single-value. Bei Parametern mit Standardwerten sind die Standardwerte mit angegeben.
Diese Workflow Komponente dient zur Ausführung der gleichnamigen UML-zu-GeneSEZ Transformation. Diese Transformation besteht aus folgenden Schritten:
Einlesen eines UML Modells (Eclipse UML2 kompatibles XMI Format)
Validieren des UML Modells um die Transformation in ein GeneSEZ Modell sicherzustellen
Transformation des UML Modells in ein GeneSEZ Modell
Dabei sind folgende Parameter möglich:
der Dateiname inklusive des Dateipfades zur UML Modell Datei
dient zur Angabe von UML Profilen, die zusätzlich zum UML2 Metamodell als Metamodell registriert werden. Hiermit müssen alle bei der Modellierung verwendeten UML Profile angegeben werden, sofern sie in eigenständigen Dateien hinterlegt sind und nicht in der UML Modell Datei.
ein boolscher Wert der angibt, ob Validierungsfehler des UML Modells die Transformation beenden oder nicht.
kann genutzt werden um ein UML Package im UML Modell mit qualifiziertem Namen anzugeben, welches bei der UML-zu-GeneSEZ Transformation ausgeschlossen werden soll.
hat die gleiche Bedeutung wie exclude package mit dem Unterschied das als Wert eine Komma separierte Liste mit UML Packages angegeben werden kann.
gibt an ob Classifier die direkt im Wurzel-Element des UML Modells abgelegt sind in externe Typen des GeneSEZ Modells transformiert werden.
wird genutzt um UML Packages mit qualifiziertem Namen anzugeben die als Container für externe Typen genutzt werden. Diese UML Packages werden dann nicht in GeneSEZ Packages transformiert und alle enthaltenen Classifier werden in externe Typen transformiert.
hat die gleiche Bedeutung wie external package mit dem Unterschied das als Wert eine Komma separierte Liste mit UML Packages angegeben werden kann.
wird genutzt um Namen von UML Stereotypen anzugeben, die entweder Classifier als externe Typen im UML Modell markieren oder aber UML Packages, die als Container für externe Typen dienen.
hat die gleiche Bedeutung wie external stereotype mit dem Unterschied das als Wert eine Komma separierte Liste mit Namen von Stereotypen angegeben werden kann.
dient zur Angabe von Check-Skripten die zur Validierung des UML Modells genutzt werden.
dient zur Angabe einer Skript-Funktion welche die UML-zu-GeneSEZ Transformation durchführt. Siehe auch uml slot.
dient zur Angabe des Namens des Slots, welcher das instanziierte UML Modell speichert.
dient zur Angabe des Names des Slots auf welchem das erstellte GeneSEZ Modell gespeichert wird.
Wird zur Überprüfung von GeneSEZ Modellen mit Hilfe eines Check-Skriptes eingesetzt. Folgende Parameter können verwendet werden:
wird genutzt um mind. 1 Check-Skript anzugeben welches genutzt wird um das GeneSEZ Modell zu validieren.
hat die gleiche Bedeutung wie script mit dem Unterschied das als Wert eine Komma separierte Liste mit Check-Skripten angegeben werden kann.
kann genutzt werden um den Transformations-Lauf nicht abzubrechen wenn das Check Skript Fehler meldet. Standardmäßig wird abgebrochen.
kann genutzt werden um den Name des Slots zu setzen, welches das zu validierende Modell beinhaltet.
Zusätzlich stehen die Parameter der CheckComponent von openArchitectureWare bereit. Hierzu zählt u.a. warnIfNothingChecked das standardmäßig auf false steht. Auf true gesetzt bewirkt es das eine Warnung in dem Workflow Log erscheint, wenn das Check Skript keine Modellelemente überprüft hat.
Wird zur Serialisierung von instanziierten GeneSEZ Modellen in eine Datei genutzt. Es können folgende Parameter angegeben werden:
dient zur Angabe der Datei in welcher ein instanziiertes Modell gespeichert wird.
dient zur Angabe des Names des Slots welches das zu serialisierende GeneSEZ Modell beinhaltet.
Weiterhin können die Parameter der Writer Komponente von openArchitectureWare angegeben werden.
Die boolesche Option OPTION_SCHEMA_LOCATION_IMPLEMENTATION standardmäßig auf false gesetzt um die serialisierten Dateien auch mit dem Sample Reflective Ecore Model Editor öffnen zu können.
Die boolesche Option cloneSlotContents kann genutzt werden um instanziierte Modelle, die bereits mit einer Ressource verbunden sind (also bereits serialisiert sind) noch einmal in eine andere Datei zu serialisieren.
Weitere boolesche Optionen sind: multipleResourcesInCaseOfList, OPTION_SCHEMA_LOCATION, useSingleGlobalResourceSet
Der Generator dient zur Ausführung von Modell-zu-Text Transformationen. Die folgenden Parameter werden angebogen, jedoch ist es von der durch template spezifizierten Modell-zu-Text Transformation abhängig, welche Parameter tatsächlich von der Transformation genutzt werden. Normalerweise sollte der Generator als Basisklasse für Modell-zu-Text Transformationen genutzt werden.
dient zur Angabe des XPand Templates sowie dem Namen des Define-Blockes, welcher zur Modell-zu-Text Transformation aufgerufen wird.
dient zur Angabe des Verzeichnisses welches den generierten Quellcode enthält bzw. enthalten soll. Ist das Verzeichnis nicht vorhanden, wird es erstellt.
dient zur Angabe des Verzeichnisses welches Quellcode mit Protected Regions enthält die in der aktuellen Transformation erhalten werden sollen.
dient zur Angabe der Type-Mapping Dateien, welche bei der Modell-zu-Text Transformation genutzt werden sollen.
kann genutzt werden um ein Package anzugeben welches als Basis für die Modell-zu-Text Transformation genutzt wird. Alles wird dann in dieses Package generiert.
hiermit kann angegeben werden das der Name des Modell-Elementes (das Wurzel-Element des GeneSEZ Modells) als base package verwendet werden soll.
dient zur Angabe das einzeilige Kommentare generiert werden, welche den Quellcode in Bereiche untergliedern.
spezifiziert eine Komma- separierte Liste mit Namen von Stereotypen welche die Generierung von Get- und Set- Methoden implizieren
dient zur Angabe des Namens des Stereotyps accessor. Standardwert ist der Name des Stereotyps im GeneSEZ UML Profil. Wird ein anderer Name angegeben, muss dieser Stereotyp mindestens über die gleichen Tags des Stereotyps accessor aus dem GeneSEZ Profil verfügen (sofern die Auswertungslogik für Zugriffsfunktionen nicht ersetzt/erweitert wird).
hiermit kann festgelegt werden, das Attribute immer mit der Sichtbarkeit private generiert werden und die zugewiesene Sichtbarkeit der Attribute für die Zugriffsfunkionen (Getter und Setter) verwendet wird.
dient zur Angabe von GeneSEZ Packages per qualifizierten Namen, die bei der Modell-zu-Text Transformation ausgeschlossen werden sollen.
hat die gleiche Bedeutung wie exclude package mit dem Unterschied das als Wert eine Komma separierte Liste mit qualifizierten Namen von GeneSEZ Packages angegeben werden kann.
dient zur Angabe von XPand Templates mit Around Anweisung mit deren Hilfe Advices für Template-Define-Anweisungen definiert werden.
hat die gleiche Bedeutung wie aspect template mit dem Unterschied das als Wert eine Komma separierte Liste mit XPand-Templates angegeben werden kann.
dient zur Angabe von XTend Skripten around Anweisung mit deren Hilfe Advices für XTend Funktionen definiert werden.
hat die gleiche Bedeutung wie aspect script mit dem Unterschied das als Wert eine Komma separierte Liste mit XTend-Skripten angegeben werden kann.
dient zur Angabe des Names des Slots welcher das GeneSEZ Modell für die Modell-zu-Text Transformation beinhaltet.
dient zur Angabe von Auschlüssen von Dateien und Verzeichnissen, welche keine Protected Regions enthalten.
hiermit können die Standard Datei-Ausschlüsse für den Protected Region Resolver definiert werden. Welche genau dazu gehören verrät die openArchitectureWare Dokumentation. Alle Dateien mit diesen Endungen werden nicht auf Protected Regions hin überprüft.
dient zur Angabe der Kodierung der Templates.
Weiterhin besitzt der Generator alle Parameter der XPand-Generator Komponente von openArchitectureWare.