X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Ffactories%2Fclass_BaseFactory.php;h=a6f20ee5cb6096026364a06f27d79681f3332725;hp=e897950fcd74f25d8a7c7d0ccd4f4431a66defde;hb=04bc89cf40643171b26be910fef8c48d08b346fb;hpb=0cd57c3885f00ad77fc599e53ed2f2d5e7ac267f diff --git a/inc/classes/main/factories/class_BaseFactory.php b/inc/classes/main/factories/class_BaseFactory.php index e897950f..a6f20ee5 100644 --- a/inc/classes/main/factories/class_BaseFactory.php +++ b/inc/classes/main/factories/class_BaseFactory.php @@ -4,7 +4,7 @@ * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @@ -23,9 +23,14 @@ */ class BaseFactory extends BaseFrameworkSystem { /** - * An instance of the real factory class + * Total objects generated */ - private $realFactoryInstance = null; + private static $total = 0; + + /** + * Counter of all objects + */ + private static $objectCounters = array(); /** * Protected constructor @@ -36,29 +41,44 @@ class BaseFactory extends BaseFrameworkSystem { protected function __construct ($className) { // Call parent constructor parent::__construct($className); + } + + /** + * Count given object + * + * @param $className Name of the class we shall count + */ + protected static final function countObject ($className) { + // Count it up in total sum + self::$total++; - // Clean up a little - $this->removeNumberFormaters(); - $this->removeSystemArray(); + // Do we have an entry? + if (!isset(self::$objectCounters[$className])) { + // No, then generate one + self::$objectCounters[$className] = 0; + } // END - if + + // Count it up again + //* NOISY-DEBUG: */ print __METHOD__.': className=' .$className . PHP_EOL; + self::$objectCounters[$className]++; } /** - * Setter for the *real* factory instance + * Static getter for total object count * - * @param $realFactoryInstance An instance of the real factory class - * @return void + * @return $total Total amount of generated objects */ - public final function setRealFactoryInstance (BaseFrameworkSystem $realFactoryInstance) { - $this->realFactoryInstance = $realFactoryInstance; + public static final function getTotal () { + return self::$total; } /** - * Getter for the *real* factory instance + * Static getter for all object counters * - * @return $realFactoryInstance An instance of the real factory class + * @return $objectCounters An array with all object counters */ - protected final function getRealFactoryInstance () { - return $this->realFactoryInstance; + public static final function getAllCounters () { + return self::$objectCounters; } }