@Override
public List<FacetField> translate(FacetResult facetResult, Locale locale) {
if (facetResult == null) {
return null;
}
List<FacetField> output = new ArrayList<FacetField>();
for (FieldFacetResult fieldFacetResult : facetResult.getFieldFacetResults()) {
FacetField facetField = new FacetField(fieldFacetResult.getFieldName());
for (Map.Entry<String, Long> entry : fieldFacetResult.getValues().entrySet()) {
if (wildcardContains(getTranslatedFields(), fieldFacetResult.getFieldName())) {
facetField.addValue(new FacetFieldValue(entry.getKey(), entry.getValue(), encodeField(fieldFacetResult.getFieldName(), entry.getKey(), locale)));
} else {
facetField.addValue(new FacetFieldValue(entry.getKey(), entry.getValue()));
}
}
if (wildcardContains(getSortFields(), fieldFacetResult.getFieldName())) {
Collections.sort(facetField.getValues(), getFacetComparator());
log.debug("Facet values for field {} sorted", fieldFacetResult.getFieldName());
}
output.add(facetField);
}
return output;
}