3 declare(strict_types=1);
39 private static $discriminatorClasses = [
40 'boolean' => BooleanAttributeModel::class,
41 'boolean-set' => BooleanSetAttributeModel::class,
42 'date' => DateAttributeModel::class,
43 'date-set' => DateSetAttributeModel::class,
44 'datetime' => DateTimeAttributeModel::class,
45 'datetime-set' => DateTimeSetAttributeModel::class,
46 'enum' => EnumAttributeModel::class,
47 'enum-set' => EnumSetAttributeModel::class,
48 'lenum' => LocalizableEnumAttributeModel::class,
49 'lenum-set' => LocalizableEnumSetAttributeModel::class,
50 'ltext' => LocalizableTextAttributeModel::class,
51 'ltext-set' => LocalizableTextSetAttributeModel::class,
52 'money' => MoneyAttributeModel::class,
53 'money-set' => MoneySetAttributeModel::class,
54 'number' => NumberAttributeModel::class,
55 'number-set' => NumberSetAttributeModel::class,
56 'reference' => ReferenceAttributeModel::class,
57 'reference-set' => ReferenceSetAttributeModel::class,
58 'text' => TextAttributeModel::class,
59 'text-set' => TextSetAttributeModel::class,
60 'time' => TimeAttributeModel::class,
61 'time-set' => TimeSetAttributeModel::class,
85 if (is_null($this->name)) {
87 $data = $this->
raw(self::FIELD_NAME);
91 $this->name = (string) $data;
103 if (is_null($this->type)) {
105 $data = $this->
raw(self::FIELD_TYPE);
106 if (is_null($data)) {
109 $this->type = (string) $data;
133 if (is_object($value) && isset($value->$fieldName)) {
135 $discriminatorValue = $value->$fieldName;
136 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
137 return self::$discriminatorClasses[$discriminatorValue];
140 if (is_array($value) && isset($value[$fieldName])) {
142 $discriminatorValue = $value[$fieldName];
143 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
144 return self::$discriminatorClasses[$discriminatorValue];
149 $type = AttributeModel::class;