From 9d96532b7929029656f12885461749bea778a91d Mon Sep 17 00:00:00 2001
From: Nathaniel Catchpole <catch@35733.no-reply.drupal.org>
Date: Mon, 18 Mar 2019 16:27:00 +0000
Subject: [PATCH] Issue #3035383 by andypost, martin107, Berdir: Replace
 deprecated usages of entityManager in list builder classes

---
 .../Drupal/Core/Entity/EntityListBuilder.php  |  2 +-
 core/modules/action/src/ActionListBuilder.php |  2 +-
 core/modules/block/src/BlockListBuilder.php   |  2 +-
 .../ConfigTranslationBlockListBuilder.php     |  2 +-
 .../src/ModeratedNodeListBuilder.php          |  5 +-
 .../src/EntityDisplayModeListBuilder.php      |  6 +-
 .../field_ui/src/FieldConfigListBuilder.php   | 55 ++++++++++++++-----
 .../src/FieldStorageConfigListBuilder.php     | 27 ++++++---
 .../filter/src/FilterFormatListBuilder.php    |  2 +-
 .../language/src/LanguageListBuilder.php      |  2 +-
 core/modules/media/src/MediaListBuilder.php   |  5 +-
 core/modules/node/src/NodeListBuilder.php     |  2 +-
 .../search/src/SearchPageListBuilder.php      |  2 +-
 .../system/src/DateFormatListBuilder.php      |  2 +-
 core/modules/user/src/RoleListBuilder.php     |  2 +-
 core/modules/user/src/UserListBuilder.php     |  2 +-
 core/modules/views_ui/src/ViewListBuilder.php |  2 +-
 .../workspaces/src/WorkspaceListBuilder.php   |  2 +-
 18 files changed, 82 insertions(+), 42 deletions(-)

diff --git a/core/lib/Drupal/Core/Entity/EntityListBuilder.php b/core/lib/Drupal/Core/Entity/EntityListBuilder.php
index c7843517be50..3039c4f8eb04 100644
--- a/core/lib/Drupal/Core/Entity/EntityListBuilder.php
+++ b/core/lib/Drupal/Core/Entity/EntityListBuilder.php
@@ -54,7 +54,7 @@ class EntityListBuilder extends EntityHandlerBase implements EntityListBuilderIn
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id())
+      $container->get('entity_type.manager')->getStorage($entity_type->id())
     );
   }
 
diff --git a/core/modules/action/src/ActionListBuilder.php b/core/modules/action/src/ActionListBuilder.php
index a5102d3596f2..f2d829c43a04 100644
--- a/core/modules/action/src/ActionListBuilder.php
+++ b/core/modules/action/src/ActionListBuilder.php
@@ -51,7 +51,7 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('plugin.manager.action')
     );
   }
diff --git a/core/modules/block/src/BlockListBuilder.php b/core/modules/block/src/BlockListBuilder.php
index 3884d27f21ea..be5ac8fcb460 100644
--- a/core/modules/block/src/BlockListBuilder.php
+++ b/core/modules/block/src/BlockListBuilder.php
@@ -90,7 +90,7 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('theme.manager'),
       $container->get('form_builder'),
       $container->get('messenger')
diff --git a/core/modules/config_translation/src/Controller/ConfigTranslationBlockListBuilder.php b/core/modules/config_translation/src/Controller/ConfigTranslationBlockListBuilder.php
index c226dfbd60a7..b6186aaf7b37 100644
--- a/core/modules/config_translation/src/Controller/ConfigTranslationBlockListBuilder.php
+++ b/core/modules/config_translation/src/Controller/ConfigTranslationBlockListBuilder.php
@@ -34,7 +34,7 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('theme_handler')
     );
   }
diff --git a/core/modules/content_moderation/src/ModeratedNodeListBuilder.php b/core/modules/content_moderation/src/ModeratedNodeListBuilder.php
index 30b90f98cd4b..71beae24745b 100644
--- a/core/modules/content_moderation/src/ModeratedNodeListBuilder.php
+++ b/core/modules/content_moderation/src/ModeratedNodeListBuilder.php
@@ -54,12 +54,13 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
    * {@inheritdoc}
    */
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
+    $entity_type_manager = $container->get('entity_type.manager');
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $entity_type_manager->getStorage($entity_type->id()),
       $container->get('date.formatter'),
       $container->get('redirect.destination'),
-      $container->get('entity_type.manager')
+      $entity_type_manager
     );
   }
 
