Updated all the contrib modules to their latest versions.
[yaffs-website] / web / modules / contrib / file_mdm / src / Plugin / FileMetadataPluginManager.php
1 <?php
2
3 namespace Drupal\file_mdm\Plugin;
4
5 use Drupal\Component\Utility\NestedArray;
6 use Drupal\Core\Cache\CacheBackendInterface;
7 use Drupal\Core\Config\ConfigFactoryInterface;
8 use Drupal\Core\Extension\ModuleHandlerInterface;
9 use Drupal\Core\Plugin\DefaultPluginManager;
10
11 /**
12  * Plugin manager for FileMetadata plugins.
13  */
14 class FileMetadataPluginManager extends DefaultPluginManager {
15
16   /**
17    * The config factory service.
18    *
19    * @var \Drupal\Core\Config\ConfigFactoryInterface
20    */
21   protected $configFactory;
22
23   /**
24    * {@inheritdoc}
25    */
26   public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, ConfigFactoryInterface $config_factory) {
27     parent::__construct('Plugin/FileMetadata', $namespaces, $module_handler, 'Drupal\file_mdm\Plugin\FileMetadataPluginInterface', 'Drupal\file_mdm\Plugin\Annotation\FileMetadata');
28     $this->alterInfo('file_metadata_plugin_info');
29     $this->setCacheBackend($cache_backend, 'file_metadata_plugins');
30     $this->configFactory = $config_factory;
31   }
32
33   /**
34    * {@inheritdoc}
35    */
36   public function createInstance($plugin_id, array $configuration = array()) {
37     $plugin_definition = $this->getDefinition($plugin_id);
38     $default_config = call_user_func($plugin_definition['class'] . '::defaultConfiguration');
39     $configuration = $this->configFactory->get($plugin_definition['provider'] . '.file_metadata_plugin.' . $plugin_id)->get('configuration') ?: [];
40     return parent::createInstance($plugin_id, NestedArray::mergeDeep($default_config, $configuration));
41   }
42
43 }