public function visit(Visitor $visitor, Generator $generator, $data)
{
$generator->startObjectElement('Relation');
$visitor->setHeader('Content-Type', $generator->getMediaType('Relation'));
$generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadVersionRelation', array('contentId' => $data->contentId, 'versionNumber' => $data->versionNo, 'relationId' => $data->relation->id)));
$generator->endAttribute('href');
$generator->startObjectElement('SourceContent', 'ContentInfo');
$generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $data->contentId)));
$generator->endAttribute('href');
$generator->endObjectElement('SourceContent');
$generator->startObjectElement('DestinationContent', 'ContentInfo');
$generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $data->relation->getDestinationContentInfo()->id)));
$generator->endAttribute('href');
$generator->endObjectElement('DestinationContent');
if ($data->relation->sourceFieldDefinitionIdentifier !== null) {
$generator->startValueElement('SourceFieldDefinitionIdentifier', $data->relation->sourceFieldDefinitionIdentifier);
$generator->endValueElement('SourceFieldDefinitionIdentifier');
}
$generator->startValueElement('RelationType', $this->getRelationTypeString($data->relation->type));
$generator->endValueElement('RelationType');
$generator->endObjectElement('Relation');
}