]> git.mxchange.org Git - shipsimu.git/blobdiff - inc/classes/main/resolver/action/class_BaseActionResolver.php
A performed action now always requires an action class
[shipsimu.git] / inc / classes / main / resolver / action / class_BaseActionResolver.php
index 2de5ec712bbf3a49eb66f900b2ede84645335e67..250fa014044db78476de073e4152888d7695d556 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @author             Roland Haeder <webmaster@ship-simu.org>
  * @version            0.0.0
- * @copyright  Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, this is free software
  * @license            GNU GPL 3.0 or any newer version
  * @link               http://www.ship-simu.org
  *
@@ -35,6 +35,7 @@ class BaseActionResolver extends BaseResolver {
        /**
         * Protected constructor
         *
+        * @param       $className      Name of the class
         * @return      void
         */
        protected function __construct ($className) {
@@ -59,7 +60,7 @@ class BaseActionResolver extends BaseResolver {
         * @return      void
         */
        protected final function setActionName ($actionName) {
-               $this->actionName = $actionName;
+               $this->actionName = (string) $actionName;
        }
 
        /**
@@ -67,7 +68,7 @@ class BaseActionResolver extends BaseResolver {
         *
         * @return      $actionName     Last validated action name
         */
-       protected final function getActionName () {
+       public final function getActionName () {
                return $this->actionName;
        }
 
@@ -89,20 +90,17 @@ class BaseActionResolver extends BaseResolver {
                } // END - if
 
                // Now, let us create the full name of the action class
-               $className = sprintf("%s%sAction",
+               $this->setClassName(sprintf("%s%sAction",
                        $this->actionPrefix,
                        $this->convertToClassName($actionName)
-               );
+               ));
 
                // Is this class already loaded?
-               if (class_exists($className)) {
+               if (class_exists($this->getClassName())) {
                        // This class does exist. :-)
                        $isValid = true;
                } // END - if
 
-               // Debug output
-               //* DEBUG: */ $this->debugBacktrace();
-
                // Set action name
                $this->setActionName($actionName);
 
@@ -114,20 +112,18 @@ class BaseActionResolver extends BaseResolver {
         * "Loads" current action and instances it if not yet cached
         *
         * @return      $actionInstance                 A loaded action instance
-        * @throws      InvalidActionException  Thrown if even the default
-        *                                                                      action class is missing (bad!)
         */
        protected function loadAction () {
                // Init action instance
                $actionInstance = null;
 
                // Create action class name
-               $className = sprintf("Web%sAction",
+               $this->setClassName(sprintf("Web%sAction",
                        $this->convertToClassName($this->getActionName())
-               );
+               ));
 
                // Initiate the action
-               $actionInstance = ObjectFactory::createObjectByName($className, array($this));
+               $actionInstance = ObjectFactory::createObjectByName($this->getClassName(), array($this));
 
                // Return the result
                return $actionInstance;