Chapter 5. GeneSEZ Workflow Komponenten

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.

5.1. Allgemeine Workflow Komponenten

5.1.1. Uml2GeneSEZ

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:

model

der Dateiname inklusive des Dateipfades zur UML Modell Datei

profile, multi-value

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.

ignoreValidationErrors, single-value, Standard: false

ein boolscher Wert der angibt, ob Validierungsfehler des UML Modells die Transformation beenden oder nicht.

excludePackage, multi-value, Standard: UML Standard Profile

kann genutzt werden um ein UML Package im UML Modell mit qualifiziertem Namen anzugeben, welches bei der UML-zu-GeneSEZ Transformation ausgeschlossen werden soll.

excludePackages, multi-value, Standard: UML Standard Profile

hat die gleiche Bedeutung wie exclude package mit dem Unterschied das als Wert eine Komma separierte Liste mit UML Packages angegeben werden kann.

mapClassesInModelToExternal, single-value, Standard: false

gibt an ob Classifier die direkt im Wurzel-Element des UML Modells abgelegt sind in externe Typen des GeneSEZ Modells transformiert werden.

externalPackage, multi-value

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.

externalPackages, multi-value

hat die gleiche Bedeutung wie external package mit dem Unterschied das als Wert eine Komma separierte Liste mit UML Packages angegeben werden kann.

externalStereotype, multi-value, Standard: external

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.

externalStereotypes, multi-value

hat die gleiche Bedeutung wie external stereotype mit dem Unterschied das als Wert eine Komma separierte Liste mit Namen von Stereotypen angegeben werden kann.

umlCheckScript, multi-value, Standard: de::genesez::adapter::uml2::uml2constraints

dient zur Angabe von Check-Skripten die zur Validierung des UML Modells genutzt werden.

uml2GenesezScriptCall, single-value, Standard: de::genesez::adapter::uml2::uml2genesez::transform(uml2model)

dient zur Angabe einer Skript-Funktion welche die UML-zu-GeneSEZ Transformation durchführt. Siehe auch uml slot.

umlSlot, single-value, Standard: uml2model

dient zur Angabe des Namens des Slots, welcher das instanziierte UML Modell speichert.

slot, single-value, Standard: genesezModel

dient zur Angabe des Names des Slots auf welchem das erstellte GeneSEZ Modell gespeichert wird.

5.1.2. Validator

Wird zur Überprüfung von GeneSEZ Modellen mit Hilfe eines Check-Skriptes eingesetzt. Folgende Parameter können verwendet werden:

script, multi-value

wird genutzt um mind. 1 Check-Skript anzugeben welches genutzt wird um das GeneSEZ Modell zu validieren.

scripts, multi-value

hat die gleiche Bedeutung wie script mit dem Unterschied das als Wert eine Komma separierte Liste mit Check-Skripten angegeben werden kann.

abortOnError, single-value, Standard: true

kann genutzt werden um den Transformations-Lauf nicht abzubrechen wenn das Check Skript Fehler meldet. Standardmäßig wird abgebrochen.

slot, single-value, Standard: genesezModel

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.

5.1.3. Serializer

Wird zur Serialisierung von instanziierten GeneSEZ Modellen in eine Datei genutzt. Es können folgende Parameter angegeben werden:

file, single-value

dient zur Angabe der Datei in welcher ein instanziiertes Modell gespeichert wird.

slot, single-value, Standard: genesezModel

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

5.1.4. Generator

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.

template, single-value

dient zur Angabe des XPand Templates sowie dem Namen des Define-Blockes, welcher zur Modell-zu-Text Transformation aufgerufen wird.

outputDir, single-value

dient zur Angabe des Verzeichnisses welches den generierten Quellcode enthält bzw. enthalten soll. Ist das Verzeichnis nicht vorhanden, wird es erstellt.

proRegDir, single-value, Standard: Wert von outputDir

dient zur Angabe des Verzeichnisses welches Quellcode mit Protected Regions enthält die in der aktuellen Transformation erhalten werden sollen.

typeMappingFile, multi-value

dient zur Angabe der Type-Mapping Dateien, welche bei der Modell-zu-Text Transformation genutzt werden sollen.

basePackage, single-value

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.

useModelNameAsBasePackage, single-value, Standard: false

hiermit kann angegeben werden das der Name des Modell-Elementes (das Wurzel-Element des GeneSEZ Modells) als base package verwendet werden soll.

generateSectionComments, single-value, Standard: true

dient zur Angabe das einzeilige Kommentare generiert werden, welche den Quellcode in Bereiche untergliedern.

accessorsForStereotypes, optional, single-value, Standard: entity

spezifiziert eine Komma- separierte Liste mit Namen von Stereotypen welche die Generierung von Get- und Set- Methoden implizieren

accessorStereotype, optional, single-value, Standard: accessor

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).

usePropertyVisibilityForAccessors, single-value, Standard: false

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.

excludePackage, multi-value

dient zur Angabe von GeneSEZ Packages per qualifizierten Namen, die bei der Modell-zu-Text Transformation ausgeschlossen werden sollen.

excludePackages, multi-value, Standard: UML Standard Profile

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.

aspectTemplate, multi-value

dient zur Angabe von XPand Templates mit Around Anweisung mit deren Hilfe Advices für Template-Define-Anweisungen definiert werden.

aspectTemplates, multi-value

hat die gleiche Bedeutung wie aspect template mit dem Unterschied das als Wert eine Komma separierte Liste mit XPand-Templates angegeben werden kann.

aspectScript, multi-value

dient zur Angabe von XTend Skripten around Anweisung mit deren Hilfe Advices für XTend Funktionen definiert werden.

aspectScripts, multi-value

hat die gleiche Bedeutung wie aspect script mit dem Unterschied das als Wert eine Komma separierte Liste mit XTend-Skripten angegeben werden kann.

slot, single-value, Standard: genesezModel

dient zur Angabe des Names des Slots welcher das GeneSEZ Modell für die Modell-zu-Text Transformation beinhaltet.

prExcludes, single-value, Standard: .svn

dient zur Angabe von Auschlüssen von Dateien und Verzeichnissen, welche keine Protected Regions enthalten.

prDefaultExcludes, single-value, Standard: false

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.

fileEncoding, single-value, Standard: utf-8

dient zur Angabe der Kodierung der Templates.

Weiterhin besitzt der Generator alle Parameter der XPand-Generator Komponente von openArchitectureWare.