public function visit(Visitor $visitor, Generator $generator, $data)
{
$versionInfo = $data;
$generator->startHashElement('VersionInfo');
$generator->startValueElement('id', $versionInfo->id);
$generator->endValueElement('id');
$generator->startValueElement('versionNo', $versionInfo->versionNo);
$generator->endValueElement('versionNo');
$generator->startValueElement('status', $this->getStatusString($versionInfo->status));
$generator->endValueElement('status');
$generator->startValueElement('modificationDate', $versionInfo->modificationDate->format('c'));
$generator->endValueElement('modificationDate');
$generator->startObjectElement('Creator', 'User');
$generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $versionInfo->creatorId)));
$generator->endAttribute('href');
$generator->endObjectElement('Creator');
$generator->startValueElement('creationDate', $versionInfo->creationDate->format('c'));
$generator->endValueElement('creationDate');
$generator->startValueElement('initialLanguageCode', $versionInfo->initialLanguageCode);
$generator->endValueElement('initialLanguageCode');
$generator->startValueElement('languageCodes', implode(',', $versionInfo->languageCodes));
$generator->endValueElement('languageCodes');
$this->visitNamesList($generator, $versionInfo->names);
$generator->startObjectElement('Content', 'ContentInfo');
$generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $versionInfo->getContentInfo()->id)));
$generator->endAttribute('href');
$generator->endObjectElement('Content');
$generator->endHashElement('VersionInfo');
}