diff --git a/core/modules/field_ui/src/EntityDisplayModeListBuilder.php b/core/modules/field_ui/src/EntityDisplayModeListBuilder.php
index cf44b8b78de6..35a8b1cf6b22 100644
--- a/core/modules/field_ui/src/EntityDisplayModeListBuilder.php
+++ b/core/modules/field_ui/src/EntityDisplayModeListBuilder.php
@@ -45,11 +45,11 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
    * {@inheritdoc}
    */
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
-    $entity_manager = $container->get('entity.manager');
+    $entity_type_manager = $container->get('entity_type.manager');
     return new static(
       $entity_type,
-      $entity_manager->getStorage($entity_type->id()),
-      $entity_manager->getDefinitions()
+      $entity_type_manager->getStorage($entity_type->id()),
+      $entity_type_manager->getDefinitions()
     );
   }
 
diff --git a/core/modules/field_ui/src/FieldConfigListBuilder.php b/core/modules/field_ui/src/FieldConfigListBuilder.php
index a6363aa0ee6e..8e0838d119d4 100644
--- a/core/modules/field_ui/src/FieldConfigListBuilder.php
+++ b/core/modules/field_ui/src/FieldConfigListBuilder.php
@@ -4,8 +4,10 @@
 
 use Drupal\Component\Utility\Html;
 use Drupal\Core\Config\Entity\ConfigEntityListBuilder;
+use Drupal\Core\DependencyInjection\DeprecatedServicePropertyTrait;
+use Drupal\Core\Entity\EntityFieldManagerInterface;
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Field\FieldTypePluginManagerInterface;
 use Drupal\Core\Url;
