vendor/sulu/sulu/src/Sulu/Bundle/CategoryBundle/Entity/CategoryTranslation.php line 21

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\CategoryBundle\Entity;
  11. use Doctrine\Common\Collections\ArrayCollection;
  12. use Doctrine\Common\Collections\Collection;
  13. use Sulu\Component\Security\Authentication\UserInterface;
  14. /**
  15.  * CategoryTranslation.
  16.  */
  17. class CategoryTranslation implements CategoryTranslationInterface
  18. {
  19.     /**
  20.      * @var string
  21.      */
  22.     protected $translation;
  23.     /**
  24.      * @var string
  25.      */
  26.     protected $description;
  27.     /**
  28.      * @var CategoryTranslationMedia[]
  29.      */
  30.     protected $medias;
  31.     /**
  32.      * @var string
  33.      */
  34.     protected $locale;
  35.     /**
  36.      * @var int
  37.      */
  38.     protected $id;
  39.     /**
  40.      * @var CategoryInterface
  41.      */
  42.     protected $category;
  43.     /**
  44.      * @var UserInterface|null
  45.      */
  46.     protected $creator;
  47.     /**
  48.      * @var UserInterface|null
  49.      */
  50.     protected $changer;
  51.     /**
  52.      * @var \DateTime
  53.      */
  54.     protected $created;
  55.     /**
  56.      * @var \DateTime
  57.      */
  58.     protected $changed;
  59.     /**
  60.      * @var Collection|KeywordInterface[]
  61.      */
  62.     protected $keywords;
  63.     public function __construct()
  64.     {
  65.         $this->keywords = new ArrayCollection();
  66.         $this->medias = new ArrayCollection();
  67.     }
  68.     public function setTranslation($translation)
  69.     {
  70.         $this->translation $translation;
  71.         return $this;
  72.     }
  73.     public function getTranslation()
  74.     {
  75.         return $this->translation;
  76.     }
  77.     public function getDescription()
  78.     {
  79.         return $this->description;
  80.     }
  81.     public function setDescription($description)
  82.     {
  83.         $this->description $description;
  84.         return $this;
  85.     }
  86.     public function getMedias()
  87.     {
  88.         $medias = [];
  89.         foreach ($this->medias as $media) {
  90.             $medias[] = $media->getMedia();
  91.         }
  92.         return $medias;
  93.     }
  94.     public function setMedias($medias)
  95.     {
  96.         $position 0;
  97.         foreach ($this->medias as $media) {
  98.             $mediaEntity $medias[$position] ?? null;
  99.             ++$position;
  100.             if (!$mediaEntity) {
  101.                 $this->medias->removeElement($media);
  102.                 continue;
  103.             }
  104.             $media->setMedia($mediaEntity);
  105.             $media->setPosition($position);
  106.         }
  107.         for (; $position < \count($medias); ++$position) {
  108.             $media = new CategoryTranslationMedia($this$medias[$position], $position 1);
  109.             $this->medias->add($media);
  110.         }
  111.     }
  112.     public function setLocale($locale)
  113.     {
  114.         $this->locale $locale;
  115.         return $this;
  116.     }
  117.     public function getLocale()
  118.     {
  119.         return $this->locale;
  120.     }
  121.     public function getId()
  122.     {
  123.         return $this->id;
  124.     }
  125.     public function setCategory(CategoryInterface $category)
  126.     {
  127.         $this->category $category;
  128.         return $this;
  129.     }
  130.     public function getCategory()
  131.     {
  132.         return $this->category;
  133.     }
  134.     public function getCreator()
  135.     {
  136.         return $this->creator;
  137.     }
  138.     public function setCreator($creator)
  139.     {
  140.         $this->creator $creator;
  141.     }
  142.     public function getChanger()
  143.     {
  144.         return $this->changer;
  145.     }
  146.     public function setChanger($changer)
  147.     {
  148.         $this->changer $changer;
  149.     }
  150.     public function getCreated()
  151.     {
  152.         return $this->created;
  153.     }
  154.     public function setCreated($created)
  155.     {
  156.         $this->created $created;
  157.     }
  158.     public function getChanged()
  159.     {
  160.         return $this->changed;
  161.     }
  162.     public function setChanged($changed)
  163.     {
  164.         $this->changed $changed;
  165.     }
  166.     public function addKeyword(KeywordInterface $keyword)
  167.     {
  168.         $this->keywords[] = $keyword;
  169.         return $this;
  170.     }
  171.     public function removeKeyword(KeywordInterface $keyword)
  172.     {
  173.         $this->keywords->removeElement($keyword);
  174.     }
  175.     public function getKeywords()
  176.     {
  177.         return $this->keywords;
  178.     }
  179.     public function hasKeyword(KeywordInterface $keyword)
  180.     {
  181.         return $this->getKeywords()->exists(
  182.             function($keyKeywordInterface $element) use ($keyword) {
  183.                 return $element->equals($keyword);
  184.             }
  185.         );
  186.     }
  187. }