Merge pull request #10671 from DSpace/backport-10669-to-dspace-7_x

[Port dspace-7_x] Make DiscoveryConfigurationService "get all facet configs" return UNIQUE set
This commit is contained in:
Tim Donohue
2025-04-29 14:00:45 -05:00
committed by GitHub
2 changed files with 11 additions and 5 deletions

View File

@@ -577,7 +577,7 @@ public final class ChoiceAuthorityServiceImpl implements ChoiceAuthorityService
.collect(Collectors.toList()));
}
DiscoverySearchFilterFacet matchingFacet = null;
for (DiscoverySearchFilterFacet facetConfig : searchConfigurationService.getAllFacetsConfig()) {
for (DiscoverySearchFilterFacet facetConfig : searchConfigurationService.getAllUniqueFacetsConfig()) {
boolean coversAllFieldsFromVocab = true;
for (String fieldFromVocab: metadataFields) {
boolean coversFieldFromVocab = false;

View File

@@ -10,8 +10,10 @@ package org.dspace.discovery.configuration;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
@@ -197,15 +199,19 @@ public class DiscoveryConfigurationService {
}
/**
* @return All configurations for {@link org.dspace.discovery.configuration.DiscoverySearchFilterFacet}
* Get the unique set of configured Discovery facets. This is used when inspecting configuration
* to include hierarchical vocabularies in the browse menu.
*
* @return All unique instances of {@link org.dspace.discovery.configuration.DiscoverySearchFilterFacet}
* included in "sidebarFacets" bean, across all Discovery configurations.
*/
public List<DiscoverySearchFilterFacet> getAllFacetsConfig() {
List<DiscoverySearchFilterFacet> configs = new ArrayList<>();
public List<DiscoverySearchFilterFacet> getAllUniqueFacetsConfig() {
Set<DiscoverySearchFilterFacet> configs = new LinkedHashSet<>();
for (String key : map.keySet()) {
DiscoveryConfiguration config = map.get(key);
configs.addAll(config.getSidebarFacets());
}
return configs;
return new ArrayList<>(configs);
}
public static void main(String[] args) {