/**
  * @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;
 }