/** * @param SimpleXMLElement $document * @return Session */ public function extractSession(SimpleXMLElement $document) { $object = new Session(); $fields = ['course' => 'course', 'date' => function (Session $object, $value) { $object->setDate(new DateTime($value)); }, 'daytime' => 'dayTime', 'endtime' => 'endTime', 'EVENTS' => function (Session $object, $value) { $object->setEvents($this->extractEvents($value)); }, 'FEES' => function (Session $object, $value) { $object->setFees($this->extractFees($value)); }, 'JUDGES' => function (Session $object, $value) { $object->setJudges($this->extractJudges($value)); }, 'maxentriesathlete' => 'maxEntriesAthlete', 'maxentriesrelay' => 'maxEntriesRelay', 'name' => 'name', 'number' => 'number', 'officialmeeting' => 'officialMeeting', 'POOL' => function (Session $object, $value) { $object->setPool($this->extractPool($value)); }, 'remarksjudge' => 'remarksJudge', 'teamleadermeeting' => 'teamLeaderMeeting', 'timing' => 'timing', 'warmupfrom' => 'warmUpFrom', 'warmupuntil' => 'warmUpUntil']; return $this->transform($document, $fields, $object); }