X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fresolver%2Fcommand%2Fclass_WebCommandResolver.php;fp=inc%2Fclasses%2Fmain%2Fresolver%2Fcommand%2Fclass_WebCommandResolver.php;h=0000000000000000000000000000000000000000;hb=19f2e5dc9d22554b7cdd7d85b111984f8bcd3c91;hp=ba0eb1563553ebd36c028a82c24a7c8d11930f3a;hpb=25c3c49665cd853fd9618426004f1f2a278e20aa;p=shipsimu.git diff --git a/inc/classes/main/resolver/command/class_WebCommandResolver.php b/inc/classes/main/resolver/command/class_WebCommandResolver.php deleted file mode 100644 index ba0eb15..0000000 --- a/inc/classes/main/resolver/command/class_WebCommandResolver.php +++ /dev/null @@ -1,190 +0,0 @@ - - * @version 0.0.0 - * @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 - * - * 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 WebCommandResolver extends BaseResolver implements CommandResolver { - /** - * Last successfull resolved command - */ - private $lastCommandInstance = ""; - - /** - * Protected constructor - * - * @return void - */ - protected function __construct () { - // Call parent constructor - parent::__construct(__CLASS__); - - // Set part description - $this->setObjectDescription("Resolver for local web commands"); - - // Create unique ID number - $this->generateUniqueId(); - - // Set prefix to "Web" - $this->setCommandPrefix("Web"); - } - - /** - * Creates an instance of a Web command resolver with a given default command - * - * @param $commandName The default command we shall execute - * @param $appInstance An instance of a manageable application helper class - * @return $resolverInstance The prepared command resolver instance - * @throws EmptyVariableException Thrown if the default command is not set - * @throws InvalidCommandException Thrown if the default command is invalid - */ - public final static function createWebCommandResolver ($commandName, ManageableApplication $appInstance) { - // Create the new instance - $resolverInstance = new WebCommandResolver(); - - // Is the variable $commandName set and the command is valid? - if (empty($commandName)) { - // Then thrown an exception here - throw new EmptyVariableException(array($resolverInstance, 'defaultCommand'), self::EXCEPTION_UNEXPECTED_EMPTY_STRING); - } elseif (!$resolverInstance->isCommandValid($commandName)) { - // Invalid command found - throw new InvalidCommandException(array($resolverInstance, $commandName), self::EXCEPTION_INVALID_COMMAND); - } - - // Set the application instance - $resolverInstance->setApplicationInstance($appInstance); - - // Return the prepared instance - return $resolverInstance; - } - - /** - * Returns an command instance for a given request class or null if - * it was not found - * - * @param $requestInstance An instance of a request class - * @return $commandInstance An instance of the resolved command - * @throws InvalidCommandException Thrown if $commandName is - * invalid - * @throws InvalidCommandInstanceException Thrown if $commandInstance - * is an invalid instance - */ - public function resolvCommandByRequest (Requestable $requestInstance) { - // Init variables - $commandName = ""; - $commandInstance = null; - - // This goes fine so let's resolv the command - $commandName = $requestInstance->getRequestElement("page"); - - // Is the command empty? Then fall back to default command - if (empty($commandName)) $commandName = $this->getConfigInstance()->readConfig('default_command'); - - // Check if the command is valid - if (!$this->isCommandValid($commandName)) { - // This command is invalid! - throw new InvalidCommandException(array($this, $commandName), self::EXCEPTION_INVALID_COMMAND); - } // END - if - - // Get the command - $commandInstance = $this->loadCommand($commandName); - - // And validate it - if ((!is_object($commandInstance)) || (!$commandInstance instanceof Commandable)) { - // This command has an invalid instance! - throw new InvalidCommandInstanceException(array($this, $commandName), self::EXCEPTION_INVALID_COMMAND); - } // END - if - - // Set last command - $this->lastCommandInstance = $commandInstance; - - // Return the resolved command instance - return $commandInstance; - } - - /** - * Resolves the command by its direct name and returns an instance of its class - * - * @param $commandName The direct command name we shall resolve - * @return $commandInstance An instance of the command class - * @throws InvalidCommandException Thrown if $commandName is invalid - */ - public function resolveCommand ($commandName) { - // Initiate the instance variable - $commandInstance = null; - - // Is the command empty? Then fall back to default command - if (empty($commandName)) $commandName = $this->getConfigInstance()->readConfig('default_command'); - - // Check if the command is valid - if (!$this->isCommandValid($commandName)) { - // This command is invalid! - throw new InvalidCommandException(array($this, $commandName), self::EXCEPTION_INVALID_COMMAND); - } - - // Get the command - $commandInstance = $this->loadCommand($commandName); - - // Return the instance - return $commandInstance; - } - - /** - * "Loads" a given command and instances it if not yet cached - * - * @param $commandName A command name we shall look for - * @return $commandInstance A loaded command instance - * @throws InvalidCommandException Thrown if even the default - * command class is missing (bad!) - */ - private function loadCommand ($commandName) { - // Cache default command - $defaultCommand = $this->getConfigInstance()->readConfig('default_command'); - - // Init command instance - $commandInstance = null; - - // Create command class name - $className = sprintf("Web%sCommand", - $this->convertToClassName($commandName) - ); - - // Is this class loaded? - if (!class_exists($className)) { - // Class not found, so try the default one or throw exception - if ($commandName != $defaultCommand) { - // Try the default command - return $this->loadCommand($defaultCommand); - } else { - // Still not found? - throw new InvalidCommandException(array($this, $defaultCommand), self::EXCEPTION_INVALID_COMMAND); - } - } // END - if - - // Initiate the command - $commandInstance = ObjectFactory::createObjectByName($className, array($this)); - - // Return the result - return $commandInstance; - } -} - -// [EOF] -?>