/** * Sets the penalties on a session instance * @param Sesssion $session */ protected function setPenalties(Session $session) { // No penalties by default $penalties = array(); // Loop each penalty (if any) /* @var $penalty_xml \DOMNode */ foreach ($this->dom->getElementsByTagName('Penalty') as $penalty_xml) { // Create new penalty $penalty = new Penalty(); // Set message $penalty->setMessage($penalty_xml->nodeValue); // Clone session date $date = clone $session->getDate(); // Add the seconds to date, ignoring any decimals $date->modify(sprintf('+%d seconds', (int) $penalty_xml->getAttribute('et'))); // Set real estimated seconds $penalty->setElapsedSeconds((double) $penalty_xml->getAttribute('et')); // Add date to penalty $penalty->setDate($date); // Add penalty to penalties $penalties[] = $penalty; } // Set penalties on session $session->setPenalties($penalties); }