From: Roland Häder <roland@mxchange.org>
Date: Thu, 13 Mar 2008 14:53:16 +0000 (+0000)
Subject: New exception introduced, minor parts rewritten
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=d08ad4fd8098ff750f5d849f6031588b2fd99b27;p=shipsimu.git

New exception introduced, minor parts rewritten
---

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 @@
+<?php
+/**
+ * An exception thrown when the template engine instance is not supported
+ *
+ * @author		Roland Haeder <webmaster@mxchange.org>
+ * @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 <http://www.gnu.org/licenses/>.
+ */
+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&uuml;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