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;
}
public List<EpAppFunction> 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 <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
+ List<Object> seen = new ArrayList<>();
+ return t -> seen.add(keyExtractor.apply(t));
}
}