<?php/** * Pimcore * * This source file is available under two different licenses: * - GNU General Public License version 3 (GPLv3) * - Pimcore Commercial License (PCL) * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org) * @license http://www.pimcore.org/license GPLv3 and PCL */namespace Pimcore\Model\Element\Data;use Pimcore\Model;/** * @internal */class MarkerHotspotItem implements \ArrayAccess{ /** * @var string */ public $name = ''; /** * @var string */ public $type = ''; /** * @var mixed */ public $value; /** * @param array $data */ public function __construct($data) { foreach ($data as $key => $value) { $setter = 'set' . $key; if (method_exists($this, $setter)) { $this->$setter($value); } } } /** * @return string */ public function getName() { return $this->name; } /** * @param string $name */ public function setName($name) { $this->name = $name; } /** * @return string */ public function getType() { return $this->type; } /** * @param string $type */ public function setType($type) { $this->type = $type; } /** * @return mixed */ public function getValue() { return $this->value; } /** * @param mixed $value */ public function setValue($value) { $this->value = $value; } /** * (PHP 5 >= 5.0.0)<br/> * Whether a offset exists * * @link http://php.net/manual/en/arrayaccess.offsetexists.php * * @param mixed $offset <p> * An offset to check for. * </p> * * @return bool true on success or false on failure. * </p> * <p> * The return value will be casted to boolean if non-boolean was returned. */ public function offsetExists($offset) { return property_exists($this, $offset); } /** * (PHP 5 >= 5.0.0)<br/> * Offset to retrieve * * @link http://php.net/manual/en/arrayaccess.offsetget.php * * @param mixed $offset <p> * The offset to retrieve. * </p> * * @return mixed Can return all value types. */ public function offsetGet($offset) { if ($this->offsetExists($offset)) { if ($offset == 'value' && in_array($this->type, ['object', 'asset', 'document'])) { return Model\Element\Service::getElementById($this->type, $this->value); } else { return $this->$offset; } } return null; } /** * (PHP 5 >= 5.0.0)<br/> * Offset to set * * @link http://php.net/manual/en/arrayaccess.offsetset.php * * @param mixed $offset <p> * The offset to assign the value to. * </p> * @param mixed $value <p> * The value to set. * </p> */ public function offsetSet($offset, $value) { if ($this->offsetExists($offset)) { if ($value instanceof Model\Element\ElementInterface) { $value = $value->getId(); } $this->$offset = $value; } } /** * (PHP 5 >= 5.0.0)<br/> * Offset to unset * * @link http://php.net/manual/en/arrayaccess.offsetunset.php * * @param mixed $offset <p> * The offset to unset. * </p> */ public function offsetUnset($offset) { if ($this->offsetExists($offset)) { $this->$offset = null; } }}