3 declare(strict_types = 1);
7 use Drupal\Core\Entity\EntityTypeManagerInterface;
8 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
9 use Drupal\Core\Queue\QueueWorkerBase;
10 use Symfony\Component\DependencyInjection\ContainerInterface;
44 public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager) {
45 parent::__construct($configuration, $plugin_id, $plugin_definition);
46 $this->entityTypeManager = $entity_type_manager;
54 public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
59 $container->get(
'entity_type.manager')
69 $property_id = $data[0];
73 $datasets = $this->entityTypeManager->getStorage(
'node')
76 'field_data_type' =>
'dataset',
79 foreach ($datasets as $dataset) {
80 $data = json_decode($dataset->referenced_metadata);
81 $value = $data->{$property_id};
83 $uuid_is_value = $uuid == $value;
84 $uuid_found_in_array = is_array($value) && in_array($uuid, $value);
85 if ($uuid_is_value || $uuid_found_in_array) {
104 $references = $this->entityTypeManager->getStorage(
'node')
107 'field_data_type' => $property_id,
111 if (FALSE !== ($reference = reset($references))) {
112 $reference->delete();