Annotation of embedaddon/php/ext/spl/examples/keyfilter.inc, revision 1.1.1.1

1.1       misho       1: <?php
                      2: 
                      3: /** @file keyfilter.inc
                      4:  * @ingroup Examples
                      5:  * @brief class KeyFilter
                      6:  * @author  Marcus Boerger
                      7:  * @date    2003 - 2005
                      8:  *
                      9:  * SPL - Standard PHP Library
                     10:  */
                     11: 
                     12: /** @ingroup Examples
                     13:  * @brief   Regular expression filter for string iterators
                     14:  * @author  Marcus Boerger
                     15:  * @version 1.1
                     16:  *
                     17:  * Instances of this class act as a filter around iterators whose elements
                     18:  * are strings. In other words you can put an iterator into the constructor
                     19:  * and the instance will only return elements which match the given regular 
                     20:  * expression.
                     21:  */
                     22: class KeyFilter extends FilterIterator
                     23: {
                     24:        /** @internal regular exoression used as filter */
                     25:        private $regex;
                     26: 
                     27:        /**
                     28:         * Constructs a filter around an iterator whose elemnts are strings.
                     29:         * If the given iterator is of type spl_sequence then its rewind()
                     30:         * method is called.
                     31:         *
                     32:         * @param it     Object that implements at least spl_forward
                     33:         * @param regex  Regular expression used as a filter.
                     34:         */
                     35:        function __construct(Iterator $it, $regex)
                     36:        {
                     37:                parent::__construct($it);
                     38:                $this->regex = $regex;
                     39:        }
                     40: 
                     41:        /** \return whether the current key mathes the regular expression 
                     42:         */
                     43:        function accept()
                     44:        {
                     45:                return ereg($this->regex, $this->getInnerIterator()->key());
                     46:        }
                     47:        
                     48:        /** @return regular expression used as filter
                     49:         */
                     50:        function getRegex()
                     51:        {
                     52:                return $this->regex;
                     53:        }
                     54: 
                     55:        /**
                     56:         * hidden __clone
                     57:         */
                     58:        protected function __clone()
                     59:        {
                     60:                // disallow clone 
                     61:        }
                     62: }
                     63: 
                     64: ?>

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