protected function mapFieldsForCreate(APIContentCreateStruct $contentCreateStruct)
{
$fields = array();
foreach ($contentCreateStruct->fields as $field) {
$fieldDefinition = $contentCreateStruct->contentType->getFieldDefinition($field->fieldDefIdentifier);
if ($fieldDefinition === null) {
throw new ContentValidationException("Field definition '%identifier%' does not exist in given ContentType", ['%identifier%' => $field->fieldDefIdentifier]);
}
if ($field->languageCode === null) {
$field = $this->cloneField($field, array('languageCode' => $contentCreateStruct->mainLanguageCode));
}
if (!$fieldDefinition->isTranslatable && $field->languageCode != $contentCreateStruct->mainLanguageCode) {
throw new ContentValidationException("A value is set for non translatable field definition '%identifier%' with language '%languageCode%'", ['%identifier%' => $field->fieldDefIdentifier, '%languageCode%' => $field->languageCode]);
}
$fields[$field->fieldDefIdentifier][$field->languageCode] = $field;
}
return $fields;
}