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

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