protected function getIndividualRecord($data, $request = null)
 {
     // Trigger a get hook
     $this->onBeforeGet($data, $request);
     if (!$request) {
         $request = new BtlRequestObject();
     }
     $model = $this->getModel();
     $tableName = $this->getTableName();
     $query = $request->getQuery();
     if ($query) {
         $data = array();
         foreach ($query as $key => $val) {
             if ($key[0] == '_') {
                 $data[$key] = $val;
             } else {
                 $data[$key] = array(MvcQueryObjectData::LIKE => $val);
             }
             if ($val === null) {
                 $data[$key] = array(MvcQueryObjectData::IS => null);
             }
         }
     } elseif ($data) {
         $this->performTypeCheck($data, $tableName);
     } else {
         // they passed in neither a 'data' nor a 'query' part, assume it's a query for everything
         $query = true;
     }
     $queryObject = new MvcQueryObject($query);
     $queryObject->setType('select');
     $queryObject->setModel($model);
     $queryObject->setWhere($data);
     $this->configureReadFields($queryObject);
     $result = $this->plugin->MvcQuery->query($queryObject);
     if ($query) {
         // Trigger a get hook
         foreach ($result as $i => $record) {
             $this->onAfterGet($record);
             $result[$i] = $record;
         }
     } else {
         //TODO What do we want to do if there are no results?
         if (sizeof($result) == 0) {
             // Trigger a get hook
             $this->onAfterGet($result);
             return false;
         }
         if (sizeof($result) != 1) {
             throw new GsrcException(GsrcException::INVALID_NUMBER_OF_RESULTS, 'RESULT:', $result, 'LAST QUERY:', $this->plugin->MvcQuery->db->getLastQueryObject());
         }
         $result = $result[0];
         $result['_type'] = $data->_type;
     }
     return $result;
 }