DataWizard/Application/Model/ExportRenderer/RendererBridge.php

54 lines
1.3 KiB
PHP

<?php
/**
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\DataWizard\Application\Model\ExportRenderer;
use D3\DataWizard\Application\Model\Exceptions\NoSuitableRendererException;
class RendererBridge
{
const FORMAT_CSV = 'CSV';
const FORMAT_PRETTY = 'Pretty';
/**
* @return array
*/
public function getRendererList(): array
{
return [
self::FORMAT_CSV => oxNew(Csv::class),
self::FORMAT_PRETTY => oxNew(Pretty::class)
];
}
/**
* @param string $format
*
* @return RendererInterface
* @throws NoSuitableRendererException
*/
public function getRenderer(string $format = self::FORMAT_CSV): RendererInterface
{
$rendererList = $this->getRendererList();
if (in_array($format, array_keys($rendererList))) {
return $rendererList[$format];
}
/** @var NoSuitableRendererException $e */
$e = oxNew(NoSuitableRendererException::class, $format);
throw $e;
}
}