Bitrix-D7  20.5.0
scalarfield.php
См. документацию.
1 <?php
2 /**
3  * Bitrix Framework
4  * @package bitrix
5  * @subpackage main
6  * @copyright 2001-2012 Bitrix
7  */
8 
9 namespace Bitrix\Main\ORM\Fields;
12 
13 /**
14  * Scalar entity field class for non-array and non-object data types
15  * @package bitrix
16  * @subpackage main
17  */
18 abstract class ScalarField extends Field implements IStorable, ITypeHintable
19 {
20  protected $is_primary;
21 
22  protected $is_unique;
23 
24  protected $is_required;
25 
26  protected $is_autocomplete;
27 
28  /** @var boolean Permission to use in filter */
29  protected $is_private;
30 
31  protected $column_name = '';
32 
33  /** @var null|callable|mixed */
34  protected $default_value;
35 
36  /**
37  * ScalarField constructor.
38  *
39  * @param $name
40  * @param array $parameters deprecated, use configure* and add* methods instead
41  *
42  * @throws \Bitrix\Main\SystemException
43  */
44  public function __construct($name, $parameters = array())
45  {
46  parent::__construct($name, $parameters);
47 
48  $this->is_primary = (isset($parameters['primary']) && $parameters['primary']);
49  $this->is_unique = (isset($parameters['unique']) && $parameters['unique']);
50  $this->is_required = (isset($parameters['required']) && $parameters['required']);
51  $this->is_autocomplete = (isset($parameters['autocomplete']) && $parameters['autocomplete']);
52  $this->is_private = (isset($parameters['private']) && $parameters['private']);
53 
54  $this->column_name = isset($parameters['column_name']) ? $parameters['column_name'] : $this->name;
55  $this->default_value = isset($parameters['default_value']) ? $parameters['default_value'] : null;
56  }
57 
58  /**
59  * @return int
60  */
61  public function getTypeMask()
62  {
63  return FieldTypeMask::SCALAR;
64  }
65 
66  /**
67  * @param boolean $value
68  *
69  * @return $this
70  */
71  public function configurePrimary($value = true)
72  {
73  $this->is_primary = (bool) $value;
74  return $this;
75  }
76 
77  public function isPrimary()
78  {
79  return $this->is_primary;
80  }
81 
82  /**
83  * @param boolean $value
84  *
85  * @return $this
86  */
87  public function configureRequired($value = true)
88  {
89  $this->is_required = (bool) $value;
90  return $this;
91  }
92 
93  public function isRequired()
94  {
95  return $this->is_required;
96  }
97 
98  /**
99  * @param boolean $value
100  *
101  * @return $this
102  */
103  public function configureUnique($value = true)
104  {
105  $this->is_unique = (bool) $value;
106  return $this;
107  }
108 
109  public function isUnique()
110  {
111  return $this->is_unique;
112  }
113 
114  /**
115  * @param boolean $value
116  *
117  * @return $this
118  */
119  public function configureAutocomplete($value = true)
120  {
121  $this->is_autocomplete = (bool) $value;
122  return $this;
123  }
124 
125  public function isAutocomplete()
126  {
127  return $this->is_autocomplete;
128  }
129 
130 
131  /**
132  * @param bool $value
133  *
134  * @return ScalarField
135  */
136  public function configurePrivate($value = true)
137  {
138  $this->is_private = (bool) $value;
139  return $this;
140  }
141 
142  /**
143  * @return bool
144  */
145  public function isPrivate()
146  {
147  return $this->is_private;
148  }
149 
150  /**
151  * @param string $value
152  *
153  * @return $this
154  */
155  public function configureColumnName($value)
156  {
157  $this->column_name = $value;
158  return $this;
159  }
160 
161  public function getColumnName()
162  {
163  return $this->column_name;
164  }
165 
166  /**
167  * @param string $column_name
168  */
169  public function setColumnName($column_name)
170  {
171  $this->column_name = $column_name;
172  }
173 
174  /**
175  * @param callable|mixed $value
176  *
177  * @return $this
178  */
179  public function configureDefaultValue($value)
180  {
181  $this->default_value = $value;
182  return $this;
183  }
184 
185  /**
186  * @param array $row ORM data row in case of dependency value on other values
187  *
188  * @return callable|mixed|null
189  */
190  public function getDefaultValue($row = null)
191  {
192  if (!is_string($this->default_value) && is_callable($this->default_value))
193  {
194  return call_user_func($this->default_value, $row);
195  }
196  else
197  {
198  return $this->default_value;
199  }
200  }
201 
202  public function isValueEmpty($value)
203  {
204  if ($value instanceof SqlExpression)
205  {
206  $value = $value->compile();
207  }
208 
209  return (strval($value) === '');
210  }
211 
212  /**
213  * @return string
214  */
215  public function getGetterTypeHint()
216  {
217  return '\\string';
218  }
219 
220  /**
221  * @return string
222  */
223  public function getSetterTypeHint()
224  {
225  return '\\string';
226  }
227 }
__construct($name, $parameters=array())
ScalarField constructor.
Definition: scalarfield.php:44
__construct(Base $connector)
Constructor.
Definition: resultview.php:40