Mercurial > hg > isophonics-drupal-site
view core/lib/Drupal/Component/Plugin/Definition/ContextAwarePluginDefinitionTrait.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | |
children |
line wrap: on
line source
<?php namespace Drupal\Component\Plugin\Definition; use Drupal\Component\Plugin\Context\ContextDefinitionInterface; use Drupal\Component\Plugin\Exception\ContextException; /** * Provides a trait for context-aware object-based plugin definitions. */ trait ContextAwarePluginDefinitionTrait { /** * The context definitions for this plugin definition. * * @var \Drupal\Component\Plugin\Context\ContextDefinitionInterface[] */ protected $contextDefinitions = []; /** * Implements \Drupal\Component\Plugin\Definition\ContextAwarePluginDefinitionInterface::hasContextDefinition(). */ public function hasContextDefinition($name) { return array_key_exists($name, $this->contextDefinitions); } /** * Implements \Drupal\Component\Plugin\Definition\ContextAwarePluginDefinitionInterface::getContextDefinitions(). */ public function getContextDefinitions() { return $this->contextDefinitions; } /** * Implements \Drupal\Component\Plugin\Definition\ContextAwarePluginDefinitionInterface::getContextDefinition(). */ public function getContextDefinition($name) { if ($this->hasContextDefinition($name)) { return $this->contextDefinitions[$name]; } throw new ContextException($this->id() . " does not define a '$name' context"); } /** * Implements \Drupal\Component\Plugin\Definition\ContextAwarePluginDefinitionInterface::addContextDefinition(). */ public function addContextDefinition($name, ContextDefinitionInterface $definition) { $this->contextDefinitions[$name] = $definition; return $this; } /** * Implements \Drupal\Component\Plugin\Definition\ContextAwarePluginDefinitionInterface::removeContextDefinition(). */ public function removeContextDefinition($name) { unset($this->contextDefinitions[$name]); return $this; } }