vendor/kunstmaan/translator-bundle/Entity/Translation.php line 22

Open in your IDE?
  1. <?php
  2. namespace Kunstmaan\TranslatorBundle\Entity;
  3. use DateTime;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Kunstmaan\TranslatorBundle\Model\Translation as TranslationModel;
  6. use Symfony\Component\Validator\Constraints as Assert;
  7. /**
  8.  * @ORM\Entity(repositoryClass="Kunstmaan\TranslatorBundle\Repository\TranslationRepository")
  9.  * @ORM\Table(
  10.  *     name="kuma_translation",
  11.  *     uniqueConstraints={
  12.  *         @ORM\UniqueConstraint(name="keyword_per_locale", columns={"keyword", "locale", "domain"}),
  13.  *         @ORM\UniqueConstraint(name="translation_id_per_locale", columns={"translation_id", "locale"}),
  14.  *     },
  15.  *     indexes={@ORM\Index(name="idx_translation_locale_domain", columns={"locale", "domain"})}
  16.  * )
  17.  * @ORM\HasLifecycleCallbacks
  18.  */
  19. class Translation
  20. {
  21.     const FLAG_NEW 'new';
  22.     const FLAG_UPDATED 'updated';
  23.     const STATUS_DEPRECATED 'deprecated';
  24.     const STATUS_DISABLED 'disabled';
  25.     const STATUS_ENABLED 'enabled';
  26.     /**
  27.      * @ORM\Id
  28.      * @ORM\Column(type="integer")
  29.      * @ORM\GeneratedValue(strategy="AUTO")
  30.      */
  31.     protected $id;
  32.     /**
  33.      * @ORM\Column(type="integer", name="translation_id", nullable=true)
  34.      * @Assert\NotBlank()
  35.      */
  36.     protected $translationId;
  37.     /**
  38.      * The translations keyword to use in your template or call from the translator
  39.      *
  40.      * @ORM\Column(type="string", nullable=true)
  41.      * @Assert\NotBlank()
  42.      */
  43.     protected $keyword;
  44.     /**
  45.      * The translations keyword to use in your template or call from the translator
  46.      *
  47.      * @ORM\Column(type="string", length=5, nullable=true)
  48.      * @Assert\NotBlank()
  49.      */
  50.     protected $locale;
  51.     /**
  52.      * @var string
  53.      *             The translations deprecation date
  54.      *
  55.      * @ORM\column(type="string", length=10, options={"default" : "enabled"})
  56.      */
  57.     protected $status self::STATUS_ENABLED;
  58.     /**
  59.      * Location where the translation comes from
  60.      *
  61.      * @ORM\Column(type="string", length=50, nullable=true)
  62.      */
  63.     protected $file;
  64.     /**
  65.      * Translation
  66.      *
  67.      * @var string
  68.      * @ORM\Column(type="text", nullable=true)
  69.      * @Assert\NotBlank()
  70.      */
  71.     protected $text;
  72.     /**
  73.      * @ORM\Column(type="string", length=30, nullable=true)
  74.      * @Assert\NotBlank()
  75.      */
  76.     protected $domain;
  77.     /**
  78.      * @var \DateTime
  79.      *
  80.      * @ORM\Column(type="datetime", name="created_at", nullable=true)
  81.      */
  82.     protected $createdAt;
  83.     /**
  84.      * @var \DateTime
  85.      *
  86.      * @ORM\Column(type="datetime", name="updated_at", nullable=true)
  87.      */
  88.     protected $updatedAt;
  89.     /**
  90.      * A flag which defines the status of a specific translations ('updated', 'new', ..)
  91.      *
  92.      * @var string
  93.      *
  94.      * @ORM\Column(type="string", length=20, nullable=true)
  95.      */
  96.     protected $flag;
  97.     /**
  98.      * @ORM\PrePersist
  99.      */
  100.     public function prePersist()
  101.     {
  102.         $this->createdAt = new DateTime();
  103.         $this->updatedAt = new DateTime();
  104.         $this->flag self::FLAG_NEW;
  105.         return $this->id;
  106.     }
  107.     /**
  108.      * @ORM\PreUpdate
  109.      */
  110.     public function preUpdate()
  111.     {
  112.         $this->updatedAt = new DateTime();
  113.         if ($this->flag === null) {
  114.             $this->flag self::FLAG_UPDATED;
  115.         }
  116.     }
  117.     /**
  118.      * @return string
  119.      */
  120.     public function getId()
  121.     {
  122.         return $this->id;
  123.     }
  124.     /**
  125.      * @param string $id
  126.      *
  127.      * @return Translation
  128.      */
  129.     public function setId($id)
  130.     {
  131.         $this->id $id;
  132.         return $this;
  133.     }
  134.     /**
  135.      * @return string
  136.      */
  137.     public function getKeyword()
  138.     {
  139.         return $this->keyword;
  140.     }
  141.     /**
  142.      * @param string $keyword
  143.      *
  144.      * @return Translation
  145.      */
  146.     public function setKeyword($keyword)
  147.     {
  148.         $this->keyword $keyword;
  149.         return $this;
  150.     }
  151.     /**
  152.      * @return string
  153.      */
  154.     public function getLocale()
  155.     {
  156.         return $this->locale;
  157.     }
  158.     /**
  159.      * @param string $locale
  160.      *
  161.      * @return Translation
  162.      */
  163.     public function setLocale($locale)
  164.     {
  165.         $this->locale $locale;
  166.         return $this;
  167.     }
  168.     /**
  169.      * @return string
  170.      */
  171.     public function getFile()
  172.     {
  173.         return $this->file;
  174.     }
  175.     /**
  176.      * @param string $file
  177.      *
  178.      * @return Translation
  179.      */
  180.     public function setFile($file)
  181.     {
  182.         $this->file $file;
  183.         return $this;
  184.     }
  185.     /**
  186.      * @return string
  187.      */
  188.     public function getText()
  189.     {
  190.         return $this->text;
  191.     }
  192.     /**
  193.      * @param string $text
  194.      *
  195.      * @return Translation
  196.      */
  197.     public function setText($text)
  198.     {
  199.         $this->text $text;
  200.         return $this;
  201.     }
  202.     /**
  203.      * @return string
  204.      */
  205.     public function getDomain()
  206.     {
  207.         return $this->domain;
  208.     }
  209.     /**
  210.      * @param string $domain
  211.      *
  212.      * @return Translation
  213.      */
  214.     public function setDomain($domain)
  215.     {
  216.         $this->domain $domain;
  217.         return $this;
  218.     }
  219.     /**
  220.      * @return \DateTime
  221.      */
  222.     public function getCreatedAt()
  223.     {
  224.         return $this->createdAt;
  225.     }
  226.     /**
  227.      * @param \DateTime $createdAt
  228.      *
  229.      * @return Translation
  230.      */
  231.     public function setCreatedAt(DateTime $createdAt)
  232.     {
  233.         $this->createdAt $createdAt;
  234.         return $this;
  235.     }
  236.     /**
  237.      * @return \DateTime
  238.      */
  239.     public function getUpdatedAt()
  240.     {
  241.         return $this->updatedAt;
  242.     }
  243.     /**
  244.      * @param DateTime $updatedAt
  245.      *
  246.      * @return Translation
  247.      */
  248.     public function setUpdatedAt(DateTime $updatedAt)
  249.     {
  250.         $this->updatedAt $updatedAt;
  251.         return $this;
  252.     }
  253.     /**
  254.      * @return string
  255.      */
  256.     public function getFlag()
  257.     {
  258.         return $this->flag;
  259.     }
  260.     /**
  261.      * @param string $flag
  262.      *
  263.      * @return Translation
  264.      */
  265.     public function setFlag($flag)
  266.     {
  267.         $this->flag $flag;
  268.         return $this;
  269.     }
  270.     /**
  271.      * @param string $translationId
  272.      *
  273.      * @return Translation
  274.      */
  275.     public function setTranslationId($translationId)
  276.     {
  277.         $this->translationId $translationId;
  278.         return $this;
  279.     }
  280.     /**
  281.      * @return string
  282.      */
  283.     public function getTranslationId()
  284.     {
  285.         return $this->translationId;
  286.     }
  287.     /**
  288.      * @return string
  289.      */
  290.     public function getStatus()
  291.     {
  292.         return $this->status;
  293.     }
  294.     /**
  295.      * @param string $status
  296.      *
  297.      * @return Translation
  298.      */
  299.     public function setStatus($status)
  300.     {
  301.         $this->status $status;
  302.         return $this;
  303.     }
  304.     /**
  305.      * @return bool
  306.      */
  307.     public function isDisabled()
  308.     {
  309.         return $this->getStatus() === self::STATUS_DISABLED;
  310.     }
  311.     /**
  312.      * @return bool
  313.      */
  314.     public function isDeprecated()
  315.     {
  316.         return $this->getStatus() === self::STATUS_DEPRECATED;
  317.     }
  318.     /**
  319.      * @param int $id
  320.      *
  321.      * @return TranslationModel
  322.      */
  323.     public function getTranslationModel($id null)
  324.     {
  325.         $translationModel = new TranslationModel();
  326.         $translationModel->setKeyword($this->getKeyword());
  327.         $translationModel->setDomain($this->getDomain());
  328.         $translationModel->addText($this->getLocale(), $this->getText(), $id);
  329.         return $translationModel;
  330.     }
  331. }