commercetools-sdk-php-v2  master
The platform, import-api and ml-api PHP sdks generated from our api reference.
AttributeTypeModel.php
1 <?php
2 
3 declare(strict_types=1);
10 
15 use stdClass;
16 
20 final class AttributeTypeModel extends JsonObjectModel implements AttributeType
21 {
22  public const DISCRIMINATOR_VALUE = '';
27  protected $name;
28 
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,
47  ];
48 
52  public function __construct(
53  ?string $name = null
54  ) {
55  $this->name = $name;
56  }
57 
62  public function getName()
63  {
64  if (is_null($this->name)) {
66  $data = $this->raw(self::FIELD_NAME);
67  if (is_null($data)) {
68  return null;
69  }
70  $this->name = (string) $data;
71  }
72 
73  return $this->name;
74  }
75 
76 
77 
78 
79 
84  public static function resolveDiscriminatorClass($value): string
85  {
87  if (is_object($value) && isset($value->$fieldName)) {
89  $discriminatorValue = $value->$fieldName;
90  if (isset(self::$discriminatorClasses[$discriminatorValue])) {
91  return self::$discriminatorClasses[$discriminatorValue];
92  }
93  }
94  if (is_array($value) && isset($value[$fieldName])) {
96  $discriminatorValue = $value[$fieldName];
97  if (isset(self::$discriminatorClasses[$discriminatorValue])) {
98  return self::$discriminatorClasses[$discriminatorValue];
99  }
100  }
101 
103  $type = AttributeTypeModel::class;
104  return $type;
105  }
106 }