discovery; } /** * Gets the plugin factory. * * @return \Drupal\Component\Plugin\Factory\FactoryInterface */ protected function getFactory() { return $this->factory; } /** * {@inheritdoc} */ public function getDefinition($plugin_id, $exception_on_invalid = TRUE) { return $this->getDiscovery()->getDefinition($plugin_id, $exception_on_invalid); } /** * {@inheritdoc} */ public function getDefinitions() { return $this->getDiscovery()->getDefinitions(); } /** * {@inheritdoc} */ public function createInstance($plugin_id, array $configuration = []) { // If this PluginManager has fallback capabilities catch // PluginNotFoundExceptions. if ($this instanceof FallbackPluginManagerInterface) { try { return $this->getFactory()->createInstance($plugin_id, $configuration); } catch (PluginNotFoundException $e) { $fallback_id = $this->getFallbackPluginId($plugin_id, $configuration); return $this->getFactory()->createInstance($fallback_id, $configuration); } } else { return $this->getFactory()->createInstance($plugin_id, $configuration); } } /** * {@inheritdoc} */ public function getInstance(array $options) { return $this->mapper->getInstance($options); } }