src/Entity/Edition.php line 8

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\EditionRepository;
  4. use Doctrine\ORM\Mapping as ORM;
  5. class Edition
  6. {
  7.     const MATERIAL_PAPYRUS 'Papyrus';
  8.     const MATERIAL_OSTRACON 'Ostrakon';
  9.     const MATERIAL_DEFAULT 'Papyrus';
  10.     
  11.     protected static $MATERIAL = array('Papyrus''Ostrakon');
  12.     public function setMaterial($material)
  13.     {
  14.         if(in_array($materialself::$MATERIAL)){
  15.           $this->material $material;
  16.         } else {
  17.           $this->material self::MATERIAL_DEFAULT;
  18.         }
  19.     }
  20.     public function __construct()
  21.     {
  22.         $this->corrections = new \Doctrine\Common\Collections\ArrayCollection();
  23.         $this->docketEntries = new \Doctrine\Common\Collections\ArrayCollection();
  24.         $this->material self::MATERIAL_DEFAULT;
  25.     }
  26.     public function setTitle($title)
  27.     {
  28.         $this->title $title;
  29.         $this->remark $this->volume $this->collection '';
  30.         $matches = array();
  31.         if(preg_match('/\((.+)\)/'$title$matches)){
  32.           $this->remark $matches[1];
  33.         }
  34.         if(preg_match('/ (\d+[ABCDEFGHIJKLMNOPQRSTUVWXYZ]?|\d+ \d+|\d+\. \d+|\d+ Gr\. \d+)($| )/'$title$matches)){
  35.           $this->volume $matches[1];
  36.         }
  37.         if(preg_match('/^([^\(\d]+)/'$title$matches)){
  38.           $this->collection rtrim($matches[1], ' ');
  39.         }
  40.     }
  41.     public function getPoStrippedTitle(){
  42.       $matches = array();
  43.       if(preg_match('/^[PO]\. (.+)$/'$this->title$matches)){
  44.         return $matches[1] . ' [' $matches[0] . ']';
  45.       }
  46.       return $this->title;
  47.     }
  48.     public function getCodeTitle(){
  49.       $arabs array_flip(Correction::$ROMAN);
  50.       $code $this->title;
  51.       mb_ereg_search_init($code'[0-9]+');
  52.       $search mb_ereg_search();
  53.       if($search){
  54.         $result mb_ereg_search_getregs();
  55.         do {
  56.           $code mb_ereg_replace($result[0], $arabs[$result[0]], $code);
  57.         } while($result mb_ereg_search_regs());
  58.       }
  59.       $code mb_ereg_replace('[^a-zA-z]'''$code);
  60.       return $code;
  61.     }
  62.     public function __toString(){
  63.       return implode(';', array($this->id$this->sort$this->title$this->collection$this->volume$this->remark$this->material));
  64.     }
  65.     private $id;
  66.     private $sort;
  67.     private $title;
  68.     private $collection;
  69.     private $volume;
  70.     private $remark;
  71.     private $material;
  72.     private $corrections;
  73.     private $docketEntries;
  74.     public function getId()
  75.     {
  76.         return $this->id;
  77.     }
  78.     public function setSort($sort)
  79.     {
  80.         $this->sort $sort;
  81.     }
  82.     public function getSort()
  83.     {
  84.         return $this->sort;
  85.     }
  86.     public function getTitle()
  87.     {
  88.         return $this->title;
  89.     }
  90.     public function setCollection($collection)
  91.     {
  92.         $this->collection $collection;
  93.     }
  94.     public function getCollection()
  95.     {
  96.         return $this->collection;
  97.     }
  98.     public function setVolume($volume)
  99.     {
  100.         $this->volume $volume;
  101.     }
  102.     public function getVolume()
  103.     {
  104.         return $this->volume;
  105.     }
  106.     public function setRemark($remark)
  107.     {
  108.         $this->remark $remark;
  109.     }
  110.     public function getRemark()
  111.     {
  112.         return $this->remark;
  113.     }
  114.     public function getMaterial()
  115.     {
  116.         return $this->material;
  117.     }
  118.     public function addCorrection(\App\Entity\Correction $corrections)
  119.     {
  120.         $this->corrections[] = $corrections;
  121.     }
  122.     /**
  123.      * Get corrections
  124.      *
  125.      * @return Doctrine\Common\Collections\Collection 
  126.      */
  127.     public function getCorrections()
  128.     {
  129.         return $this->corrections;
  130.     }
  131.     public function addDocketEntry(\App\Entity\Docket $docketEntry)
  132.     {
  133.         $this->docketEntries[] = $docketEntry;
  134.     }
  135.     public function getDocketEntries()
  136.     {
  137.         return $this->docketEntries;
  138.     }
  139. }