Generierung von #include, using, import, etc. aus ‘dependencies’ bei der Codegenerierung

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.

Verwendung von Dependencies im Klassendiagramm um Imports zu generieren

Verwendung von Dependencies im Klassendiagramm um Imports zu generieren

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

Code Generierungs Template für das Importieren von Libraries

Code Generierungs Template für das Importieren von Libraries Template: Import Section"Imporet"Code Generierungs Template für

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

"Imporet"Code Generierungs Template für

"Imporet"Code Generierungs Template für

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!

Code Generation Dialog

Code Generation Dialog

Veröffentlicht unter Code-Generierung
Schlagworte: , , ,
2 comments on “Generierung von #include, using, import, etc. aus ‘dependencies’ bei der Codegenerierung
  1. ipek peskircioglu sagt:

    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?

  2. H.Kargl sagt:

    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