From b3b8d0cf2adb9608a371dcb28a6a472b9e5ade49 Mon Sep 17 00:00:00 2001
From: Bertrand Gauthier <bertrand.gauthier@unicaen.fr>
Date: Tue, 4 Dec 2018 17:09:21 +0100
Subject: [PATCH] Extraction d'une interface SourceInterface.

---
 .../Db/Interfaces/ImportAwareInterface.php    |  8 +--
 .../Db/Interfaces/SourceAwareInterface.php    |  8 +--
 .../Entity/Db/Interfaces/SourceInterface.php  | 68 +++++++++++++++++++
 src/UnicaenImport/Entity/Db/Source.php        |  3 +-
 .../Entity/Db/Traits/SourceAwareTrait.php     | 10 +--
 5 files changed, 82 insertions(+), 15 deletions(-)
 create mode 100644 src/UnicaenImport/Entity/Db/Interfaces/SourceInterface.php

diff --git a/src/UnicaenImport/Entity/Db/Interfaces/ImportAwareInterface.php b/src/UnicaenImport/Entity/Db/Interfaces/ImportAwareInterface.php
index d88a1ad..648b1ab 100644
--- a/src/UnicaenImport/Entity/Db/Interfaces/ImportAwareInterface.php
+++ b/src/UnicaenImport/Entity/Db/Interfaces/ImportAwareInterface.php
@@ -2,19 +2,17 @@
 
 namespace UnicaenImport\Entity\Db\Interfaces;
 
-use UnicaenImport\Entity\Db\Source;
-
 /**
  * Interface des entités possédant une gestion de l'import.
  *
- * @see Source
+ * @see SourceInterface
  */
 interface ImportAwareInterface
 {
-    public function setSource(Source $source = null);
+    public function setSource(SourceInterface $source = null);
 
     /**
-     * @return Source
+     * @return SourceInterface
      */
     public function getSource();
 
diff --git a/src/UnicaenImport/Entity/Db/Interfaces/SourceAwareInterface.php b/src/UnicaenImport/Entity/Db/Interfaces/SourceAwareInterface.php
index 7725fe8..a043fca 100644
--- a/src/UnicaenImport/Entity/Db/Interfaces/SourceAwareInterface.php
+++ b/src/UnicaenImport/Entity/Db/Interfaces/SourceAwareInterface.php
@@ -12,13 +12,13 @@ use UnicaenImport\Entity\Db\Source;
 interface SourceAwareInterface
 {
     /**
-     * @param Source $source
-     * @return $this
+     * @param SourceInterface $source
+     * @return self
      */
-    public function setSource(Source $source = null);
+    public function setSource(SourceInterface $source = null);
 
     /**
-     * @return Source
+     * @return SourceInterface
      */
     public function getSource();
 }
\ No newline at end of file
diff --git a/src/UnicaenImport/Entity/Db/Interfaces/SourceInterface.php b/src/UnicaenImport/Entity/Db/Interfaces/SourceInterface.php
new file mode 100644
index 0000000..08b96fd
--- /dev/null
+++ b/src/UnicaenImport/Entity/Db/Interfaces/SourceInterface.php
@@ -0,0 +1,68 @@
+<?php
+
+namespace UnicaenImport\Entity\Db\Interfaces;
+
+/**
+ * SourceInterface
+ */
+interface SourceInterface
+{
+    /**
+     * Set code
+     *
+     * @param string $code
+     * @return SourceInterface
+     */
+    public function setCode($code);
+
+    /**
+     * Get code
+     *
+     * @return string
+     */
+    public function getCode();
+
+    /**
+     * Set importable
+     *
+     * @param boolean $importable
+     * @return SourceInterface
+     */
+    public function setImportable($importable);
+
+    /**
+     * Get importable
+     *
+     * @return boolean
+     */
+    public function getImportable();
+
+    /**
+     * Set libelle
+     *
+     * @param string $libelle
+     * @return SourceInterface
+     */
+    public function setLibelle($libelle);
+
+    /**
+     * Get libelle
+     *
+     * @return string
+     */
+    public function getLibelle();
+
+    /**
+     * Get id
+     *
+     * @return integer
+     */
+    public function getId();
+
+    /**
+     * Retourne la représentation littérale de cet objet.
+     *
+     * @return string
+     */
+    public function __toString();
+}
\ No newline at end of file
diff --git a/src/UnicaenImport/Entity/Db/Source.php b/src/UnicaenImport/Entity/Db/Source.php
index 1fda225..fa74079 100644
--- a/src/UnicaenImport/Entity/Db/Source.php
+++ b/src/UnicaenImport/Entity/Db/Source.php
@@ -3,6 +3,7 @@
 namespace UnicaenImport\Entity\Db;
 
 use Doctrine\ORM\Mapping as ORM;
+use UnicaenImport\Entity\Db\Interfaces\SourceInterface;
 
 /**
  * Source
@@ -10,7 +11,7 @@ use Doctrine\ORM\Mapping as ORM;
  * @ORM\Entity
  * @ORM\Table(name="SOURCE")
  */
-class Source
+class Source implements SourceInterface
 {
     /**
      * @var string
diff --git a/src/UnicaenImport/Entity/Db/Traits/SourceAwareTrait.php b/src/UnicaenImport/Entity/Db/Traits/SourceAwareTrait.php
index 9765d9d..3923e05 100644
--- a/src/UnicaenImport/Entity/Db/Traits/SourceAwareTrait.php
+++ b/src/UnicaenImport/Entity/Db/Traits/SourceAwareTrait.php
@@ -2,20 +2,20 @@
 
 namespace UnicaenImport\Entity\Db\Traits;
 
-use UnicaenImport\Entity\Db\Source;
+use UnicaenImport\Entity\Db\Interfaces\SourceInterface;
 
 trait SourceAwareTrait
 {
     /**
-     * @var Source
+     * @var SourceInterface
      */
     protected $source;
 
     /**
-     * @param Source $source
+     * @param SourceInterface $source
      * @return self
      */
-    public function setSource(Source $source = null)
+    public function setSource(SourceInterface $source = null)
     {
         $this->source = $source;
 
@@ -23,7 +23,7 @@ trait SourceAwareTrait
     }
 
     /**
-     * @return Source
+     * @return SourceInterface
      */
     public function getSource()
     {
-- 
GitLab