Strana 41 z 55
12 Generování kódu z modelu
Veškeré implementační třídy modelovaných entit se vygenerují jedním příkazem ve
Workspace:
(DMEntityBuilder new initFromFileNamed: 'c:\temp\DecisionMaker.xml'; transformEntityClassesWithPrefixPlain: 'DM') do: [:umlClass | (UMLClassCompiler new: umlClass) createInSmalltalk. ].
viz též obrázek 27.
Výsledné vygenerované třídy jsou zobrazeny v System Browseru na obrázku 28
Obrázek 27: Spuštění transformace modelu na implementační třídy v prostředí
Pharo.
Prvotní zakomponování vygenerovaného kódu do aplikace se provede doplněním
zdrojového kódu medody renderSidebarOn: třídy DMMain, která slouží pro zobrazení
menu aplikace.
Úprava viz níže:
renderSidebarOn: canvas canvas div id: 'sidebar'; class: 'section'; with: [ canvas heading level2; with: DMTexts MENU. canvas anchor callback: [ mainArea := DMHome new ]; with: DMTexts HOME. canvas break . canvas anchor callback: [ mainArea := DMModelCRUD new ]; with: (DMModelTexts labelFor: #Models). "========= call GENERATED classes ========" canvas break . canvas anchor callback: [ mainArea := DXEquationCRUD new ]; with: (DXEquationTexts labelFor: #Instances). canvas break . canvas anchor callback: [ mainArea := DXVariableCRUD new ]; with: (DXVariableTexts labelFor: #Instances). canvas break . canvas anchor callback: [ mainArea := DXParamGroupCRUD new ]; with: (DXParamGroupTexts labelFor: #Instances). canvas break . canvas anchor callback: [ mainArea := DXParameterCRUD new ]; with: (DXParameterTexts labelFor: #Instances). "======== /call GENERATED classes ========" ]; yourself.
Obrázek 28: Zobrazení vygenerovaných implementačních tříd v System Browseru.
Výsledná aplikace po doplnění generovaných částí je zobrazena na obrázku 29.
Takto vytvořená aplikace bude pochopitelně dále upravována v rámci dalších
vývojových iterací. Pokud to bude vyhodnoceno jako efektivní, může být opět
použito generování - zejména pokud by se významně změnil výchozí doménový
model a zároveň objem ručně provedených zásahů do generovaných tříd by byl minimální.
Obrázek 29: Vzhled aplikace po doplnění generovaných částí.
V každém případě je však potřeba tento postup pokaždé zvažovat s ohledem
na očekávané přínosy v porovnání s vynaloženou prací.