X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=application%2Fship-simu%2Fmain%2Fpersonell%2Fclass_SimulatorPersonell.php;fp=application%2Fship-simu%2Fmain%2Fpersonell%2Fclass_SimulatorPersonell.php;h=0000000000000000000000000000000000000000;hp=8ff01e74d4c4d875da0fa71c953e86e1ab63a239;hb=02a6b02f96d2193d2161e70477bf8f18a199389f;hpb=4f70843ae8428f051d70ccff5bb43fc4c03dda8d diff --git a/application/ship-simu/main/personell/class_SimulatorPersonell.php b/application/ship-simu/main/personell/class_SimulatorPersonell.php deleted file mode 100644 index 8ff01e7..0000000 --- a/application/ship-simu/main/personell/class_SimulatorPersonell.php +++ /dev/null @@ -1,327 +0,0 @@ - - * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Ship-Simu 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 . - */ -class SimulatorPersonell extends BasePersonell { - // Personell list - private $personellList = null; - - // A cache for lists - private $cacheList = null; - - // A string for cached conditions - private $cacheCond = null; - - /** - * Protected constructor - * - * @return void - */ - protected function __construct () { - // Call parent constructor - parent::__construct(__CLASS__); - } - - /** - * Magic wake-up method called when unserialize() is called. This is - * neccessary because in this case a personell does not need to know the - * min/max ages range and system classes. This would anyway use more RAM - * what is not required. - * - * @return void - */ - public function __wakeup () { - // Tidy up a little - $this->removePersonellList(); - $this->removeMinMaxAge(); - $this->removeCache(); - } - - /** - * Generate a specified amount of personell and return the prepared instance - * - * @param $amountPersonell Number of personell we shall - * generate - * @return $personellInstance An instance of this object with a - * list of personells - */ - public static final function createSimulatorPersonell ($amountPersonell) { - // Make sure only integer can pass - $amountPersonell = (int) $amountPersonell; - - // Get a new instance - $personellInstance = new SimulatorPersonell(); - - // Debug message - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $personellInstance->debugOutput(sprintf("[%s:%d] Es werden %d Personal bereitgestellt.", - __CLASS__, - __LINE__, - $amountPersonell - )); - - // Initialize the personell list - $personellInstance->createPersonellList(); - - // Create requested amount of personell - for ($idx = 0; $idx < $amountPersonell; $idx++) { - $personellInstance->addRandomPersonell(); - } - - // Debug message - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $personellInstance->debugOutput(sprintf("[%s:%d] %d Personal bereitgestellt.", - __CLASS__, - __LINE__, - $amountPersonell - )); - - // Tidy up a little - $personellInstance->removeGender(); - $personellInstance->removeNames(); - $personellInstance->removeBirthday(); - $personellInstance->removeSalary(); - $personellInstance->removeEmployed(); - $personellInstance->removeMarried(); - //$personellInstance->removeCache(); - - // Instanz zurueckgeben - return $personellInstance; - } - - /** - * Create a SimulatorPersonell object by loading the specified personell - * list from an existing database backend - * - * @param $idNumber The ID number (only right part) of the list - * @return $personellInstance An instance of this class - * @throws InvalidIDFormatException If the given id number - * $idNumber is invalid - * @throws MissingSimulatorIdException If an ID number was not found - * @deprecated - */ - public static final function createSimulatorPersonellByID ($idNumber) { - // Get instance - $personellInstance = new SimulatorPersonell(false); - $personellInstance->makeDeprecated(); - } - - // Create personell list - public function createPersonellList () { - // Is the list already created? - if ($this->personelllList instanceof FrameworkArrayObject) { - // Throw an exception - throw new PersonellListAlreadyCreatedException($this, self::EXCEPTION_DIMENSION_ARRAY_INVALID); - } // END - if - - // Initialize the array - $this->personellList = new FrameworkArrayObject("FakedPersonellList"); - } - - // Remove the personell list - private final function removePersonellList () { - unset($this->personellList); - } - - // Add new personell object to our list - public function addRandomPersonell () { - // Gender list... - $genders = array("M", "F"); - - // Create new personell members - $personellInstance = new SimulatorPersonell(); - - // Set a randomized gender - $personellInstance->setGender($genders[mt_rand(0, 1)]); - - // Set a randomized birthday (maximum age required, see const MAX_AGE) - $personellInstance->createBirthday(); - - // Married? Same values means: married - if (mt_rand(0, 5) == mt_rand(0, 5)) $personellInstance->setMarried(true); - - // Tidy up a little - $personellInstance->removePersonellList(); - $personellInstance->removeMinMaxAge(); - $personellInstance->removeCache(); - - // Add new member to the list - $this->personellList->append($personellInstance); - } - - /** - * Get a specifyable list of our people, null or empty string will be ignored! - * - * @return $cacheList A list of cached personells - */ - function getSpecialPersonellList ($isEmployed = null, $isMarried = null, $hasGender = "") { - // Serialize the conditions for checking if we can take the cache - $serialized = serialize(array($isEmployed, $isMarried, $hasGender)); - - // The same (last) conditions? - if (($serialized == $this->cacheCond) && (!is_null($this->cacheCond))) { - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Gecachte Liste wird verwendet.", - __CLASS__, - __LINE__ - )); - - // Return cached list - return $this->cacheList; - } - - // Output debug message - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Personalliste wird nach Kriterien durchsucht...", - __CLASS__, - __LINE__ - )); - - // Remember the conditions - $this->setCacheCond($serialized); - - // Create cached list - $this->setAllCacheList(new FrameworkArrayObject('FakedCacheList')); - - // Search all unemployed personells - for ($idx = $this->personellList->getIterator(); $idx->valid(); $idx->next()) { - // Element holen - $el = $idx->current(); - - // Check currenylt all single conditions (combined conditions are not yet supported) - if ((!is_null($isEmployed)) && ($el->isEmployed() == $isEmployed)) { - // Add this one (employed status asked) - $this->cacheList->append($el); - } elseif ((!is_null($isMarried)) && ($el->isMarried() == $isMarried)) { - // Add this one (marrital status asked) - $this->cacheList->append($el); - } elseif ((!empty($hasGender)) && ($el->getGender() == $hasGender)) { - // Add this one (specified gender) - $this->cacheList->append($el); - } - } - - // Return the completed list - return $this->cacheList; - } - - /** - * Get amount of unemployed personell - * - * @return $count Amount of unemployed personell - */ - public final function getAllUnemployed () { - // Get a temporary list - $list = $this->getSpecialPersonellList(false); - - // Anzahl zurueckliefern - return $list->count(); - } - - /** - * Remove cache things - * - * @return void - */ - private function removeCache () { - // Remove cache data - unset($this->cacheList); - unset($this->cacheCond); - } - - /** - * Setter for cache list - * - * @param $cacheList The new cache list to set or null for initialization/reset - * @return void - */ - private final function setAllCacheList (FrameworkArrayObject $cacheList = null) { - $this->cacheList = $cacheList; - } - - /** - * Setter for cache conditions - * - * @param $cacheCond The new cache conditions to set - * @return void - */ - private final function setCacheCond ($cacheCond) { - $this->cacheCond = (string) $cacheCond; - } - - /** - * Reset cache list - * - * @return void - */ - public function resetCache () { - $this->setAllCacheList(null); - $this->setCacheCond(""); - } - - /** - * Getter for surname. If no surname is set then default surnames are set - * for male and female personells. - * - * @return $surname The personell' surname - */ - public final function getSurname () { - $surname = parent::getSurname(); - - // Make sure every one has a surname... - if (empty($surname)) { - if ($this->isMale()) { - // Typical male name - $surname = "John"; - } else { - // Typical female name - $surname = "Jennifer"; - } - - // Set typical family name - parent::setFamily("Smith"); - } // END - if - - // Return surname - return $surname; - } - - /** - * Getter for personell list - * - * @return $personellList The list of all personells - */ - public final function getPersonellList () { - return $this->personellList; - } - - /** - * Loads the mostly pre-cached personell list - * - * @param $idNumber The ID number we shall use for looking up - * the right data. - * @return void - * @deprecated - */ - public function loadPersonellList ($idNumber) { - $this->makeDeprecated(); - } -} - -// [EOF] -?>