/**
  * Parse a new BuildEvent from a SimpleXMLElement.
  *
  * @param $log_event  (Object) SimpleXMLElement node to be "parsed".
  * @return  (object) Resultant BuildEvent object.
  */
 private static function parseBuildEvent(&$log_event)
 {
     if (!$log_event instanceof SimpleXMLElement) {
         throw new Exception('Received invalid log_event');
     }
     $uniqueId = (int) $log_event->uniqueId;
     $startDate = strtotime(clean_text($log_event->startDate));
     $authorName = clean_text($log_event->authorName);
     $authorEmail = clean_text($log_event->authorEmail);
     if (!empty($log_event->releaseType)) {
         $releaseType = BuildRepositoryPlugin::parseReleaseType(clean_text($log_event->releaseType));
     } else {
         $releaseType = RT_UNSTABLE;
     }
     $event = new BuildEvent($uniqueId, $startDate, $authorName, $authorEmail, $releaseType);
     if (!empty($log_event->releaseNotes)) {
         $event->setReleaseNotesUri(clean_text($log_event->releaseNotes));
     }
     if (!empty($log_event->changeLog)) {
         $event->setReleaseChangeLogUri(clean_text($log_event->changeLog));
     }
     return $event;
 }