3 namespace Drupal\search_api_synonym\Import;
5 use Drupal\Core\Cache\CacheBackendInterface;
6 use Drupal\Core\Extension\ModuleHandlerInterface;
7 use Drupal\Core\Plugin\DefaultPluginManager;
10 * Base class for search api synonym import plugin managers.
14 class ImportPluginManager extends DefaultPluginManager {
28 protected $importOptions;
33 public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler) {
34 parent::__construct('Plugin/search_api_synonym/import', $namespaces, $module_handler, 'Drupal\search_api_synonym\Import\ImportPluginInterface', 'Drupal\search_api_synonym\Annotation\SearchApiSynonymImport');
35 $this->alterInfo('search_api_synonym_import_info');
36 $this->setCacheBackend($cache_backend, 'search_api_synonym_import_info_plugins');
42 * @param string $plugin_id
45 public function setPluginId($plugin_id) {
46 $this->pluginId = $plugin_id;
55 public function getPluginId() {
56 return $this->pluginId;
60 * Gets a list of available import plugins.
63 * An array with the plugin names as keys and the descriptions as values.
65 public function getAvailableImportPlugins() {
66 // Use plugin system to get list of available import plugins.
67 $plugins = $this->getDefinitions();
70 foreach ($plugins as $id => $definition) {
71 $output[$id] = $definition;
78 * Validate that a specific import plugin exists.
80 * @param string $plugin
81 * The plugin machine name.
84 * TRUE if the plugin exists.
86 public function validatePlugin($plugin) {
87 if ($this->getDefinition($plugin, FALSE)) {