%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/main/lib/orm/fields/relations/ |
Current File : //home/bitrix/www/bitrix/modules/main/lib/orm/fields/relations/relation.php |
<?php /** * Bitrix Framework * @package bitrix * @subpackage main * @copyright 2001-2018 Bitrix */ namespace Bitrix\Main\ORM\Fields\Relations; use Bitrix\Main\ORM\Entity; use Bitrix\Main\ORM\Fields\Field; use Bitrix\Main\ORM\Objectify\EntityObject; /** * Performs relation mapping: back-reference and many-to-many relations. * * @package bitrix * @subpackage main */ abstract class Relation extends Field { /** @var string Name of target entity */ protected $refEntityName; /** @var Entity Target entity */ protected $refEntity; /** * @return Entity * @throws \Bitrix\Main\ArgumentException * @throws \Bitrix\Main\SystemException */ public function getRefEntity() { if ($this->refEntity === null) { // refEntityName could be an object or a data class if (class_exists($this->refEntityName) && is_subclass_of($this->refEntityName, EntityObject::class)) { /** @var EntityObject $refObjectClass */ $refObjectClass = $this->refEntityName; $this->refEntityName = $refObjectClass::$dataClass; } $this->refEntity = Entity::getInstance($this->refEntityName); } return $this->refEntity; } /** * @return string */ public function getRefEntityName() { return $this->refEntityName; } }