3 namespace Drupal\Component\Plugin\Definition;
5 use Drupal\Component\Plugin\Context\ContextDefinitionInterface;
8 * Provides an interface for plugin definitions which use contexts.
12 interface ContextAwarePluginDefinitionInterface extends PluginDefinitionInterface {
15 * Checks if the plugin defines a particular context.
21 * TRUE if the plugin defines the given context, otherwise FALSE.
23 public function hasContextDefinition($name);
26 * Returns all context definitions for this plugin.
28 * @return \Drupal\Component\Plugin\Context\ContextDefinitionInterface[]
29 * The context definitions.
31 public function getContextDefinitions();
34 * Returns a particular context definition for this plugin.
39 * @return \Drupal\Component\Plugin\Context\ContextDefinitionInterface
40 * The context definition.
42 * @throws \Drupal\Component\Plugin\Exception\ContextException
43 * Thrown if the plugin does not define the given context.
45 public function getContextDefinition($name);
48 * Adds a context to this plugin definition.
52 * @param \Drupal\Component\Plugin\Context\ContextDefinitionInterface $definition
53 * The context definition.
58 public function addContextDefinition($name, ContextDefinitionInterface $definition);
61 * Removes a context definition from this plugin.
69 public function removeContextDefinition($name);