eZ\Publish\Core\REST\Server\Output\ValueObjectVisitor\UserGroupRefList::visit PHP Method

visit() public method

Visit struct returned by controllers.
public visit ( Visitor $visitor, Generator $generator, UserGroupRefList $data )
$visitor eZ\Publish\Core\REST\Common\Output\Visitor
$generator eZ\Publish\Core\REST\Common\Output\Generator
$data eZ\Publish\Core\REST\Server\Values\UserGroupRefList
    public function visit(Visitor $visitor, Generator $generator, $data)
    {
        $generator->startObjectElement('UserGroupRefList');
        $visitor->setHeader('Content-Type', $generator->getMediaType('UserGroupRefList'));
        //@todo Needs refactoring, disabling certain headers should not be done this way
        $visitor->setHeader('Accept-Patch', false);
        $generator->startAttribute('href', $data->path);
        $generator->endAttribute('href');
        $groupCount = count($data->userGroups);
        $generator->startList('UserGroup');
        foreach ($data->userGroups as $userGroup) {
            $generator->startObjectElement('UserGroup');
            $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUserGroup', array('groupPath' => trim($userGroup->mainLocation->pathString, '/'))));
            $generator->endAttribute('href');
            if ($data->userId !== null && $groupCount > 1) {
                $generator->startHashElement('unassign');
                $generator->startAttribute('href', $this->router->generate('ezpublish_rest_unassignUserFromUserGroup', array('userId' => $data->userId, 'groupPath' => $userGroup->mainLocation->path[count($userGroup->mainLocation->path) - 1])));
                $generator->endAttribute('href');
                $generator->startAttribute('method', 'DELETE');
                $generator->endAttribute('method');
                $generator->endHashElement('unassign');
            }
            $generator->endObjectElement('UserGroup');
        }
        $generator->endList('UserGroup');
        $generator->endObjectElement('UserGroupRefList');
    }
UserGroupRefList