diff options
Diffstat (limited to 'ext/spl/internal/cachingrecursiveiterator.inc')
-rwxr-xr-x | ext/spl/internal/cachingrecursiveiterator.inc | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/ext/spl/internal/cachingrecursiveiterator.inc b/ext/spl/internal/cachingrecursiveiterator.inc deleted file mode 100755 index 72204d9399..0000000000 --- a/ext/spl/internal/cachingrecursiveiterator.inc +++ /dev/null @@ -1,90 +0,0 @@ -<?php - -/** @file cachingrecursiveiterator.inc - * @ingroup SPL - * @brief class CachingRecursiveIterator - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -/** - * @brief Cached recursive iteration over another Iterator - * @author Marcus Boerger - * @version 1.1 - * @since PHP 5.0 - * - * @see CachingIterator - */ -class CachingRecursiveIterator extends CachingIterator implements RecursiveIterator -{ - private $hasChildren; - private $getChildren; - - /** Construct from another iterator - * - * @param it Iterator to cache - * @param flags Bitmask: - * - CIT_CALL_TOSTRING (whether to call __toString() for every element) - * - CIT_CATCH_GET_CHILD (whether to catch exceptions when trying to get childs) - */ - function __construct(RecursiveIterator $it, $flags = CIT_CALL_TOSTRING) - { - parent::__construct($it, $flags); - } - - /** Rewind Iterator - */ - function rewind(); - { - $this->hasChildren = false; - $this->getChildren = NULL; - parent::rewind(); - } - - /** Forward to next element if necessary then an Iterator for the Children - * will be created. - */ - function next() - { - if ($this->hasChildren = $this->it->hasChildren()) { - try { - //$this->getChildren = new CachingRecursiveIterator($this->it->getChildren(), $this->flags); - // workaround memleaks... - $child = $this->it->getChildren(); - $this->getChildren = new CachingRecursiveIterator($child, $this->flags); - } - catch(Exception $e) { - if (!$this->flags & CIT_CATCH_GET_CHILD) { - throw $e; - } - $this->hasChildren = false; - $this->getChildren = NULL; - } - } else { - $this->getChildren = NULL; - } - parent::next(); - } - - /** @return whether the current element has children - * @note The check whether the Iterator for the children can be created was - * already executed. Hence when flag CIT_CATCH_GET_CHILD was given in - * constructor this fucntion returns false so that getChildren does - * not try to access those children. - */ - function hasChildren() - { - return $this->hasChildren; - } - - /** @return An Iterator for the children - */ - function getChildren() - { - return $this->getChildren; - } -} - -?>
\ No newline at end of file |