Same name and namespace in other branches
- 8.9.x core/modules/migrate/src/Plugin/migrate/process/MakeUniqueEntityField.php \Drupal\migrate\Plugin\migrate\process\MakeUniqueEntityField
- 9 core/modules/migrate/src/Plugin/migrate/process/MakeUniqueEntityField.php \Drupal\migrate\Plugin\migrate\process\MakeUniqueEntityField
Hierarchy
- class \Drupal\migrate\Plugin\migrate\process\MakeUniqueBase extends \Drupal\migrate\ProcessPluginBase
- class \Drupal\migrate\Plugin\migrate\process\MakeUniqueEntityField implements ContainerFactoryPluginInterface
Expanded class hierarchy of MakeUniqueEntityField
1 file declares its use of MakeUniqueEntityField
- MakeUniqueEntityFieldTest.php in core/
modules/ migrate/ tests/ src/ Unit/ process/ MakeUniqueEntityFieldTest.php
File
- core/
modules/ migrate/ src/ Plugin/ migrate/ process/ MakeUniqueEntityField.php, line 82
Namespace
Drupal\migrate\Plugin\migrate\processView source
class MakeUniqueEntityField extends MakeUniqueBase implements ContainerFactoryPluginInterface {
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* The current migration.
*
* @var \Drupal\migrate\Plugin\MigrationInterface
*/
protected $migration;
/**
* {@inheritdoc}
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration, EntityTypeManagerInterface $entity_type_manager) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->migration = $migration;
$this->entityTypeManager = $entity_type_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) {
return new static($configuration, $plugin_id, $plugin_definition, $migration, $container
->get('entity_type.manager'));
}
/**
* {@inheritdoc}
*/
protected function exists($value) {
// Plugins are cached so for every run we need a new query object.
$query = $this->entityTypeManager
->getStorage($this->configuration['entity_type'])
->getQuery()
->accessCheck(FALSE)
->condition($this->configuration['field'], $value);
if (!empty($this->configuration['migrated'])) {
// Check if each entity is in the ID map.
$idMap = $this->migration
->getIdMap();
foreach ($query
->execute() as $id) {
$dest_id_values[$this->configuration['field']] = $id;
if ($idMap
->lookupSourceId($dest_id_values)) {
return TRUE;
}
}
return FALSE;
}
else {
// Just check if any such entity exists.
return $query
->count()
->execute();
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
MakeUniqueBase:: |
public | function | Creates a unique value based on the source value. | |
MakeUniqueEntityField:: |
protected | property | The entity type manager. | |
MakeUniqueEntityField:: |
protected | property | The current migration. | |
MakeUniqueEntityField:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
MakeUniqueEntityField:: |
protected | function |
This is a query checking the existence of some value. Overrides MakeUniqueBase:: |
|
MakeUniqueEntityField:: |
public | function |