Immer wieder taucht die Frage auf warum bei der Codegenerierung Klassen welche mit dependency Beziehungen verbunden wurden nicht als #include (C, C++), using (C#), import (Java), etc. auftauchen. Der Grund ist der, dass dies im Code-Template defaultmäßig nicht vorgesehen ist!
Die Codegenerierungs-Templates der verschiedenen Sprachen können allerdings angepasst werden!
Gehen wir von folgendem Beispiel aus, eine Klasse class1 hat eine gerichtete Assoziation zu der Klasse yourClass
und eine dependency zu der Klasse myClass.
Im Fall von Jave, C#, C++, etc. führt lediglich die Assoziation zu einem #include, import, using, etc.
Um nun auch andere Konnektoren in der Codegenerierung berücksichtigen zu können müssen lediglich die Codegenerierungs-Template Import und Import Section angepasst werden.
Template: Import
Achtung: Das Macro %importFileName% liefert ein Ergebnis, wenn für die referenzierte Klasse ein FileName vorhanden ist!!!
D.h. in den CodeGeneration Properties dieser Klasse steht der Pfad zum File.
Alternativ kann auch das Macro %importClassName% verwendet werden, dieses liefert allerdings lediglich den Namen der referenzierten Klasse!
Template: Import Section
Im Template ImportSection wird durch die Anweisung %list=“Import” @separator=“\n” importFromDependency==“T” % für jede an der Klasse ausgehenden Dependency das Template Import aufgerufen.
Achtung: wenn bei der Codegenerierung ein zusätzlicher Import angegeben wird, muss er der Syntax der generierten Programmiersprache entsprechen!
hi i have the same problem. I did this but doesn’t work. And it has been 7 years since your article.. Is there a revised solution for further versions?
Hi Ipek,
unfortunately, there is no out of the box template for this behavior. However, if you have still problems with adapting the template, write a mail to support @ sparxsystems . eu