3 * A general city (simulation) system class
5 * @author Roland Haeder <webmaster@shipsimu.org>
7 * @copyright Copyright (c) 2015 City Developer Team
8 * @license GNU GPL 3.0 or any newer version
9 * @link http://www.shipsimu.org
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with this program. If not, see <http://www.gnu.org/licenses/>.
24 class BaseCitySystem extends BaseFrameworkSystem {
26 const EXCEPTION_UNSUPPORTED_ERROR_HANDLER = 0x900;
27 const EXCEPTION_BASE64_ENCODING_NOT_MODULO_4 = 0x901;
29 // Message status codes
30 const MESSAGE_STATUS_CODE_OKAY = 'OKAY';
33 * An instance of a city
35 private $cityInstance = NULL;
38 * An instance of a communicator
40 private $stateInstance = NULL;
43 * An instance of a communicator
45 private $communicatorInstance = NULL;
48 * Protected constructor
50 * @param $className Name of the class
53 protected function __construct ($className) {
54 // Call parent constructor
55 parent::__construct($className);
59 * Getter for city instance
61 * @return $cityInstance An instance of a city city
63 public final function getCityInstance () {
64 return $this->cityInstance;
68 * Setter for city instance
70 * @param $cityInstance An instance of a city city
73 protected final function setCityInstance (CityHelper $cityInstance) {
74 $this->cityInstance = $cityInstance;
78 * Getter for communicator instance
80 * @return $communicatorInstance An instance of a Communicator class
82 public final function getCommunicatorInstance () {
83 return $this->communicatorInstance;
87 * Setter for communicator instance
89 * @param $communicatorInstance An instance of a Communicator class
92 protected final function setCommunicatorInstance (Communicator $communicatorInstance) {
93 $this->communicatorInstance = $communicatorInstance;
97 * Setter for state instance
99 * @param $stateInstance A Stateable instance
102 public final function setStateInstance (Stateable $stateInstance) {
103 $this->stateInstance = $stateInstance;
107 * Getter for state instance
109 * @return $stateInstance A Stateable instance
111 public final function getStateInstance () {
112 return $this->stateInstance;
116 * "Getter" for a printable state name
118 * @return $stateName Name of the city's state in a printable format
120 public final function getPrintableState () {
124 // Get the state instance
125 $stateInstance = $this->getStateInstance();
127 // Is it an instance of Stateable?
128 if ($stateInstance instanceof Stateable) {
129 // Then use that state name
130 $stateName = $stateInstance->getStateName();