protected function determineValuesForCreate($mainLanguageCode, array $structFields, array $fieldDefinitions, array $languageCodes)
{
$mappedStructFields = $this->mapStructFieldsForCreate($mainLanguageCode, $structFields, $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) $fieldDefinition->defaultValue;
}
continue;
}
if (isset($mappedStructFields[$identifier][$languageCode])) {
$values[$identifier][$languageCode] = $mappedStructFields[$identifier][$languageCode];
continue;
}
$values[$identifier][$languageCode] = (string) $fieldDefinition->defaultValue;
}
}
return $this->stubValues($values);
}