From 2d35a3d6653c658b7716bd136b5fbe040b5ab070 Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Fri, 25 Oct 2019 13:57:51 +0300 Subject: [PATCH] Refactors ListHelper's method not to be static. --- .../java/eu/eudat/logic/managers/FunderManager.java | 6 ++++-- .../java/eu/eudat/logic/managers/GrantManager.java | 12 ++++-------- .../java/eu/eudat/logic/managers/ProjectManager.java | 6 ++++-- .../eu/eudat/logic/utilities/helpers/ListHelper.java | 5 ++++- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/FunderManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/FunderManager.java index e661e7ff2..1db66f391 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/FunderManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/FunderManager.java @@ -25,10 +25,12 @@ public class FunderManager { private ApiContext apiContext; private RemoteFetcher remoteFetcher; + private ListHelper listHelper; - public FunderManager(ApiContext apiContext, RemoteFetcher remoteFetcher) { + public FunderManager(ApiContext apiContext, RemoteFetcher remoteFetcher, ListHelper listHelper) { this.apiContext = apiContext; this.remoteFetcher = remoteFetcher; + this.listHelper = listHelper; } public List getCriteriaWithExternal(FunderCriteriaRequest funderCriteria, Principal principal) throws HugeResultSet, NoURLFound { @@ -55,7 +57,7 @@ public class FunderManager { funders.add(funder); } funders.sort(Comparator.comparing(Funder::getLabel)); - funders = funders.stream().filter(ListHelper.distinctByKey(Funder::getLabel)).collect(Collectors.toList()); + funders = funders.stream().filter(listHelper.distinctByKey(Funder::getLabel)).collect(Collectors.toList()); return funders; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/GrantManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/GrantManager.java index 116879f5b..61e16e675 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/GrantManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/GrantManager.java @@ -4,18 +4,14 @@ import eu.eudat.data.dao.criteria.FunderCriteria; import eu.eudat.data.entities.Funder; import eu.eudat.data.query.items.table.grant.GrantTableRequest; import eu.eudat.exceptions.grant.GrantWithDMPsDeleteException; -import eu.eudat.logic.builders.entity.ContentBuilder; import eu.eudat.logic.builders.model.models.GrantBuilder; import eu.eudat.data.dao.entities.GrantDao; -import eu.eudat.data.entities.Content; import eu.eudat.data.entities.DMP; -import eu.eudat.exceptions.files.TempFileNotFoundException; import eu.eudat.logic.proxy.config.ExternalUrlCriteria; import eu.eudat.logic.services.operations.DatabaseRepository; import eu.eudat.logic.utilities.helpers.ListHelper; import eu.eudat.models.data.external.ExternalSourcesItemModel; import eu.eudat.models.data.external.GrantsExternalSourcesModel; -import eu.eudat.models.data.files.ContentFile; import eu.eudat.models.data.grant.Grant; import eu.eudat.models.data.helpers.common.DataTableData; import eu.eudat.data.query.items.item.grant.GrantCriteriaRequest; @@ -29,8 +25,6 @@ import eu.eudat.logic.services.ApiContext; import eu.eudat.logic.services.helpers.FileStorageService; import org.springframework.stereotype.Component; -import java.io.IOException; -import java.text.ParseException; import java.util.Comparator; import java.util.List; import java.util.Map; @@ -45,12 +39,14 @@ public class GrantManager { private DatabaseRepository databaseRepository; private FileStorageService fileStorageService; private RemoteFetcher remoteFetcher; + private ListHelper listHelper; - public GrantManager(ApiContext apiContext) { + public GrantManager(ApiContext apiContext, ListHelper listHelper) { this.apiContext = apiContext; this.databaseRepository = apiContext.getOperationsContext().getDatabaseRepository(); this.fileStorageService = apiContext.getOperationsContext().getFileStorageService(); this.remoteFetcher = apiContext.getOperationsContext().getRemoteFetcher(); + this.listHelper = listHelper; } public DataTableData getPaged(GrantTableRequest grantTableRequest, Principal principal, String fieldsGroup) throws Exception { @@ -142,7 +138,7 @@ public class GrantManager { grants.add(grant); } grants.sort(Comparator.comparing(Grant::getLabel)); - grants = grants.stream().filter(ListHelper.distinctByKey(Grant::getLabel)).collect(Collectors.toList()); + grants = grants.stream().filter(listHelper.distinctByKey(Grant::getLabel)).collect(Collectors.toList()); return grants; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java index fd7bff87b..bd9b494b0 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java @@ -25,10 +25,12 @@ public class ProjectManager { private ApiContext apiContext; private RemoteFetcher remoteFetcher; + private ListHelper listHelper; - public ProjectManager(ApiContext apiContext) { + public ProjectManager(ApiContext apiContext, ListHelper listHelper) { this.apiContext = apiContext; this.remoteFetcher = apiContext.getOperationsContext().getRemoteFetcher(); + this.listHelper = listHelper; } public List getCriteriaWithExternal(ProjectCriteriaRequest projectCriteria, Principal principal) throws HugeResultSet, NoURLFound { @@ -52,7 +54,7 @@ public class ProjectManager { projects.add(project); } projects.sort(Comparator.comparing(Project::getLabel)); - projects = projects.stream().filter(ListHelper.distinctByKey(Project::getLabel)).collect(Collectors.toList()); + projects = projects.stream().filter(listHelper.distinctByKey(Project::getLabel)).collect(Collectors.toList()); return projects; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/ListHelper.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/ListHelper.java index 110fff44d..8857e4481 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/ListHelper.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/helpers/ListHelper.java @@ -1,13 +1,16 @@ package eu.eudat.logic.utilities.helpers; +import org.springframework.stereotype.Component; + import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.function.Predicate; +@Component public class ListHelper { - public static Predicate distinctByKey(Function keyExtractor) { + public Predicate distinctByKey(Function keyExtractor) { Map seen = new ConcurrentHashMap<>(); return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; }