/**
  * Check if the file must be accepted, or not
  *
  * @param \SplFileInfo $archive
  * @return bool
  */
 public function validate(\SplFileInfo $archive)
 {
     $zip = new \ZipArchive();
     $pathname = $archive->getPathname();
     $result = new ValidationResult();
     $open = $zip->open($pathname, \ZipArchive::CHECKCONS);
     if (true === $open) {
         $result->setValid(true);
     } else {
         switch ((int) $open) {
             case \ZipArchive::ER_NOZIP:
                 $result->setMessage('Not a zip archive:' . $pathname);
                 break;
             case \ZipArchive::ER_INCONS:
                 $result->setMessage('Zip archive inconsistent:' . $pathname);
                 break;
             case \ZipArchive::ER_CRC:
                 $result->setMessage('CRC error:' . $pathname);
                 break;
             case \ZipArchive::ER_OPEN:
                 $result->setMessage('Can\'t open file:' . $pathname);
                 break;
         }
     }
     return $result;
 }