Annotation of embedaddon/php/ext/spl/internal/recursiveregexiterator.inc, revision 1.1.1.1

1.1       misho       1: <?php
                      2: 
                      3: /** @file recursiveregexiterator.inc
                      4:  * @ingroup SPL
                      5:  * @brief class RegexIterator
                      6:  * @author  Marcus Boerger
                      7:  * @date    2003 - 2009
                      8:  *
                      9:  * SPL - Standard PHP Library
                     10:  */
                     11: 
                     12: /**
                     13:  * @brief   Recursive regular expression filter for iterators
                     14:  * @author  Marcus Boerger
                     15:  * @version 1.0
                     16:  * @since PHP 5.1
                     17:  *
                     18:  * This filter iterator assumes that the inner iterator 
                     19:  */
                     20: class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator
                     21: {
                     22:        /**
                     23:         * Constructs a regular expression filter around an iterator whose 
                     24:         * elemnts or keys are strings.
                     25:         *
                     26:         * @param it          inner iterator
                     27:         * @param regex       the regular expression to match
                     28:         * @param mode        operation mode (one of self::MATCH, self::GET_MATCH, 
                     29:         *                    self::ALL_MATCHES, self::SPLIT)
                     30:         * @param flags       special flags (self::USE_KEY)
                     31:         * @param preg_flags  global PREG_* flags, see preg_match(), 
                     32:         *                    preg_match_all(), preg_split()
                     33:         */
                     34:        function __construct(RecursiveIterator $it, $regex, $mode = 0, $flags = 0, $preg_flags = 0) {
                     35:                parent::__construct($it, $regex, $mode, $flags, $preg_flags);
                     36:        }
                     37: 
                     38:        /** @return whether the current element has children
                     39:         */
                     40:        function hasChildren()
                     41:        {
                     42:                return $this->getInnerIterator()->hasChildren();
                     43:        }
                     44: 
                     45:        /** @return an iterator for the current elements children
                     46:         *
                     47:         * @note the returned iterator will be of the same class as $this
                     48:         */
                     49:        function getChildren()
                     50:        {
                     51:                if (empty($this->ref))
                     52:                {
                     53:                        $this->ref = new ReflectionClass($this);
                     54:                }
                     55:                return $this->ref->newInstance($this->getInnerIterator()->getChildren());
                     56:        }
                     57:        
                     58:        private $ref;
                     59: }
                     60: 
                     61: ?>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>