diff --git a/Application/Model/ExportRenderer/RendererBridge.php b/Application/Model/ExportRenderer/RendererBridge.php index 0ec8795..b3533f3 100644 --- a/Application/Model/ExportRenderer/RendererBridge.php +++ b/Application/Model/ExportRenderer/RendererBridge.php @@ -22,19 +22,29 @@ 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 * - * @throws NoSuitableRendererException * @return RendererInterface + * @throws NoSuitableRendererException */ - public function getRenderer($format = self::FORMAT_CSV): RendererInterface + public function getRenderer(string $format = self::FORMAT_CSV): RendererInterface { - switch ($format) { - case self::FORMAT_CSV: - return oxNew(Csv::class); - case self::FORMAT_PRETTY: - return oxNew(Pretty::class); + $rendererList = $this->getRendererList(); + + if (in_array($format, array_keys($rendererList))) { + return $rendererList[$format]; } /** @var NoSuitableRendererException $e */