* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\Grid\Position; use PrestaShop\PrestaShop\Core\Grid\Collection\AbstractCollection; /** * Class PositionModificationCollection holds collection of row modifications for grid. * * @property PositionModificationInterface[] $items */ final class PositionModificationCollection extends AbstractCollection implements PositionModificationCollectionInterface { /** * {@inheritdoc} */ public function add(PositionModificationInterface $positionModification) { $this->items[$positionModification->getId()] = $positionModification; return $this; } /** * {@inheritdoc} */ public function remove(PositionModificationInterface $positionModification) { if (isset($this->items[$positionModification->getId()])) { unset($this->items[$positionModification->getId()]); } return $this; } /** * {@inheritdoc} */ public function toArray() { $positionModifications = []; /** @var PositionModificationInterface $item */ foreach ($this->items as $item) { $positionModifications[] = [ 'id' => $item->getId(), 'oldPosition' => $item->getOldPosition(), 'newPosition' => $item->getNewPosition(), ]; } return $positionModifications; } }