Upgraded drupal core with security updates
[yaffs-website] / web / core / modules / views / src / FieldAPIHandlerTrait.php
1 <?php
2
3 namespace Drupal\views;
4
5 use Drupal\Core\Field\BaseFieldDefinition;
6
7 /**
8  * A trait containing helper methods for field definitions.
9  */
10 trait FieldAPIHandlerTrait {
11
12   /**
13    * The field definition.
14    *
15    * @var \Drupal\Core\Field\FieldDefinitionInterface
16    */
17   protected $fieldDefinition;
18
19   /**
20    * The field storage definition.
21    *
22    * @var \Drupal\field\FieldStorageConfigInterface
23    */
24   protected $fieldStorageDefinition;
25
26   /**
27    * Gets the field definition.
28    *
29    * A View works on an entity type across bundles, and thus only has access to
30    * field storage definitions. In order to be able to use widgets and
31    * formatters, we create a generic field definition out of that storage
32    * definition.
33    *
34    * @see BaseFieldDefinition::createFromFieldStorageDefinition()
35    *
36    * @return \Drupal\Core\Field\FieldDefinitionInterface
37    *   The field definition used by this handler.
38    */
39   protected function getFieldDefinition() {
40     if (!$this->fieldDefinition) {
41       $field_storage_config = $this->getFieldStorageDefinition();
42       $this->fieldDefinition = BaseFieldDefinition::createFromFieldStorageDefinition($field_storage_config);
43     }
44     return $this->fieldDefinition;
45   }
46
47   /**
48    * Gets the field storage configuration.
49    *
50    * @return \Drupal\field\FieldStorageConfigInterface
51    *   The field storage definition used by this handler
52    */
53   protected function getFieldStorageDefinition() {
54     if (!$this->fieldStorageDefinition) {
55       $field_storage_definitions = $this->getEntityManager()->getFieldStorageDefinitions($this->definition['entity_type']);
56       $this->fieldStorageDefinition = $field_storage_definitions[$this->definition['field_name']];
57     }
58     return $this->fieldStorageDefinition;
59   }
60
61   /**
62    * Returns the entity manager.
63    *
64    * @return \Drupal\Core\Entity\EntityManagerInterface
65    *   The entity manager service.
66    */
67   protected function getEntityManager() {
68     if (!isset($this->entityManager)) {
69       $this->entityManager = \Drupal::entityManager();
70     }
71     return $this->entityManager;
72   }
73
74 }