You are here

public function Migration::getProcessPlugins in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/migrate/src/Entity/Migration.php \Drupal\migrate\Entity\Migration::getProcessPlugins()

Returns the process plugins.

Parameters

array $process: A process configuration array.

Return value

\Drupal\migrate\Plugin\MigrateProcessInterface[][] An associative array. The keys are the destination property names. Values are process pipelines. Each pipeline contains an array of plugins.

Overrides MigrationInterface::getProcessPlugins

File

core/modules/migrate/src/Entity/Migration.php, line 267
Contains \Drupal\migrate\Entity\Migration.

Class

Migration
Defines the Migration entity.

Namespace

Drupal\migrate\Entity

Code

public function getProcessPlugins(array $process = NULL) {
  if (!isset($process)) {
    $process = $this->process;
  }
  $index = serialize($process);
  if (!isset($this->processPlugins[$index])) {
    $this->processPlugins[$index] = array();
    foreach ($this
      ->getProcessNormalized($process) as $property => $configurations) {
      $this->processPlugins[$index][$property] = array();
      foreach ($configurations as $configuration) {
        if (isset($configuration['source'])) {
          $this->processPlugins[$index][$property][] = \Drupal::service('plugin.manager.migrate.process')
            ->createInstance('get', $configuration, $this);
        }

        // Get is already handled.
        if ($configuration['plugin'] != 'get') {
          $this->processPlugins[$index][$property][] = \Drupal::service('plugin.manager.migrate.process')
            ->createInstance($configuration['plugin'], $configuration, $this);
        }
        if (!$this->processPlugins[$index][$property]) {
          throw new MigrateException("Invalid process configuration for {$property}");
        }
      }
    }
  }
  return $this->processPlugins[$index];
}