]> git.mxchange.org Git - shipsimu.git/commitdiff
New exception introduced, minor parts rewritten
authorRoland Häder <roland@mxchange.org>
Thu, 13 Mar 2008 14:53:16 +0000 (14:53 +0000)
committerRoland Häder <roland@mxchange.org>
Thu, 13 Mar 2008 14:53:16 +0000 (14:53 +0000)
.gitattributes
application/selector/class_ApplicationSelector.php
inc/classes/exceptions/template/class_UnsupportedTemplateEngineException.php [new file with mode: 0644]
inc/classes/main/class_BaseFrameworkSystem.php

index 0a233de7701228153074650227d185b839763b14..62b3c5278ba6a07986943c993051c8a4427f64c1 100644 (file)
@@ -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
index d95af7fe490f1601cb89e14db4fae8a86d4be4c0..bf49db4ff188c08ffed2d8a546a19e2726692804 100644 (file)
@@ -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 (file)
index 0000000..9a8560a
--- /dev/null
@@ -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]
+?>
index c1147db38a6ac403db7194c21d7b87b59763e6c3..2ffe0b25eb449fb6298cfca7e344822751dd388f 100644 (file)
@@ -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