Wichtig
#26716
WrapperGenerator: Ableitung von StructuredElement nicht für alle Klassen eines Moduls
Eine generierte Fach-Klasse soll nur dann von tl:StructuredElement ableiten, wenn es ihr Modell-Pendant auch tut - nicht alle Klassen in einem Modul, das zufälligerweise ein Singleton definiert.
Weiteres Problem: In der Factory eines Module werden Root-Lookup-Methoden nur genau für ein Singleton mit Namen "ROOT" generiert, nicht für alle Singletons.
Code-Migration
Das für einen Typ A` generiertes Basis-Interface `ABase mit den Property-Implementierungen wird in das Implementations-Package verschoben. Daher müssen am besten vor dem nächsten Neu-Generieren alle *Base-Interfaces im Interface-Package in der Entwicklungsumgebung in das Implementierungspackage verschoben werden, um dieses Refactoring auf den restlichen Code automatisch anzuwenden.
Achtung: Wenn man das Refactoring vor der nächsten Generierung nicht durchführt, erhält man nach der Generierung u.U. Compile-Fehler, weil die generierten Templates bei der Neu-Generierung nicht angepasst werden.
Die typisierten Lookup-Methoden für ROOT-Singletons heißen jetzt getRootSingleton(). Die generische Methode getRoot() ist deprecated.
Test
- test.com.top_logic.element.model.generate.TestWrapperGenerator
- Module mit Singleton mit einem anderen Namen als "ROOT" und Klasse, die nicht von StructuredElement ableitet, erzeugen und Wrapper generieren.
- Der generierte Code darf keine Fehler aufweisen.