src/Entity/Term/AbstractTerm.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Term;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use JMS\Serializer\Annotation as Serializer;
  5. use Symfony\Component\Validator\Constraints as Assert;
  6. use App\Entity\Core\AbstractOrganization;
  7. /**
  8.  * Class AbstractTerm.
  9.  *
  10.  * @ORM\MappedSuperclass()
  11.  */
  12. abstract class AbstractTerm implements VocabularyInterface
  13. {
  14.     use SortableTrait;
  15.     /**
  16.      * @var string
  17.      */
  18.     protected $vocabularyId;
  19.     /**
  20.      * @var int
  21.      *
  22.      * @ORM\Column(name="id", type="integer")
  23.      * @ORM\Id
  24.      * @ORM\GeneratedValue(strategy="AUTO")
  25.      * @Serializer\Groups({"Default", "api"})
  26.      */
  27.     private $id;
  28.     /**
  29.      * @var string
  30.      *
  31.      * @ORM\Column(name="name", type="string", length=255)
  32.      * @Assert\NotBlank()
  33.      * @Serializer\Groups({"Default", "api"})
  34.      */
  35.     private $name;
  36.     /**
  37.      * @var bool
  38.      * @ORM\Column(name="private", type="boolean")
  39.      * @Serializer\Groups({"Default", "api"})
  40.      */
  41.     private $private false;
  42.     private $label null;
  43.     /**
  44.      * @var AbstractOrganization
  45.      * @ORM\ManyToOne(targetEntity="App\Entity\Core\AbstractOrganization")
  46.      * @ORM\JoinColumn(nullable=true, onDelete="CASCADE")
  47.      */
  48.     protected $organization;
  49.     /**
  50.      * @var string
  51.      * @ORM\Column(name="machine_name", type="string", length=255, nullable=true)
  52.      */
  53.     protected $machinename;
  54.     /**
  55.      * @return mixed
  56.      */
  57.     abstract public function getVocabularyName();
  58.     /**
  59.      * @param $label
  60.      */
  61.     public function setVocabularyLabel($label)
  62.     {
  63.         $this->label $label;
  64.     }
  65.     /**
  66.      * @return string
  67.      */
  68.     public function getVocabularyLabel()
  69.     {
  70.         return $this->label $this->label $this->getVocabularyName();
  71.     }
  72.     /**
  73.      * @return string
  74.      */
  75.     public function __toString()
  76.     {
  77.         return $this->getName();
  78.     }
  79.     /**
  80.      * @param int $id
  81.      */
  82.     public function setId($id)
  83.     {
  84.         $this->id $id;
  85.     }
  86.     /**
  87.      * @return int
  88.      */
  89.     public function getId()
  90.     {
  91.         return $this->id;
  92.     }
  93.     /**
  94.      * @param string $name
  95.      */
  96.     public function setName($name)
  97.     {
  98.         $this->name $name;
  99.     }
  100.     /**
  101.      * @return string
  102.      */
  103.     public function getName()
  104.     {
  105.         return $this->name;
  106.     }
  107.     /**
  108.      * @return mixed
  109.      */
  110.     public function getPrivate()
  111.     {
  112.         return $this->private;
  113.     }
  114.     /**
  115.      * @param mixed $private
  116.      */
  117.     public function setPrivate($private)
  118.     {
  119.         $this->private $private;
  120.     }
  121.     /**
  122.      * @param AbstractOrganization $organization
  123.      */
  124.     public function setOrganization($organization)
  125.     {
  126.         $this->organization $organization;
  127.     }
  128.     /**
  129.      * @return AbstractOrganization
  130.      */
  131.     public function getOrganization()
  132.     {
  133.         return $this->organization;
  134.     }
  135.     /**
  136.      * api helper.
  137.      *
  138.      * @Serializer\VirtualProperty
  139.      * @Serializer\Groups({"Default", "api"})
  140.      *
  141.      * @return int
  142.      */
  143.     public function getOrganizationId()
  144.     {
  145.         return $this->getOrganization() ? $this->getOrganization()->getId() : null;
  146.     }
  147.     /**
  148.      * @return string|null
  149.      */
  150.     public function getMachinename()
  151.     {
  152.         return $this->machinename;
  153.     }
  154.     /**
  155.      * @param string
  156.      */
  157.     public function setMachinename($machineName)
  158.     {
  159.         $this->machinename $machineName;
  160.     }
  161.     /**
  162.      * If term is used for internal system processes.
  163.      *
  164.      * @return bool
  165.      */
  166.     public function isLocked($machineName null)
  167.     {
  168.         return !empty($this->machinename);
  169.     }
  170.     /**
  171.      * Check machine name match.
  172.      *
  173.      * @param $machineName
  174.      *
  175.      * @return bool
  176.      */
  177.     public function isMachinename($machineName)
  178.     {
  179.         return $this->machinename === $machineName;
  180.     }
  181.     /**
  182.      * @return mixed
  183.      */
  184.     public function getVocabularyId()
  185.     {
  186.         return $this->vocabularyId;
  187.     }
  188.     /**
  189.      * @param string $id
  190.      */
  191.     public function setVocabularyId($id)
  192.     {
  193.         $this->vocabularyId $id;
  194.     }
  195.     /**
  196.      * @return mixed
  197.      *               This static method is used to set a specific order field
  198.      *               when fetch terms
  199.      */
  200.     public static function orderBy()
  201.     {
  202.         return 'name';
  203.     }
  204. }