2018-09-13 14:39:03 +02:00
|
|
|
<?php
|
|
|
|
namespace App\Entity;
|
|
|
|
|
2018-09-13 15:55:48 +02:00
|
|
|
use Doctrine\ORM\Mapping as ORM;
|
2018-09-13 16:37:33 +02:00
|
|
|
use App\Entity\Attribut\RightsAttribute;
|
2018-09-13 15:55:48 +02:00
|
|
|
use Doctrine\Common\Collections\ArrayCollection;
|
|
|
|
use App\DBAL\Types\RightType;
|
2018-09-13 16:37:33 +02:00
|
|
|
use App\Entity\Attribut\NodeAttribut;
|
2018-09-13 14:39:03 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @author kevinfrantz
|
2018-09-13 15:55:48 +02:00
|
|
|
* @ORM\Table(name="law")
|
|
|
|
* @ORM\Entity(repositoryClass="App\Repository\LawRepository")
|
2018-09-13 14:39:03 +02:00
|
|
|
*/
|
2018-09-13 15:55:48 +02:00
|
|
|
class Law extends AbstractEntity implements LawInterface
|
2018-09-13 14:39:03 +02:00
|
|
|
{
|
2018-09-13 16:37:33 +02:00
|
|
|
use RightsAttribute, NodeAttribut;
|
2018-09-13 15:55:48 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @ORM\OneToMany(targetEntity="Right", mappedBy="id", cascade={"persist", "remove"})
|
|
|
|
* @var ArrayCollection
|
|
|
|
*/
|
|
|
|
protected $rights;
|
|
|
|
|
2018-09-13 16:37:33 +02:00
|
|
|
/**
|
|
|
|
* @ORM\OneToOne(targetEntity="Node",cascade={"persist", "remove"})
|
|
|
|
* @ORM\JoinColumn(name="node_id", referencedColumnName="id")
|
|
|
|
* @var NodeInterface
|
|
|
|
*/
|
|
|
|
protected $node;
|
|
|
|
|
2018-09-13 15:55:48 +02:00
|
|
|
public function __construct()
|
|
|
|
{
|
|
|
|
$this->initAllRights();
|
|
|
|
}
|
|
|
|
|
|
|
|
private function initAllRights(): void
|
|
|
|
{
|
2018-09-13 16:37:33 +02:00
|
|
|
$this->rights = new ArrayCollection();
|
2018-09-13 15:55:48 +02:00
|
|
|
foreach (RightType::getChoices() as $key=>$value){
|
|
|
|
$right = new Right();
|
|
|
|
$right->setType($value);
|
2018-09-13 16:37:33 +02:00
|
|
|
$right->setLaw($this);
|
2018-09-13 15:55:48 +02:00
|
|
|
$this->rights->set($key, $right);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-09-13 14:39:03 +02:00
|
|
|
}
|
|
|
|
|