3 namespace Drupal\Core\TypedData;
6 * Base class for complex data definitions.
8 abstract class ComplexDataDefinitionBase extends DataDefinition implements ComplexDataDefinitionInterface {
11 * An array of data definitions.
13 * @var \Drupal\Core\TypedData\DataDefinitionInterface[]
15 protected $propertyDefinitions;
20 abstract public function getPropertyDefinitions();
25 public function getPropertyDefinition($name) {
26 $definitions = $this->getPropertyDefinitions();
27 if (isset($definitions[$name])) {
28 return $definitions[$name];
35 public function getMainPropertyName() {
42 public function __sleep() {
43 // Do not serialize the cached property definitions.
44 $vars = get_object_vars($this);
45 unset($vars['propertyDefinitions']);
46 return array_keys($vars);