FieldItemDataDefinition.php in Drupal 9
File
core/lib/Drupal/Core/Field/TypedData/FieldItemDataDefinition.php
View source
<?php
namespace Drupal\Core\Field\TypedData;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\TypedData\DataDefinition;
class FieldItemDataDefinition extends DataDefinition implements FieldItemDataDefinitionInterface {
protected $fieldDefinition;
public static function createFromDataType($data_type) {
$parts = explode(':', $data_type, 2);
if ($parts[0] != 'field_item') {
throw new \InvalidArgumentException('Data type must be in the form of "field_item:FIELD_TYPE".');
}
$field_definition = BaseFieldDefinition::create($parts[1]);
return $field_definition
->getItemDefinition();
}
public static function create($field_definition) {
$definition['type'] = 'field_item:' . $field_definition
->getType();
$item_definition = new static($definition);
$item_definition->fieldDefinition = $field_definition;
return $item_definition;
}
public function getPropertyDefinition($name) {
return $this->fieldDefinition
->getFieldStorageDefinition()
->getPropertyDefinition($name);
}
public function getPropertyDefinitions() {
return $this->fieldDefinition
->getFieldStorageDefinition()
->getPropertyDefinitions();
}
public function getMainPropertyName() {
return $this->fieldDefinition
->getFieldStorageDefinition()
->getMainPropertyName();
}
public function getFieldDefinition() {
return $this->fieldDefinition;
}
public function setFieldDefinition($field_definition) {
$this->fieldDefinition = $field_definition;
return $this;
}
}