alterInfo('condition_info'); $this->setCacheBackend($cache_backend, 'condition_plugins'); parent::__construct('Plugin/Condition', $namespaces, $module_handler, 'Drupal\Core\Condition\ConditionInterface', 'Drupal\Core\Condition\Annotation\Condition'); } /** * {@inheritdoc} */ protected function getType() { return 'condition'; } /** * {@inheritdoc} */ public function createInstance($plugin_id, array $configuration = []) { $plugin = $this->getFactory()->createInstance($plugin_id, $configuration); // If we receive any context values via config set it into the plugin. if (!empty($configuration['context'])) { foreach ($configuration['context'] as $name => $context) { $plugin->setContextValue($name, $context); } } return $plugin->setExecutableManager($this); } /** * {@inheritdoc} */ public function execute(ExecutableInterface $condition) { $result = $condition->evaluate(); return $condition->isNegated() ? !$result : $result; } }