From d5a426873ae848c81b6dee727124de2d21178ef8 Mon Sep 17 00:00:00 2001
From: Colan Schwartz <colan@58704.no-reply.drupal.org>
Date: Tue, 3 Oct 2017 12:59:44 -0400
Subject: [PATCH] Issue #2820360 by Michelle, andypost, fgm, Fanyalla, colan:
 Accept EntityTypeManagerInterface instead of EntityTypeManager.

---
 src/EntityClone/Config/ConfigEntityCloneBase.php     |  8 ++++----
 src/EntityClone/Config/ConfigEntityCloneFormBase.php | 13 +++++++++----
 src/EntityClone/Content/ContentEntityCloneBase.php   | 11 +++++++----
 src/Form/EntityCloneForm.php                         |  8 ++++----
 src/Plugin/Derivative/DynamicLocalTasks.php          |  8 ++++----
 5 files changed, 28 insertions(+), 20 deletions(-)

diff --git a/src/EntityClone/Config/ConfigEntityCloneBase.php b/src/EntityClone/Config/ConfigEntityCloneBase.php
index 631edfd..ecf5116 100644
--- a/src/EntityClone/Config/ConfigEntityCloneBase.php
+++ b/src/EntityClone/Config/ConfigEntityCloneBase.php
@@ -5,7 +5,7 @@ namespace Drupal\entity_clone\EntityClone\Config;
 use Drupal\Core\Entity\EntityHandlerInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
-use Drupal\Core\Entity\EntityTypeManager;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\entity_clone\EntityClone\EntityCloneInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -17,7 +17,7 @@ class ConfigEntityCloneBase implements EntityHandlerInterface, EntityCloneInterf
   /**
    * The entity type manager.
    *
-   * @var \Drupal\Core\Entity\EntityTypeManager
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
    */
   protected $entityTypeManager;
 
@@ -31,12 +31,12 @@ class ConfigEntityCloneBase implements EntityHandlerInterface, EntityCloneInterf
   /**
    * Constructs a new ConfigEntityCloneBase.
    *
-   * @param \Drupal\Core\Entity\EntityTypeManager $entity_type_manager
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
    * @param string $entity_type_id
    *   The entity type ID.
    */
-  public function __construct(EntityTypeManager $entity_type_manager, $entity_type_id) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, $entity_type_id) {
     $this->entityTypeManager = $entity_type_manager;
     $this->entityTypeId = $entity_type_id;
   }
diff --git a/src/EntityClone/Config/ConfigEntityCloneFormBase.php b/src/EntityClone/Config/ConfigEntityCloneFormBase.php
index 2513795..d40ddd5 100644
--- a/src/EntityClone/Config/ConfigEntityCloneFormBase.php
+++ b/src/EntityClone/Config/ConfigEntityCloneFormBase.php
@@ -5,7 +5,7 @@ namespace Drupal\entity_clone\EntityClone\Config;
 use Drupal\Core\Entity\EntityHandlerInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
-use Drupal\Core\Entity\EntityTypeManager;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\StringTranslation\TranslationManager;
 use Drupal\entity_clone\EntityClone\EntityCloneFormInterface;
@@ -17,23 +17,28 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
 class ConfigEntityCloneFormBase implements EntityHandlerInterface, EntityCloneFormInterface {
 
   /**
-   * The entity type manager.
+   * The string translation.
    *
    * @var \Drupal\Core\StringTranslation\TranslationManager
    */
   protected $translationManager;
 
+  /**
+   * The entity type manager.
+   *
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
+   */
   protected $entityTypeManager;
 
   /**
    * Constructs a new ConfigEntityCloneFormBase.
    *
-   * @param \Drupal\Core\Entity\EntityTypeManager $entity_type_manager
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
    * @param \Drupal\Core\StringTranslation\TranslationManager $translation_manager
    *   The string translation manager.
    */
-  public function __construct(EntityTypeManager $entity_type_manager, TranslationManager $translation_manager) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, TranslationManager $translation_manager) {
     $this->entityTypeManager = $entity_type_manager;
     $this->translationManager = $translation_manager;
   }
diff --git a/src/EntityClone/Content/ContentEntityCloneBase.php b/src/EntityClone/Content/ContentEntityCloneBase.php
index 4c29d2e..486ba95 100644
--- a/src/EntityClone/Content/ContentEntityCloneBase.php
+++ b/src/EntityClone/Content/ContentEntityCloneBase.php
@@ -5,7 +5,7 @@ namespace Drupal\entity_clone\EntityClone\Content;
 use Drupal\Core\Entity\EntityHandlerInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
