Your IP : 18.223.195.30


Current Path : /var/www/www-root/data/www/info.monolith-realty.ru/bitrix/modules/translate/lib/
Upload File :
Current File : /var/www/www-root/data/www/info.monolith-realty.ru/bitrix/modules/translate/lib/error.php

<?php

namespace Bitrix\Translate;

use Bitrix\Main;

/**
 * @implements \Bitrix\Translate\IErrorable
 */
trait Error
{
	/** @var Main\ErrorCollection */
	protected $errorCollection;

	/**
	 * Adds error to error collection.
	 *
	 * @param Main\Error $error Error.
	 *
	 * @return $this
	 */
	final public function addError(Main\Error $error): self
	{
		if (!$this->errorCollection instanceof Main\ErrorCollection)
		{
			$this->errorCollection = new Main\ErrorCollection;
		}

		$this->errorCollection[] = $error;

		return $this;
	}

	/**
	 * Adds list of errors to error collection.
	 *
	 * @param Main\Error[] $errors Errors.
	 *
	 * @return $this
	 */
	final public function addErrors(array $errors): self
	{
		if (!$this->errorCollection instanceof Main\ErrorCollection)
		{
			$this->errorCollection = new Main\ErrorCollection;
		}

		$this->errorCollection->add($errors);

		return $this;
	}

	/**
	 * Getting array of errors.
	 *
	 * @return Main\Error[]
	 */
	final public function getErrors(): array
	{
		if (!$this->errorCollection instanceof Main\ErrorCollection)
		{
			return array();
		}

		return $this->errorCollection->toArray();
	}

	/**
	 * Getting once error with the necessary code.
	 *
	 * @param string|int $code Code of error.
	 *
	 * @return Main\Error|null
	 */
	final public function getErrorByCode($code): ?Main\Error
	{
		if (!$this->errorCollection instanceof Main\ErrorCollection)
		{
			return null;
		}

		return $this->errorCollection->getErrorByCode($code);
	}

	/**
	 * Returns last error from list.
	 *
	 * @return Main\Error|null
	 */
	final public function getLastError(): ?Main\Error
	{
		if (!$this->errorCollection instanceof Main\ErrorCollection)
		{
			return null;
		}
		if (!$this->hasErrors())
		{
			return null;
		}

		$offset = $this->errorCollection->count() - 1;

		return $this->errorCollection->offsetGet($offset);
	}

	/**
	 * Returns first error from list.
	 *
	 * @return Main\Error|null
	 */
	final public function getFirstError(): ?Main\Error
	{
		if (!$this->errorCollection instanceof Main\ErrorCollection)
		{
			return null;
		}
		if (!$this->hasErrors())
		{
			return null;
		}

		return $this->errorCollection->offsetGet(0);
	}

	/**
	 * Checks if error occurred.
	 *
	 * @return boolean
	 */
	final public function hasErrors(): bool
	{
		if (!$this->errorCollection instanceof Main\ErrorCollection)
		{
			return false;
		}

		return !$this->errorCollection->isEmpty();
	}

	/**
	 * Returns an error with the necessary code.
	 * @param string|int $code The code of the error.
	 *
	 * @return boolean
	 */
	final public function hasError($code): bool
	{
		if (
			!$this->errorCollection instanceof Main\ErrorCollection ||
			$this->errorCollection->isEmpty()
		)
		{
			return false;
		}

		$err = $this->errorCollection->getErrorByCode($code);

		return ($err instanceof Main\Error);
	}
}