3 declare(strict_types=1);
33 private static $discriminatorClasses = [
34 'boolean' => AttributeBooleanTypeModel::class,
35 'date' => AttributeDateTypeModel::class,
36 'datetime' => AttributeDateTimeTypeModel::class,
37 'enum' => AttributeEnumTypeModel::class,
38 'lenum' => AttributeLocalizedEnumTypeModel::class,
39 'ltext' => AttributeLocalizableTextTypeModel::class,
40 'money' => AttributeMoneyTypeModel::class,
41 'nested' => AttributeNestedTypeModel::class,
42 'number' => AttributeNumberTypeModel::class,
43 'reference' => AttributeReferenceTypeModel::class,
44 'set' => AttributeSetTypeModel::class,
45 'text' => AttributeTextTypeModel::class,
46 'time' => AttributeTimeTypeModel::class,
64 if (is_null($this->name)) {
66 $data = $this->
raw(self::FIELD_NAME);
70 $this->name = (string) $data;
87 if (is_object($value) && isset($value->$fieldName)) {
89 $discriminatorValue = $value->$fieldName;
90 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
91 return self::$discriminatorClasses[$discriminatorValue];
94 if (is_array($value) && isset($value[$fieldName])) {
96 $discriminatorValue = $value[$fieldName];
97 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
98 return self::$discriminatorClasses[$discriminatorValue];
103 $type = AttributeTypeModel::class;