X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Ffactories%2Fclass_BaseFactory.php;h=0b7636eb594529747e1583e092d67ee284c206b9;hp=52e52fa2aee306d4f7e6fcd01e21d5b8a7af335c;hb=fa4a8357806244a39eb6e8dadf028190b03d34fb;hpb=361e6320e50a8bb1a3ccb675388b8042361669ae diff --git a/inc/classes/main/factories/class_BaseFactory.php b/inc/classes/main/factories/class_BaseFactory.php index 52e52fa2..0b7636eb 100644 --- a/inc/classes/main/factories/class_BaseFactory.php +++ b/inc/classes/main/factories/class_BaseFactory.php @@ -2,11 +2,11 @@ /** * A general (base) factory * - * @author Roland Haeder + * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007 - 2009 Roland Haeder, this is free software + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2013 Core 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 @@ -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; } }