Seditio Source
Root |
./othercms/phpBB3/vendor/s9e/text-formatter/src/Configurator/Collections/TagCollection.php
<?php

/**
* @package   s9e\TextFormatter
* @copyright Copyright (c) 2010-2021 The s9e authors
* @license   http://www.opensource.org/licenses/mit-license.php The MIT License
*/
namespace s9e\TextFormatter\Configurator\Collections;

use
RuntimeException;
use
s9e\TextFormatter\Configurator\Items\Tag;
use
s9e\TextFormatter\Configurator\Validators\TagName;

class
TagCollection extends NormalizedCollection
{
   
/**
    * {@inheritdoc}
    */
   
protected $onDuplicateAction = 'replace';

   
/**
    * {@inheritdoc}
    */
   
protected function getAlreadyExistsException($key)
    {
        return new
RuntimeException("Tag '" . $key . "' already exists");
    }

   
/**
    * {@inheritdoc}
    */
   
protected function getNotExistException($key)
    {
        return new
RuntimeException("Tag '" . $key . "' does not exist");
    }

   
/**
    * Normalize a tag name used as a key in this colelction
    *
    * @param  string $key Original name
    * @return string      Normalized name
    */
   
public function normalizeKey($key)
    {
        return
TagName::normalize($key);
    }

   
/**
    * Normalize a value to an instance of Tag
    *
    * @param  array|null|Tag $value
    * @return Tag
    */
   
public function normalizeValue($value)
    {
        return (
$value instanceof Tag)
             ?
$value
             
: new Tag($value);
    }
}