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

visit() public method

Visit struct returned by controllers.
public visit ( Visitor $visitor, Generator $generator, ContentTypeGroupRefList $data )
$visitor eZ\Publish\Core\REST\Common\Output\Visitor
$generator eZ\Publish\Core\REST\Common\Output\Generator
$data eZ\Publish\Core\REST\Server\Values\ContentTypeGroupRefList
    public function visit(Visitor $visitor, Generator $generator, $data)
    {
        $generator->startObjectElement('ContentTypeGroupRefList');
        $visitor->setHeader('Content-Type', $generator->getMediaType('ContentTypeGroupRefList'));
        $generator->startAttribute('href', $this->router->generate('ezpublish_rest_listContentTypesForGroup', array('contentTypeGroupId' => $data->contentType->id)));
        $generator->endAttribute('href');
        $groupCount = count($data->contentTypeGroups);
        $generator->startList('ContentTypeGroupRef');
        foreach ($data->contentTypeGroups as $contentTypeGroup) {
            $generator->startObjectElement('ContentTypeGroupRef', 'ContentTypeGroup');
            $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentTypeGroup', array('contentTypeGroupId' => $contentTypeGroup->id)));
            $generator->endAttribute('href');
            // Unlinking last group is not allowed
            if ($groupCount > 1) {
                $generator->startHashElement('unlink');
                $generator->startAttribute('href', $this->router->generate('ezpublish_rest_unlinkContentTypeFromGroup', array('contentTypeId' => $data->contentType->id, 'contentTypeGroupId' => $contentTypeGroup->id)));
                $generator->endAttribute('href');
                $generator->startAttribute('method', 'DELETE');
                $generator->endAttribute('method');
                $generator->endHashElement('unlink');
            }
            $generator->endObjectElement('ContentTypeGroupRef');
        }
        $generator->endList('ContentTypeGroupRef');
        $generator->endObjectElement('ContentTypeGroupRefList');
    }
ContentTypeGroupRefList