vendor/sulu/sulu/src/Sulu/Bundle/ContactBundle/Entity/EmailType.php line 22

  1. <?php
  2. /*
  3.  * This file is part of Sulu.
  4.  *
  5.  * (c) Sulu GmbH
  6.  *
  7.  * This source file is subject to the MIT license that is bundled
  8.  * with this source code in the file LICENSE.
  9.  */
  10. namespace Sulu\Bundle\ContactBundle\Entity;
  11. use Doctrine\Common\Collections\ArrayCollection;
  12. use Doctrine\Common\Collections\Collection;
  13. use JMS\Serializer\Annotation\Exclude;
  14. use JMS\Serializer\Annotation\Groups;
  15. /**
  16.  * EmailType.
  17.  */
  18. class EmailType implements \JsonSerializable
  19. {
  20.     /**
  21.      * @var string
  22.      *
  23.      * @Groups({"fullAccount", "fullContact", "frontend"})
  24.      */
  25.     private $name;
  26.     /**
  27.      * @var int
  28.      *
  29.      * @Groups({"fullAccount", "fullContact", "frontend"})
  30.      */
  31.     private $id;
  32.     /**
  33.      * @var Collection
  34.      *
  35.      * @Exclude
  36.      */
  37.     private $emails;
  38.     /**
  39.      * Constructor.
  40.      */
  41.     public function __construct()
  42.     {
  43.         $this->emails = new ArrayCollection();
  44.     }
  45.     /**
  46.      * To force id = 1 in load fixtures.
  47.      *
  48.      * @param int $id
  49.      */
  50.     public function setId($id)
  51.     {
  52.         $this->id $id;
  53.     }
  54.     /**
  55.      * Set name.
  56.      *
  57.      * @param string $name
  58.      *
  59.      * @return EmailType
  60.      */
  61.     public function setName($name)
  62.     {
  63.         $this->name $name;
  64.         return $this;
  65.     }
  66.     /**
  67.      * Get name.
  68.      *
  69.      * @return string
  70.      */
  71.     public function getName()
  72.     {
  73.         return $this->name;
  74.     }
  75.     /**
  76.      * Get id.
  77.      *
  78.      * @return int
  79.      */
  80.     public function getId()
  81.     {
  82.         return $this->id;
  83.     }
  84.     /**
  85.      * Add emails.
  86.      *
  87.      * @return EmailType
  88.      */
  89.     public function addEmail(Email $emails)
  90.     {
  91.         $this->emails[] = $emails;
  92.         return $this;
  93.     }
  94.     /**
  95.      * Remove emails.
  96.      */
  97.     public function removeEmail(Email $emails)
  98.     {
  99.         $this->emails->removeElement($emails);
  100.     }
  101.     /**
  102.      * Get emails.
  103.      *
  104.      * @return Collection
  105.      */
  106.     public function getEmails()
  107.     {
  108.         return $this->emails;
  109.     }
  110.     /**
  111.      * (PHP 5 &gt;= 5.4.0)<br/>
  112.      * Specify data which should be serialized to JSON.
  113.      *
  114.      * @see http://php.net/manual/en/jsonserializable.jsonserialize.php
  115.      *
  116.      * @return mixed data which can be serialized by <b>json_encode</b>,
  117.      *               which is a value of any type other than a resource
  118.      */
  119.     #[\ReturnTypeWillChange]
  120.     public function jsonSerialize()
  121.     {
  122.         return [
  123.             'id' => $this->getId(),
  124.             'name' => $this->getName(),
  125.         ];
  126.     }
  127. }