public function visit(Visitor $visitor, Generator $generator, $data)
{
$fieldDefinitionList = $data;
$contentType = $fieldDefinitionList->contentType;
$urlTypeSuffix = $this->getUrlTypeSuffix($contentType->status);
$generator->startObjectElement('FieldDefinitions', 'FieldDefinitionList');
$visitor->setHeader('Content-Type', $generator->getMediaType('FieldDefinitionList'));
//@todo Needs refactoring, disabling certain headers should not be done this way
$visitor->setHeader('Accept-Patch', false);
$generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentType' . $urlTypeSuffix . 'FieldDefinitionList', array('contentTypeId' => $contentType->id)));
$generator->endAttribute('href');
$generator->startList('FieldDefinition');
foreach ($fieldDefinitionList->fieldDefinitions as $fieldDefinition) {
$visitor->visitValueObject(new ValuesRestFieldDefinition($contentType, $fieldDefinition));
}
$generator->endList('FieldDefinition');
$generator->endObjectElement('FieldDefinitions');
}