Files
conservatorio-tomadini/administrator/components/com_media/src/Event/FetchMediaItemUrlEvent.php
2024-12-17 17:34:10 +01:00

104 lines
2.8 KiB
PHP

<?php
/**
* @package Joomla.Administrator
* @subpackage com_media
*
* @copyright (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\Component\Media\Administrator\Event;
use Joomla\CMS\Event\AbstractImmutableEvent;
// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects
/**
* Event object to set an url.
*
* @since 4.1.0
*/
final class FetchMediaItemUrlEvent extends AbstractImmutableEvent
{
/**
* Constructor.
*
* @param string $name The event name.
* @param array $arguments The event arguments.
*
* @throws \BadMethodCallException
*
* @since 4.1.0
*/
public function __construct($name, array $arguments = [])
{
// Check for required arguments
if (!\array_key_exists('adapter', $arguments) || !\is_string($arguments['adapter'])) {
throw new \BadMethodCallException("Argument 'adapter' of event $name is not of the expected type");
}
$this->arguments[$arguments['adapter']] = $arguments['adapter'];
unset($arguments['adapter']);
// Check for required arguments
if (!\array_key_exists('path', $arguments) || !\is_string($arguments['path'])) {
throw new \BadMethodCallException("Argument 'path' of event $name is not of the expected type");
}
$this->arguments[$arguments['path']] = $arguments['path'];
unset($arguments['path']);
// Check for required arguments
if (!\array_key_exists('url', $arguments) || !\is_string($arguments['url'])) {
throw new \BadMethodCallException("Argument 'url' of event $name is not of the expected type");
}
parent::__construct($name, $arguments);
}
/**
* Validate $value to be a string
*
* @param string $value The value to set
*
* @return string
*
* @since 4.1.0
*/
protected function setUrl(string $value): string
{
return $value;
}
/**
* Forbid setting $path
*
* @param string $value The value to set
*
* @since 4.1.0
*
* @throws \BadMethodCallException
*/
protected function setPath(string $value): string
{
throw new \BadMethodCallException('Cannot set the argument "path" of the immutable event ' . $this->name . '.');
}
/**
* Forbid setting $path
*
* @param string $value The value to set
*
* @since 4.1.0
*
* @throws \BadMethodCallException
*/
protected function setAdapter(string $value): string
{
throw new \BadMethodCallException('Cannot set the argument "adapter" of the immutable event ' . $this->name . '.');
}
}