private static function generateFromRow($row_)
 {
     foreach ($row_ as $k => $v) {
         ${$k} = $v;
     }
     $buf = new Session((string) $id);
     $buf->client_id = (string) $client_id;
     $buf->need_creation = (bool) $need_creation;
     $buf->server = (string) $server;
     $buf->mode = (string) $mode;
     $buf->type = (string) $type;
     $buf->status = (string) $status;
     $buf->settings = json_unserialize($settings);
     $buf->user_login = (string) $user_login;
     $buf->user_displayname = (string) $user_displayname;
     $buf->servers = json_unserialize($servers);
     $data = json_unserialize($applications);
     if (array_key_exists('applications', $data)) {
         $buf->setPublishedApplications(array_map("Application::fromArray", $data['applications']));
     }
     if (array_key_exists('running_applications', $data)) {
         $buf->setRunningApplications(array_map("Application::fromArray", $data['running_applications']));
     }
     if (array_key_exists('closed_applications', $data)) {
         $buf->setClosedApplications(array_map("Application::fromArray", $data['closed_applications']));
     }
     $buf->start_time = (string) $start_time;
     $buf->timestamp = (int) $timestamp;
     return $buf;
 }