X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=application%2Fship-simu%2Fmain%2Fpersonell%2Fclass_SimulatorPersonell.php;h=8ff01e74d4c4d875da0fa71c953e86e1ab63a239;hp=d5aa01e4c26329227d7df4d3b5485370b92b0191;hb=4f70843ae8428f051d70ccff5bb43fc4c03dda8d;hpb=1d128d8532290e84885d09d2d3f0060abd08e49e diff --git a/application/ship-simu/main/personell/class_SimulatorPersonell.php b/application/ship-simu/main/personell/class_SimulatorPersonell.php index d5aa01e..8ff01e7 100644 --- a/application/ship-simu/main/personell/class_SimulatorPersonell.php +++ b/application/ship-simu/main/personell/class_SimulatorPersonell.php @@ -2,11 +2,11 @@ /** * The general simulator personell class * - * @author Roland Haeder + * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Ship-Simu Developer Team * @license GNU GPL 3.0 or any newer version - * @link http://www.ship-simu.org + * @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 @@ -39,19 +39,6 @@ class SimulatorPersonell extends BasePersonell { protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); - - if (((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) && (defined('DEBUG_CONSTRUCT'))) $this->getDebugInstance()->output(sprintf("[%s:] Konstruktor erreicht.
\n", - $this->__toString() - )); - - // Set description - $this->setObjectDescription("Simulationspersonal"); - - // Create unique ID - $this->createUniqueID(); - - // Clean-up a little - $this->removeSystemArray(); } /** @@ -67,7 +54,6 @@ class SimulatorPersonell extends BasePersonell { $this->removePersonellList(); $this->removeMinMaxAge(); $this->removeCache(); - $this->removeSystemArray(); } /** @@ -78,7 +64,7 @@ class SimulatorPersonell extends BasePersonell { * @return $personellInstance An instance of this object with a * list of personells */ - public final static function createSimulatorPersonell ($amountPersonell) { + public static final function createSimulatorPersonell ($amountPersonell) { // Make sure only integer can pass $amountPersonell = (int) $amountPersonell; @@ -86,7 +72,7 @@ class SimulatorPersonell extends BasePersonell { $personellInstance = new SimulatorPersonell(); // Debug message - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $personellInstance->getDebugInstance()->output(sprintf("[%s:%d] Es werden %d Personal bereitgestellt.
\n", + if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $personellInstance->debugOutput(sprintf("[%s:%d] Es werden %d Personal bereitgestellt.", __CLASS__, __LINE__, $amountPersonell @@ -101,7 +87,7 @@ class SimulatorPersonell extends BasePersonell { } // Debug message - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $personellInstance->getDebugInstance()->output(sprintf("[%s:%d] %d Personal bereitgestellt.
\n", + if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $personellInstance->debugOutput(sprintf("[%s:%d] %d Personal bereitgestellt.", __CLASS__, __LINE__, $amountPersonell @@ -114,9 +100,7 @@ class SimulatorPersonell extends BasePersonell { $personellInstance->removeSalary(); $personellInstance->removeEmployed(); $personellInstance->removeMarried(); - $personellInstance->removeNumberFormaters(); //$personellInstance->removeCache(); - $personellInstance->removeSystemArray(); // Instanz zurueckgeben return $personellInstance; @@ -126,101 +110,40 @@ class SimulatorPersonell extends BasePersonell { * 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 - * @throws InvalidIDFormatException If the given id number - * $idNumber is invalid - * @throws NullPointerException If a null pointer (instance) - * has been returned. - * @throws NoObjectException If a non-object has been - * returned - * @throws MissingMethodException If a required method is missing - * @throws MissingSimulatorIDException If an ID number was not found + * @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 final static function createSimulatorPersonellByID ($idNumber) { - // Add the class name if it was not found - if (count(explode("@", $idNumber)) < 2) { - // Add class name in front of the incomplete ID number - $tempID = sprintf("%s@%s", __CLASS__, $idNumber); - } else { - // Use the direct ID number - $tempID = $idNumber; - } - - // Validate the ID number - if (!preg_match(sprintf("/%s\@([a-f0-9]){32}/i", __CLASS__), $tempID)) { - // Invalid format - throw new InvalidIDFormatException(new SimulatorPersonell(), self::EXCEPTION_ID_IS_INVALID_FORMAT); - } - + public static final function createSimulatorPersonellByID ($idNumber) { // Get instance $personellInstance = new SimulatorPersonell(false); - - // Get database instance - $dbInstance = $personellInstance->getDatabaseInstance(); - - // Is this a valid database instance? - if (is_null($dbInstance)) { - // No class returned - throw new NullPointerException($personellInstance, self::EXCEPTION_IS_NULL_POINTER); - } elseif (!is_object($dbInstance)) { - // Not an object! ;-( - throw new NoObjectException($dbInstance, self::EXCEPTION_IS_NO_OBJECT); - } elseif (!method_exists($dbInstance, 'isUniqueIdUsed')) { - // Required method not found - throw new MissingMethodException(array($dbInstance, 'isUniqueIdUsed'), self::EXCEPTION_MISSING_METHOD); - } - - // Is the unique ID already used? Then it must be there! - if (!$dbInstance->isUniqueIdUsed($tempID)) { - // Entry not found! - throw new MissingSimulatorIDException(array($personellInstance, $idNumber), self::EXCEPTION_SIMULATOR_ID_INVALID); - } - - // Load the personell list and add it to this object - $personellInstance->loadPersonellList($tempID); - - // Clean-up a little - $personellInstance->removeGender(); - $personellInstance->removeNames(); - $personellInstance->removeBirthday(); - $personellInstance->removeSalary(); - $personellInstance->removeEmployed(); - $personellInstance->removeMarried(); - $personellInstance->removeNumberFormaters(); - //$personellInstance->removeCache(); - $personellInstance->removeSystemArray(); - - // Return instance - return $personellInstance; + $personellInstance->makeDeprecated(); } // Create personell list public function createPersonellList () { - if (is_null($this->personellList)) { - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Personell-Liste erstellt.
\n", - __CLASS__, - __LINE__ - )); - $this->personellList = new FrameworkArrayObject(); - } else { + // 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 function removePersonellList () { - if (defined('DEBUG_PERSONELL')) $this->getDebugInstance()->output(sprintf("[%s:%d] Personell-Liste entfernt.
\n", - __CLASS__, - __LINE__ - )); + private final function removePersonellList () { unset($this->personellList); } // Add new personell object to our list public function addRandomPersonell () { // Gender list... - $genders = array('M', 'F'); + $genders = array("M", "F"); // Create new personell members $personellInstance = new SimulatorPersonell(); @@ -238,7 +161,6 @@ class SimulatorPersonell extends BasePersonell { $personellInstance->removePersonellList(); $personellInstance->removeMinMaxAge(); $personellInstance->removeCache(); - $personellInstance->removeSystemArray(); // Add new member to the list $this->personellList->append($personellInstance); @@ -255,7 +177,7 @@ class SimulatorPersonell extends BasePersonell { // The same (last) conditions? if (($serialized == $this->cacheCond) && (!is_null($this->cacheCond))) { - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Gecachte Liste wird verwendet.
\n", + if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Gecachte Liste wird verwendet.", __CLASS__, __LINE__ )); @@ -265,7 +187,7 @@ class SimulatorPersonell extends BasePersonell { } // Output debug message - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Personalliste wird nach Kriterien durchsucht...
\n", + if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Personalliste wird nach Kriterien durchsucht...", __CLASS__, __LINE__ )); @@ -274,7 +196,7 @@ class SimulatorPersonell extends BasePersonell { $this->setCacheCond($serialized); // Create cached list - $this->setAllCacheList(new FrameworkArrayObject()); + $this->setAllCacheList(new FrameworkArrayObject('FakedCacheList')); // Search all unemployed personells for ($idx = $this->personellList->getIterator(); $idx->valid(); $idx->next()) { @@ -304,11 +226,6 @@ class SimulatorPersonell extends BasePersonell { * @return $count Amount of unemployed personell */ public final function getAllUnemployed () { - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Es werden alle erwerbslosen Personen gesucht.
\n", - __CLASS__, - __LINE__ - )); - // Get a temporary list $list = $this->getSpecialPersonellList(false); @@ -322,11 +239,6 @@ class SimulatorPersonell extends BasePersonell { * @return void */ private function removeCache () { - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Cache-Attribute entfernt.
\n", - __CLASS__, - __LINE__ - )); - // Remove cache data unset($this->cacheList); unset($this->cacheCond); @@ -358,10 +270,6 @@ class SimulatorPersonell extends BasePersonell { * @return void */ public function resetCache () { - if ((defined('DEBUG_PERSONELL')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Cache-Liste zurückgesetzt.
\n", - __CLASS__, - __LINE__ - )); $this->setAllCacheList(null); $this->setCacheCond(""); } @@ -370,10 +278,11 @@ class SimulatorPersonell extends BasePersonell { * Getter for surname. If no surname is set then default surnames are set * for male and female personells. * - * @return $surname The personell' surname + * @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()) { @@ -386,27 +295,10 @@ class SimulatorPersonell extends BasePersonell { // Set typical family name parent::setFamily("Smith"); - } - return $surname; - } + } // END - if - /** - * Saves only the personell list to the database - * - * @return void - */ - public function saveObjectToDatabase () { - // Get the database - $dbInstance = $this->getDatabaseInstance(); - - // Prepare the limitation object. We just need the personellList array object. - $limitInstance = ObjectLimits::createObjectLimits(array("personellList")); - - // Limitate the saving amount - $dbInstance->limitObject($limitInstance); - - // Save this object - $dbInstance->saveObject($this); + // Return surname + return $surname; } /** @@ -421,62 +313,13 @@ class SimulatorPersonell extends BasePersonell { /** * Loads the mostly pre-cached personell list * - * @param $idNumber The ID number we shall use for looking up + * @param $idNumber The ID number we shall use for looking up * the right data. * @return void - * @throws ContainerItemIsNullException If a container item is null - * @throws ContainerItemIsNoArrayException If a container item is - * not an array - * @throws ContainerMaybeDamagedException If the container item - * is missing the indexes - * 'name' and/or 'value' - * @see SerializationContainer A special container class which - * helps storing only some attributes - * of a class. + * @deprecated */ public function loadPersonellList ($idNumber) { - // Get database instance - $dbInstance = $this->getDatabaseInstance(); - - // Get the serialization container within the personell list from - // the database layer - $containerInstance = $dbInstance->getObjectFromCachedData($idNumber); - - // Iterate through the whole container - for ($idx = $containerInstance->getIterator(); $idx->valid(); $idx->next()) { - // Get current item from container - $item = $idx->current(); - - // Validate it a bit - if (is_null($item)) { - // Is null - throw new ContainerItemIsNullException($this, self::EXCEPTION_CONTAINER_ITEM_IS_NULL); - } elseif (!is_array($item)) { - // Is not an array - throw new ContainerItemIsNoArrayException($this, self::EXCEPTION_ITEM_IS_NO_ARRAY); - } elseif ((!isset($item['name'])) || (!isset($item['value']))) { - // Missing elements - throw new ContainerMaybeDamagedException($this, self::EXCEPTION_CONTAINER_MAYBE_DAMAGED); - } - - // Okay, now we can get the item and generate a valid command for eval(). - // We need to convert the first letter to lower-case but keep all others intact - $eval = sprintf("\$this->%s = \$item['value'];", - strtolower(substr($item['name'], 0, 1)) - . - substr($item['name'], 1) - ); - - // Debug message - if ((defined('DEBUG_EVAL')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Konstruierte PHP-Anweisung:
%s

\n", - __CLASS__, - __LINE__, - htmlentities($eval) - )); - - // Run the command - @eval($eval); - } + $this->makeDeprecated(); } }