X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Ffactories%2Fclass_BaseFactory.php;h=a6f20ee5cb6096026364a06f27d79681f3332725;hp=5c4187f9d854ba87ac42a97599b37d7c9eaba724;hb=04bc89cf40643171b26be910fef8c48d08b346fb;hpb=0d566e56ff27dcbf25a90d513950bbf26fe71422 diff --git a/inc/classes/main/factories/class_BaseFactory.php b/inc/classes/main/factories/class_BaseFactory.php index 5c4187f9..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 * @@ -22,6 +22,16 @@ * along with this program. If not, see . */ class BaseFactory extends BaseFrameworkSystem { + /** + * Total objects generated + */ + private static $total = 0; + + /** + * Counter of all objects + */ + private static $objectCounters = array(); + /** * Protected constructor * @@ -32,6 +42,44 @@ class BaseFactory extends BaseFrameworkSystem { // 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++; + + // 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]++; + } + + /** + * Static getter for total object count + * + * @return $total Total amount of generated objects + */ + public static final function getTotal () { + return self::$total; + } + + /** + * Static getter for all object counters + * + * @return $objectCounters An array with all object counters + */ + public static final function getAllCounters () { + return self::$objectCounters; + } } // [EOF]