You are here

protected function ImportConfigManipulator::createImportProcessorPlugins in Entity Share 8.3

Creates multiple plugin objects for the given import config.

Parameters

\Drupal\entity_share_client\Entity\ImportConfigInterface $import_config: The import config for which to create the plugins.

string[]|null $plugin_ids: (optional) The IDs of the plugins to create, or NULL to create instances for all known plugins of this type.

array $configurations: (optional) The configurations to set for the plugins, keyed by plugin ID. Missing configurations are either taken from the index's stored settings, if they are present there, or default to an empty array.

Return value

\Drupal\entity_share_client\ImportProcessor\ImportProcessorInterface[] The created plugin objects.

Throws

\Exception Thrown if an unknown $type or plugin ID is given.

1 call to ImportConfigManipulator::createImportProcessorPlugins()
ImportConfigManipulator::getImportProcessors in modules/entity_share_client/src/Service/ImportConfigManipulator.php
Retrieves this import config's processors.

File

modules/entity_share_client/src/Service/ImportConfigManipulator.php, line 56

Class

ImportConfigManipulator
Class ImportConfigManipulator.

Namespace

Drupal\entity_share_client\Service

Code

protected function createImportProcessorPlugins(ImportConfigInterface $import_config, array $plugin_ids = NULL, array $configurations = []) {
  if ($plugin_ids === NULL) {
    $plugin_ids = array_keys($this->importProcessorPluginManager
      ->getDefinitions());
  }
  $plugins = [];
  $import_config_settings = $import_config
    ->get('import_processor_settings');
  foreach ($plugin_ids as $plugin_id) {
    $configuration = [];
    if (isset($configurations[$plugin_id])) {
      $configuration = $configurations[$plugin_id];
    }
    elseif (isset($import_config_settings[$plugin_id])) {
      $configuration = $import_config_settings[$plugin_id];
    }
    try {
      $plugins[$plugin_id] = $this->importProcessorPluginManager
        ->createInstance($plugin_id, $configuration);
    } catch (PluginException $exception) {
      throw new \Exception("Unknown import processor plugin with ID '{$plugin_id}'");
    }
  }
  return $plugins;
}