* @version 0.0.0 * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2023 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.shipsimu.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 . */ abstract class BaseApplication extends BaseFrameworkSystem { /** * 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 = ''; /** * Own singleton instance of this application helper */ private static $applicationInstance = NULL; /** * A controller instance */ private $controllerInstance = NULL; /** * Protected constructor * * @param $className Name of the class * @return void */ protected function __construct (string $className) { // Call parent constructor parent::__construct($className); } /** * Getter for own instance * * @return $applicationInstance An instance of a ManageableApplication class */ public static final function getApplicationInstance () { return self::$applicationInstance; } /** * Setter for own instance * * @param $applicationInstance An instance of a ManageableApplication class */ public static final function setApplicationInstance (ManageableApplication $applicationInstance) { self::$applicationInstance = $applicationInstance; } /** * 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; } /** * 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 (string $appVersion) { // Cast and set it $this->appVersion = $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 (string $appName) { // Cast and set it $this->appName = $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 (string $shortName) { // Cast and set it $this->shortName = $shortName; } }