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())); .collect(Collectors.toList()));
} }
DiscoverySearchFilterFacet matchingFacet = null; DiscoverySearchFilterFacet matchingFacet = null;
for (DiscoverySearchFilterFacet facetConfig : searchConfigurationService.getAllFacetsConfig()) { for (DiscoverySearchFilterFacet facetConfig : searchConfigurationService.getAllUniqueFacetsConfig()) {
boolean coversAllFieldsFromVocab = true; boolean coversAllFieldsFromVocab = true;
for (String fieldFromVocab: metadataFields) { for (String fieldFromVocab: metadataFields) {
boolean coversFieldFromVocab = false; boolean coversFieldFromVocab = false;

View File

@@ -10,8 +10,10 @@ package org.dspace.discovery.configuration;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap; 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() { public List<DiscoverySearchFilterFacet> getAllUniqueFacetsConfig() {
List<DiscoverySearchFilterFacet> configs = new ArrayList<>(); Set<DiscoverySearchFilterFacet> configs = new LinkedHashSet<>();
for (String key : map.keySet()) { for (String key : map.keySet()) {
DiscoveryConfiguration config = map.get(key); DiscoveryConfiguration config = map.get(key);
configs.addAll(config.getSidebarFacets()); configs.addAll(config.getSidebarFacets());
} }
return configs; return new ArrayList<>(configs);
} }
public static void main(String[] args) { public static void main(String[] args) {