/**
  * Converts a basic SMS object from the database to a useful
  * full-fat data object
  * @param object $stdObject DB object to upgrade
  * @return MoodletxtOutboundSMS Full data object with children
  * @version 2013081501
  * @since 2012031901
  */
 private function convertSMSStandardClassToBeans($stdObject)
 {
     $sms = new MoodletxtOutboundSMS($stdObject->messageid, $stdObject->ticketnumber, $stdObject->messagetext);
     $sms->setId($stdObject->id);
     // Build recipient
     if (isset($stdObject->contactfirst) || isset($stdObject->contactlast) || isset($stdObject->company)) {
         $sms->setRecipientObject(new MoodletxtAddressbookRecipient(new MoodletxtPhoneNumber($stdObject->destination), $stdObject->contactfirst, $stdObject->contactlast, $stdObject->company, $stdObject->contactid));
     } else {
         if (isset($stdObject->userfirst) || isset($stdObject->userlast)) {
             $sms->setRecipientObject(new MoodletxtBiteSizedUser($stdObject->userid, $stdObject->username, $stdObject->userfirst, $stdObject->userlast, new MoodletxtPhoneNumber($stdObject->destination)));
         } else {
             $sms->setRecipientObject(new MoodletxtAdditionalRecipient(new MoodletxtPhoneNumber($stdObject->destination), $stdObject->sendfirstname, $stdObject->sendlastname));
         }
     }
     // Optionally drop in statuses, if they were retrieved
     if (isset($stdObject->status) && $stdObject->status != null) {
         $sms->setStatusUpdates(array(new MoodletxtOutboundSMSStatus($stdObject->ticketnumber, $stdObject->status, $stdObject->statusmessage, $stdObject->updatetime, $stdObject->statusid)));
     }
     return $sms;
 }