@@ -16,6 +18,14 @@
  * Provides lists of field config entities.
  */
 class FieldConfigListBuilder extends ConfigEntityListBuilder {
+  use DeprecatedServicePropertyTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected $deprecatedProperties = [
+    'entityManager' => 'entity.manager',
+  ];
 
   /**
    * The name of the entity type the listed fields are attached to.
@@ -32,11 +42,11 @@ class FieldConfigListBuilder extends ConfigEntityListBuilder {
   protected $targetBundle;
 
   /**
-   * The entity manager.
+   * The entity type manager.
    *
-   * @var \Drupal\Core\Entity\EntityManagerInterface
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
    */
-  protected $entityManager;
+  protected $entityTypeManager;
 
   /**
    * The field type plugin manager.
@@ -45,28 +55,47 @@ class FieldConfigListBuilder extends ConfigEntityListBuilder {
    */
   protected $fieldTypeManager;
 
+  /**
+   * The entity field manager.
+   *
+   * @var \Drupal\Core\Entity\EntityFieldManagerInterface
+   */
+  protected $entityFieldManager;
+
   /**
    * Constructs a new class instance.
    *
    * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
    *   The entity type definition.
-   * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
-   *   The entity manager.
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
+   *   The entity type manager.
    * @param \Drupal\Core\Field\FieldTypePluginManagerInterface $field_type_manager
-   *   The field type manager
+   *   The field type manager.
+   * @param \Drupal\Core\Entity\EntityFieldManagerInterface|null $entity_field_manager
+   *   The entity field manager.
    */
-  public function __construct(EntityTypeInterface $entity_type, EntityManagerInterface $entity_manager, FieldTypePluginManagerInterface $field_type_manager) {
-    parent::__construct($entity_type, $entity_manager->getStorage($entity_type->id()));
+  public function __construct(EntityTypeInterface $entity_type, EntityTypeManagerInterface $entity_type_manager, FieldTypePluginManagerInterface $field_type_manager, EntityFieldManagerInterface $entity_field_manager = NULL) {
+    parent::__construct($entity_type, $entity_type_manager->getStorage($entity_type->id()));
 
-    $this->entityManager = $entity_manager;
+    $this->entityTypeManager = $entity_type_manager;
     $this->fieldTypeManager = $field_type_manager;
+    if (!$entity_field_manager) {
+      @trigger_error('Calling FieldConfigListBuilder::__construct() with the $entity_field_manager argument is supported in Drupal 8.7.0 and will be required before Drupal 9.0.0. See https://www.drupal.org/node/2549139.', E_USER_DEPRECATED);
+      $entity_field_manager = \Drupal::service('entity_field.manager');
+    }
+    $this->entityFieldManager = $entity_field_manager;
   }
 
   /**
    * {@inheritdoc}
    */
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
-    return new static($entity_type, $container->get('entity.manager'), $container->get('plugin.manager.field.field_type'));
+    return new static(
+      $entity_type,
+      $container->get('entity_type.manager'),
+      $container->get('plugin.manager.field.field_type'),
+      $container->get('entity_field.manager')
+    );
   }
 
   /**
@@ -87,7 +116,7 @@ public function render($target_entity_type_id = NULL, $target_bundle = NULL) {
    * {@inheritdoc}
    */
   public function load() {
-    $entities = array_filter($this->entityManager->getFieldDefinitions($this->targetEntityTypeId, $this->targetBundle), function ($field_definition) {
+    $entities = array_filter($this->entityFieldManager->getFieldDefinitions($this->targetEntityTypeId, $this->targetBundle), function ($field_definition) {
       return $field_definition instanceof FieldConfigInterface;
     });
 
@@ -120,7 +149,7 @@ public function buildRow(EntityInterface $field_config) {
     $field_storage = $field_config->getFieldStorageDefinition();
     $route_parameters = [
       'field_config' => $field_config->id(),
-    ] + FieldUI::getRouteBundleParameter($this->entityManager->getDefinition($this->targetEntityTypeId), $this->targetBundle);
+    ] + FieldUI::getRouteBundleParameter($this->entityTypeManager->getDefinition($this->targetEntityTypeId), $this->targetBundle);
 
     $row = [
       'id' => Html::getClass($field_config->getName()),
diff --git a/core/modules/field_ui/src/FieldStorageConfigListBuilder.php b/core/modules/field_ui/src/FieldStorageConfigListBuilder.php
index 422c3b69d77e..fd87b619a6e0 100644
--- a/core/modules/field_ui/src/FieldStorageConfigListBuilder.php
+++ b/core/modules/field_ui/src/FieldStorageConfigListBuilder.php
@@ -3,8 +3,9 @@
 namespace Drupal\field_ui;
 
 use Drupal\Core\Config\Entity\ConfigEntityListBuilder;
+use Drupal\Core\DependencyInjection\DeprecatedServicePropertyTrait;
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Entity\EntityTypeBundleInfoInterface;
 use Drupal\Core\Field\FieldTypePluginManagerInterface;
@@ -17,6 +18,14 @@
  * @see field_ui_entity_info()
  */
 class FieldStorageConfigListBuilder extends ConfigEntityListBuilder {
+  use DeprecatedServicePropertyTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected $deprecatedProperties = [
+    'entityManager' => 'entity.manager',
+  ];
 
   /**
    * An array of information about field types.
@@ -26,11 +35,11 @@ class FieldStorageConfigListBuilder extends ConfigEntityListBuilder {
   protected $fieldTypes;
 
   /**
-   * The entity manager.
+   * The entity type manager.
    *
-   * @var \Drupal\Core\Entity\EntityManagerInterface
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
    */
-  protected $entityManager;
+  protected $entityTypeManager;
 
   /**
    * An array of entity bundle information.
@@ -51,15 +60,15 @@ class FieldStorageConfigListBuilder extends ConfigEntityListBuilder {
    *
    * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
    *   The entity type definition.
-   * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity manager.
    * @param \Drupal\Core\Field\FieldTypePluginManagerInterface $field_type_manager
    *   The 'field type' plugin manager.
    */
-  public function __construct(EntityTypeInterface $entity_type, EntityManagerInterface $entity_manager, FieldTypePluginManagerInterface $field_type_manager, EntityTypeBundleInfoInterface $bundle_info_service) {
-    parent::__construct($entity_type, $entity_manager->getStorage($entity_type->id()));
+  public function __construct(EntityTypeInterface $entity_type, EntityTypeManagerInterface $entity_type_manager, FieldTypePluginManagerInterface $field_type_manager, EntityTypeBundleInfoInterface $bundle_info_service) {
+    parent::__construct($entity_type, $entity_type_manager->getStorage($entity_type->id()));
 
-    $this->entityManager = $entity_manager;
+    $this->entityTypeManager = $entity_type_manager;
     $this->bundles = $bundle_info_service->getAllBundleInfo();
     $this->fieldTypeManager = $field_type_manager;
     $this->fieldTypes = $this->fieldTypeManager->getDefinitions();
@@ -71,7 +80,7 @@ public function __construct(EntityTypeInterface $entity_type, EntityManagerInter
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager'),
+      $container->get('entity_type.manager'),
       $container->get('plugin.manager.field.field_type'),
       $container->get('entity_type.bundle.info')
     );
diff --git a/core/modules/filter/src/FilterFormatListBuilder.php b/core/modules/filter/src/FilterFormatListBuilder.php
index f15474694d5a..d63ea6c9fc47 100644
--- a/core/modules/filter/src/FilterFormatListBuilder.php
+++ b/core/modules/filter/src/FilterFormatListBuilder.php
@@ -62,7 +62,7 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('config.factory'),
       $container->get('messenger')
     );
diff --git a/core/modules/language/src/LanguageListBuilder.php b/core/modules/language/src/LanguageListBuilder.php
index caf1d9187d43..f736738669bd 100644
--- a/core/modules/language/src/LanguageListBuilder.php
+++ b/core/modules/language/src/LanguageListBuilder.php
@@ -51,7 +51,7 @@ class LanguageListBuilder extends DraggableListBuilder {
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('language_manager'),
       $container->get('config.factory'),
       $container->get('messenger')
diff --git a/core/modules/media/src/MediaListBuilder.php b/core/modules/media/src/MediaListBuilder.php
index 237129bbb02d..0f57eac43e74 100644
--- a/core/modules/media/src/MediaListBuilder.php
+++ b/core/modules/media/src/MediaListBuilder.php
@@ -62,12 +62,13 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
    * {@inheritdoc}
    */
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
+    $entity_type_manager = $container->get('entity_type.manager');
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $entity_type_manager->getStorage($entity_type->id()),
       $container->get('date.formatter'),
       $container->get('language_manager'),
-      $container->get('entity_type.manager')->getStorage('image_style')
+      $entity_type_manager->getStorage('image_style')
     );
   }
 
diff --git a/core/modules/node/src/NodeListBuilder.php b/core/modules/node/src/NodeListBuilder.php
index 4cab89106630..22b900da8766 100644
--- a/core/modules/node/src/NodeListBuilder.php
+++ b/core/modules/node/src/NodeListBuilder.php
@@ -50,7 +50,7 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('date.formatter'),
       $container->get('redirect.destination')
     );
diff --git a/core/modules/search/src/SearchPageListBuilder.php b/core/modules/search/src/SearchPageListBuilder.php
index bde195ec638e..b0382251b7d4 100644
--- a/core/modules/search/src/SearchPageListBuilder.php
+++ b/core/modules/search/src/SearchPageListBuilder.php
@@ -77,7 +77,7 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('plugin.manager.search'),
       $container->get('config.factory'),
       $container->get('messenger')
diff --git a/core/modules/system/src/DateFormatListBuilder.php b/core/modules/system/src/DateFormatListBuilder.php
index c0e2c366f089..0c94a64197ae 100644
--- a/core/modules/system/src/DateFormatListBuilder.php
+++ b/core/modules/system/src/DateFormatListBuilder.php
@@ -45,7 +45,7 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('date.formatter')
     );
   }
diff --git a/core/modules/user/src/RoleListBuilder.php b/core/modules/user/src/RoleListBuilder.php
index 40ae5e4891ba..d864a550d02b 100644
--- a/core/modules/user/src/RoleListBuilder.php
+++ b/core/modules/user/src/RoleListBuilder.php
@@ -47,7 +47,7 @@ public function __construct(EntityTypeInterface $entityType,
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('messenger')
     );
   }
diff --git a/core/modules/user/src/UserListBuilder.php b/core/modules/user/src/UserListBuilder.php
index 306d04609e76..8c3cef90dfc4 100644
--- a/core/modules/user/src/UserListBuilder.php
+++ b/core/modules/user/src/UserListBuilder.php
@@ -56,7 +56,7 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('date.formatter'),
       $container->get('redirect.destination')
     );
diff --git a/core/modules/views_ui/src/ViewListBuilder.php b/core/modules/views_ui/src/ViewListBuilder.php
index a3e384098b48..617275a1a689 100644
--- a/core/modules/views_ui/src/ViewListBuilder.php
+++ b/core/modules/views_ui/src/ViewListBuilder.php
@@ -36,7 +36,7 @@ class ViewListBuilder extends ConfigEntityListBuilder {
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('plugin.manager.views.display')
     );
   }
diff --git a/core/modules/workspaces/src/WorkspaceListBuilder.php b/core/modules/workspaces/src/WorkspaceListBuilder.php
index 56ab1c5e43d3..360c1e89e143 100644
--- a/core/modules/workspaces/src/WorkspaceListBuilder.php
+++ b/core/modules/workspaces/src/WorkspaceListBuilder.php
@@ -48,7 +48,7 @@ public function __construct(EntityTypeInterface $entity_type, EntityStorageInter
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
     return new static(
       $entity_type,
-      $container->get('entity.manager')->getStorage($entity_type->id()),
+      $container->get('entity_type.manager')->getStorage($entity_type->id()),
       $container->get('workspaces.manager')
     );
   }
-- 
GitLab