Verbesserung
Wichtig
Detail
Detail
Bei der Anlagen eines Objekte kann der Kontext mitgegeben werden.
new(`my.module:MyType`, context: $context)
Der Kontext sollte dabei dem "geplanten" Container des Objektes entsprechen und kann bei der Initialisierung von kontextabhängigen Default-Werten verwendet werden.
Bei persistenten Objekten wird der Container danach anhand der Kompositionsbeziehung berechnet, in die das neue Objekt schließlich eingefügt wird. Möchte man transiente Objekte gemischt mit persistenten Objekten in einer Ansicht verwenden (z.B. um transient Gruppierungsknoten einzufügen), so kann es hilfreich sein, wenn man den Container eines transienten Objektes frei bestimmen kann (insbesondere auch zu einem persistenten Objekt, obwohl ein transientes Objekt nie in eine Kompositionsreferenz eines persistenten Objektes eingefügt werden kann). Eine Funktion, die den Parent-Knoten eines Objektes ausrechnet kann dann die generische tContainer() Funktion verwenden, ohne zwischen transienten und persistenten Objekten unterscheiden zu müssen.
Test
In der Script-Konsole ausführen, es muss true liefern:
new(`DemoPlain:B`, transient: true, context: currentUser()).container() != null || throw("Missing container.")