/** * Collect coverage data. * * @param SimpleXMLElement $file Clover XML object of a file. * @param string $path Path to source file. * @param string $filename Filename. * @return \Contrib\Bundle\CoverallsV1Bundle\Entity\SourceFile */ protected function collectCoverage(\SimpleXMLElement $file, $path, $filename) { if ($this->jsonFile->hasSourceFile($path)) { $srcFile = $this->jsonFile->getSourceFile($path); } else { $srcFile = new SourceFile($path, $filename); } foreach ($file->line as $line) { if ((string) $line['type'] === 'stmt') { $lineNum = (int) $line['num']; if ($lineNum > 0) { $srcFile->addCoverage($lineNum - 1, (int) $line['count']); } } } return $srcFile; }