commiting uncommited changes on live site
[weblabels.fsf.org.git] / crm.fsf.org / 20131203 / files / sites / all / modules-old / civicrm / vendor / symfony / finder / Symfony / Component / Finder / Iterator / DepthRangeFilterIterator.php
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12 namespace Symfony\Component\Finder\Iterator;
13
14 /**
15 * DepthRangeFilterIterator limits the directory depth.
16 *
17 * @author Fabien Potencier <fabien@symfony.com>
18 */
19 class DepthRangeFilterIterator extends FilterIterator
20 {
21 private $minDepth = 0;
22
23 /**
24 * Constructor.
25 *
26 * @param \RecursiveIteratorIterator $iterator The Iterator to filter
27 * @param int $minDepth The min depth
28 * @param int $maxDepth The max depth
29 */
30 public function __construct(\RecursiveIteratorIterator $iterator, $minDepth = 0, $maxDepth = PHP_INT_MAX)
31 {
32 $this->minDepth = $minDepth;
33 $iterator->setMaxDepth(PHP_INT_MAX === $maxDepth ? -1 : $maxDepth);
34
35 parent::__construct($iterator);
36 }
37
38 /**
39 * Filters the iterator values.
40 *
41 * @return bool true if the value should be kept, false otherwise
42 */
43 public function accept()
44 {
45 return $this->getInnerIterator()->getDepth() >= $this->minDepth;
46 }
47 }