public function parse(array $data, ParsingDispatcher $parsingDispatcher)
{
$contentTypeId = $this->parserTools->parseObjectElement($data['ContentType'], $parsingDispatcher);
$ownerId = $this->parserTools->parseObjectElement($data['Owner'], $parsingDispatcher);
$mainLocationId = $this->parserTools->parseObjectElement($data['MainLocation'], $parsingDispatcher);
$sectionId = $this->parserTools->parseObjectElement($data['Section'], $parsingDispatcher);
$locationListReference = $this->parserTools->parseObjectElement($data['Locations'], $parsingDispatcher);
$versionListReference = $this->parserTools->parseObjectElement($data['Versions'], $parsingDispatcher);
$currentVersionReference = $this->parserTools->parseObjectElement($data['CurrentVersion'], $parsingDispatcher);
if (isset($data['CurrentVersion']['Version'])) {
$this->parserTools->parseObjectElement($data['CurrentVersion']['Version'], $parsingDispatcher);
}
return new Values\RestContentInfo(array('id' => $data['_href'], 'name' => $data['Name'], 'contentTypeId' => $contentTypeId, 'ownerId' => $ownerId, 'modificationDate' => new \DateTime($data['lastModificationDate']), 'publishedDate' => $publishedDate = !empty($data['publishedDate']) ? new \DateTime($data['publishedDate']) : null, 'published' => $publishedDate !== null, 'alwaysAvailable' => strtolower($data['alwaysAvailable']) === 'true', 'remoteId' => $data['_remoteId'], 'mainLanguageCode' => $data['mainLanguageCode'], 'mainLocationId' => $mainLocationId, 'sectionId' => $sectionId, 'versionListReference' => $versionListReference, 'locationListReference' => $locationListReference, 'currentVersionReference' => $currentVersionReference));
}