* @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 BaseResolver extends BaseFrameworkSystem {
/**
* Validated command name
*/
private $commandName = "";
/**
* Prefix for local, remote or other resolver
*/
private $commandPrefix = "";
/**
* A controller instance
*/
private $controllerInstance = null;
/**
* Protected constructor
*
* @return void
*/
protected function __construct ($class) {
// Call parent constructor
parent::__construct($class);
// Clean up a little
$this->removeNumberFormaters();
$this->removeSystemArray();
}
/**
* Setter for controller instance (this surely breaks a bit the MVC patterm)
*
* @param $controllerInstance An instance of the controller
* @return void
*/
public final function setControllerInstance (Controller $controllerInstance) {
$this->controllerInstance = $controllerInstance;
}
/**
* Getter for controller instance (this surely breaks a bit the MVC patterm)
*
* @return $controllerInstance An instance of the controller
*/
public final function getControllerInstance () {
return $this->controllerInstance;
}
/**
* Setter for command name
*
* @param $commandName Last validated command name
* @return void
*/
protected final function setCommandName ($commandName) {
$this->commandName = $commandName;
}
/**
* Getter for command name
*
* @return $commandName Last validated command name
*/
protected final function getCommandName () {
return $this->commandName;
}
/**
* Setter for command prefix
*
* @param $commandPrefix Last validated commandPrefix
* @return void
*/
protected final function setCommandPrefix ($commandPrefix) {
$this->commandPrefix = $commandPrefix;
}
/**
* Checks wether the given command is valid
*
* @param $commandName The default command we shall execute
* @return $isValid Wether the given command is valid
* @throws EmptyVariableException Thrown if the given command is not set
*/
public function isCommandValid ($commandName) {
// By default nothing shall be valid
$isValid = false;
// Is a command set?
if (empty($commandName)) {
// Then thrown an exception here
throw new EmptyVariableException(array($this, 'commandName'), self::EXCEPTION_UNEXPECTED_EMPTY_STRING);
}
// Now, let us create the full name of the command class
$class = sprintf("%s%sCommand",
$this->commandPrefix,
$this->convertToClassName($commandName)
);
// Is this class already loaded?
if (class_exists($class)) {
// This class does exist. :-)
$isValid = true;
}
// Debug output
//echo "----- ".__METHOD__." -----
\n";
//print($class."
");
//debug_print_backtrace();
//var_dump($isValid);
//print("
");
// Set command name
$this->setCommandName($commandName);
// Return the result
return $isValid;
}
}
// [EOF]
?>