buildRelationDomainObject() public method

Builds API Relation object from provided SPI Relation object.
public buildRelationDomainObject ( eZ\Publish\SPI\Persistence\Content\Relation $spiRelation, eZ\Publish\API\Repository\Values\Content\ContentInfo $sourceContentInfo, eZ\Publish\API\Repository\Values\Content\ContentInfo $destinationContentInfo ) : eZ\Publish\API\Repository\Values\Content\Relation
$spiRelation eZ\Publish\SPI\Persistence\Content\Relation
$sourceContentInfo eZ\Publish\API\Repository\Values\Content\ContentInfo
$destinationContentInfo eZ\Publish\API\Repository\Values\Content\ContentInfo
return eZ\Publish\API\Repository\Values\Content\Relation
 /**
  * Adds a relation of type common.
  *
  * The source of the relation is the content and version
  * referenced by $versionInfo.
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException if the user is not allowed to edit this version
  * @throws \eZ\Publish\API\Repository\Exceptions\BadStateException if the version is not a draft
  *
  * @param \eZ\Publish\API\Repository\Values\Content\VersionInfo $sourceVersion
  * @param \eZ\Publish\API\Repository\Values\Content\ContentInfo $destinationContent the destination of the relation
  *
  * @return \eZ\Publish\API\Repository\Values\Content\Relation the newly created relation
  */
 public function addRelation(APIVersionInfo $sourceVersion, ContentInfo $destinationContent)
 {
     $sourceVersion = $this->loadVersionInfoById($sourceVersion->contentInfo->id, $sourceVersion->versionNo);
     if ($sourceVersion->status !== APIVersionInfo::STATUS_DRAFT) {
         throw new BadStateException('$sourceVersion', 'Relations of type common can only be added to versions of status draft');
     }
     if (!$this->repository->canUser('content', 'edit', $sourceVersion)) {
         throw new UnauthorizedException('content', 'edit', array('contentId' => $sourceVersion->contentInfo->id));
     }
     $sourceContentInfo = $sourceVersion->getContentInfo();
     $this->repository->beginTransaction();
     try {
         $spiRelation = $this->persistenceHandler->contentHandler()->addRelation(new SPIRelationCreateStruct(array('sourceContentId' => $sourceContentInfo->id, 'sourceContentVersionNo' => $sourceVersion->versionNo, 'sourceFieldDefinitionId' => null, 'destinationContentId' => $destinationContent->id, 'type' => APIRelation::COMMON)));
         $this->repository->commit();
     } catch (Exception $e) {
         $this->repository->rollback();
         throw $e;
     }
     return $this->domainMapper->buildRelationDomainObject($spiRelation, $sourceContentInfo, $destinationContent);
 }