/** * 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; }