public function visit(Visitor $visitor, Generator $generator, $restContentCreateStruct)
{
$contentCreateStruct = $restContentCreateStruct->contentCreateStruct;
$generator->startObjectElement('ContentCreate');
$visitor->setHeader('Content-Type', $generator->getMediaType('TypeCreate'));
$generator->startValueElement('mainLanguageCode', $contentCreateStruct->mainLanguageCode);
$generator->endValueElement('mainLanguageCode');
$generator->startValueElement('alwaysAvailable', $contentCreateStruct->alwaysAvailable ? 'true' : 'false');
$generator->endValueElement('alwaysAvailable');
$generator->startValueElement('remoteId', (int) $contentCreateStruct->remoteId);
$generator->endValueElement('remoteId');
if ($contentCreateStruct->modificationDate !== null) {
$generator->startValueElement('modificationDate', $contentCreateStruct->modificationDate->format('c'));
$generator->endValueElement('modificationDate');
}
if ($contentCreateStruct->ownerId !== null) {
$generator->startObjectElement('User');
$generator->startAttribute('href', $contentCreateStruct->ownerId);
$generator->endAttribute('href');
$generator->endObjectElement('User');
}
$generator->startObjectElement('ContentType');
$generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentType', array('contentTypeId' => $contentCreateStruct->contentType->id)));
$generator->endAttribute('href');
$generator->endObjectElement('ContentType');
if (!empty($contentCreateStruct->fields)) {
$generator->startHashElement('fields');
$generator->startList('field');
foreach ($contentCreateStruct->fields as $field) {
$this->visitField($generator, $contentCreateStruct->contentType, $field);
}
$generator->endList('field');
$generator->endHashElement('fields');
}
$visitor->visitValueObject($restContentCreateStruct->locationCreateStruct);
$generator->endObjectElement('ContentCreate');
}