src/Entity/Gos/Uniqskills/Landing/LandingModuleItem.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Gos\Uniqskills\Landing;
  3. use Doctrine\ORM\Mapping as ORM;
  4. /**
  5.  * LandingModuleItem
  6.  *
  7.  * @ORM\Table(name="landing_module_item")
  8.  * @ORM\Entity(repositoryClass="App\Repository\Gos\Uniqskills\Landing\LandingModuleItemRepository")
  9.  * @ORM\DiscriminatorColumn(name="variable_type", type="string")
  10.  * @ORM\DiscriminatorMap({
  11.  *     "text"       = "LandingModuleText",
  12.  *     "file"       = "LandingModuleFile",
  13.  *     "json"       = "LandingModuleJson",
  14.  *     "boolean"    = "LandingModuleBoolean"
  15.  * })
  16.  * @ORM\InheritanceType("SINGLE_TABLE")
  17.  * @ORM\HasLifecycleCallbacks
  18.  */
  19. abstract class LandingModuleItem implements \ArrayAccess
  20. {
  21.     const VARIABLE_TYPE_TEXT    'text';
  22.     const VARIABLE_TYPE_FILE    'file';
  23.     const VARIABLE_TYPE_JSON    'json';
  24.     const VARIABLE_TYPE_BOOLEAN 'boolean';
  25.     /**
  26.      * @ORM\Column(type="integer")
  27.      * @ORM\Id
  28.      * @ORM\GeneratedValue(strategy="AUTO")
  29.      *
  30.      * @var int
  31.      */
  32.     protected $id;
  33.     /**
  34.      * @var \DateTime
  35.      *
  36.      * @ORM\Column(name="updated_at", type="datetime", nullable=true)
  37.      */
  38.     protected $updatedAt;
  39.     /**
  40.      * @ORM\ManyToOne(targetEntity="LandingModule", inversedBy="landingModuleItems")
  41.      * @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
  42.      */
  43.     private $landingModule;
  44.     /**
  45.      * @var string
  46.      *
  47.      * @ORM\Column(name="variable_name", type="string", length=45, unique=false)
  48.      */
  49.     private $variableName;
  50.     /**
  51.      * @ORM\Column(name="variable_value", type="text", nullable=true)
  52.      *
  53.      * @var string
  54.      */
  55.     protected $variableValue;
  56.     /** @ORM\PreUpdate() */
  57.     public function preUpdate()
  58.     {
  59.         $this->updatedAt = new \DateTime();
  60.     }
  61.     public function __clone()
  62.     {
  63.         if ($this->id)
  64.         {
  65.             $this->setId(null);
  66.         }
  67.     }
  68.     /* ****************************** GETTERS & SETTERS ******************************  */
  69.     abstract public function getVariableType();
  70.     abstract public function setVariableValue($variableValue);
  71.     abstract public function getVariableValue();
  72.     public function offsetExists($offset)
  73.     {
  74.         $value $this->{"get$offset"}();
  75.         return $value !== null;
  76.     }
  77.     public function offsetSet($offset$value)
  78.     {
  79.         $this->{"set$offset"}($value);
  80.     }
  81.     public function offsetGet($offset)
  82.     {
  83.         return $this->{"get$offset"}();
  84.     }
  85.     public function offsetUnset($offset)
  86.     {
  87.         $this->{"set$offset"}(null);
  88.     }
  89.     /**
  90.      * @return int
  91.      */
  92.     public function getId()
  93.     {
  94.         return $this->id;
  95.     }
  96.     /**
  97.      * Set id
  98.      *
  99.      * @param integer $id
  100.      *
  101.      * @return LandingModuleItem
  102.      */
  103.     private function setId($id)
  104.     {
  105.         $this->id $id;
  106.         return $this;
  107.     }
  108.     /**
  109.      * Set updatedAt
  110.      *
  111.      * @param \DateTime $updatedAt
  112.      *
  113.      * @return LandingModuleItem
  114.      */
  115.     public function setUpdatedAt($updatedAt)
  116.     {
  117.         $this->updatedAt $updatedAt;
  118.         return $this;
  119.     }
  120.     /**
  121.      * Get updatedAt
  122.      *
  123.      * @return \DateTime
  124.      */
  125.     public function getUpdatedAt()
  126.     {
  127.         return $this->updatedAt;
  128.     }
  129.     /**
  130.      * Set landingModule
  131.      *
  132.      * @param LandingModule $landingModule
  133.      *
  134.      * @return LandingModuleItem
  135.      */
  136.     public function setLandingModule(LandingModule $landingModule)
  137.     {
  138.         $this->landingModule $landingModule;
  139.         return $this;
  140.     }
  141.     /**
  142.      * Get landingModuleType
  143.      *
  144.      * @return LandingModule
  145.      */
  146.     public function getLandingModule()
  147.     {
  148.         return $this->landingModule;
  149.     }
  150.     /**
  151.      * Set variableName
  152.      *
  153.      * @param string $variableName
  154.      *
  155.      * @return LandingModuleItem
  156.      */
  157.     public function setVariableName($variableName)
  158.     {
  159.         $this->variableName $variableName;
  160.         return $this;
  161.     }
  162.     /**
  163.      * Get variableName
  164.      *
  165.      * @return string
  166.      */
  167.     public function getVariableName()
  168.     {
  169.         return $this->variableName;
  170.     }
  171. }