You are here

class PHP_CodeCoverage_Report_Node_Iterator in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php \PHP_CodeCoverage_Report_Node_Iterator

Recursive iterator for PHP_CodeCoverage_Report_Node object graphs.

@since Class available since Release 1.1.0

Hierarchy

Expanded class hierarchy of PHP_CodeCoverage_Report_Node_Iterator

File

vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php, line 16

View source
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;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PHP_CodeCoverage_Report_Node_Iterator::$nodes protected property
PHP_CodeCoverage_Report_Node_Iterator::$position protected property
PHP_CodeCoverage_Report_Node_Iterator::current public function Returns the current element.
PHP_CodeCoverage_Report_Node_Iterator::getChildren public function Returns the sub iterator for the current element.
PHP_CodeCoverage_Report_Node_Iterator::hasChildren public function Checks whether the current element has children.
PHP_CodeCoverage_Report_Node_Iterator::key public function Returns the key of the current element.
PHP_CodeCoverage_Report_Node_Iterator::next public function Moves forward to next element.
PHP_CodeCoverage_Report_Node_Iterator::rewind public function Rewinds the Iterator to the first element.
PHP_CodeCoverage_Report_Node_Iterator::valid public function Checks if there is a current element after calls to rewind() or next().
PHP_CodeCoverage_Report_Node_Iterator::__construct public function Constructor.