primo commit
This commit is contained in:
@ -0,0 +1,103 @@
|
||||
<?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 . '.');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user