vendor/sulu/sulu/src/Sulu/Bundle/ContactBundle/Entity/AddressType.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.  * AddressType.
  17.  */
  18. class AddressType implements \JsonSerializable
  19. {
  20.     /**
  21.      * @var string
  22.      *
  23.      * @Groups({"frontend", "fullAccount","fullContact"})
  24.      */
  25.     private $name;
  26.     /**
  27.      * @var int
  28.      *
  29.      * @Groups({"frontend", "fullAccount","fullContact"})
  30.      */
  31.     private $id;
  32.     /**
  33.      * @var Collection<int, Address>
  34.      *
  35.      * @Exclude
  36.      */
  37.     private $addresses;
  38.     /**
  39.      * Constructor.
  40.      */
  41.     public function __construct()
  42.     {
  43.         $this->addresses = 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 AddressType
  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 addresses.
  86.      *
  87.      * @return AddressType
  88.      */
  89.     public function addAddresse(Address $addresses)
  90.     {
  91.         $this->addresses[] = $addresses;
  92.         return $this;
  93.     }
  94.     /**
  95.      * Remove addresses.
  96.      */
  97.     public function removeAddresse(Address $addresses)
  98.     {
  99.         $this->addresses->removeElement($addresses);
  100.     }
  101.     /**
  102.      * Get addresses.
  103.      *
  104.      * @return Collection<int, Address>
  105.      */
  106.     public function getAddresses()
  107.     {
  108.         return $this->addresses;
  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.     /**
  128.      * Add addresses.
  129.      *
  130.      * @return AddressType
  131.      */
  132.     public function addAddress(Address $addresses)
  133.     {
  134.         $this->addresses[] = $addresses;
  135.         return $this;
  136.     }
  137.     /**
  138.      * Remove addresses.
  139.      */
  140.     public function removeAddress(Address $addresses)
  141.     {
  142.         $this->addresses->removeElement($addresses);
  143.     }
  144. }