Security update for Core, with self-updated composer
[yaffs-website] / vendor / symfony / finder / Iterator / FileTypeFilterIterator.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  * FileTypeFilterIterator only keeps files, directories, or both.
16  *
17  * @author Fabien Potencier <fabien@symfony.com>
18  */
19 class FileTypeFilterIterator extends FilterIterator
20 {
21     const ONLY_FILES = 1;
22     const ONLY_DIRECTORIES = 2;
23
24     private $mode;
25
26     /**
27      * @param \Iterator $iterator The Iterator to filter
28      * @param int       $mode     The mode (self::ONLY_FILES or self::ONLY_DIRECTORIES)
29      */
30     public function __construct(\Iterator $iterator, $mode)
31     {
32         $this->mode = $mode;
33
34         parent::__construct($iterator);
35     }
36
37     /**
38      * Filters the iterator values.
39      *
40      * @return bool true if the value should be kept, false otherwise
41      */
42     public function accept()
43     {
44         $fileinfo = $this->current();
45         if (self::ONLY_DIRECTORIES === (self::ONLY_DIRECTORIES & $this->mode) && $fileinfo->isFile()) {
46             return false;
47         } elseif (self::ONLY_FILES === (self::ONLY_FILES & $this->mode) && $fileinfo->isDir()) {
48             return false;
49         }
50
51         return true;
52     }
53 }