/**
  * @static
  * @param array $usr_ids
  */
 public static function preloadUserObjects(array $usr_ids)
 {
     /**
      * @var $ilDB ilDB
      */
     global $ilDB;
     $usr_ids_to_request = array_diff($usr_ids, self::$requested_usr_ids);
     self::$requested_usr_ids = array_merge(self::$requested_usr_ids, $usr_ids_to_request);
     self::$requested_usr_ids_key_map = array_flip(self::$requested_usr_ids);
     if ($usr_ids_to_request) {
         $in = $ilDB->in('ud.usr_id', $usr_ids_to_request, false, 'integer');
         $query = "\n\t\t\t\tSELECT ud.usr_id, login, firstname, lastname, title, gender, pprof.value public_profile, pgen.value public_gender, pup.value public_upload\n\t\t\t\tFROM usr_data ud\n\t\t\t\tLEFT JOIN usr_pref pprof ON pprof.usr_id = ud.usr_id AND pprof.keyword = %s\n\t\t\t\tLEFT JOIN usr_pref pgen ON pgen.usr_id = ud.usr_id AND pgen.keyword = %s\n\t\t\t\tLEFT JOIN usr_pref pup ON pup.usr_id = ud.usr_id AND pup.keyword = %s\n\t\t\t\tWHERE {$in}\n\t\t\t";
         $res = $ilDB->queryF($query, array('text', 'text', 'text'), array('public_profile', 'public_gender', 'public_upload'));
         while ($row = $ilDB->fetchAssoc($res)) {
             $user = new ilObjUser();
             $user->setId($row['usr_id']);
             $user->setLogin($row['login']);
             $user->setGender($row['gender']);
             $user->setTitle($row['title']);
             $user->setFirstname($row['firstname']);
             $user->setLastname($row['lastname']);
             $user->setPref('public_profile', $row['public_profile']);
             $user->setPref('public_gender', $row['public_gender']);
             $user->setPref('public_upload', $row['public_upload']);
             self::$user_instances[$row['usr_id']] = $user;
         }
     }
 }