buildContentTypeDraftDomainObject() public method

Builds a ContentTypeDraft domain object from value object returned by persistence Decorates ContentType.
public buildContentTypeDraftDomainObject ( eZ\Publish\SPI\Persistence\Content\Type $spiContentType, array $spiContentTypeGroups ) : eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft
$spiContentType eZ\Publish\SPI\Persistence\Content\Type
$spiContentTypeGroups array
return eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft
 /**
  * Creates a draft from an existing content type.
  *
  * This is a complete copy of the content
  * type which has the state STATUS_DRAFT.
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException if the user is not allowed to edit a content type
  * @throws \eZ\Publish\API\Repository\Exceptions\BadStateException If there is already a draft assigned to another user
  *
  * @param \eZ\Publish\API\Repository\Values\ContentType\ContentType $contentType
  *
  * @return \eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft
  */
 public function createContentTypeDraft(APIContentType $contentType)
 {
     if ($this->repository->hasAccess('class', 'create') !== true) {
         throw new UnauthorizedException('ContentType', 'create');
     }
     try {
         $this->contentTypeHandler->load($contentType->id, SPIContentType::STATUS_DRAFT);
         throw new BadStateException('$contentType', 'Draft of the ContentType already exists');
     } catch (APINotFoundException $e) {
         $this->repository->beginTransaction();
         try {
             $spiContentType = $this->contentTypeHandler->createDraft($this->repository->getCurrentUserReference()->getUserId(), $contentType->id);
             $this->repository->commit();
         } catch (Exception $e) {
             $this->repository->rollback();
             throw $e;
         }
     }
     return $this->contentTypeDomainMapper->buildContentTypeDraftDomainObject($spiContentType, array_map(function ($id) {
         return $this->contentTypeHandler->loadGroup($id);
     }, $spiContentType->groupIds));
 }