Bitrix-D7  20.0.0
Класс EntityCollection
Граф наследования:EntityCollection:
CollectionBase BasketItemCollection BasketPropertiesCollectionBase PaymentCollection PropertyValueCollectionBase ShipmentCollection ShipmentItemCollection ShipmentItemStoreCollection TradeBindingCollection

Открытые члены

 onItemModify (CollectableEntity $item, $name=null, $oldValue=null, $value=null)
 
 deleteItem ($index)
 
 clearCollection ()
 
 getItemById ($id)
 
 getIndexById ($id)
 
 getItemByIndex ($index)
 
 isStartField ($isMeaningfulField=false)
 
 clearStartField ()
 
 hasMeaningfulField ()
 
 doFinalAction ($hasMeaningfulField=false)
 
 isMathActionOnly ()
 
 setMathActionOnly ($value=false)
 
 isChanged ()
 
 verify ()
 
 isClone ()
 
 isAnyItemDeleted ()
 
 clearChanged ()
 
 createClone (\SplObjectStorage $cloneEntity)
 
- Открытые члены унаследованные от CollectionBase
 getIterator ()
 
 offsetExists ($offset)
 Whether a offset exists. Подробнее...
 
 offsetGet ($offset)
 Offset to retrieve. Подробнее...
 
 offsetSet ($offset, $value)
 Offset to set. Подробнее...
 
 offsetUnset ($offset)
 Offset to unset. Подробнее...
 
 count ()
 Count elements of an object. Подробнее...
 
 current ()
 Return the current element. Подробнее...
 
 next ()
 Move forward to next element. Подробнее...
 
 key ()
 Return the key of the current element. Подробнее...
 
 valid ()
 Checks if current position is valid. Подробнее...
 
 rewind ()
 Rewind the Iterator to the first element. Подробнее...
 
 isEmpty ()
 Checks if collection is empty. Подробнее...
 

Открытые статические члены

static getRegistryType ()
 

Защищенные члены

 __construct ()
 EntityCollection constructor. Подробнее...
 
 addItem (CollectableEntity $item)
 
 createIndex ()
 
 getDeletableItems ()
 
 callEventOnBeforeCollectionClear ()
 
 getEntityParent ()
 
 setAnyItemDeleted ($value)
 

Защищенные данные

 $isClone = false
 
 $anyItemDeleted = false
 
- Защищенные данные унаследованные от CollectionBase
 $collection = array()
 

Подробное описание

См. определение в файле entitycollection.php строка 11

Конструктор(ы)

◆ __construct()

__construct ( )
protected

EntityCollection constructor.

См. определение в файле entitycollection.php строка 23

23 {}

Методы

◆ addItem()

addItem ( CollectableEntity  $item)
protected
Аргументы
CollectableEntity$item
Возвращает
CollectableEntity
Исключения
Main

Переопределяется в BundleCollection.

См. определение в файле entitycollection.php строка 86

87  {
88  $index = $this->createIndex();
89  $item->setInternalIndex($index);
90 
91  $this->collection[$index] = $item;
92 
93  $eventManager = Main\EventManager::getInstance();
94  $eventsList = $eventManager->findEventHandlers('sale', 'OnCollectionAddItem');
95  if (!empty($eventsList))
96  {
97  /** @var Main\Entity\Event $event */
98  $event = new Main\Event('sale', 'OnCollectionAddItem', array(
99  'COLLECTION' => $this->collection,
100  'ENTITY' => $item,
101  ));
102  $event->send();
103  }
104 
105  return $item;
106  }

◆ callEventOnBeforeCollectionClear()

callEventOnBeforeCollectionClear ( )
protected
Возвращает
void

См. определение в файле entitycollection.php строка 144

145  {
146  $eventManager = Main\EventManager::getInstance();
147 
148  $eventsList = $eventManager->findEventHandlers('sale', 'OnBeforeCollectionClear');
149  if (!empty($eventsList))
150  {
151  /** @var Main\Entity\Event $event */
152  $event = new Main\Event('sale', 'OnBeforeCollectionClear', array(
153  'COLLECTION' => $this->collection,
154  ));
155  $event->send();
156  }
157  }

◆ clearChanged()

clearChanged ( )

См. определение в файле entitycollection.php строка 385

386  {
387  if (!empty($this->collection))
388  {
389  foreach ($this->collection as $entityItem)
390  {
391  if ($entityItem instanceof Entity)
392  {
393  $entityItem->clearChanged();
394  }
395  }
396  }
397  }

◆ clearCollection()

clearCollection ( )
Исключения
Main

См. определение в файле entitycollection.php строка 121

122  {
124 
125  /** @var CollectableEntity $item */
126  foreach ($this->getDeletableItems() as $item)
127  {
128  $item->delete();
129  }
130  }

◆ clearStartField()

clearStartField ( )
Возвращает
bool

См. определение в файле entitycollection.php строка 258

259  {
260  $parent = $this->getEntityParent();
261  if ($parent === null)
262  {
263  return false;
264  }
265 
266  return $parent->clearStartField();
267  }

