X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=framework%2Fmain%2Fclasses%2Fiterator%2Fregistry%2Fclass_RegistryIterator.php;h=52ba6c74cbea90223aaa0320cb08d7d87f94f262;hb=2a3f6350600cf6ad214923c57aef772dc5c0cb76;hp=c042707f6db8f4c3e6f96ee4c02b274ab8b00673;hpb=78c80d535ab3e108f8c89f2aae9ebe02270e4d63;p=core.git diff --git a/framework/main/classes/iterator/registry/class_RegistryIterator.php b/framework/main/classes/iterator/registry/class_RegistryIterator.php index c042707f..52ba6c74 100644 --- a/framework/main/classes/iterator/registry/class_RegistryIterator.php +++ b/framework/main/classes/iterator/registry/class_RegistryIterator.php @@ -9,6 +9,7 @@ use Org\Mxchange\CoreFramework\Iterator\BaseIterator; use Org\Mxchange\CoreFramework\Registry\Register; use Org\Mxchange\CoreFramework\Registry\Registerable; use Org\Mxchange\CoreFramework\Registry\Sub\SubRegistry; +use Org\Mxchange\CoreFramework\Traits\Registry\RegisterTrait; // Import SPL stuff use \BadMethodCallException; @@ -37,6 +38,9 @@ use \LogicException; * along with this program. If not, see . */ class RegistryIterator extends BaseIterator implements IteratableRegistry { + // Load traits + use RegisterTrait; + /** * All found registry keys */ @@ -53,11 +57,6 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { */ private $key = NULL; - /** - * Registry instance (implementing Register) - */ - private $registryInstance = NULL; - /** * Protected constructor * @@ -93,25 +92,6 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { return $iteratorInstance; } - /** - * Setter for registry instance - * - * @param $registryInstance An instance of a Register class - * @return void - */ - protected final function setRegistryInstance (Register $registryInstance) { - $this->registryInstance = $registryInstance; - } - - /** - * Getter for registry instance - * - * @return $registryInstance The debug registry instance - */ - protected final function getRegistryInstance () { - return $this->registryInstance; - } - /** * Setter for only-registries array * @@ -142,7 +122,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[generic]: entries()=%d', count($entries))); if (count($entries) > 0) { // Debugging: - /* DEBUG-DIE: */ die(sprintf('[%s:%d]: UNFINISHED: entries=%s', __METHOD__, __LINE__, print_r($entries, TRUE))); + /* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: UNFINISHED: entries=%s', __METHOD__, __LINE__, print_r($entries, TRUE))); } // END - if // Get instance registry entries from it @@ -172,7 +152,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { // Add all sub-registry keys to this registry keys array //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[instance]: subRegistryInstances()=%d', count($subRegistryInstances))); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: key=%s,subRegistryInstances=%s', __METHOD__, __LINE__, $key, print_r($subRegistryInstances, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: key=%s,subRegistryInstances=%s', __METHOD__, __LINE__, $key, print_r($subRegistryInstances, TRUE))); foreach (array_keys($subRegistryInstances) as $subKey) { // Add it //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[instance]: Adding key=%s,subKey=%s ...', $key, $subKey)); @@ -202,7 +182,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { // Add key to array //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[instance]: key=%s - Adding ...', $key)); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: key=%s,entry=%s', __METHOD__, __LINE__, $key, print_r($entry, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: key=%s,entry=%s', __METHOD__, __LINE__, $key, print_r($entry, TRUE))); array_push($this->registryKeys['instance'], $key); } // END - foreach } // END - if @@ -230,7 +210,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { public function current () { // Default is null //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: CALLED!', $this->key())); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); $current = NULL; $entries = []; @@ -248,7 +228,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { // The key should be there //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: Handling registryKey=%s ...', $this->key(), $registryKey)); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: instances=%s', __METHOD__, __LINE__, print_r($instances, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: instances=%s', __METHOD__, __LINE__, print_r($instances, TRUE))); if (!isset($instances[$this->key()])) { // Skip below code //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: registryKey=%s has no this->key=%s, skipping ...', $this->key(), $registryKey)); @@ -294,7 +274,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { public function next () { // Is valid() still TRUE? //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: CALLED!', $this->key())); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); if (!$this->valid()) { // Bad method call! throw new BadMethodCallException(sprintf('this->key[%s]=%s is no longer valid, but method was called.', gettype($this->key()), $this->key())); @@ -312,7 +292,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: this->registryKeys[generic]()=%d,this->registryKeys[instance]()=%d', $this->key(), count($this->registryKeys['generic']), count($this->registryKeys['instance']))); if (count($this->registryKeys['generic']) > 0) { // First generic array - /* UNFINISHED */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); + /* UNFINISHED */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); } elseif (count($this->registryKeys['instance']) > 0) { // Second instance, current key's index + 1 $nextIndex = array_search($this->key(), $this->registryKeys['instance']) + 1; @@ -346,7 +326,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { public function rewind () { // Is current key first key? //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: CALLED!', $this->key())); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); if (array_search($this->key(), $this->getRegistryKeys()) === 0) { // rewind() cannot rewind first entry! throw new BadMethodCallException(sprintf('this->key=%s is already first element, but method was called.', $this->key())); @@ -359,7 +339,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: this->registryKeys[generic]()=%d,this->registryKeys[instance]()=%d', $this->key(), count($this->registryKeys['generic']), count($this->registryKeys['instance']))); if (count($this->registryKeys['generic']) > 0) { // First generic array - /* UNFINISHED */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); + /* UNFINISHED */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); } elseif (count($this->registryKeys['instance']) > 0) { // Second instance $this->key = $this->registryKeys['instance'][0]; @@ -377,7 +357,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { public function valid () { // Is the element there? //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: CALLED!', $this->key())); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), print_r($this->registryKeys, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), print_r($this->registryKeys, TRUE))); $valid = (in_array($this->key(), $this->registryKeys['instance']) || in_array($this->key(), $this->registryKeys['generic'])); // Return flag