<?php
// Own namespace
-namespace CoreFramework\Registry;
+namespace Org\Mxchange\CoreFramework\Registry;
// Import framework stuff
-use CoreFramework\Generic\FrameworkInterface;
+use Org\Mxchange\CoreFramework\Generic\FrameworkInterface;
/**
* An interface for registries
*
* @author Roland Haeder <webmaster@shipsimu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2017 Core Developer Team
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2023 Core Developer Team
* @license GNU GPL 3.0 or any newer version
* @link http://www.shipsimu.org
*
* @param $instanceKey The key holding an instance in registry
* @return $exists Whether the key exists in registry
*/
- function instanceExists ($instanceKey);
+ function instanceExists (string $instanceKey);
/**
* Adds/overwrites a new instance to the registry at the given key
* @param $objectInstance An instance we shall store
* @return void
*/
- function addInstance ($instanceKey, Registerable $objectInstance);
+ function addInstance (string $instanceKey, Registerable $objectInstance);
+
+ /**
+ * Getter for whole generic registry
+ *
+ * @return $instanceRegistry The whole generic registry array
+ */
+ function getGenericRegistry ();
+
+ /**
+ * Getter for whole instance registry
+ *
+ * @return $instanceRegistry The whole instance registry array
+ */
+ function getInstanceRegistry ();
+
+ /**
+ * Adds a new entry to the given list name. If you want to add objects
+ * please use addInstance() and getInstance() instead.
+ *
+ * @param $key The key to identify the whole list
+ * @param $value The value to be stored
+ * @return void
+ */
+ function addEntry (string $key, $value);
+
+ /**
+ * Getter for entries or "sub entries"
+ *
+ * @return $entries An array with entries from this registry
+ */
+ function getEntries (string $key = NULL);
+
+ /**
+ * "Getter" for an array of all entries for given key
+ *
+ * @param $arrayKey The array (key) to look in
+ * @param $lookFor The key to look for
+ * @return $entry An array with all keys
+ */
+ function getArrayFromKey (string $arrayKey, string $lookFor);
/**
* Gets a registered instance or null if not found
*
* @param $instanceKey The key to identify the instance
* @return $objectInstance An instance we shall store
+ * @throws NullPointerException If the requested key is not found
*/
- function getInstance ($instanceKey);
+ function getInstance (string $instanceKey);
}