%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/report/lib/visualconstructor/entity/ |
| Current File : /home/bitrix/www/bitrix/modules/report/lib/visualconstructor/entity/configurablemodel.php |
<?php
namespace Bitrix\Report\VisualConstructor\Entity;
use Bitrix\Report\VisualConstructor\BaseConfigField;
use Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable;
use Bitrix\Report\VisualConstructor\Helper\Util;
use Bitrix\Report\VisualConstructor\Internal\Model;
/**
* Common class for models which have configurations sub entities
* @method addConfigurations(Configuration | Configuration[] $configuration) add configuration/configurations to this
* @method deleteConfigurations(Configuration | Configuration[] $configuration) delete connection with Configuration, but not delete Configuration object
* @package Bitrix\Report\VisualConstructor\Entity
*/
abstract class ConfigurableModel extends Model
{
/** @var Configuration[] $configurations */
protected $configurations = array();
/**
* @return Configuration[]
*/
public function getConfigurations()
{
return $this->configurations;
}
/**
* Setter for Configuration colection.
*
* @param Configuration[] $configurations Configuration list.
* @return void
*/
public function setConfigurations($configurations)
{
$this->configurations = $configurations;
}
/**
* Build configuration entity from valuable $field and add to configurations list
*
* @param BaseValuable $field Field from create configuration.
* @return void
*/
public function addConfigurationField(BaseValuable $field)
{
$configuration = new Configuration();
$configuration->setFieldClassName($field::getClassName());
$configuration->setKey($field->getKey());
$configuration->setGId(Util::generateUserUniqueId());
$configuration->setValue($field->getDefaultValue());
$configuration->setWeight(0);
$this->addConfigurations($configuration);
}
}