<?php
/*
* This file is part of Sulu.
*
* (c) Sulu GmbH
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace Sulu\Bundle\MediaBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection as DoctrineCollection;
use JMS\Serializer\Annotation\Exclude;
use Sulu\Bundle\SecurityBundle\Entity\PermissionInheritanceInterface;
use Sulu\Component\Security\Authentication\UserInterface;
/**
* Collection.
*/
class Collection implements CollectionInterface, PermissionInheritanceInterface
{
/**
* @var int
*/
protected $id;
/**
* @var string|null
*/
protected $style;
/**
* @var int
* @Exclude
*/
protected $lft;
/**
* @var int
* @Exclude
*/
protected $rgt;
/**
* @var int
* @Exclude
*/
protected $depth;
/**
* @var \DateTime
*/
protected $created;
/**
* @var \DateTime
*/
protected $changed;
/**
* @var CollectionType
*/
protected $type;
/**
* @var UserInterface|null
* @Exclude
*/
protected $changer;
/**
* @var UserInterface|null
* @Exclude
*/
protected $creator;
/**
* @var string|null
*/
private $key;
/**
* @var DoctrineCollection<int, CollectionMeta>
*/
private $meta;
/**
* @var DoctrineCollection<int, MediaInterface>
* @Exclude
*/
private $media;
/**
* @var DoctrineCollection<int, CollectionInterface>
*/
private $children;
/**
* @var CollectionInterface|null
*/
private $parent;
/**
* @var CollectionMeta
*/
private $defaultMeta;
public function __construct()
{
$this->meta = new ArrayCollection();
$this->media = new ArrayCollection();
$this->children = new ArrayCollection();
}
/**
* Get id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set changer.
*
* @return CollectionInterface
*/
public function setChanger(UserInterface $changer = null)
{
$this->changer = $changer;
return $this;
}
/**
* Get changer.
*
* @return UserInterface|null
*/
public function getChanger()
{
return $this->changer;
}
/**
* Set creator.
*
* @return CollectionInterface
*/
public function setCreator(UserInterface $creator = null)
{
$this->creator = $creator;
return $this;
}
/**
* Get creator.
*
* @return UserInterface|null
*/
public function getCreator()
{
return $this->creator;
}
/**
* Set style.
*
* @param string|null $style
*
* @return CollectionInterface
*/
public function setStyle($style)
{
$this->style = $style;
return $this;
}
/**
* Get style.
*
* @return string|null
*/
public function getStyle()
{
return $this->style;
}
/**
* Set lft.
*
* @param int $lft
*
* @return CollectionInterface
*/
public function setLft($lft)
{
$this->lft = $lft;
return $this;
}
/**
* Get lft.
*
* @return int
*/
public function getLft()
{
return $this->lft;
}
/**
* Set rgt.
*
* @param int $rgt
*
* @return CollectionInterface
*/
public function setRgt($rgt)
{
$this->rgt = $rgt;
return $this;
}
/**
* Get rgt.
*
* @return int
*/
public function getRgt()
{
return $this->rgt;
}
/**
* Set depth.
*
* @param int $depth
*
* @return CollectionInterface
*/
public function setDepth($depth)
{
$this->depth = $depth;
return $this;
}
/**
* Get depth.
*
* @return int
*/
public function getDepth()
{
return $this->depth;
}
/**
* Get created.
*
* @return \DateTime
*/
public function getCreated()
{
return $this->created;
}
/**
* Get changed.
*
* @return \DateTime
*/
public function getChanged()
{
return $this->changed;
}
/**
* @return $this
*/
public function setCreated(\DateTime $created)
{
$this->created = $created;
return $this;
}
/**
* @return $this
*/
public function setChanged(\DateTime $changed)
{
$this->changed = $changed;
return $this;
}
/**
* Set type.
*
* @return CollectionInterface
*/
public function setType(CollectionType $type)
{
$this->type = $type;
return $this;
}
/**
* Get type.
*
* @return CollectionType
*/
public function getType()
{
return $this->type;
}
/**
* Set key.
*
* @return string|null
*/
public function getKey()
{
return $this->key;
}
/**
* Get key.
*
* @param string|null $key
*
* @return CollectionInterface
*/
public function setKey($key)
{
$this->key = $key;
return $this;
}
/**
* @return DoctrineCollection<int, self>
*/
public function getChildren()
{
return $this->children;
}
public function setChildren(DoctrineCollection $children)
{
$this->children = $children;
}
/**
* Set parent.
*
* @return CollectionInterface
*/
public function setParent(CollectionInterface $parent = null)
{
$this->parent = $parent;
return $this;
}
/**
* Get parent.
*
* @return CollectionInterface|null
*/
public function getParent()
{
return $this->parent;
}
/**
* @return int|null
*/
public function getParentId()
{
if ($this->parent) {
return $this->parent->getId();
}
return null;
}
/**
* Add meta.
*
* @return Collection
*/
public function addMeta(CollectionMeta $meta)
{
$this->meta[] = $meta;
return $this;
}
/**
* Remove meta.
*
* @return void
*/
public function removeMeta(CollectionMeta $meta)
{
$this->meta->removeElement($meta);
}
/**
* Get meta.
*
* @return DoctrineCollection<int, CollectionMeta>
*/
public function getMeta()
{
return $this->meta;
}
/**
* Add media.
*
* @return Collection
*/
public function addMedia(MediaInterface $media)
{
$this->media[] = $media;
return $this;
}
/**
* Remove media.
*
* @return void
*/
public function removeMedia(MediaInterface $media)
{
$this->media->removeElement($media);
}
/**
* Get media.
*
* @return DoctrineCollection<int, MediaInterface>
*/
public function getMedia()
{
return $this->media;
}
/**
* Add children.
*
* @return Collection
*/
public function addChildren(CollectionInterface $children)
{
$this->children[] = $children;
return $this;
}
/**
* Remove children.
*
* @return void
*/
public function removeChildren(CollectionInterface $children)
{
$this->children->removeElement($children);
}
/**
* Set defaultMeta.
*
* @param CollectionMeta $defaultMeta
*
* @return Collection
*/
public function setDefaultMeta(CollectionMeta $defaultMeta = null)
{
$this->defaultMeta = $defaultMeta;
return $this;
}
/**
* Get defaultMeta.
*
* @return CollectionMeta
*/
public function getDefaultMeta()
{
return $this->defaultMeta;
}
public function getSecurityContext()
{
return 'sulu.media.collections';
}
}