public function PluginId::setValue in Plugin 8.2
Sets the data value.
Parameters
mixed|null $value: The value to set in the format as documented for the data type or NULL to unset the data value.
bool $notify: (optional) Whether to notify the parent object of the change. Defaults to TRUE. If a property is updated from a parent object, set it to FALSE to avoid being notified again.
Throws
\InvalidArgumentException If the value input is inappropriate.
\Drupal\Core\TypedData\Exception\ReadOnlyException If the data is read-only.
Overrides PrimitiveBase::setValue
File
- src/
Plugin/ DataType/ PluginId.php, line 43
Class
- PluginId
- Provides a plugin ID data type.
Namespace
Drupal\plugin\Plugin\DataTypeCode
public function setValue($value, $notify = TRUE) {
$value = (string) $value;
$plugin_instance = $this->parent
->getContainedPluginInstance();
if (!$value) {
$this->parent
->resetContainedPluginInstance();
}
elseif (!$plugin_instance || $plugin_instance
->getPluginId() != $value) {
$plugin_instance = $this->parent
->getPluginType()
->getPluginManager()
->createInstance($value);
$this->parent
->setContainedPluginInstance($plugin_instance);
}
$this->parent
->onChange($this
->getName());
}