/**
  * Constructs a PluginWrapper object.
  *
  * @param PluginInspectionInterface $plugin
  *   The plugin to wrap.
  */
 public function __construct(PluginInspectionInterface $plugin)
 {
     $this->plugin = $plugin;
     $this->pluginDefinition = $plugin->getPluginDefinition();
     // For configurable plugins, expose those properties as well.
     if ($plugin instanceof ConfigurablePluginInterface) {
         $this->pluginConfiguration = $plugin->getConfiguration();
     }
 }
 /**
  * Calculates and adds dependencies of a specific plugin instance.
  *
  * Dependencies are added for the module that provides the plugin, as well
  * as any dependencies declared by the instance's calculateDependencies()
  * method, if it implements
  * \Drupal\Component\Plugin\ConfigurablePluginInterface.
  *
  * @param \Drupal\Component\Plugin\PluginInspectionInterface $instance
  *   The plugin instance.
  */
 protected function calculatePluginDependencies(PluginInspectionInterface $instance)
 {
     $definition = $instance->getPluginDefinition();
     $this->addDependency('module', $definition['provider']);
     // Plugins can declare additional dependencies in their definition.
     if (isset($definition['config_dependencies'])) {
         $this->addDependencies($definition['config_dependencies']);
     }
     // If a plugin is configurable, calculate its dependencies.
     if ($instance instanceof ConfigurablePluginInterface && ($plugin_dependencies = $instance->calculateDependencies())) {
         $this->addDependencies($plugin_dependencies);
     }
 }