/** @return User\XML\Import\ReadyToBeImportedUsersCollection */
 public function transform(UsersToBeImportedCollection $collection_from_archive, $filename)
 {
     $csv_lines = $this->parseCSVFile($filename);
     $collection_for_import = new ReadyToBeImportedUsersCollection();
     foreach ($collection_from_archive->toArray() as $username => $to_be_imported_user) {
         if (isset($csv_lines[$username])) {
             $action = $csv_lines[$username];
             $collection_for_import->add($this->transformUser($collection_from_archive, $username, $action, $to_be_imported_user), $to_be_imported_user->getOriginalUserId(), $to_be_imported_user->getUserName(), $to_be_imported_user->getOriginalLdapId());
         } else {
             if ($to_be_imported_user instanceof AlreadyExistingUser) {
                 $collection_for_import->add($to_be_imported_user, $to_be_imported_user->getOriginalUserId(), $to_be_imported_user->getUserName(), $to_be_imported_user->getOriginalLdapId());
             } else {
                 throw new MissingEntryInMappingFileException("user {$username} should be in the mapping file");
             }
         }
     }
     return $collection_for_import;
 }