eZ\Publish\Core\Repository\ContentTypeService::validateInputContentTypeCreateStruct PHP Method

validateInputContentTypeCreateStruct() protected method

Validates input ContentType create struct.
protected validateInputContentTypeCreateStruct ( eZ\Publish\API\Repository\Values\ContentType\ContentTypeCreateStruct $contentTypeCreateStruct )
$contentTypeCreateStruct eZ\Publish\API\Repository\Values\ContentType\ContentTypeCreateStruct
    protected function validateInputContentTypeCreateStruct(APIContentTypeCreateStruct $contentTypeCreateStruct)
    {
        // Required properties
        if ($contentTypeCreateStruct->identifier === null) {
            throw new InvalidArgumentException('$contentTypeCreateStruct', "Property 'identifier' is required");
        }
        if (!is_string($contentTypeCreateStruct->identifier)) {
            throw new InvalidArgumentType('$contentTypeCreateStruct->identifier', 'string', $contentTypeCreateStruct->identifier);
        }
        if ($contentTypeCreateStruct->identifier === '') {
            throw new InvalidArgumentValue('$contentTypeCreateStruct->identifier', $contentTypeCreateStruct->identifier);
        }
        if ($contentTypeCreateStruct->mainLanguageCode === null) {
            throw new InvalidArgumentException('$contentTypeCreateStruct', "Property 'mainLanguageCode' is required");
        }
        if (!is_string($contentTypeCreateStruct->mainLanguageCode)) {
            throw new InvalidArgumentType('$contentTypeCreateStruct->mainLanguageCode', 'string', $contentTypeCreateStruct->mainLanguageCode);
        }
        if ($contentTypeCreateStruct->mainLanguageCode === '') {
            throw new InvalidArgumentValue('$contentTypeCreateStruct->mainLanguageCode', $contentTypeCreateStruct->mainLanguageCode);
        }
        if ($contentTypeCreateStruct->names !== null) {
            $this->domainMapper->validateTranslatedList($contentTypeCreateStruct->names, '$contentTypeCreateStruct->names');
        }
        if (!isset($contentTypeCreateStruct->names[$contentTypeCreateStruct->mainLanguageCode]) || $contentTypeCreateStruct->names[$contentTypeCreateStruct->mainLanguageCode] === '') {
            throw new InvalidArgumentException('$contentTypeCreateStruct->names', 'At least one name in the main language is required');
        }
        // Optional properties
        if ($contentTypeCreateStruct->descriptions !== null) {
            $this->domainMapper->validateTranslatedList($contentTypeCreateStruct->descriptions, '$contentTypeCreateStruct->descriptions');
        }
        if ($contentTypeCreateStruct->defaultSortField !== null && !$this->domainMapper->isValidLocationSortField($contentTypeCreateStruct->defaultSortField)) {
            throw new InvalidArgumentValue('$contentTypeCreateStruct->defaultSortField', $contentTypeCreateStruct->defaultSortField);
        }
        if ($contentTypeCreateStruct->defaultSortOrder !== null && !$this->domainMapper->isValidLocationSortOrder($contentTypeCreateStruct->defaultSortOrder)) {
            throw new InvalidArgumentValue('$contentTypeCreateStruct->defaultSortOrder', $contentTypeCreateStruct->defaultSortOrder);
        }
        if ($contentTypeCreateStruct->creatorId !== null) {
            $this->repository->getUserService()->loadUser($contentTypeCreateStruct->creatorId);
        }
        if ($contentTypeCreateStruct->creationDate !== null && !$contentTypeCreateStruct->creationDate instanceof DateTime) {
            throw new InvalidArgumentType('$contentTypeCreateStruct->creationDate', 'DateTime', $contentTypeCreateStruct->creationDate);
        }
        if ($contentTypeCreateStruct->defaultAlwaysAvailable !== null && !is_bool($contentTypeCreateStruct->defaultAlwaysAvailable)) {
            throw new InvalidArgumentType('$contentTypeCreateStruct->defaultAlwaysAvailable', 'boolean', $contentTypeCreateStruct->defaultAlwaysAvailable);
        }
        if ($contentTypeCreateStruct->isContainer !== null && !is_bool($contentTypeCreateStruct->isContainer)) {
            throw new InvalidArgumentType('$contentTypeCreateStruct->isContainer', 'boolean', $contentTypeCreateStruct->isContainer);
        }
        if ($contentTypeCreateStruct->remoteId !== null && !is_string($contentTypeCreateStruct->remoteId)) {
            throw new InvalidArgumentType('$contentTypeCreateStruct->remoteId', 'string', $contentTypeCreateStruct->remoteId);
        }
        if ($contentTypeCreateStruct->nameSchema !== null && !is_string($contentTypeCreateStruct->nameSchema)) {
            throw new InvalidArgumentType('$contentTypeCreateStruct->nameSchema', 'string', $contentTypeCreateStruct->nameSchema);
        }
        if ($contentTypeCreateStruct->urlAliasSchema !== null && !is_string($contentTypeCreateStruct->urlAliasSchema)) {
            throw new InvalidArgumentType('$contentTypeCreateStruct->urlAliasSchema', 'string', $contentTypeCreateStruct->urlAliasSchema);
        }
        foreach ($contentTypeCreateStruct->fieldDefinitions as $key => $fieldDefinitionCreateStruct) {
            if (!$fieldDefinitionCreateStruct instanceof FieldDefinitionCreateStruct) {
                throw new InvalidArgumentType("\$contentTypeCreateStruct->fieldDefinitions[{$key}]", 'eZ\\Publish\\API\\Repository\\Values\\ContentType\\FieldDefinitionCreateStruct', $fieldDefinitionCreateStruct);
            }
            $this->validateInputFieldDefinitionCreateStruct($fieldDefinitionCreateStruct, "\$contentTypeCreateStruct->fieldDefinitions[{$key}]");
        }
    }