diff --git a/core/lib/Drupal/Core/Entity/ContentEntityBase.php b/core/lib/Drupal/Core/Entity/ContentEntityBase.php index 3564f1f..7ec4bb1 100644 --- a/core/lib/Drupal/Core/Entity/ContentEntityBase.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityBase.php @@ -602,7 +602,7 @@ public function onChange($name) { /** * {@inheritdoc} * - * @return \Drupal\Core\Entity\EntityInterface + * @return \Drupal\Core\Entity\ContentEntityInterface */ public function getTranslation($langcode) { // Ensure we always use the default language code when dealing with the diff --git a/core/lib/Drupal/Core/Field/ConfigEntityReferenceItemBase.php b/core/lib/Drupal/Core/Field/ConfigEntityReferenceItemBase.php index 8169e27..42f84bf 100644 --- a/core/lib/Drupal/Core/Field/ConfigEntityReferenceItemBase.php +++ b/core/lib/Drupal/Core/Field/ConfigEntityReferenceItemBase.php @@ -23,47 +23,23 @@ class ConfigEntityReferenceItemBase extends EntityReferenceItem implements ConfigFieldItemInterface { /** - * Definitions of the contained properties. - * - * @see ConfigurableEntityReferenceItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - $settings = $this->definition->getSettings(); - $target_type = $settings['target_type']; - - // Definitions vary by entity type and bundle, so key them accordingly. - $key = $target_type . ':'; - $key .= isset($settings['target_bundle']) ? $settings['target_bundle'] : ''; - - if (!isset(static::$propertyDefinitions[$key])) { - // Call the parent to define the target_id and entity properties. - parent::getPropertyDefinitions(); - - // Only add the revision ID property if the target entity type supports - // revisions. - $target_type_info = \Drupal::entityManager()->getDefinition($target_type); - if (!empty($target_type_info['entity_keys']['revision']) && !empty($target_type_info['revision_table'])) { - static::$propertyDefinitions[$key]['revision_id'] = DataDefinition::create('integer') - ->setLabel(t('Revision ID')) - ->setConstraints(array('Range' => array('min' => 0))); - } - - static::$propertyDefinitions[$key]['label'] = DataDefinition::create('string') - ->setLabel(t('Label (auto-create)')) - ->setComputed(TRUE); - - static::$propertyDefinitions[$key]['access'] = DataDefinition::create('boolean') - ->setLabel(t('Access')) - ->setComputed(TRUE); + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + // Call the parent to define the target_id and entity properties. + $property_definitions = parent::getPropertyDefinitions($field_definition); + + // Only add the revision ID property if the target entity type supports + // revisions. + $target_type = $field_definition->getSetting('target_type'); + $target_type_info = \Drupal::entityManager()->getDefinition($target_type); + if (!empty($target_type_info['entity_keys']['revision']) && !empty($target_type_info['revision_table'])) { + $property_definitions['revision_id'] = DataDefinition::create('integer') + ->setLabel(t('Revision ID')) + ->setConstraints(array('Range' => array('min' => 0))); } - return static::$propertyDefinitions[$key]; + + return $property_definitions; } /** diff --git a/core/lib/Drupal/Core/Field/FieldItemInterface.php b/core/lib/Drupal/Core/Field/FieldItemInterface.php index b9154db..276167f 100644 --- a/core/lib/Drupal/Core/Field/FieldItemInterface.php +++ b/core/lib/Drupal/Core/Field/FieldItemInterface.php @@ -24,6 +24,18 @@ interface FieldItemInterface extends ComplexDataInterface { /** + * Gets an array of property definitions of contained properties. + * + * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition + * The field definition. + * + * @return \Drupal\Core\TypedData\DataDefinitionInterface[] + * An array of property definitions of contained properties, keyed by + * property name. + */ + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition); + + /** * Returns the schema for the field. * * This method is static because the field schema information is needed on diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php index 1d9884f..3816f95 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php @@ -24,23 +24,13 @@ class BooleanItem extends FieldItemBase { /** - * Definitions of the contained properties. - * - * @see BooleanItem::getPropertyDefinitions() - * - * @var array + * {@inheritdoc} */ - static $propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('boolean') + ->setLabel(t('Boolean value')); - /** - * Implements \Drupal\Core\TypedData\ComplexDataInterface::getPropertyDefinitions(). - */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('boolean') - ->setLabel(t('Boolean value')); - } - return static::$propertyDefinitions; + return $property_definitions; } /** diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DateItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DateItem.php index c1276dd..1c3cb3c 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DateItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DateItem.php @@ -23,26 +23,15 @@ class DateItem extends FieldItemBase { /** - * Definitions of the contained properties. - * - * @see DateItem::getPropertyDefinitions() - * - * @var array + * {@inheritdoc} */ - static $propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = array( + 'type' => 'date', + 'label' => t('Date value'), + ); - /** - * Implements \Drupal\Core\TypedData\ComplexDataInterface::getPropertyDefinitions(). - */ - public function getPropertyDefinitions() { - - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = array( - 'type' => 'date', - 'label' => t('Date value'), - ); - } - return static::$propertyDefinitions; + return $property_definitions; } /** diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EmailItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EmailItem.php index aee1a4a..5becfad 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EmailItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EmailItem.php @@ -24,24 +24,13 @@ class EmailItem extends FieldItemBase { /** - * Definitions of the contained properties. - * - * @see EmailItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** - * Implements ComplexDataInterface::getPropertyDefinitions(). + * {@inheritdoc} */ - public function getPropertyDefinitions() { + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('email') + ->setLabel(t('E-mail value')); - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('email') - ->setLabel(t('E-mail value')); - } - return static::$propertyDefinitions; + return $property_definitions; } /** diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php index 0c8c8a2..c0122d3 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php @@ -31,56 +31,42 @@ class EntityReferenceItem extends FieldItemBase { /** - * Definitions of the contained properties. - * - * @see EntityReferenceItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** - * Implements \Drupal\Core\TypedData\ComplexDataInterface::getPropertyDefinitions(). + * {@inheritdoc} */ - public function getPropertyDefinitions() { - $settings = $this->definition->getSettings(); + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $settings = $field_definition->getSettings(); $target_type = $settings['target_type']; - // Definitions vary by entity type and bundle, so key them accordingly. - $key = $target_type . ':'; - $key .= isset($settings['target_bundle']) ? $settings['target_bundle'] : ''; - - if (!isset(static::$propertyDefinitions[$key])) { - $target_type_info = \Drupal::entityManager()->getDefinition($target_type); - if (is_subclass_of($target_type_info['class'], '\Drupal\Core\Entity\ContentEntityInterface')) { - // @todo: Lookup the entity type's ID data type and use it here. - // https://drupal.org/node/2107249 - static::$propertyDefinitions[$key]['target_id'] = DataDefinition::create('integer') - ->setLabel(t('Entity ID')) - ->setConstraints(array( - 'Range' => array('min' => 0), - )); - } - else { - static::$propertyDefinitions[$key]['target_id'] = DataDefinition::create('string') - ->setLabel(t('Entity ID')); - } - - static::$propertyDefinitions[$key]['entity'] = DataDefinition::create('entity_reference') - ->setLabel(t('Entity')) - ->setDescription(t('The referenced entity')) - // The entity object is computed out of the entity ID. - ->setComputed(TRUE) - ->setReadOnly(FALSE) + $target_type_info = \Drupal::entityManager()->getDefinition($target_type); + if (is_subclass_of($target_type_info['class'], '\Drupal\Core\Entity\ContentEntityInterface')) { + // @todo: Lookup the entity type's ID data type and use it here. + // https://drupal.org/node/2107249 + $property_definitions['target_id'] = DataDefinition::create('integer') + ->setLabel(t('Entity ID')) ->setConstraints(array( - 'EntityType' => $settings['target_type'], + 'Range' => array('min' => 0), )); + } + else { + $property_definitions['target_id'] = DataDefinition::create('string') + ->setLabel(t('Entity ID')); + } - if (isset($settings['target_bundle'])) { - static::$propertyDefinitions[$key]['entity']->addConstraint('Bundle', $settings['target_bundle']); - } + $property_definitions['entity'] = DataDefinition::create('entity_reference') + ->setLabel(t('Entity')) + ->setDescription(t('The referenced entity')) + // The entity object is computed out of the entity ID. + ->setComputed(TRUE) + ->setReadOnly(FALSE) + ->setConstraints(array( + 'EntityType' => $settings['target_type'], + )); + + if (isset($settings['target_bundle'])) { + $property_definitions['entity']->addConstraint('Bundle', $settings['target_bundle']); } - return static::$propertyDefinitions[$key]; + + return $property_definitions; } /** diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/FloatItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/FloatItem.php index 045af1c..e33ee85 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/FloatItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/FloatItem.php @@ -24,24 +24,13 @@ class FloatItem extends FieldItemBase { /** - * Definitions of the contained properties. - * - * @see IntegerItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** - * Implements \Drupal\Core\TypedData\ComplexDataInterface::getPropertyDefinitions(). + * {@inheritdoc} */ - public function getPropertyDefinitions() { + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('float') + ->setLabel(t('Float value')); - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('float') - ->setLabel(t('Float value')); - } - return static::$propertyDefinitions; + return $property_definitions; } /** diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php index ec49cdb..e6ea56c 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php @@ -24,24 +24,13 @@ class IntegerItem extends FieldItemBase { /** - * Definitions of the contained properties. - * - * @see IntegerItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('integer') + ->setLabel(t('Integer value')); - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('integer') - ->setLabel(t('Integer value')); - } - return static::$propertyDefinitions; + return $property_definitions; } /** diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/LanguageItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/LanguageItem.php index 3bae65b..311d3b4 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/LanguageItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/LanguageItem.php @@ -30,30 +30,20 @@ class LanguageItem extends FieldItemBase { /** - * Definitions of the contained properties. - * - * @see LanguageItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** - * Implements \Drupal\Core\TypedData\ComplexDataInterface::getPropertyDefinitions(). + * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('string') - ->setLabel(t('Language code')); + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('string') + ->setLabel(t('Language code')); - static::$propertyDefinitions['language'] = DataDefinition::create('language_reference') - ->setLabel(t('Language object')) - ->setDescription(t('The referenced language')) + $property_definitions['language'] = DataDefinition::create('language_reference') + ->setLabel(t('Language object')) + ->setDescription(t('The referenced language')) // The language object is retrieved via the language code. - ->setComputed(TRUE) - ->setReadOnly(FALSE); - } - return static::$propertyDefinitions; + ->setComputed(TRUE) + ->setReadOnly(FALSE); + + return $property_definitions; } /** diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php index ce78a40..ec1de23 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php @@ -27,24 +27,13 @@ class StringItem extends FieldItemBase { /** - * Definitions of the contained properties. - * - * @see StringItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('string') + ->setLabel(t('Text value')); - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('string') - ->setLabel(t('Text value')); - } - return static::$propertyDefinitions; + return $property_definitions; } /** diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php index 4cad163..dcdefcc 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php @@ -24,23 +24,13 @@ class UriItem extends FieldItemBase { /** - * Field definitions of the contained properties. - * - * @see self::getPropertyDefinitions() - * - * @var array + * {@inheritdoc} */ - static $propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('uri') + ->setLabel(t('URI value')); - /** - * Implements ComplexDataInterface::getPropertyDefinitions(). - */ - public function getPropertyDefinitions() { - if (!isset(self::$propertyDefinitions)) { - self::$propertyDefinitions['value'] = DataDefinition::create('uri') - ->setLabel(t('URI value')); - } - return self::$propertyDefinitions; + return $property_definitions; } /** diff --git a/core/lib/Drupal/Core/TypedData/ComplexDataDefinitionBase.php b/core/lib/Drupal/Core/TypedData/ComplexDataDefinitionBase.php new file mode 100644 index 0000000..68d7f6d --- /dev/null +++ b/core/lib/Drupal/Core/TypedData/ComplexDataDefinitionBase.php @@ -0,0 +1,44 @@ +propertyDefinitions)) { + $this->getPropertyDefinitions(); + } + if (isset($this->propertyDefinitions[$name])) { + return $this->propertyDefinitions[$name]; + } + else { + return NULL; + } + } + + /** + * {@inheritdoc} + */ + abstract public function getPropertyDefinitions(); + +} diff --git a/core/lib/Drupal/Core/TypedData/ComplexDataDefinitionInterface.php b/core/lib/Drupal/Core/TypedData/ComplexDataDefinitionInterface.php new file mode 100644 index 0000000..9c38513 --- /dev/null +++ b/core/lib/Drupal/Core/TypedData/ComplexDataDefinitionInterface.php @@ -0,0 +1,36 @@ +values as $name => $value) { - $definitions[$name] = DataDefinition::create('any'); - } - return $definitions; - } +// public function getPropertyDefinitions() { +// $definitions = array(); +// foreach ($this->values as $name => $value) { +// $definitions[$name] = DataDefinition::create('any'); +// } +// return $definitions; +// } /** * Overrides \Drupal\Core\TypedData\TypedData::getValue(). @@ -186,15 +186,15 @@ public function getIterator() { /** * Implements \Drupal\Core\TypedData\ComplexDataInterface::getPropertyDefinition(). */ - public function getPropertyDefinition($name) { - $definitions = $this->getPropertyDefinitions(); - if (isset($definitions[$name])) { - return $definitions[$name]; - } - else { - return FALSE; - } - } +// public function getPropertyDefinition($name) { +// $definitions = $this->getPropertyDefinitions(); +// if (isset($definitions[$name])) { +// return $definitions[$name]; +// } +// else { +// return FALSE; +// } +// } /** * Implements \Drupal\Core\TypedData\ComplexDataInterface::isEmpty(). diff --git a/core/modules/comment/lib/Drupal/comment/CommentFieldName.php b/core/modules/comment/lib/Drupal/comment/CommentFieldName.php index 7912fcc..9cb56b5 100644 --- a/core/modules/comment/lib/Drupal/comment/CommentFieldName.php +++ b/core/modules/comment/lib/Drupal/comment/CommentFieldName.php @@ -7,6 +7,7 @@ namespace Drupal\comment; +use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\Plugin\Field\FieldType\StringItem; use Drupal\Core\TypedData\DataDefinition; @@ -16,26 +17,15 @@ class CommentFieldName extends StringItem { /** - * Definitions of the contained properties. - * - * @see self::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('string') + ->setLabel(t('String value')) + ->setClass('\Drupal\comment\CommentFieldNameValue') + ->setComputed(TRUE); - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('string') - ->setLabel(t('String value')) - ->setClass('\Drupal\comment\CommentFieldNameValue') - ->setComputed(TRUE); - } - return static::$propertyDefinitions; + return $property_definitions; } } diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldType/CommentItem.php b/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldType/CommentItem.php index 3145e8f..29a2a55 100644 --- a/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldType/CommentItem.php +++ b/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldType/CommentItem.php @@ -33,39 +33,31 @@ class CommentItem extends ConfigFieldItemBase { /** - * Definitions of the contained properties. - * - * @var array - */ - public static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['status'] = DataDefinition::create('integer') - ->setLabel(t('Comment status value')); + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['status'] = DataDefinition::create('integer') + ->setLabel(t('Comment status value')); - static::$propertyDefinitions['cid'] = DataDefinition::create('integer') - ->setLabel(t('Last comment ID')); + $property_definitions['cid'] = DataDefinition::create('integer') + ->setLabel(t('Last comment ID')); - static::$propertyDefinitions['last_comment_timestamp'] = DataDefinition::create('integer') - ->setLabel(t('Last comment timestamp')) - ->setDescription(t('The time that the last comment was created.')); + $property_definitions['last_comment_timestamp'] = DataDefinition::create('integer') + ->setLabel(t('Last comment timestamp')) + ->setDescription(t('The time that the last comment was created.')); - static::$propertyDefinitions['last_comment_name'] = DataDefinition::create('string') - ->setLabel(t('Last comment name')) - ->setDescription(t('The name of the user posting the last comment.')); + $property_definitions['last_comment_name'] = DataDefinition::create('string') + ->setLabel(t('Last comment name')) + ->setDescription(t('The name of the user posting the last comment.')); - static::$propertyDefinitions['last_comment_uid'] = DataDefinition::create('integer') - ->setLabel(t('Last comment user ID')); + $property_definitions['last_comment_uid'] = DataDefinition::create('integer') + ->setLabel(t('Last comment user ID')); - static::$propertyDefinitions['comment_count'] = DataDefinition::create('integer') - ->setLabel(t('Number of comments')) - ->setDescription(t('The number of comments.')); - } - return static::$propertyDefinitions; + $property_definitions['comment_count'] = DataDefinition::create('integer') + ->setLabel(t('Number of comments')) + ->setDescription(t('The number of comments.')); + + return $property_definitions; } /** diff --git a/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeItem.php b/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeItem.php index ca7e56c..43029d2 100644 --- a/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeItem.php +++ b/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeItem.php @@ -32,29 +32,20 @@ class DateTimeItem extends ConfigFieldItemBase implements PrepareCacheInterface { /** - * Field definitions of the contained properties. - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('datetime_iso8601') - ->setLabel(t('Date value')); - - static::$propertyDefinitions['date'] = DataDefinition::create('datetime_computed') - ->setLabel(t('Computed date')) - ->setDescription(t('The computed DateTime object.')) - ->setComputed(TRUE) - ->setClass('\Drupal\datetime\DateTimeComputed') - ->setSetting('date source', 'value'); - } - - return static::$propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('datetime_iso8601') + ->setLabel(t('Date value')); + + $property_definitions['date'] = DataDefinition::create('datetime_computed') + ->setLabel(t('Computed date')) + ->setDescription(t('The computed DateTime object.')) + ->setComputed(TRUE) + ->setClass('\Drupal\datetime\DateTimeComputed') + ->setSetting('date source', 'value'); + + return $property_definitions; } /** diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/HiddenTestItem.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/HiddenTestItem.php index e7b1cb3..eb90d2c 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/HiddenTestItem.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/HiddenTestItem.php @@ -7,10 +7,8 @@ namespace Drupal\field_test\Plugin\Field\FieldType; -use Drupal\Core\Entity\Annotation\FieldType; -use Drupal\Core\Annotation\Translation; +use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\TypedData\DataDefinition; -use Drupal\field_test\Plugin\Field\FieldType\TestItem; /** * Defines the 'hidden_test' entity field item. @@ -27,23 +25,13 @@ class HiddenTestItem extends TestItem { /** - * Property definitions of the contained properties. - * - * @see TestItem::getPropertyDefinitions() - * - * @var array + * {@inheritdoc} */ - static $propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('integer') + ->setLabel(t('Test integer value')); - /** - * Implements \Drupal\Core\TypedData\ComplexDataInterface::getPropertyDefinitions(). - */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('integer') - ->setLabel(t('Test integer value')); - } - return static::$propertyDefinitions; + return $property_definitions; } } diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/ShapeItem.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/ShapeItem.php index 15d05cd..68918f5 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/ShapeItem.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/ShapeItem.php @@ -28,26 +28,16 @@ class ShapeItem extends ConfigFieldItemBase { /** - * Property definitions of the contained properties. - * - * @see ShapeItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['shape'] = DataDefinition::create('string') - ->setLabel(t('Shape')); + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['shape'] = DataDefinition::create('string') + ->setLabel(t('Shape')); - static::$propertyDefinitions['color'] = DataDefinition::create('string') - ->setLabel(t('Color')); - } - return static::$propertyDefinitions; + $property_definitions['color'] = DataDefinition::create('string') + ->setLabel(t('Color')); + + return $property_definitions; } /** diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/TestItem.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/TestItem.php index f8cd226..9dc1fe8 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/TestItem.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/TestItem.php @@ -35,23 +35,13 @@ class TestItem extends ConfigFieldItemBase implements PrepareCacheInterface { /** - * Property definitions of the contained properties. - * - * @see TestItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('integer') - ->setLabel(t('Test integer value')); - } - return static::$propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('integer') + ->setLabel(t('Test integer value')); + + return $property_definitions; } /** diff --git a/core/modules/file/lib/Drupal/file/Plugin/Field/FieldType/FileItem.php b/core/modules/file/lib/Drupal/file/Plugin/Field/FieldType/FileItem.php index 9bb9dd0..1063672 100644 --- a/core/modules/file/lib/Drupal/file/Plugin/Field/FieldType/FileItem.php +++ b/core/modules/file/lib/Drupal/file/Plugin/Field/FieldType/FileItem.php @@ -38,15 +38,6 @@ class FileItem extends EntityReferenceItem implements ConfigFieldItemInterface { /** - * Property definitions of the contained properties. - * - * @see FileItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ public static function schema(FieldDefinitionInterface $field_definition) { @@ -87,19 +78,19 @@ public static function schema(FieldDefinitionInterface $field_definition) { /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - $this->definition->setSetting('target_type', 'file'); + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + // @todo Setting this here is weird, move it to the annotation. + $field_definition->setSetting('target_type', 'file'); - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions = parent::getPropertyDefinitions(); + $property_definitions = parent::getPropertyDefinitions($field_definition); - static::$propertyDefinitions['display'] = DataDefinition::create('boolean') - ->setLabel(t('Flag to control whether this file should be displayed when viewing content')); + $property_definitions['display'] = DataDefinition::create('boolean') + ->setLabel(t('Flag to control whether this file should be displayed when viewing content')); - static::$propertyDefinitions['description'] = DataDefinition::create('string') - ->setLabel(t('A description of the file')); - } - return static::$propertyDefinitions; + $property_definitions['description'] = DataDefinition::create('string') + ->setLabel(t('A description of the file')); + + return $property_definitions; } /** diff --git a/core/modules/image/lib/Drupal/image/Plugin/Field/FieldType/ImageItem.php b/core/modules/image/lib/Drupal/image/Plugin/Field/FieldType/ImageItem.php index 1cface2..9c14b3e 100644 --- a/core/modules/image/lib/Drupal/image/Plugin/Field/FieldType/ImageItem.php +++ b/core/modules/image/lib/Drupal/image/Plugin/Field/FieldType/ImageItem.php @@ -117,25 +117,25 @@ public static function schema(FieldDefinitionInterface $field_definition) { /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - $this->definition->setSetting('target_type', 'file'); + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + // @todo Setting this here is weird, move it to the annotation. + $field_definition->setSetting('target_type', 'file'); - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions = parent::getPropertyDefinitions(); + $property_definitions = parent::getPropertyDefinitions($field_definition); - static::$propertyDefinitions['alt'] = DataDefinition::create('string') - ->setLabel(t("Alternative image text, for the image's 'alt' attribute.")); + $property_definitions['alt'] = DataDefinition::create('string') + ->setLabel(t("Alternative image text, for the image's 'alt' attribute.")); - static::$propertyDefinitions['title'] = DataDefinition::create('string') - ->setLabel(t("Image title text, for the image's 'title' attribute.")); + $property_definitions['title'] = DataDefinition::create('string') + ->setLabel(t("Image title text, for the image's 'title' attribute.")); - static::$propertyDefinitions['width'] = DataDefinition::create('integer') - ->setLabel(t('The width of the image in pixels.')); + $property_definitions['width'] = DataDefinition::create('integer') + ->setLabel(t('The width of the image in pixels.')); - static::$propertyDefinitions['height'] = DataDefinition::create('integer') - ->setLabel(t('The height of the image in pixels.')); - } - return static::$propertyDefinitions; + $property_definitions['height'] = DataDefinition::create('integer') + ->setLabel(t('The height of the image in pixels.')); + + return $property_definitions; } /** diff --git a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldType/LinkItem.php b/core/modules/link/lib/Drupal/link/Plugin/Field/FieldType/LinkItem.php index 1102aec..71cf389 100644 --- a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldType/LinkItem.php +++ b/core/modules/link/lib/Drupal/link/Plugin/Field/FieldType/LinkItem.php @@ -28,27 +28,19 @@ class LinkItem extends ConfigFieldItemBase { /** - * Definitions of the contained properties. - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['url'] = DataDefinition::create('uri') - ->setLabel(t('URL')); + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['url'] = DataDefinition::create('uri') + ->setLabel(t('URL')); + + $property_definitions['title'] = DataDefinition::create('string') + ->setLabel(t('Link text')); - static::$propertyDefinitions['title'] = DataDefinition::create('string') - ->setLabel(t('Link text')); + $property_definitions['attributes'] = DataDefinition::create('map') + ->setLabel(t('Attributes')); - static::$propertyDefinitions['attributes'] = DataDefinition::create('map') - ->setLabel(t('Attributes')); - } - return static::$propertyDefinitions; + return $property_definitions; } /** diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/DecimalItem.php b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/DecimalItem.php index 58b52a2..379481e 100644 --- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/DecimalItem.php +++ b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/DecimalItem.php @@ -37,12 +37,11 @@ class DecimalItem extends NumberItemBase { /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('string') - ->setLabel(t('Decimal value')); - } - return static::$propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('string') + ->setLabel(t('Decimal value')); + + return $property_definitions; } /** diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/FloatItem.php b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/FloatItem.php index 5765147..9b87c86 100644 --- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/FloatItem.php +++ b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/FloatItem.php @@ -32,12 +32,11 @@ class FloatItem extends NumberItemBase { /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('float') - ->setLabel(t('Float value')); - } - return static::$propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('float') + ->setLabel(t('Float value')); + + return $property_definitions; } /** diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/IntegerItem.php b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/IntegerItem.php index 6c44d76..f28f62e 100644 --- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/IntegerItem.php +++ b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/IntegerItem.php @@ -32,12 +32,11 @@ class IntegerItem extends NumberItemBase { /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('integer') - ->setLabel(t('Integer value')); - } - return static::$propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('integer') + ->setLabel(t('Integer value')); + + return $property_definitions; } /** diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/NumberItemBase.php b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/NumberItemBase.php index 0f33b42..f2892bd 100644 --- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/NumberItemBase.php +++ b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/NumberItemBase.php @@ -15,13 +15,6 @@ abstract class NumberItemBase extends ConfigFieldItemBase { /** - * Definitions of the contained properties. - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ public function instanceSettingsForm(array $form, array &$form_state) { diff --git a/core/modules/options/lib/Drupal/options/Type/ListFloatItem.php b/core/modules/options/lib/Drupal/options/Type/ListFloatItem.php index 6b18833..3224c20 100644 --- a/core/modules/options/lib/Drupal/options/Type/ListFloatItem.php +++ b/core/modules/options/lib/Drupal/options/Type/ListFloatItem.php @@ -7,6 +7,7 @@ namespace Drupal\options\Type; +use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\Plugin\Field\FieldType\LegacyConfigFieldItem; use Drupal\Core\TypedData\DataDefinition; @@ -16,23 +17,13 @@ class ListFloatItem extends LegacyConfigFieldItem { /** - * Definitions of the contained properties. - * - * @see FloatItem::getPropertyDefinitions() - * - * @var array + * {@inheritdoc} */ - static $propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('float') + ->setLabel(t('Float value')); - /** - * Implements ComplexDataInterface::getPropertyDefinitions(). - */ - public function getPropertyDefinitions() { - - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('float') - ->setLabel(t('Float value')); - } - return static::$propertyDefinitions; + return $property_definitions; } + } diff --git a/core/modules/options/lib/Drupal/options/Type/ListIntegerItem.php b/core/modules/options/lib/Drupal/options/Type/ListIntegerItem.php index 72ed788..82f665b 100644 --- a/core/modules/options/lib/Drupal/options/Type/ListIntegerItem.php +++ b/core/modules/options/lib/Drupal/options/Type/ListIntegerItem.php @@ -7,6 +7,7 @@ namespace Drupal\options\Type; +use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\Plugin\Field\FieldType\LegacyConfigFieldItem; use Drupal\Core\TypedData\DataDefinition; @@ -16,23 +17,13 @@ class ListIntegerItem extends LegacyConfigFieldItem { /** - * Definitions of the contained properties. - * - * @see IntegerItem::getPropertyDefinitions() - * - * @var array + * {@inheritdoc} */ - static $propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('integer') + ->setLabel(t('Integer value')); - /** - * Implements ComplexDataInterface::getPropertyDefinitions(). - */ - public function getPropertyDefinitions() { - - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('integer') - ->setLabel(t('Integer value')); - } - return static::$propertyDefinitions; + return $property_definitions; } + } diff --git a/core/modules/options/lib/Drupal/options/Type/ListTextItem.php b/core/modules/options/lib/Drupal/options/Type/ListTextItem.php index b66d355..fdbb250 100644 --- a/core/modules/options/lib/Drupal/options/Type/ListTextItem.php +++ b/core/modules/options/lib/Drupal/options/Type/ListTextItem.php @@ -7,6 +7,7 @@ namespace Drupal\options\Type; +use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\Plugin\Field\FieldType\LegacyConfigFieldItem; use Drupal\Core\TypedData\DataDefinition; @@ -16,24 +17,13 @@ class ListTextItem extends LegacyConfigFieldItem { /** - * Definitions of the contained properties. - * - * @see TextItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** * Implements ComplexDataInterface::getPropertyDefinitions(). */ - public function getPropertyDefinitions() { + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('string') + ->setLabel(t('Text value')); - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('string') - ->setLabel(t('Text value')); - } - return static::$propertyDefinitions; + return $property_definitions; } } diff --git a/core/modules/path/lib/Drupal/path/Plugin/Field/FieldType/PathItem.php b/core/modules/path/lib/Drupal/path/Plugin/Field/FieldType/PathItem.php index 6d75cac..67b6843 100644 --- a/core/modules/path/lib/Drupal/path/Plugin/Field/FieldType/PathItem.php +++ b/core/modules/path/lib/Drupal/path/Plugin/Field/FieldType/PathItem.php @@ -24,26 +24,16 @@ class PathItem extends FieldItemBase { /** - * Definitions of the contained properties. - * - * @see PathItem::getPropertyDefinitions() - * - * @var array + * {@inheritdoc} */ - static $propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['alias'] = DataDefinition::create('string') + ->setLabel(t('Path alias')); - /** - * Implements \Drupal\Core\TypedData\ComplexDataInterface::getPropertyDefinitions(). - */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['alias'] = DataDefinition::create('string') - ->setLabel(t('Path alias')); - - static::$propertyDefinitions['pid'] = DataDefinition::create('string') - ->setLabel(t('Path id')); - } - return static::$propertyDefinitions; + $property_definitions['pid'] = DataDefinition::create('string') + ->setLabel(t('Path id')); + + return $property_definitions; } /** diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Type/TaxonomyTermReferenceItem.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Type/TaxonomyTermReferenceItem.php index ac24daf..e805954 100644 --- a/core/modules/taxonomy/lib/Drupal/taxonomy/Type/TaxonomyTermReferenceItem.php +++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Type/TaxonomyTermReferenceItem.php @@ -8,6 +8,7 @@ namespace Drupal\taxonomy\Type; use Drupal\Core\Field\ConfigEntityReferenceItemBase; +use Drupal\Core\Field\FieldDefinitionInterface; /** * Defines the 'taxonomy_term_reference' entity field item. @@ -15,20 +16,12 @@ class TaxonomyTermReferenceItem extends ConfigEntityReferenceItemBase { /** - * Property definitions of the contained properties. - * - * @see TaxonomyTermReferenceItem::getPropertyDefinitions() - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - $this->definition->setSetting('target_type', 'taxonomy_term'); - return parent::getPropertyDefinitions(); + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + // @todo Setting this here is weird, move it to the annotation. + $field_definition->setSetting('target_type', 'taxonomy_term'); + return parent::getPropertyDefinitions($field_definition); } } diff --git a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldType/TelephoneItem.php b/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldType/TelephoneItem.php index e23d6fa..8688f2b 100644 --- a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldType/TelephoneItem.php +++ b/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldType/TelephoneItem.php @@ -25,13 +25,6 @@ class TelephoneItem extends ConfigFieldItemBase { /** - * Definitions of the contained properties. - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ public static function schema(FieldDefinitionInterface $field_definition) { @@ -49,12 +42,11 @@ public static function schema(FieldDefinitionInterface $field_definition) { /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('string') - ->setLabel(t('Telephone number')); - } - return static::$propertyDefinitions; + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('string') + ->setLabel(t('Telephone number')); + + return $property_definitions; } /** diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItemBase.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItemBase.php index 90d86c2..5ad9280 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItemBase.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItemBase.php @@ -8,6 +8,7 @@ namespace Drupal\text\Plugin\Field\FieldType; use Drupal\Core\Field\ConfigFieldItemBase; +use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\PrepareCacheInterface; use Drupal\Core\TypedData\DataDefinition; @@ -17,31 +18,23 @@ abstract class TextItemBase extends ConfigFieldItemBase implements PrepareCacheInterface { /** - * Definitions of the contained properties. - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions['value'] = DataDefinition::create('string') - ->setLabel(t('Text value')); + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions['value'] = DataDefinition::create('string') + ->setLabel(t('Text value')); - static::$propertyDefinitions['format'] = DataDefinition::create('filter_format') - ->setLabel(t('Text format')); + $property_definitions['format'] = DataDefinition::create('filter_format') + ->setLabel(t('Text format')); - static::$propertyDefinitions['processed'] = DataDefinition::create('string') - ->setLabel(t('Processed text')) - ->setDescription(t('The text value with the text format applied.')) - ->setComputed(TRUE) - ->setClass('\Drupal\text\TextProcessed') - ->setSetting('text source', 'value'); - } - return static::$propertyDefinitions; + $property_definitions['processed'] = DataDefinition::create('string') + ->setLabel(t('Processed text')) + ->setDescription(t('The text value with the text format applied.')) + ->setComputed(TRUE) + ->setClass('\Drupal\text\TextProcessed') + ->setSetting('text source', 'value'); + + return $property_definitions; } /** diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextWithSummaryItem.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextWithSummaryItem.php index 36df950..f2c613f 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextWithSummaryItem.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextWithSummaryItem.php @@ -28,30 +28,22 @@ class TextWithSummaryItem extends TextItemBase { /** - * Definitions of the contained properties. - * - * @var array - */ - static $propertyDefinitions; - - /** * {@inheritdoc} */ - public function getPropertyDefinitions() { - if (!isset(static::$propertyDefinitions)) { - static::$propertyDefinitions = parent::getPropertyDefinitions(); + public static function getPropertyDefinitions(FieldDefinitionInterface $field_definition) { + $property_definitions = parent::getPropertyDefinitions($field_definition); + + $property_definitions['summary'] = DataDefinition::create('string') + ->setLabel(t('Summary text value')); - static::$propertyDefinitions['summary'] = DataDefinition::create('string') - ->setLabel(t('Summary text value')); + $property_definitions['summary_processed'] = DataDefinition::create('string') + ->setLabel(t('Processed summary text')) + ->setDescription(t('The summary text value with the text format applied.')) + ->setComputed(TRUE) + ->setClass('\Drupal\text\TextProcessed') + ->setSetting('text source', 'summary'); - static::$propertyDefinitions['summary_processed'] = DataDefinition::create('string') - ->setLabel(t('Processed summary text')) - ->setDescription(t('The summary text value with the text format applied.')) - ->setComputed(TRUE) - ->setClass('\Drupal\text\TextProcessed') - ->setSetting('text source', 'summary'); - } - return static::$propertyDefinitions; + return $property_definitions; } /**