Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/modules/location/lib/entity/format/
Upload File :
Current File : /var/www/homesaver/www/bitrix/modules/location/lib/entity/format/fieldcollection.php

<?php

namespace Bitrix\Location\Entity\Format;

use Bitrix\Main\ArgumentTypeException;
use Bitrix\Main\SystemException;

/**
 * Class FieldCollection
 * @package Bitrix\Location\Entity\Format
 * @internal
 */
final class FieldCollection extends \Bitrix\Location\Entity\Generic\FieldCollection
{
	/** @var Field[] */
	protected $items = [];

	/**
	 * Add Format field to collection
	 * @param Field $field
	 * @return int
	 * @throws SystemException
	 */
	public function addItem($field): int
	{
		if(!($field instanceof Field))
		{
			throw new ArgumentTypeException('field must be the instance of Field');
		}

		$result = parent::addItem($field);

		/*
		 * Sort fields due to sort
		 * @todo: what about performance?
		 */
		usort(
			$this->items,
			function (Field $a, Field $b)
			{
				if ($a->getSort() === $b->getSort())
				{
					return 0;
				}

				return ($a->getSort() < $b->getSort()) ? -1 : 1;
			}
		);

		return $result;
	}
}