]> git.mxchange.org Git - shipsimu.git/blobdiff - inc/classes/main/registry/class_Registry.php
Registerable instances now possible, some fixes in filters
[shipsimu.git] / inc / classes / main / registry / class_Registry.php
index 8c69c2dd2718f816b0be0f19158ac1fa51793542..0ceda2c0c4016ebd04830884fd93aff9770d1ecf 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
         *
@@ -62,6 +67,31 @@ 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;
+       }
 }
 
 // [EOF]