◆ createClone()

createClone ( \SplObjectStorage  $cloneEntity)

Переопределяется в BasketBase, BundleCollection, ShipmentCollection, ShipmentItemCollection, PaymentCollection, ShipmentItemStoreCollection, BasketPropertiesCollectionBase и TradeBindingCollection.

См. определение в файле entitycollection.php строка 405

406  {
407  if ($this->isClone() && $cloneEntity->contains($this))
408  {
409  return $cloneEntity[$this];
410  }
411 
412  $entityClone = clone $this;
413  $entityClone->isClone = true;
414 
415  if (!$cloneEntity->contains($this))
416  {
417  $cloneEntity[$this] = $entityClone;
418  }
419 
420  /**
421  * @var int key
422  * @var CollectableEntity $entity
423  */
424  foreach ($entityClone->collection as $key => $entity)
425  {
426  if (!$cloneEntity->contains($entity))
427  {
428  $cloneEntity[$entity] = $entity->createClone($cloneEntity);
429  }
430 
431  $entityClone->collection[$key] = $cloneEntity[$entity];
432  }
433 
434  return $entityClone;
435  }

◆ createIndex()

createIndex ( )
protected
Возвращает
int

Переопределяется в ShipmentItemCollection.

См. определение в файле entitycollection.php строка 111

112  {
113  $this->index++;
114  return $this->index;
115  }

◆ deleteItem()

deleteItem (   $index)

Переопределяется в BasketBase, Basket, ShipmentItemCollection, ShipmentCollection, PropertyValueCollectionBase, BundleCollection и PaymentCollection.

См. определение в файле entitycollection.php строка 54

55  {
56  if (!isset($this->collection[$index]))
57  {
58  throw new Main\ArgumentOutOfRangeException("collection item index wrong");
59  }
60 
61  $oldItem = $this->collection[$index];
62 
63  $eventManager = Main\EventManager::getInstance();
64  $eventsList = $eventManager->findEventHandlers('sale', 'OnBeforeCollectionDeleteItem');
65  if (!empty($eventsList))
66  {
67  /** @var Main\Entity\Event $event */
68  $event = new Main\Event('sale', 'OnBeforeCollectionDeleteItem', array(
69  'COLLECTION' => $this->collection,
70  'ENTITY' => $oldItem,
71  ));
72  $event->send();
73  }
74 
75  unset($this->collection[$index]);
76  $this->setAnyItemDeleted(true);
77 
78  return $oldItem;
79  }

◆ doFinalAction()

doFinalAction (   $hasMeaningfulField = false)
Аргументы
bool$hasMeaningfulField
Возвращает
Sale\Result

См. определение в файле entitycollection.php строка 287

288  {
289  $parent = $this->getEntityParent();
290  if ($parent === null)
291  {
292  return new Sale\Result();
293  }
294 
295  return $parent->doFinalAction($hasMeaningfulField);
296  }

◆ getDeletableItems()

getDeletableItems ( )
protected
Возвращает
array

Переопределяется в ShipmentCollection.

См. определение в файле entitycollection.php строка 135

136  {
137  return $this->collection;
138  }

◆ getEntityParent()

◆ getIndexById()

getIndexById (   $id)
Аргументы
$id
Возвращает
bool|int|null
Исключения
Main

См. определение в файле entitycollection.php строка 193

194  {
195  if (intval($id) <= 0)
196  {
197  throw new Main\ArgumentNullException('id');
198  }
199 
200  /** @var CollectableEntity $item */
201  foreach ($this->collection as $item)
202  {
203  if ($item->getId() > 0 && $id == $item->getId())
204  {
205  return $item->getInternalIndex();
206  }
207  }
208  return null;
209  }

◆ getItemById()

getItemById (   $id)
Аргументы
$id
Возвращает
CollectableEntity|bool
Исключения
Main

Переопределяется в BasketItemCollection.

См. определение в файле entitycollection.php строка 165

166  {
167  if (intval($id) <= 0)
168  {
169  throw new Main\ArgumentNullException('id');
170  }
171 
172  $index = $this->getIndexById($id);
173  if ($index === null)
174  {
175  return null;
176  }
177 
178  if (isset($this->collection[$index]))
179  {
180  return $this->collection[$index];
181  }
182 
183  return null;
184  }

◆ getItemByIndex()

getItemByIndex (   $index)
Аргументы
$index
Возвращает
CollectableEntity|null
Исключения
Main

См. определение в файле entitycollection.php строка 217

218  {
219  if (intval($index) < 0)
220  {
221  throw new Main\ArgumentNullException('id');
222  }
223 
224  /** @var CollectableEntity $item */
225  foreach ($this->collection as $item)
226  {
227  if ($item->getInternalIndex() == $index)
228  {
229  return $item;
230  }
231  }
232  return null;
233  }

◆ getRegistryType()

static getRegistryType ( )
static
Исключения
Main

Переопределяется в ShipmentItemCollection, ShipmentCollection, PaymentCollection, BundleCollection, TradeBindingCollection, ShipmentItemStoreCollection, PropertyValueCollection, Basket и BasketPropertiesCollection.

