X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=portal-BE%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fportal%2Fservice%2Fep%2FEpAppFunctionService.java;h=012983d3f18508784600bf83d478ff13ed9ba784;hb=39fb119cdaea6bd8d801b22d195db39f6d8faaca;hp=b3691fcef77f1bc373a459cbdc753bb69202e5c7;hpb=dd4c51e4349b596766f2fda555a7a0d3ba46e9fa;p=portal.git diff --git a/portal-BE/src/main/java/org/onap/portal/service/ep/EpAppFunctionService.java b/portal-BE/src/main/java/org/onap/portal/service/ep/EpAppFunctionService.java index b3691fce..012983d3 100644 --- a/portal-BE/src/main/java/org/onap/portal/service/ep/EpAppFunctionService.java +++ b/portal-BE/src/main/java/org/onap/portal/service/ep/EpAppFunctionService.java @@ -40,7 +40,12 @@ package org.onap.portal.service.ep; +import java.util.ArrayList; import java.util.List; +import java.util.Optional; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; import org.onap.portal.dao.ep.EpAppFunctionDao; import org.onap.portal.domain.db.ep.EpAppFunction; import org.springframework.beans.factory.annotation.Autowired; @@ -57,6 +62,18 @@ public class EpAppFunctionService { } public List getAppRoleFunctionList(final Long roleId, final Long appId) { - return epAppFunctionDao.getAppRoleFunctionList(roleId, appId); + + return Optional.of(epAppFunctionDao.getAppRoleFunctionList(roleId, appId)) + .orElse(new ArrayList<>()) + .stream() + .filter(distinctByKey(EpAppFunction::getAppId)) + .filter(distinctByKey(EpAppFunction::getFunctionCd)) + .filter(distinctByKey(EpAppFunction::getFunctionName)) + .collect(Collectors.toList()); + } + + private Predicate distinctByKey(Function keyExtractor) { + List seen = new ArrayList<>(); + return t -> seen.add(keyExtractor.apply(t)); } }