From ea161c07498da1792b7f3dad80cbe39f0208a94e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Fri, 22 Aug 2025 03:37:08 +0200 Subject: [PATCH] Continued: - introduced method isIteratorInstanceSet() --- framework/main/classes/lists/class_BaseList.php | 8 ++++---- framework/main/traits/iterator/class_IteratorTrait.php | 9 +++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/framework/main/classes/lists/class_BaseList.php b/framework/main/classes/lists/class_BaseList.php index 608c6ecb..0052f379 100644 --- a/framework/main/classes/lists/class_BaseList.php +++ b/framework/main/classes/lists/class_BaseList.php @@ -87,16 +87,16 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate * @return $iteratorInstance An instance of a Iterator class */ public function getIterator (): Traversable { - // Get iterator from here - $iteratorInstance = $this->getIteratorInstance(); - // Is the instance set? - if (is_null($iteratorInstance)) { + if (!$this->isIteratorInstanceSet()) { // Prepare a default iterator $iteratorInstance = ObjectFactory::createObjectByConfiguredName('default_iterator_class', [$this]); // Set it here $this->setIteratorInstance($iteratorInstance); + } else { + // Get iterator instance + $iteratorInstance = $this->getIteratorInstance(); } // And return it diff --git a/framework/main/traits/iterator/class_IteratorTrait.php b/framework/main/traits/iterator/class_IteratorTrait.php index 84295a9b..5e38645b 100644 --- a/framework/main/traits/iterator/class_IteratorTrait.php +++ b/framework/main/traits/iterator/class_IteratorTrait.php @@ -52,4 +52,13 @@ trait IteratorTrait { return $this->iteratorInstance; } + /** + * Checks whether an iterator instance can be found + * + * @return $isset Whether an iterator instance can be found + */ + public final function isIteratorInstanceSet (): bool { + return ($this->iteratorInstance instanceof Iterator); + } + } -- 2.39.5