%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/main/lib/orm/fields/ |
Current File : /home/bitrix/www/bitrix/modules/main/lib/orm/fields/scalarfield.php |
<?php /** * Bitrix Framework * @package bitrix * @subpackage main * @copyright 2001-2012 Bitrix */ namespace Bitrix\Main\ORM\Fields; use Bitrix\Main\DB\SqlExpression; use Bitrix\Main\ORM\Fields\FieldTypeMask; /** * Scalar entity field class for non-array and non-object data types * @package bitrix * @subpackage main */ abstract class ScalarField extends Field implements IStorable { protected $is_primary; protected $is_unique; protected $is_required; protected $is_autocomplete; protected $column_name = ''; /** @var null|callable|mixed */ protected $default_value; /** * ScalarField constructor. * * @param $name * @param array $parameters deprecated, use configure* and add* methods instead * * @throws \Bitrix\Main\SystemException */ public function __construct($name, $parameters = array()) { parent::__construct($name, $parameters); $this->is_primary = (isset($parameters['primary']) && $parameters['primary']); $this->is_unique = (isset($parameters['unique']) && $parameters['unique']); $this->is_required = (isset($parameters['required']) && $parameters['required']); $this->is_autocomplete = (isset($parameters['autocomplete']) && $parameters['autocomplete']); $this->column_name = isset($parameters['column_name']) ? $parameters['column_name'] : $this->name; $this->default_value = isset($parameters['default_value']) ? $parameters['default_value'] : null; } /** * @return int */ public function getTypeMask() { return FieldTypeMask::SCALAR; } /** * @param boolean $value * * @return $this */ public function configurePrimary($value) { $this->is_primary = (bool) $value; return $this; } public function isPrimary() { return $this->is_primary; } /** * @param boolean $value * * @return $this */ public function configureRequired($value) { $this->is_required = (bool) $value; return $this; } public function isRequired() { return $this->is_required; } /** * @param boolean $value * * @return $this */ public function configureUnique($value) { $this->is_unique = (bool) $value; return $this; } public function isUnique() { return $this->is_unique; } /** * @param boolean $value * * @return $this */ public function configureAutocomplete($value) { $this->is_autocomplete = (bool) $value; return $this; } public function isAutocomplete() { return $this->is_autocomplete; } /** * @param string $value * * @return $this */ public function configureColumnName($value) { $this->column_name = $value; return $this; } public function getColumnName() { return $this->column_name; } /** * @param string $column_name */ public function setColumnName($column_name) { $this->column_name = $column_name; } /** * @param callable|mixed $value * * @return $this */ public function configureDefaultValue($value) { $this->default_value = $value; return $this; } /** * @param array $row ORM data row in case of dependency value on other values * * @return callable|mixed|null */ public function getDefaultValue($row = null) { if (is_callable($this->default_value)) { return call_user_func($this->default_value, $row); } else { return $this->default_value; } } public function isValueEmpty($value) { if ($value instanceof SqlExpression) { $value = $value->compile(); } return (strval($value) === ''); } }