class DataReferenceBase
Same name in other branches
- 9 core/lib/Drupal/Core/TypedData/DataReferenceBase.php \Drupal\Core\TypedData\DataReferenceBase
- 8.9.x core/lib/Drupal/Core/TypedData/DataReferenceBase.php \Drupal\Core\TypedData\DataReferenceBase
- 11.x core/lib/Drupal/Core/TypedData/DataReferenceBase.php \Drupal\Core\TypedData\DataReferenceBase
Base class for typed data references.
Data types based on this base class need to be named "{TARGET_TYPE}_reference", whereas {TARGET_TYPE} is the referenced data type. For example, an entity reference data type would have to be named "entity_reference". Beside that, implementing classes have to implement at least \Drupal\Core\TypedData\DataReferenceInterface::getTargetIdentifier().
Hierarchy
- class \Drupal\Core\TypedData\TypedData implements \Drupal\Core\TypedData\TypedDataInterface, \Drupal\Component\Plugin\PluginInspectionInterface uses \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\TypedData\TypedDataTrait
- class \Drupal\Core\TypedData\DataReferenceBase extends \Drupal\Core\TypedData\TypedData implements \Drupal\Core\TypedData\DataReferenceInterface
Expanded class hierarchy of DataReferenceBase
See also
\Drupal\Core\TypedData\DataReferenceDefinition
2 files declare their use of DataReferenceBase
- EntityReference.php in core/
lib/ Drupal/ Core/ Entity/ Plugin/ DataType/ EntityReference.php - LanguageReference.php in core/
lib/ Drupal/ Core/ TypedData/ Plugin/ DataType/ LanguageReference.php
File
-
core/
lib/ Drupal/ Core/ TypedData/ DataReferenceBase.php, line 17
Namespace
Drupal\Core\TypedDataView source
abstract class DataReferenceBase extends TypedData implements DataReferenceInterface {
/**
* The referenced data.
*
* @var \Drupal\Core\TypedData\TypedDataInterface
*/
protected $target;
/**
* {@inheritdoc}
*/
public function getTarget() {
return $this->target;
}
/**
* {@inheritdoc}
*/
public function getValue() {
if ($target = $this->getTarget()) {
return $target->getValue();
}
}
/**
* {@inheritdoc}
*/
public function setValue($value, $notify = TRUE) {
$this->target = $this->getTypedDataManager()
->create($this->definition
->getTargetDefinition(), $value);
// Notify the parent of any changes.
if ($notify && isset($this->parent)) {
$this->parent
->onChange($this->name);
}
}
/**
* {@inheritdoc}
*/
public function getString() {
if (!method_exists($this, 'getType')) {
throw new \BadMethodCallException(get_class($this) . '::getType() not implemented');
}
return (string) $this->getType() . ':' . $this->getTargetIdentifier();
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
DataReferenceBase::$target | protected | property | The referenced data. | ||
DataReferenceBase::getString | public | function | Returns a string representation of the data. | Overrides TypedData::getString | 1 |
DataReferenceBase::getTarget | public | function | Gets the referenced data. | Overrides DataReferenceInterface::getTarget | 1 |
DataReferenceBase::getValue | public | function | Gets the data value. | Overrides TypedData::getValue | |
DataReferenceBase::setValue | public | function | Sets the data value. | Overrides TypedData::setValue | 1 |
DataReferenceInterface::getTargetIdentifier | public | function | Gets the identifier of the referenced data. | 2 | |
DependencySerializationTrait::$_entityStorages | protected | property | |||
DependencySerializationTrait::$_serviceIds | protected | property | |||
DependencySerializationTrait::__sleep | public | function | 1 | ||
DependencySerializationTrait::__wakeup | public | function | 2 | ||
StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | |
StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | ||
StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | ||
StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | ||
StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | |
StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | ||
TypedData::$definition | protected | property | The data definition. | 1 | |
TypedData::$name | protected | property | The property name. | ||
TypedData::$parent | protected | property | The parent typed data object. | ||
TypedData::applyDefaultValue | public | function | Applies the default value. | Overrides TypedDataInterface::applyDefaultValue | 3 |
TypedData::createInstance | public static | function | Constructs a TypedData object given its definition and context. | Overrides TypedDataInterface::createInstance | |
TypedData::getConstraints | public | function | Gets a list of validation constraints. | Overrides TypedDataInterface::getConstraints | 8 |
TypedData::getDataDefinition | public | function | Gets the data definition. | Overrides TypedDataInterface::getDataDefinition | |
TypedData::getName | public | function | Returns the name of a property or item. | Overrides TypedDataInterface::getName | |
TypedData::getParent | public | function | Returns the parent data structure; i.e. either complex data or a list. | Overrides TypedDataInterface::getParent | |
TypedData::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | Overrides PluginInspectionInterface::getPluginDefinition | |
TypedData::getPluginId | public | function | Gets the plugin_id of the plugin instance. | Overrides PluginInspectionInterface::getPluginId | |
TypedData::getPropertyPath | public | function | Returns the property path of the data. | Overrides TypedDataInterface::getPropertyPath | |
TypedData::getRoot | public | function | Returns the root of the typed data tree. | Overrides TypedDataInterface::getRoot | |
TypedData::setContext | public | function | Sets the context of a property or item via a context aware parent. | Overrides TypedDataInterface::setContext | |
TypedData::validate | public | function | Validates the currently set data value. | Overrides TypedDataInterface::validate | |
TypedData::__construct | public | function | Constructs a TypedData object given its definition and context. | 4 | |
TypedDataTrait::$typedDataManager | protected | property | The typed data manager used for creating the data types. | ||
TypedDataTrait::getTypedDataManager | public | function | Gets the typed data manager. | 2 | |
TypedDataTrait::setTypedDataManager | public | function | Sets the typed data manager. | 2 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.