custom/plugins/CrswCleverReachOfficial/src/Core/Infrastructure/TaskExecution/Process.php line 42

Open in your IDE?
  1. <?php
  2. namespace Crsw\CleverReachOfficial\Core\Infrastructure\TaskExecution;
  3. use InvalidArgumentException;
  4. use Crsw\CleverReachOfficial\Core\Infrastructure\ORM\Configuration\EntityConfiguration;
  5. use Crsw\CleverReachOfficial\Core\Infrastructure\ORM\Configuration\IndexMap;
  6. use Crsw\CleverReachOfficial\Core\Infrastructure\ORM\Entity;
  7. use Crsw\CleverReachOfficial\Core\Infrastructure\Serializer\Serializer;
  8. use Crsw\CleverReachOfficial\Core\Infrastructure\TaskExecution\Interfaces\Runnable;
  9. /**
  10.  * Class Process
  11.  * @package Crsw\CleverReachOfficial\Core\Infrastructure\ORM\Entities
  12.  */
  13. class Process extends Entity
  14. {
  15.     /**
  16.      * Fully qualified name of this class.
  17.      */
  18.     const CLASS_NAME __CLASS__;
  19.     /**
  20.      * Unique identifier.
  21.      *
  22.      * @var string
  23.      */
  24.     protected $guid;
  25.     /**
  26.      * Runnable instance.
  27.      *
  28.      * @var Runnable
  29.      */
  30.     protected $runner;
  31.     /**
  32.      * Sets raw array data to this entity instance properties.
  33.      *
  34.      * @param array $data Raw array data with keys 'id', 'guid' and 'runner'.
  35.      *
  36.      * @throws \InvalidArgumentException In case when @see $data does not have all needed keys.
  37.      */
  38.     public function inflate(array $data)
  39.     {
  40.         if (!isset($data['guid'], $data['runner'])) {
  41.             throw new InvalidArgumentException('Data array needs to have "guid" and "runner" keys.');
  42.         }
  43.         parent::inflate($data);
  44.         $this->setGuid($data['guid']);
  45.         $this->setRunner(Serializer::unserialize($data['runner']));
  46.     }
  47.     /**
  48.      * Transforms entity to its array format representation.
  49.      *
  50.      * @return array Entity in array format.
  51.      */
  52.     public function toArray()
  53.     {
  54.         $data parent::toArray();
  55.         $data['guid'] = $this->getGuid();
  56.         $data['runner'] = Serializer::serialize($this->getRunner());
  57.         return $data;
  58.     }
  59.     /**
  60.      * Returns entity configuration object
  61.      *
  62.      * @return EntityConfiguration
  63.      */
  64.     public function getConfig()
  65.     {
  66.         $indexMap = new IndexMap();
  67.         $indexMap->addStringIndex('guid');
  68.         return new EntityConfiguration($indexMap'Process');
  69.     }
  70.     /**
  71.      * Gets Guid.
  72.      *
  73.      * @return string Guid.
  74.      */
  75.     public function getGuid()
  76.     {
  77.         return $this->guid;
  78.     }
  79.     /**
  80.      * Sets Guid.
  81.      *
  82.      * @param string $guid Guid.
  83.      */
  84.     public function setGuid($guid)
  85.     {
  86.         $this->guid $guid;
  87.     }
  88.     /**
  89.      * Gets Runner.
  90.      *
  91.      * @return Runnable Runner.
  92.      */
  93.     public function getRunner()
  94.     {
  95.         return $this->runner;
  96.     }
  97.     /**
  98.      * Sets Runner.
  99.      *
  100.      * @param Runnable $runner Runner.
  101.      */
  102.     public function setRunner(Runnable $runner)
  103.     {
  104.         $this->runner $runner;
  105.     }
  106. }