/**
* Resolves the targeted fields for this criterion.
*
* @param \eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion
*
* @return array
*/
protected function getTargetFieldNames(Criterion $criterion)
{
if ($criterion->target != null) {
return $this->fieldNameResolver->getFieldNames($criterion, $criterion->target, $this->fieldTypeIdentifier, $this->fieldName);
}
$targetFieldNames = array();
foreach ($this->contentTypeHandler->getSearchableFieldMap() as $fieldDefinitions) {
foreach ($fieldDefinitions as $fieldIdentifier => $fieldDefinition) {
if (!isset($fieldDefinition['field_type_identifier'])) {
continue;
}
if ($fieldDefinition['field_type_identifier'] != $this->fieldTypeIdentifier) {
continue;
}
$solrFieldNames = $this->fieldNameResolver->getFieldNames($criterion, $fieldIdentifier, $this->fieldTypeIdentifier, $this->fieldName);
$targetFieldNames = array_merge($targetFieldNames, $solrFieldNames);
}
}
return array_values(array_unique($targetFieldNames));
}