-use Drupal\Core\Entity\EntityTypeManager;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\entity_clone\EntityClone\EntityCloneInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -17,7 +17,7 @@ class ContentEntityCloneBase implements EntityHandlerInterface, EntityCloneInter
   /**
    * The entity type manager.
    *
-   * @var \Drupal\Core\Entity\EntityTypeManager
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
    */
   protected $entityTypeManager;
 
@@ -31,14 +31,17 @@ class ContentEntityCloneBase implements EntityHandlerInterface, EntityCloneInter
   /**
    * Constructs a new ContentEntityCloneBase.
    *
-   * @param \Drupal\Core\Entity\EntityTypeManager $entity_type_manager
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
    * @param string $entity_type_id
    *   The entity type ID.
+   * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $eventDispatcher
+   *   The event dispatcher service.
    */
-  public function __construct(EntityTypeManager $entity_type_manager, $entity_type_id) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, $entity_type_id, EventDispatcherInterface $eventDispatcher) {
     $this->entityTypeManager = $entity_type_manager;
     $this->entityTypeId = $entity_type_id;
+    $this->eventDispatcher = $eventDispatcher;
   }
 
   /**
diff --git a/src/Form/EntityCloneForm.php b/src/Form/EntityCloneForm.php
index d3391f7..8ca215f 100644
--- a/src/Form/EntityCloneForm.php
+++ b/src/Form/EntityCloneForm.php
@@ -3,7 +3,7 @@
 namespace Drupal\entity_clone\Form;
 
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\Core\Entity\EntityTypeManager;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Form\FormBase;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Routing\RouteMatchInterface;
@@ -21,7 +21,7 @@ class EntityCloneForm extends FormBase {
   /**
    * The entity type manager.
    *
-   * @var \Drupal\Core\Entity\EntityTypeManager
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
    */
   protected $entityTypeManager;
 
@@ -56,7 +56,7 @@ class EntityCloneForm extends FormBase {
   /**
    * Constructs a new Entity Clone form.
    *
-   * @param \Drupal\Core\Entity\EntityTypeManager $entity_type_manager
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
    * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
    *   The route match service.
@@ -67,7 +67,7 @@ class EntityCloneForm extends FormBase {
    *
    * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
    */
-  public function __construct(EntityTypeManager $entity_type_manager, RouteMatchInterface $route_match, TranslationManager $string_translation, EventDispatcherInterface $eventDispatcher) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, RouteMatchInterface $route_match, TranslationManager $string_translation, EventDispatcherInterface $eventDispatcher) {
     $this->entityTypeManager = $entity_type_manager;
     $this->stringTranslationManager = $string_translation;
     $this->eventDispatcher = $eventDispatcher;
diff --git a/src/Plugin/Derivative/DynamicLocalTasks.php b/src/Plugin/Derivative/DynamicLocalTasks.php
index 82cbf54..44e1689 100644
--- a/src/Plugin/Derivative/DynamicLocalTasks.php
+++ b/src/Plugin/Derivative/DynamicLocalTasks.php
@@ -3,7 +3,7 @@
 namespace Drupal\entity_clone\Plugin\Derivative;
 
 use Drupal\Component\Plugin\Derivative\DeriverBase;
-use Drupal\Core\Entity\EntityTypeManager;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface;
 use Drupal\Core\StringTranslation\TranslationManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -16,7 +16,7 @@ class DynamicLocalTasks extends DeriverBase implements ContainerDeriverInterface
   /**
    * The entity type manager.
    *
-   * @var \Drupal\Core\Entity\EntityTypeManager
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
    */
   protected $entityTypeManager;
 
@@ -30,12 +30,12 @@ class DynamicLocalTasks extends DeriverBase implements ContainerDeriverInterface
   /**
    * Constructs a new DynamicLocalTasks.
    *
-   * @param \Drupal\Core\Entity\EntityTypeManager $entity_type_manager
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
    * @param \Drupal\Core\StringTranslation\TranslationManager $string_translation
    *   The translation manager.
    */
-  public function __construct(EntityTypeManager $entity_type_manager, TranslationManager $string_translation) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, TranslationManager $string_translation) {
     $this->entityTypeManager = $entity_type_manager;
     $this->translationManager = $string_translation;
   }
-- 
2.11.0

