* @version 0.0 * @copyright Copyright(c) 2007 - 2009 Roland Haeder, this is free software * @license GNU GPL 3.0 or any newer version * * 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 ApplicationHelper extends BaseFrameworkSystem implements ManageableApplication { /** * The version number of this application */ private $appVersion = ""; /** * The human-readable name for this application */ private $appName = ""; /** * The short uni*-like name for this application */ private $shortName = ""; /** * An instance of this class */ private static $thisInstance = null; /** * Private constructor * * @return void */ protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); // Tidy up a little $this->removeSystemArray(); $this->removeNumberFormaters(); } /** * Getter for an instance of this class * * @return $thisInstance An instance of this class */ public final static function getInstance () { // Is the instance there? if (is_null(self::$thisInstance)) { self::$thisInstance = new ApplicationHelper(); } // Return the instance return self::$thisInstance; } /** * Getter for the version number * * @return $appVersion The application's version number */ public final function getAppVersion () { return $this->appVersion; } /** * Setter for the version number * * @param $appVersion The application's version number * @return void */ public final function setAppVersion ($appVersion) { // Cast and set it $this->appVersion = (string) $appVersion; } /** * Getter for human-readable name * * @return $appName The application's human-readable name */ public final function getAppName () { return $this->appName; } /** * Setter for human-readable name * * @param $appName The application's human-readable name * @return void */ public final function setAppName ($appName) { // Cast and set it $this->appName = (string) $appName;; } /** * Getter for short uni*-like name * * @return $shortName The application's short uni*-like name */ public final function getAppShortName () { return $this->shortName; } /** * Setter for short uni*-like name * * @param $shortName The application's short uni*-like name * @return void */ public final function setAppShortName ($shortName) { // Cast and set it $this->shortName = (string) $shortName; } /** * Launches the hub system * * @return void */ public final function entryPoint () { // --------------------- Init phase --------------------- // The default node-mode is from our configuration $nodeMode = $this->getConfigInstance()->readConfig('node_mode'); // Prepare a ConsoleRequest class to catch all parameters $requestInstance = ObjectFactory::createObjectByName('ConsoleRequest'); // Is the node 'mode' parameter set? if ($requestInstance->isRequestElementSet('mode')) { // Then use this which overrides the config entry temporarily $nodeMode = $requestInstance->getRequestElement('mode'); } else { // Set it for easier re-usage $requestInstance->setRequestElement('mode', $nodeMode); } // Now convert the node-mode in a class name $className = 'Hub' . $this->convertToClassName($nodeMode) . 'Node'; // And try to instance it $nodeInstance = ObjectFactory::createObjectByName($className); // --------------------- Hub-id aquirement phase --------------------- // Aquire a hub-id. This step generates on first launch anew one and // on any later launches it will restore the hub-id from the database. // A passed 'nickname=xxx' argument will be used to add some // 'personality' to the hub. $nodeInstance->aquireHubId($requestInstance); // --------------------- Bootstrapping phase --------------------- // Try to bootstrap the node and pass the request instance to it for // extra arguments which mostly override config entries $nodeInstance->doBootstrapping($requestInstance); } /** * Handle the indexed array of fatal messages and puts them out in an * acceptable fasion * * @param $messageList An array of fatal messages * @return void */ public function handleFatalMessages (array $messageList) { // Walk through all messages foreach ($messageList as $message) { die("MSG:".$message); } } /** * Builds the master template's name * * @return $masterTemplateName Name of the master template */ public function buildMasterTemplateName () { return "node_main"; } } // [EOF] ?>