Continued:
[core.git] / framework / main / classes / registry / class_BaseRegistry.php
index 7c79ce3b3e40898ddce87bcd399c80b24b21bcc2..e6be0bf572b8cffb2f49a59844fa2a1a9146f07b 100644 (file)
@@ -54,8 +54,8 @@ class BaseRegistry extends BaseFrameworkSystem implements Register, Registerable
                parent::__construct($className);
 
                // Init generic arrays
-               $this->initGenericArrayGroup('raw', 'generic');
-               $this->initGenericArrayGroup('raw', 'instance');
+               $this->initGenericArrayGroup('registry', 'generic');
+               $this->initGenericArrayGroup('registry', 'instance');
        }
 
        /**
@@ -64,8 +64,20 @@ class BaseRegistry extends BaseFrameworkSystem implements Register, Registerable
         * @return      $iteratorInstance       An instance of a Iterator class
         */
        public function getIterator () {
-               // Instance + return it
-               return ObjectFactory::createObjectByConfiguredName('registry_iterator_class', array($this));
+               // Is it set?
+               if (is_null($this->getIteratorInstance())) {
+                       // Then instance it
+                       $iteratorInstance = ObjectFactory::createObjectByConfiguredName('registry_iterator_class', array($this));
+
+                       // ... and set it here
+                       $this->setIteratorInstance($iteratorInstance);
+               } else {
+                       // Use set iterator
+                       $iteratorInstance = $this->getIteratorInstance();
+               }
+
+               // Return it
+               return $iteratorInstance;
        }
 
        /**
@@ -93,6 +105,15 @@ class BaseRegistry extends BaseFrameworkSystem implements Register, Registerable
                $this->setGenericArrayKey('registry', 'instance', $instanceKey, $objectInstance);
        }
 
+       /**
+        * Getter for whole generic registry
+        *
+        * @return      $instanceRegistry       The whole generic registry array
+        */
+       public final function getGenericRegistry () {
+               return $this->getGenericSubArray('registry', 'generic');
+       }
+
        /**
         * Getter for whole instance registry
         *
@@ -115,7 +136,7 @@ class BaseRegistry extends BaseFrameworkSystem implements Register, Registerable
                assert(!is_array($key));
 
                // Push it
-               $this->pushValueToGenericArrayKey('raw', 'generic', $key, $value);
+               $this->pushValueToGenericArrayKey('registry', 'generic', $key, $value);
        }
 
        /**
@@ -128,12 +149,12 @@ class BaseRegistry extends BaseFrameworkSystem implements Register, Registerable
                assert(!is_array($key));
 
                // Default is whole array
-               $entries = $this->getGenericArray('raw');
+               $entries = $this->getGenericArray('registry');
 
                // Is $key set?
                if (!is_null($key)) {
                        // Then use this entry
-                       $entries = $this->getGenericArrayKey('raw', 'generic', $key);
+                       $entries = $this->getGenericArrayKey('registry', 'generic', $key);
                } // END - if
 
                // Return the array