|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
namespace CablemodemBundle\Entity;
|
|
|
|
|
|
+use Base\AdminBundle\Interfaces\PreRemoveInterface;
|
|
|
use Doctrine\Common\Collections\ArrayCollection;
|
|
|
use Doctrine\ORM\Mapping as ORM;
|
|
|
use JMS\Serializer\Annotation as JMS;
|
|
@@ -13,10 +14,10 @@ use Base\AdminBundle\Traits\TenancyIdTraitInterface;
|
|
|
/**
|
|
|
* @ORM\Entity
|
|
|
* @ORM\Table(uniqueConstraints={@ORM\UniqueConstraint(name="unique_idx", columns={"name","tenancy_id"})})
|
|
|
- *
|
|
|
+ *
|
|
|
* @UniqueEntity(fields={"tenancyId","name"})
|
|
|
*/
|
|
|
-class Node implements TenancyIdTraitInterface
|
|
|
+class Node implements TenancyIdTraitInterface, PreRemoveInterface
|
|
|
{
|
|
|
|
|
|
use TenancyIdTrait;
|
|
@@ -30,21 +31,22 @@ class Node implements TenancyIdTraitInterface
|
|
|
|
|
|
/**
|
|
|
* @ORM\Column(type="string", length=100)
|
|
|
- *
|
|
|
+ *
|
|
|
* @Assert\NotNull
|
|
|
*/
|
|
|
protected $name;
|
|
|
|
|
|
/**
|
|
|
- * @ORM\ManyToOne(targetEntity="Node")
|
|
|
- *
|
|
|
+ * @ORM\ManyToOne(targetEntity="Node", inversedBy="childs")
|
|
|
+ * @ORM\JoinColumn(onDelete="CASCADE")
|
|
|
+ *
|
|
|
* @JMS\MaxDepth(1)
|
|
|
*/
|
|
|
protected $parent;
|
|
|
|
|
|
/**
|
|
|
* @ORM\OneToMany(targetEntity="Node", mappedBy="parent")
|
|
|
- *
|
|
|
+ *
|
|
|
* @JMS\MaxDepth(1)
|
|
|
*/
|
|
|
protected $childs;
|
|
@@ -59,7 +61,7 @@ class Node implements TenancyIdTraitInterface
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- *
|
|
|
+ *
|
|
|
* @return string
|
|
|
*/
|
|
|
public function __toString()
|
|
@@ -68,7 +70,7 @@ class Node implements TenancyIdTraitInterface
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @return bigint
|
|
|
+ * @return bigint
|
|
|
*/
|
|
|
public function getId()
|
|
|
{
|
|
@@ -77,7 +79,7 @@ class Node implements TenancyIdTraitInterface
|
|
|
|
|
|
/**
|
|
|
* @param string $name
|
|
|
- *
|
|
|
+ *
|
|
|
* @return Node
|
|
|
*/
|
|
|
public function setName($name)
|
|
@@ -88,7 +90,7 @@ class Node implements TenancyIdTraitInterface
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @return string
|
|
|
+ * @return string
|
|
|
*/
|
|
|
public function getName()
|
|
|
{
|
|
@@ -97,7 +99,7 @@ class Node implements TenancyIdTraitInterface
|
|
|
|
|
|
/**
|
|
|
* @param Node $parent
|
|
|
- *
|
|
|
+ *
|
|
|
* @return Node
|
|
|
*/
|
|
|
public function setParent($parent = null)
|
|
@@ -108,7 +110,7 @@ class Node implements TenancyIdTraitInterface
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @return Node
|
|
|
+ * @return Node
|
|
|
*/
|
|
|
public function getParent()
|
|
|
{
|
|
@@ -117,7 +119,7 @@ class Node implements TenancyIdTraitInterface
|
|
|
|
|
|
/**
|
|
|
* @param Node $childs
|
|
|
- *
|
|
|
+ *
|
|
|
* @return Node
|
|
|
*/
|
|
|
public function addChild($childs)
|
|
@@ -136,11 +138,24 @@ class Node implements TenancyIdTraitInterface
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @return Doctrine\Common\Collections\Collection
|
|
|
+ * @return Doctrine\Common\Collections\Collection
|
|
|
*/
|
|
|
public function getChilds()
|
|
|
{
|
|
|
return $this->childs;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getEntitiesForRemove()
|
|
|
+ {
|
|
|
+ $entities = [];
|
|
|
+ if ($this->childs->count() != 0) {
|
|
|
+ $entities['childs'] = $this->childs;
|
|
|
+ }
|
|
|
+
|
|
|
+ return $entities;
|
|
|
+ }
|
|
|
+
|
|
|
}
|