From d08ad4fd8098ff750f5d849f6031588b2fd99b27 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Thu, 13 Mar 2008 14:53:16 +0000 Subject: [PATCH] New exception introduced, minor parts rewritten --- .gitattributes | 1 + .../selector/class_ApplicationSelector.php | 12 ++--- ...ass_UnsupportedTemplateEngineException.php | 44 +++++++++++++++++++ .../main/class_BaseFrameworkSystem.php | 1 + 4 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 inc/classes/exceptions/template/class_UnsupportedTemplateEngineException.php diff --git a/.gitattributes b/.gitattributes index 0a233de..62b3c52 100644 --- a/.gitattributes +++ b/.gitattributes @@ -180,6 +180,7 @@ inc/classes/exceptions/template/class_BasePathReadProtectedException.php -text inc/classes/exceptions/template/class_InvalidBasePathStringException.php -text inc/classes/exceptions/template/class_InvalidTemplateVariableNameException.php -text inc/classes/exceptions/template/class_UnexpectedTemplateTypeException.php -text +inc/classes/exceptions/template/class_UnsupportedTemplateEngineException.php -text inc/classes/interfaces/.htaccess -text inc/classes/interfaces/application/.htaccess -text inc/classes/interfaces/application/class_ManageableApplication.php -text diff --git a/application/selector/class_ApplicationSelector.php b/application/selector/class_ApplicationSelector.php index d95af7f..bf49db4 100644 --- a/application/selector/class_ApplicationSelector.php +++ b/application/selector/class_ApplicationSelector.php @@ -150,9 +150,8 @@ class ApplicationSelector extends BaseFrameworkSystem { * @return $tplEngine The template engine instance * @throws NullPointerException If the template engine could not * be initialized - * @throws NoObjectException If $tplEngine is not an object - * @throws MissingMethodException If $tplEngine misses a required - * method 'loadWebTemplate()' + * @throws UnsupportedTemplateEngineException If $tplEngine is an + * unsupported template engine */ private function prepareTemplateEngine (BaseFrameworkSystem $appInstance) { // Generate FQFN for all application templates @@ -190,12 +189,9 @@ class ApplicationSelector extends BaseFrameworkSystem { if (is_null($tplEngine)) { // No class returned throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); - } elseif (!is_object($tplEngine)) { + } elseif (!$tplEngine instanceof CompileableTemplate) { // Not an object! ;-( - throw new NoObjectException($tplEngine, self::EXCEPTION_IS_NO_OBJECT); - } elseif (!method_exists($tplEngine, 'loadWebTemplate')) { - // Nope, so throw exception - throw new MissingMethodException(array($tplEngine, 'loadWebTemplate'), self::EXCEPTION_MISSING_METHOD); + throw new UnsupportedTemplateEngineException($tplEngine, self::EXCEPTION_TEMPLATE_ENGINE_UNSUPPORTED); } // Return the prepared instance diff --git a/inc/classes/exceptions/template/class_UnsupportedTemplateEngineException.php b/inc/classes/exceptions/template/class_UnsupportedTemplateEngineException.php new file mode 100644 index 0000000..9a8560a --- /dev/null +++ b/inc/classes/exceptions/template/class_UnsupportedTemplateEngineException.php @@ -0,0 +1,44 @@ + + * @version 0.3.0 + * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.mxchange.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class UnsupportedTemplateEngineException extends FrameworkException { + /** + * The constructor + * + * @param $class An array holding our informations + * @param $code Code number for the exception + * @return void + */ + public function __construct (BaseFrameworkSystem $class, $code) { + // Add a message around the missing class + $message = sprintf("Template-Engine %s wird nicht unterstützt.", + $class->__toString() + ); + + // Call parent constructor + parent::__construct($message, $code); + } +} + +// [EOF] +?> diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php index c1147db..2ffe0b2 100644 --- a/inc/classes/main/class_BaseFrameworkSystem.php +++ b/inc/classes/main/class_BaseFrameworkSystem.php @@ -126,6 +126,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { const EXCEPTION_VARIABLE_NOT_SET = 0x02a; const EXCEPTION_ATTRIBUTES_ARE_MISSING = 0x02b; const EXCEPTION_ARRAY_ELEMENTS_MISSING = 0x02c; + const EXCEPTION_TEMPLATE_ENGINE_UNSUPPORTED = 0x02d; /** * In the super constructor these system classes shall be ignored or else -- 2.39.5