eZ\Publish\Core\Repository\Tests\Service\Mock\ContentTest::determineValuesForUpdate PHP Method

determineValuesForUpdate() protected method

Returns full, possibly redundant array of field values, indexed by field definition identifier and language code.
protected determineValuesForUpdate ( string $initialLanguageCode, array $structFields, Content $content, array $fieldDefinitions, array $languageCodes ) : array
$initialLanguageCode string
$structFields array
$content eZ\Publish\Core\Repository\Values\Content\Content
$fieldDefinitions array
$languageCodes array
return array
    protected function determineValuesForUpdate($initialLanguageCode, array $structFields, Content $content, array $fieldDefinitions, array $languageCodes)
    {
        $mainLanguageCode = $content->versionInfo->contentInfo->mainLanguageCode;
        $mappedStructFields = $this->mapStructFieldsForUpdate($initialLanguageCode, $structFields, $mainLanguageCode, $fieldDefinitions);
        $values = array();
        foreach ($fieldDefinitions as $fieldDefinition) {
            $identifier = $fieldDefinition->identifier;
            foreach ($languageCodes as $languageCode) {
                if (!$fieldDefinition->isTranslatable) {
                    if (isset($mappedStructFields[$identifier][$mainLanguageCode])) {
                        $values[$identifier][$languageCode] = $mappedStructFields[$identifier][$mainLanguageCode];
                    } else {
                        $values[$identifier][$languageCode] = (string) $content->fields[$identifier][$mainLanguageCode];
                    }
                    continue;
                }
                if (isset($mappedStructFields[$identifier][$languageCode])) {
                    $values[$identifier][$languageCode] = $mappedStructFields[$identifier][$languageCode];
                    continue;
                }
                if (isset($content->fields[$identifier][$languageCode])) {
                    $values[$identifier][$languageCode] = (string) $content->fields[$identifier][$languageCode];
                    continue;
                }
                $values[$identifier][$languageCode] = (string) $fieldDefinition->defaultValue;
            }
        }
        return $this->stubValues($values);
    }
ContentTest