mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-17 06:53:09 +00:00
Make getAllFacetConfigs unique
Improve performance and debuggability by refactoring getAllFacetConfigs to getAllUniqueFacetConfigs. Used only by ChoiceAuthorityService to generate hierarchical vocabulary map for the browse menu, etc.
This commit is contained in:
@@ -581,7 +581,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;
|
||||||
|
@@ -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) {
|
||||||
|
Reference in New Issue
Block a user