См. определение в файле entitycollection.php строка 42

43  {
44  throw new Main\NotImplementedException();
45  }

◆ hasMeaningfulField()

hasMeaningfulField ( )
Возвращает
bool

См. определение в файле entitycollection.php строка 272

273  {
274  $parent = $this->getEntityParent();
275  if ($parent === null)
276  {
277  return false;
278  }
279 
280  return $parent->hasMeaningfulField();
281  }

◆ isAnyItemDeleted()

isAnyItemDeleted ( )
Возвращает
bool

См. определение в файле entitycollection.php строка 367

368  {
369  return $this->anyItemDeleted;
370  }

◆ isChanged()

isChanged ( )
Возвращает
bool

См. определение в файле entitycollection.php строка 330

331  {
332  if (count($this->collection) > 0)
333  {
334  /** @var Entity $item */
335  foreach ($this->collection as $item)
336  {
337  if ($item->isChanged())
338  {
339  return true;
340  }
341  }
342  }
343 
344  return $this->isAnyItemDeleted();
345  }

◆ isClone()

isClone ( )
Возвращает
bool

См. определение в файле entitycollection.php строка 358

359  {
360  return $this->isClone;
361  }

◆ isMathActionOnly()

isMathActionOnly ( )
Возвращает
bool

См. определение в файле entitycollection.php строка 301

302  {
303  $parent = $this->getEntityParent();
304  if ($parent === null)
305  {
306  return false;
307  }
308 
309  return $parent->isMathActionOnly();
310  }

◆ isStartField()

isStartField (   $isMeaningfulField = false)
Аргументы
bool$isMeaningfulField
Возвращает
bool

См. определение в файле entitycollection.php строка 244

245  {
246  $parent = $this->getEntityParent();
247  if ($parent === null)
248  {
249  return false;
250  }
251 
252  return $parent->isStartField($isMeaningfulField);
253  }

◆ onItemModify()

onItemModify ( CollectableEntity  $item,
  $name = null,
  $oldValue = null,
  $value = null 
)

См. определение в файле entitycollection.php строка 34

35  {
36  return new Sale\Result();
37  }

◆ setAnyItemDeleted()

setAnyItemDeleted (   $value)
protected
Аргументы
$value
Возвращает
bool

См. определение в файле entitycollection.php строка 377

378  {
379  return $this->anyItemDeleted = ($value === true);
380  }

◆ setMathActionOnly()

setMathActionOnly (   $value = false)
Аргументы
bool | false$value
Возвращает
bool

См. определение в файле entitycollection.php строка 316

317  {
318  $parent = $this->getEntityParent();
319  if ($parent == null)
320  {
321  return false;
322  }
323 
324  return $parent->setMathActionOnly($value);
325  }

◆ verify()

verify ( )
Возвращает
Sale\Result

Переопределяется в ShipmentCollection, PaymentCollection, BasketPropertiesCollectionBase, PropertyValueCollectionBase и BasketBase.

См. определение в файле entitycollection.php строка 350

351  {
352  return new Sale\Result();
353  }

Поля

◆ $anyItemDeleted

$anyItemDeleted = false
protected

См. определение в файле entitycollection.php строка 18

◆ $isClone

$isClone = false
protected

См. определение в файле entitycollection.php строка 16


Объявления и описания членов класса находятся в файле:
Bitrix\Sale\Internals\EntityCollection\getIndexById
getIndexById($id)
Definition: entitycollection.php:193
Bitrix\Sale\Internals\EntityCollection\getDeletableItems
getDeletableItems()
Definition: entitycollection.php:135
Bitrix\Sale\Internals\CollectionBase\count
count()
Count elements of an object.
Definition: collectionbase.php:79
Bitrix\Sale\Internals\CollectionBase\$collection
$collection
Definition: collectionbase.php:21
Bitrix\Main\EventManager\getInstance
static getInstance()
Definition: main/lib/eventmanager.php:34
Bitrix\Sale\Internals\EntityCollection\isAnyItemDeleted
isAnyItemDeleted()
Definition: entitycollection.php:367
Bitrix\Sale\Internals\EntityCollection\getEntityParent
getEntityParent()
Bitrix\Sale\Internals\EntityCollection\callEventOnBeforeCollectionClear
callEventOnBeforeCollectionClear()
Definition: entitycollection.php:144
Bitrix\Sale\Internals\EntityCollection\createIndex
createIndex()
Definition: entitycollection.php:111
Bitrix\Sale\Internals\EntityCollection\setAnyItemDeleted
setAnyItemDeleted($value)
Definition: entitycollection.php:377
Bitrix\Sale\Internals\EntityCollection\$anyItemDeleted
$anyItemDeleted
Definition: entitycollection.php:18
Bitrix\Sale\Internals\EntityCollection\isClone
isClone()
Definition: entitycollection.php:358
Bitrix\Sale\Internals\EntityCollection\$isClone
$isClone
Definition: entitycollection.php:16