diff options
author | diosmosis <benakamoorthi@fastmail.fm> | 2014-08-20 12:13:04 +0400 |
---|---|---|
committer | diosmosis <benakamoorthi@fastmail.fm> | 2014-08-20 12:21:07 +0400 |
commit | 34904e642034d10b728b429dcb213344a0157e74 (patch) | |
tree | ec2b732fe86e4720c328b13bc75e3d54949edc7c /core/ReportRenderer.php | |
parent | ca0bdf191bf1ab85525169242cbfef754855dfec (diff) |
Refactor factory methods into base Factory type for ease of testing.
Diffstat (limited to 'core/ReportRenderer.php')
-rw-r--r-- | core/ReportRenderer.php | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/core/ReportRenderer.php b/core/ReportRenderer.php index 3367491428..e6ccc530ed 100644 --- a/core/ReportRenderer.php +++ b/core/ReportRenderer.php @@ -14,12 +14,13 @@ use Piwik\DataTable\Row; use Piwik\DataTable\Simple; use Piwik\DataTable; use Piwik\Plugins\ImageGraph\API; +use Piwik\Factory; /** * A Report Renderer produces user friendly renderings of any given Piwik report. * All new Renderers must be copied in ReportRenderer and added to the $availableReportRenderers. */ -abstract class ReportRenderer +abstract class ReportRenderer extends Factory { const DEFAULT_REPORT_FONT = 'dejavusans'; const REPORT_TEXT_COLOR = "68,68,68"; @@ -39,30 +40,22 @@ abstract class ReportRenderer self::CSV_FORMAT, ); - /** - * Return the ReportRenderer associated to the renderer type $rendererType - * - * @throws exception If the renderer is unknown - * @param string $rendererType - * @return \Piwik\ReportRenderer - */ - public static function factory($rendererType) + protected static function getClassNameFromClassId($rendererType) { - $name = ucfirst(strtolower($rendererType)); - $className = 'Piwik\ReportRenderer\\' . $name; - - if (!class_exists($className)) { - @header('Content-Type: text/html; charset=utf-8'); + return 'Piwik\ReportRenderer\\' . self::normalizeRendererType($rendererType); + } - throw new Exception( - Piwik::translate( - 'General_ExceptionInvalidReportRendererFormat', - array($name, implode(', ', self::$availableReportRenderers)) - ) - ); - } + protected static function getInvalidClassIdExceptionMessage($rendererType) + { + return Piwik::translate( + 'General_ExceptionInvalidReportRendererFormat', + array(self::normalizeRendererType($rendererType), implode(', ', self::$availableReportRenderers)) + ); + } - return new $className; + protected static function normalizeRendererType($rendererType) + { + return ucfirst(strtolower($rendererType)); } /** |