X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fphpunit%2Fphp-code-coverage%2Fsrc%2FCodeCoverage%2FReport%2FNode%2FIterator.php;fp=vendor%2Fphpunit%2Fphp-code-coverage%2Fsrc%2FCodeCoverage%2FReport%2FNode%2FIterator.php;h=f468b6b8bff3e6c089c647e3f15f0322152bae00;hp=0000000000000000000000000000000000000000;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad diff --git a/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php b/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php new file mode 100644 index 000000000..f468b6b8b --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php @@ -0,0 +1,105 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Recursive iterator for PHP_CodeCoverage_Report_Node object graphs. + * + * @since Class available since Release 1.1.0 + */ +class PHP_CodeCoverage_Report_Node_Iterator implements RecursiveIterator +{ + /** + * @var int + */ + protected $position; + + /** + * @var PHP_CodeCoverage_Report_Node[] + */ + protected $nodes; + + /** + * Constructor. + * + * @param PHP_CodeCoverage_Report_Node_Directory $node + */ + public function __construct(PHP_CodeCoverage_Report_Node_Directory $node) + { + $this->nodes = $node->getChildNodes(); + } + + /** + * Rewinds the Iterator to the first element. + */ + public function rewind() + { + $this->position = 0; + } + + /** + * Checks if there is a current element after calls to rewind() or next(). + * + * @return bool + */ + public function valid() + { + return $this->position < count($this->nodes); + } + + /** + * Returns the key of the current element. + * + * @return int + */ + public function key() + { + return $this->position; + } + + /** + * Returns the current element. + * + * @return PHPUnit_Framework_Test + */ + public function current() + { + return $this->valid() ? $this->nodes[$this->position] : null; + } + + /** + * Moves forward to next element. + */ + public function next() + { + $this->position++; + } + + /** + * Returns the sub iterator for the current element. + * + * @return PHP_CodeCoverage_Report_Node_Iterator + */ + public function getChildren() + { + return new self( + $this->nodes[$this->position] + ); + } + + /** + * Checks whether the current element has children. + * + * @return bool + */ + public function hasChildren() + { + return $this->nodes[$this->position] instanceof PHP_CodeCoverage_Report_Node_Directory; + } +}