X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Ffactories%2Fclass_BaseFactory.php;h=0b7636eb594529747e1583e092d67ee284c206b9;hp=e897950fcd74f25d8a7c7d0ccd4f4431a66defde;hb=fa4a8357806244a39eb6e8dadf028190b03d34fb;hpb=0cd57c3885f00ad77fc599e53ed2f2d5e7ac267f diff --git a/inc/classes/main/factories/class_BaseFactory.php b/inc/classes/main/factories/class_BaseFactory.php index e897950f..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, 2008 Roland Haeder, 2009 Core Developer Team + * @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; } }