public function mapFields(Content $content, $languageCode)
{
$fields = [];
$contentType = $this->contentTypeHandler->load($content->versionInfo->contentInfo->contentTypeId);
foreach ($content->fields as $field) {
if ($field->languageCode !== $languageCode) {
continue;
}
foreach ($contentType->fieldDefinitions as $fieldDefinition) {
if ($fieldDefinition->id !== $field->fieldDefinitionId) {
continue;
}
$fieldType = $this->fieldRegistry->getType($field->type);
$indexFields = $fieldType->getIndexData($field, $fieldDefinition);
foreach ($indexFields as $indexField) {
if ($indexField->value === null) {
continue;
}
$documentField = new Field($name = $this->fieldNameGenerator->getName($indexField->name, $fieldDefinition->identifier, $contentType->identifier), $indexField->value, $indexField->type);
$this->appendField($fields, $fieldDefinition, $documentField);
}
}
}
return $fields;
}