Detail
Fehlerbehebung
Wichtig
Verbesserung
Beschreibung
Analog #27530: Aktuell kann man instanceof() nur auf einem Typ-Literal ausführen. In manchen Situationen würde man aber trotzdem gerne prüfen (filtern), ob ein Objekt eine Instanz einer Typvariable (z.B. eines gewählten Typs) ist.
$object.instanceOf($selectedType)
Workaround
Man kann den Typ der Objektinstanz ermitteln und prüfen, ob dieser Typ der Typvariablen entspricht oder in deren Unterklassen enthalten ist:
{ instanceof = obj -> type -> $obj.type().recursion(t -> $t.get(`tl.model:TLClass#generalizations`)).containsElement($type); $instanceof(new(`DemoTypes:P`, transient:true), `DemoTypes:DemoTypes.All`) }
Test
- com.top_logic.model.search/src/test/java/test/com/top_logic/model/search/expr/TestSearchExpression.java