/** * @param \SimpleXMLElement $fileXml * * @return File */ private function hydrateFile(\SimpleXMLElement $fileXml) { $file = new File(); $file->setName($this->findAttributeByName($fileXml, 'name')); $methodNumber = 0; foreach ($fileXml->class as $classXml) { $class = new ClassDto(); $class->setName($this->findAttributeByName($classXml, 'name')); $class->setMethodCount($this->findAttributeByName($classXml->metrics, 'methods')); $class->setLineCount($this->findAttributeByName($classXml->metrics, 'statements')); $class->setMethodCoveredCount($this->findAttributeByName($classXml->metrics, 'coveredmethods')); $class = $this->hydrateMethod($fileXml, $class, $methodNumber); $file->addClass($class); } foreach ($fileXml->line as $lineXml) { $file->addLine($this->findAttributeByName($lineXml, 'num'), $this->findAttributeByName($lineXml, 'type'), (bool) $this->findAttributeByName($lineXml, 'count')); } return $file; }