class EntityDataDefinition in Zircon Profile 8.0
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Entity/TypedData/EntityDataDefinition.php \Drupal\Core\Entity\TypedData\EntityDataDefinition
A typed data definition class for describing entities.
Hierarchy
- class \Drupal\Core\TypedData\DataDefinition implements \Drupal\Core\TypedData\ArrayAccess, DataDefinitionInterface
- class \Drupal\Core\TypedData\ComplexDataDefinitionBase implements ComplexDataDefinitionInterface
- class \Drupal\Core\Entity\TypedData\EntityDataDefinition implements EntityDataDefinitionInterface
- class \Drupal\Core\TypedData\ComplexDataDefinitionBase implements ComplexDataDefinitionInterface
Expanded class hierarchy of EntityDataDefinition
3 files declare their use of EntityDataDefinition
- EntityAdapter.php in core/
lib/ Drupal/ Core/ Entity/ Plugin/ DataType/ EntityAdapter.php - Contains \Drupal\Core\Entity\Plugin\DataType\EntityAdapter.
- EntityReferenceItem.php in core/
lib/ Drupal/ Core/ Field/ Plugin/ Field/ FieldType/ EntityReferenceItem.php - Contains \Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem.
- EntityTypedDataDefinitionTest.php in core/
modules/ system/ src/ Tests/ Entity/ EntityTypedDataDefinitionTest.php - Contains \Drupal\system\Tests\Entity\EntityTypedDataDefinitionTest.
File
- core/
lib/ Drupal/ Core/ Entity/ TypedData/ EntityDataDefinition.php, line 15 - Contains \Drupal\Core\Entity\TypedData\EntityDataDefinition.
Namespace
Drupal\Core\Entity\TypedDataView source
class EntityDataDefinition extends ComplexDataDefinitionBase implements EntityDataDefinitionInterface {
/**
* Creates a new entity definition.
*
* @param string $entity_type_id
* (optional) The ID of the entity type, or NULL if the entity type is
* unknown. Defaults to NULL.
*
* @return static
*/
public static function create($entity_type_id = NULL) {
$definition = new static(array());
// Set the passed entity type.
if (isset($entity_type_id)) {
$definition
->setEntityTypeId($entity_type_id);
}
return $definition;
}
/**
* {@inheritdoc}
*/
public static function createFromDataType($data_type) {
$parts = explode(':', $data_type);
if ($parts[0] != 'entity') {
throw new \InvalidArgumentException('Data type must be in the form of "entity:ENTITY_TYPE:BUNDLE."');
}
$definition = static::create();
// Set the passed entity type and bundle.
if (isset($parts[1])) {
$definition
->setEntityTypeId($parts[1]);
}
if (isset($parts[2])) {
$definition
->setBundles(array(
$parts[2],
));
}
return $definition;
}
/**
* {@inheritdoc}
*/
public function getPropertyDefinitions() {
if (!isset($this->propertyDefinitions)) {
if ($entity_type_id = $this
->getEntityTypeId()) {
// Return an empty array for entities that are not content entities.
$entity_type_class = \Drupal::entityManager()
->getDefinition($entity_type_id)
->getClass();
if (!in_array('Drupal\\Core\\Entity\\FieldableEntityInterface', class_implements($entity_type_class))) {
$this->propertyDefinitions = array();
}
else {
// @todo: Add support for handling multiple bundles.
// See https://www.drupal.org/node/2169813.
$bundles = $this
->getBundles();
if (is_array($bundles) && count($bundles) == 1) {
$this->propertyDefinitions = \Drupal::entityManager()
->getFieldDefinitions($entity_type_id, reset($bundles));
}
else {
$this->propertyDefinitions = \Drupal::entityManager()
->getBaseFieldDefinitions($entity_type_id);
}
}
}
else {
// No entity type given.
$this->propertyDefinitions = array();
}
}
return $this->propertyDefinitions;
}
/**
* {@inheritdoc}
*/
public function getDataType() {
$type = 'entity';
if ($entity_type = $this
->getEntityTypeId()) {
$type .= ':' . $entity_type;
// Append the bundle only if we know it for sure and it is not the default
// bundle.
if (($bundles = $this
->getBundles()) && count($bundles) == 1) {
$bundle = reset($bundles);
if ($bundle != $entity_type) {
$type .= ':' . $bundle;
}
}
}
return $type;
}
/**
* {@inheritdoc}
*/
public function getEntityTypeId() {
return isset($this->definition['constraints']['EntityType']) ? $this->definition['constraints']['EntityType'] : NULL;
}
/**
* {@inheritdoc}
*/
public function setEntityTypeId($entity_type_id) {
return $this
->addConstraint('EntityType', $entity_type_id);
}
/**
* {@inheritdoc}
*/
public function getBundles() {
$bundle = isset($this->definition['constraints']['Bundle']) ? $this->definition['constraints']['Bundle'] : NULL;
return is_string($bundle) ? array(
$bundle,
) : $bundle;
}
/**
* {@inheritdoc}
*/
public function setBundles(array $bundles = NULL) {
if (isset($bundles)) {
$this
->addConstraint('Bundle', $bundles);
}
else {
// Remove the constraint.
unset($this->definition['constraints']['Bundle']);
}
return $this;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ComplexDataDefinitionBase:: |
protected | property | An array of data definitions. | |
ComplexDataDefinitionBase:: |
public | function |
Returns the name of the main property, if any. Overrides ComplexDataDefinitionInterface:: |
1 |
ComplexDataDefinitionBase:: |
public | function |
Gets the definition of a contained property. Overrides ComplexDataDefinitionInterface:: |
|
ComplexDataDefinitionBase:: |
public | function | ||
DataDefinition:: |
protected | property | The array holding values for all definition keys. | |
DataDefinition:: |
public | function |
Adds a validation constraint. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns the class used for creating the typed data object. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Returns a validation constraint. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns an array of validation constraints. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Returns a human readable description. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns a human readable label. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns the value of a given setting. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Returns the array of settings, as required by the used class. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Determines whether the data value is computed. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns whether the data is multi-valued, i.e. a list of data items. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Determines whether the data is read-only. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Determines whether a data value is required. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | Sets the class used for creating the typed data object. | |
DataDefinition:: |
public | function | Sets whether the data is computed. | |
DataDefinition:: |
public | function | ||
DataDefinition:: |
public | function | Sets the data type. | 1 |
DataDefinition:: |
public | function | Sets the human-readable description. | |
DataDefinition:: |
public | function | Sets the human-readable label. | |
DataDefinition:: |
public | function | Sets whether the data is read-only. | |
DataDefinition:: |
public | function | Sets whether the data is required. | |
DataDefinition:: |
public | function | Sets a definition setting. | 1 |
DataDefinition:: |
public | function | Sets the array of settings, as required by the used class. | 1 |
DataDefinition:: |
public | function | Returns all definition values as array. | |
DataDefinition:: |
public | function | Constructs a new data definition object. | 1 |
EntityDataDefinition:: |
public static | function |
Creates a new entity definition. Overrides DataDefinition:: |
|
EntityDataDefinition:: |
public static | function |
Creates a new data definition object. Overrides DataDefinition:: |
|
EntityDataDefinition:: |
public | function |
Gets the array of possible entity bundles. Overrides EntityDataDefinitionInterface:: |
|
EntityDataDefinition:: |
public | function |
Returns the data type of the data. Overrides DataDefinition:: |
|
EntityDataDefinition:: |
public | function |
Gets the entity type ID. Overrides EntityDataDefinitionInterface:: |
|
EntityDataDefinition:: |
public | function |
Gets an array of property definitions of contained properties. Overrides ComplexDataDefinitionBase:: |
|
EntityDataDefinition:: |
public | function |
Sets the array of possible entity bundles. Overrides EntityDataDefinitionInterface:: |
|
EntityDataDefinition:: |
public | function |
Sets the entity type ID. Overrides EntityDataDefinitionInterface:: |