]> git.mxchange.org Git - shipsimu.git/blobdiff - inc/classes/main/registry/class_Registry.php
createUniqueID -> generateUniqueId renamed, dataset criteria added, registration...
[shipsimu.git] / inc / classes / main / registry / class_Registry.php
index 8c69c2dd2718f816b0be0f19158ac1fa51793542..a9e1a2a723ab9b93cfccb5f0d384c67663479a8e 100644 (file)
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-class Registry extends BaseFrameworkSystem {
+class Registry extends BaseFrameworkSystem implements Register {
        /**
         * Instance of this class
         */
        private static $selfInstance = null;
 
+       /**
+        * Instance registry
+        */
+       private $instanceRegistry = array();
+
        /**
         * Protected constructor
         *
@@ -40,7 +45,7 @@ class Registry extends BaseFrameworkSystem {
                $this->setObjectDescription("Registry class");
 
                // Create unique ID number
-               $this->createUniqueID();
+               $this->generateUniqueId();
 
                // Clean up a little
                $this->removeNumberFormaters();
@@ -52,7 +57,7 @@ class Registry extends BaseFrameworkSystem {
         *
         * @return      $selfInstance   Instance of this class
         */
-       public final static function getInstance () {
+       public final static function getRegistry () {
                // Is an instance there?
                if (is_null(self::$selfInstance)) {
                        // Not yet, so create one
@@ -62,6 +67,50 @@ class Registry extends BaseFrameworkSystem {
                // Return the instance
                return self::$selfInstance;
        }
+
+       /**
+        * Checks wether an instance key was found
+        *
+        * @param       $instanceKey    The key holding an instance in the registry
+        * @return      $exists                 Wether the key exists in the registry
+        */
+       public function instanceExists ($instanceKey) {
+               // Does this key exists?
+               $exists = (isset($this->instanceRegistry[$instanceKey]));
+
+               // Return the result
+               return $exists;
+       }
+
+       /**
+        * Adds/overwrites a new instance to the registry at the given key
+        *
+        * @param       $instanceKey            The key to identify the instance
+        * @param       $objectInstance         An instance we shall store
+        * @return      void
+        */
+       public function addInstance ($instanceKey, Registerable $objectInstance) {
+               $this->instanceRegistry[$instanceKey] = $objectInstance;
+       }
+
+       /**
+        * Gets a registered instance or null if not found
+        *
+        * @param       $instanceKey            The key to identify the instance
+        * @return      $objectInstance         An instance we shall store
+        */
+       public function getInstance ($instanceKey) {
+               // By default the instance is not in the registry
+               $objectInstance = null;
+
+               // Is the instance there?
+               if ($this->instanceExists($instanceKey)) {
+                       $objectInstance = $this->instanceRegistry[$instanceKey];
+               }
+
+               // Return the result
+               return $objectInstance;
+       }
 }
 
 // [EOF]