isCompatibleValue($value, $target)
Prüft ob ein Wert value mit einem Zieltyp target kompatibel ist. Dabei kann target ein Objekttyp (my.module:MyClass), ein Attributtyp (my.module:MyClass#attribute) oder ein primitiver Typ (z.B. `tl.core:String`) sein. Bei Attributtypen werden zusätzlich die definierten Bedingungen wie Pflichtfeld (mandatory) und Mehrfachwerte (multiple) berücksichtigt. Value kann ein einzelner Wert oder eine Sammlung sein. Bei Sammlungen wird überprüft, ob alle enthaltenen Elemente mit dem Zieltyp kompatibel sind.
| Name | Typ | Beschreibung | Pflicht | Default |
|---|---|---|---|---|
| value | Any | Der zu prüfende Wert, kann ein einzelner Wert oder eine Sammlung sein. | ja | |
| target | Typ | Der Zieltyp, mit dem der Wert kompatibel sein soll. Kann ein Objekttyp (z.B. my.module:MyClass), ein Attributtyp (z.B. my.module:MyClass#attribute) oder ein primitiver Typ (String, Double, Boolean, etc.) sein. |
ja |
Typ: Wahrheitswert
true wenn der Wert im angegebenen Zieltyp verwendbar ist. Das bedeutet konkret:
// Prüfung von Zahlen mit verschiedenen Typen
isCompatibleValue(123, `tl.core:Integer`) // true
isCompatibleValue(123.99, `tl.core:Double`) // true
// Prüfung von Text
isCompatibleValue("test", `tl.core:String`) // true
isCompatibleValue("123", `tl.core:Integer`) // false
// Prüfung von Wahrheitswerten
isCompatibleValue(true, `tl.core:Boolean`) // true
// Prüfung von Objekten
{
objektB = all(`test.isCompatibleValue:B`).firstElement();
isCompatibleValue($objektB, `test.isCompatibleValue:B`); // true - Objekt passt zum eigenen Typ
}
// Prüfung von Listen
isCompatibleValue([123, 456], `tl.core:Integer`) // true - alle Elemente sind kompatibel
// Prüfung mit Attributen (nicht-Pflichtfeld, mehrere Werte erlaubt)
{
objektB = all(`test.isCompatibleValue:B`).firstElement();
isCompatibleValue([$objektB], `test.isCompatibleValue:A#nonMandatoryMultipleClassB`); // true
}
// Prüfung mit Attributen (Pflichtfeld, nur ein Wert erlaubt)
{
objektB = all(`test.isCompatibleValue:B`).firstElement();
isCompatibleValue($objektB, `test.isCompatibleValue:A#mandatoryNonMultipleClass`); // true
isCompatibleValue(null, `test.isCompatibleValue:A#mandatoryNonMultipleClass`); // false - null ist bei Pflichtfeld nicht erlaubt
}