Security update for Core, with self-updated composer
[yaffs-website] / web / core / lib / Drupal / Core / Entity / ContentEntityType.php
1 <?php
2
3 namespace Drupal\Core\Entity;
4
5 /**
6  * Provides an implementation of a content entity type and its metadata.
7  */
8 class ContentEntityType extends EntityType implements ContentEntityTypeInterface {
9
10   /**
11    * An array of entity revision metadata keys.
12    *
13    * @var array
14    */
15   protected $revision_metadata_keys = [];
16
17   /**
18    * {@inheritdoc}
19    */
20   public function __construct($definition) {
21     parent::__construct($definition);
22     $this->handlers += [
23       'storage' => 'Drupal\Core\Entity\Sql\SqlContentEntityStorage',
24       'view_builder' => 'Drupal\Core\Entity\EntityViewBuilder',
25     ];
26   }
27
28   /**
29    * {@inheritdoc}
30    */
31   public function getConfigDependencyKey() {
32     return 'content';
33   }
34
35   /**
36    * {@inheritdoc}
37    *
38    * @throws \InvalidArgumentException
39    *   If the provided class does not implement
40    *   \Drupal\Core\Entity\ContentEntityStorageInterface.
41    *
42    * @see \Drupal\Core\Entity\ContentEntityStorageInterface
43    */
44   protected function checkStorageClass($class) {
45     $required_interface = ContentEntityStorageInterface::class;
46     if (!is_subclass_of($class, $required_interface)) {
47       throw new \InvalidArgumentException("$class does not implement $required_interface");
48     }
49   }
50
51   /**
52    * {@inheritdoc}
53    */
54   public function getRevisionMetadataKeys($include_backwards_compatibility_field_names = TRUE) {
55     // Provide backwards compatibility in case the revision metadata keys are
56     // not defined in the entity annotation.
57     if (!$this->revision_metadata_keys && $include_backwards_compatibility_field_names) {
58       $base_fields = \Drupal::service('entity_field.manager')->getBaseFieldDefinitions($this->id());
59       if ((isset($base_fields['revision_uid']) && $revision_user = 'revision_uid') || (isset($base_fields['revision_user']) && $revision_user = 'revision_user')) {
60         @trigger_error('The revision_user revision metadata key is not set.', E_USER_DEPRECATED);
61         $this->revision_metadata_keys['revision_user'] = $revision_user;
62       }
63       if ((isset($base_fields['revision_timestamp']) && $revision_timestamp = 'revision_timestamp') || (isset($base_fields['revision_created'])) && $revision_timestamp = 'revision_created') {
64         @trigger_error('The revision_created revision metadata key is not set.', E_USER_DEPRECATED);
65         $this->revision_metadata_keys['revision_created'] = $revision_timestamp;
66       }
67       if ((isset($base_fields['revision_log']) && $revision_log = 'revision_log') || (isset($base_fields['revision_log_message']) && $revision_log = 'revision_log_message')) {
68         @trigger_error('The revision_log_message revision metadata key is not set.', E_USER_DEPRECATED);
69         $this->revision_metadata_keys['revision_log_message'] = $revision_log;
70       }
71     }
72     return $this->revision_metadata_keys;
73   }
74
75   /**
76    * {@inheritdoc}
77    */
78   public function getRevisionMetadataKey($key) {
79     $keys = $this->getRevisionMetadataKeys();
80     return isset($keys[$key]) ? $keys[$key] : FALSE;
81   }
82
83   /**
84    * {@inheritdoc}
85    */
86   public function hasRevisionMetadataKey($key) {
87     $keys = $this->getRevisionMetadataKeys();
88     return isset($keys[$key]);
89   }
90
91 }