private function getAttributeTypeMapper(
        string $tagName,
        string $attributeName,
        string $attributeType
    ): AttributeMapper {
        if (isset($this->supportedTagAttributeMappersCache[$attributeType])) {
            return $this->supportedTagAttributeMappersCache[$attributeType];
        }

        foreach ($this->customTagAttributeMappers as $attributeMapper) {
            // get first supporting, order of these mappers is controlled by 'priority' DI tag attribute
            if ($attributeMapper->supports($attributeType)) {
                return $this->supportedTagAttributeMappersCache[$attributeType] = $attributeMapper;
            }
        }

        throw new RuntimeException(
            "RichText Custom Tag configuration: unsupported attribute type '{$attributeType}' of '{$attributeName}' attribute of '{$tagName}' Custom Tag"
        );
    }
private function getAttributeTypeMapper(
        string $tagName,
        string $attributeName,
        string $attributeType
    ): AttributeMapper {
        if (isset($this->supportedTagAttributeMappersCache[$attributeType])) {
            return $this->supportedTagAttributeMappersCache[$attributeType];
        }

        foreach ($this->customTagAttributeMappers as $attributeMapper) {
            // get first supporting, order of these mappers is controlled by 'priority' DI tag attribute
            if ($attributeMapper->supports($attributeType)) {
                return $this->supportedTagAttributeMappersCache[$attributeType] = $attributeMapper;
            }
        }

        throw new RuntimeException(
            "RichText Custom Tag configuration: unsupported attribute type '{$attributeType}' of '{$attributeName}' attribute of '{$tagName}' Custom Tag"
        );
    }
private function getAttributeTypeMapper ( string $ tagName , string $ attributeName , string $ attributeType ) : AttributeMapper { if ( isset ( $ this -> supportedTagAttributeMappersCache [ $ attributeType ] ) ) { return $ this -> supportedTagAttributeMappersCache [ $ attributeType ] ; } foreach ( $ this -> customTagAttributeMappers as $ attributeMapper ) { // get first supporting, order of these mappers is controlled by 'priority' DI tag attribute if ( $ attributeMapper -> supports ( $ attributeType ) ) { return $ this -> supportedTagAttributeMappersCache [ $ attributeType ] = $ attributeMapper ; } } throw new RuntimeException ( "RichText Custom Tag configuration: unsupported attribute type '{$attributeType}' of '{$attributeName}' attribute of '{$tagName}' Custom Tag" ) ; }
Get first available Custom Tag Attribute Type mapper.

@param string $tagName
@param string $attributeName
@param string $attributeType

@return AttributeMapper
Get first available Custom Tag Attribute Type mapper .