/**
* Visit struct returned by controllers.
*
* @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
* @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
* @param \eZ\Publish\Core\REST\Common\Values\Root $data
*/
public function visit(Visitor $visitor, Generator $generator, $data)
{
$generator->startObjectElement('Root');
$visitor->setHeader('Content-Type', $generator->getMediaType('Root'));
foreach ($data->getResources() as $resource) {
if ($resource->mediaType === '') {
$generator->startHashElement($resource->name);
$generator->startAttribute('media-type', $resource->mediaType);
$generator->endAttribute('media-type');
} else {
$generator->startObjectElement($resource->name, $resource->mediaType);
}
$generator->startAttribute('href', $resource->href);
$generator->endAttribute('href');
if ($resource->mediaType === '') {
$generator->endHashElement($resource->name);
} else {
$generator->endObjectElement($resource->name);
}
}
$generator->endObjectElement('Root');
}