Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
| FieldItemBase | |
0.00% |
0 / 1 |
|
96.67% |
29 / 30 |
1722 | |
0.00% |
0 / 1 |
| defaultStorageSettings | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| defaultFieldSettings | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| mainPropertyName | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| __construct | |
100.00% |
1 / 1 |
3 | |
100.00% |
0 / 0 |
|||
| getEntity | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| getLangcode | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| getFieldDefinition | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| getSettings | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| getSetting | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| setValue | |
100.00% |
1 / 1 |
3 | |
100.00% |
0 / 0 |
|||
| writePropertyValue | |
100.00% |
1 / 1 |
2 | |
100.00% |
0 / 0 |
|||
| __get | |
100.00% |
1 / 1 |
3 | |
100.00% |
0 / 0 |
|||
| __set | |
100.00% |
1 / 1 |
3 | |
100.00% |
0 / 0 |
|||
| __isset | |
100.00% |
1 / 1 |
2 | |
100.00% |
0 / 0 |
|||
| __unset | |
100.00% |
1 / 1 |
2 | |
100.00% |
0 / 0 |
|||
| view | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| preSave | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| postSave | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| delete | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| generateSampleValue | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| deleteRevision | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| storageSettingsForm | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| fieldSettingsForm | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| storageSettingsToConfigData | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| storageSettingsFromConfigData | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| fieldSettingsToConfigData | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| fieldSettingsFromConfigData | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| calculateDependencies | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| calculateStorageDependencies | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| onDependencyRemoval | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\Field\FieldItemBase. | |
| */ | |
| namespace Drupal\Core\Field; | |
| use Drupal\Core\Entity\EntityInterface; | |
| use Drupal\Core\Form\FormStateInterface; | |
| use Drupal\Core\TypedData\DataDefinitionInterface; | |
| use Drupal\Core\TypedData\Plugin\DataType\Map; | |
| use Drupal\Core\TypedData\TypedDataInterface; | |
| /** | |
| * An entity field item. | |
| * | |
| * Entity field items making use of this base class have to implement | |
| * the static method propertyDefinitions(). | |
| * | |
| * @see \Drupal\Core\Field\FieldItemInterface | |
| * @ingroup field_types | |
| */ | |
| abstract class FieldItemBase extends Map implements FieldItemInterface { | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function defaultStorageSettings() { | |
| return array(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function defaultFieldSettings() { | |
| return array(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function mainPropertyName() { | |
| return 'value'; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function __construct(DataDefinitionInterface $definition, $name = NULL, TypedDataInterface $parent = NULL) { | |
| parent::__construct($definition, $name, $parent); | |
| // Initialize computed properties by default, such that they get cloned | |
| // with the whole item. | |
| foreach ($this->definition->getPropertyDefinitions() as $name => $definition) { | |
| if ($definition->isComputed()) { | |
| $this->properties[$name] = \Drupal::typedDataManager()->getPropertyInstance($this, $name); | |
| } | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getEntity() { | |
| return $this->getParent()->getEntity(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getLangcode() { | |
| return $this->getParent()->getLangcode(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getFieldDefinition() { | |
| return $this->definition->getFieldDefinition(); | |
| } | |
| /** | |
| * Returns the array of field settings. | |
| * | |
| * @return array | |
| * The array of settings. | |
| */ | |
| protected function getSettings() { | |
| return $this->getFieldDefinition()->getSettings(); | |
| } | |
| /** | |
| * Returns the value of a field setting. | |
| * | |
| * @param string $setting_name | |
| * The setting name. | |
| * | |
| * @return mixed | |
| * The setting value. | |
| */ | |
| protected function getSetting($setting_name) { | |
| return $this->getFieldDefinition()->getSetting($setting_name); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function setValue($values, $notify = TRUE) { | |
| // Treat the values as property value of the first property, if no array is | |
| // given. | |
| if (isset($values) && !is_array($values)) { | |
| $keys = array_keys($this->definition->getPropertyDefinitions()); | |
| $values = array($keys[0] => $values); | |
| } | |
| parent::setValue($values, $notify); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| * | |
| * Different to the parent Map class, we avoid creating property objects as | |
| * far as possible in order to optimize performance. Thus we just update | |
| * $this->values if no property object has been created yet. | |
| */ | |
| protected function writePropertyValue($property_name, $value) { | |
| // For defined properties there is either a property object or a plain | |
| // value that needs to be updated. | |
| if (isset($this->properties[$property_name])) { | |
| $this->properties[$property_name]->setValue($value, FALSE); | |
| } | |
| // Allow setting plain values for not-defined properties also. | |
| else { | |
| $this->values[$property_name] = $value; | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function __get($name) { | |
| // There is either a property object or a plain value - possibly for a | |
| // not-defined property. If we have a plain value, directly return it. | |
| if (isset($this->properties[$name])) { | |
| return $this->properties[$name]->getValue(); | |
| } | |
| elseif (isset($this->values[$name])) { | |
| return $this->values[$name]; | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function __set($name, $value) { | |
| // Support setting values via property objects, but take care in as the | |
| // value of the 'entity' property is typed data also. | |
| if ($value instanceof TypedDataInterface && !($value instanceof EntityInterface)) { | |
| $value = $value->getValue(); | |
| } | |
| $this->set($name, $value); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function __isset($name) { | |
| if (isset($this->properties[$name])) { | |
| return $this->properties[$name]->getValue() !== NULL; | |
| } | |
| return isset($this->values[$name]); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function __unset($name) { | |
| if ($this->definition->getPropertyDefinition($name)) { | |
| $this->set($name, NULL); | |
| } | |
| else { | |
| // Explicitly unset the property in $this->values if a non-defined | |
| // property is unset, such that its key is removed from $this->values. | |
| unset($this->values[$name]); | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function view($display_options = array()) { | |
| $view_builder = \Drupal::entityManager()->getViewBuilder($this->getEntity()->getEntityTypeId()); | |
| return $view_builder->viewFieldItem($this, $display_options); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function preSave() { } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function postSave($update) { } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function delete() { } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function generateSampleValue(FieldDefinitionInterface $field_definition) { } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function deleteRevision() { } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function storageSettingsForm(array &$form, FormStateInterface $form_state, $has_data) { | |
| return array(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function fieldSettingsForm(array $form, FormStateInterface $form_state) { | |
| return array(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function storageSettingsToConfigData(array $settings) { | |
| return $settings; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function storageSettingsFromConfigData(array $settings) { | |
| return $settings; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function fieldSettingsToConfigData(array $settings) { | |
| return $settings; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function fieldSettingsFromConfigData(array $settings) { | |
| return $settings; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function calculateDependencies(FieldDefinitionInterface $field_definition) { | |
| return array(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function calculateStorageDependencies(FieldStorageDefinitionInterface $field_definition) { | |
| return []; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function onDependencyRemoval(FieldDefinitionInterface $field_definition, array $dependencies) { | |
| return FALSE; | |
| } | |
| } |