Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordiosmosis <benakamoorthi@fastmail.fm>2014-08-20 12:13:04 +0400
committerdiosmosis <benakamoorthi@fastmail.fm>2014-08-20 12:21:07 +0400
commit34904e642034d10b728b429dcb213344a0157e74 (patch)
treeec2b732fe86e4720c328b13bc75e3d54949edc7c /core/ReportRenderer.php
parentca0bdf191bf1ab85525169242cbfef754855dfec (diff)
Refactor factory methods into base Factory type for ease of testing.
Diffstat (limited to 'core/ReportRenderer.php')
-rw-r--r--core/ReportRenderer.php37
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));
}
/**