<?php
/**
- * A registry for several data types
+ * A registry for several data types and objects. Objects should be added by
+ * addInstance() and therefore must implement the interface Registerable.
*
* @author Roland Haeder <webmaster@ship-simu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Core Developer Team
* @license GNU GPL 3.0 or any newer version
* @link http://www.ship-simu.org
*
/**
* Instance of this class
*/
- private static $selfInstance = null;
-
- /**
- * Wether the registry is initialized
- */
- private static $initialized = false;
+ private static $registryInstance = null;
/**
* Instance registry
protected function __construct () {
// Call parent constructor
parent::__construct(__CLASS__);
-
- // Clean up a little
- $this->removeNumberFormaters();
- $this->removeSystemArray();
}
/**
- * Singleton getter for self instance
+ * Singleton getter for self instance. This class has no factory pattern
+ * because here is no need for special parameters.
*
- * @return $selfInstance Instance of this class
+ * @return $registryInstance Instance of this class
*/
public final static function getRegistry () {
// Is an instance there?
- if (is_null(self::$selfInstance)) {
+ if (is_null(self::$registryInstance)) {
// Not yet, so create one
- self::$selfInstance = new Registry();
- }
+ self::$registryInstance = new Registry();
+ } // END - if
// Return the instance
- return self::$selfInstance;
- }
-
- /**
- * Checks or sets wether the registry has been initialized. This had only be done once
- *
- * @param $initialized Wether the registry is initialized
- * @return $initialized Wether the registry is initialized
- */
- public final static function isInitialized ($initialized = null) {
- if (is_null($initialized)) {
- // Get status if initialized
- return self::$initialized;
- } elseif (!is_null($initialized)) {
- // Registry is initialized!
- self::$initialized = true;
- }
+ return self::$registryInstance;
}
/**
*
* @param $instanceKey The key to identify the instance
* @return $objectInstance An instance we shall store
+ * @throws NullPointerException If the requested key is not found
*/
public function getInstance ($instanceKey) {
// By default the instance is not in registry
// Is the instance there?
if ($this->instanceExists($instanceKey)) {
$objectInstance = $this->instanceRegistry[$instanceKey];
- }
+ } // END - if
+
+ // Still not fetched?
+ if (is_null($objectInstance)) {
+ // This might happen if a non-registered key was requested
+ throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER);
+ } // END - if
// Return the result
return $objectInstance;