You are here

public function FarmMigrationGroupLookup::transform in farmOS 2.x

Throws

\Drupal\migrate\MigrateSkipProcessException

\Drupal\migrate\MigrateException

Overrides MigrationLookup::transform

File

modules/core/migrate/src/Plugin/migrate/process/FarmMigrationGroupLookup.php, line 38

Class

FarmMigrationGroupLookup
Looks up the value of a property based on a previous migration group.

Namespace

Drupal\farm_migrate\Plugin\migrate\process

Code

public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {

  // Get the migration group ID from the process configuration.
  $lookup_migration_group_id = $this->configuration['migration_group'];

  // Load all migrations.
  $manager = \Drupal::service('plugin.manager.migration');
  $migrations = $manager
    ->createInstances([]);

  // Filter by group.
  $group_migrations = [];
  foreach ($migrations as $id => $migration) {
    $definition = $migration
      ->getPluginDefinition();
    if ($definition['migration_group'] == $lookup_migration_group_id) {
      $group_migrations[] = $id;
    }
  }

  // Set the migration configuration and delegate processing to the parent
  // MigrationLookup::transform() method.
  $this->configuration['migration'] = $group_migrations;
  return parent::transform($value, $migrate_executable, $row, $destination_property);
}