public function visit(Visitor $visitor, Generator $generator, $data)
{
$generator->startObjectElement('RoleAssignment');
$visitor->setHeader('Content-Type', $generator->getMediaType('RoleAssignment'));
$roleAssignment = $data->roleAssignment;
$role = $roleAssignment->getRole();
$generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadRoleAssignmentForUser', array('userId' => $data->id, 'roleId' => $role->id)));
$generator->endAttribute('href');
$roleLimitation = $roleAssignment->getRoleLimitation();
if ($roleLimitation instanceof RoleLimitation) {
$this->visitLimitation($generator, $roleLimitation);
}
$generator->startObjectElement('Role');
$generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadRole', array('roleId' => $role->id)));
$generator->endAttribute('href');
$generator->endObjectElement('Role');
$generator->endObjectElement('RoleAssignment');
}