/**
  * Shared validation function
  * @param FileAbstraction $file
  */
 public function validate(FileAbstraction $entity, $typeName, $sourceFilePath = null)
 {
     $siblings = $entity->getSiblings();
     $creatingFilename = $entity->getFileName();
     foreach ($siblings as $record) {
         /* @var $record File */
         if (!$record->equals($entity)) {
             $recordName = $record->getFileName();
             $creatingFilename = mb_strtolower($creatingFilename);
             $recordName = mb_strtolower($recordName);
             if ($creatingFilename == $recordName) {
                 $message = $typeName . ' with this name already exists.';
                 throw new Exception\DuplicateFileNameException(self::EXCEPTION_MESSAGE_KEY, $message);
             }
         }
     }
 }