From 8c0dea90790110c4ddf57e16cee5436297404702 Mon Sep 17 00:00:00 2001 From: Bogdan Kostov Date: Sat, 8 Jun 2024 17:55:39 +0200 Subject: [PATCH] [Fix kbss-cvut/fta-fmea-ui#374] Update API fetching list of reusable event types for creating fault events in fault tree to take fault tree uri as argument. Exclude root node type from the list. - --- .../analysis/controller/FaultEventController.java | 8 ++++---- .../service/FaultEventRepositoryService.java | 13 +++++++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/cz/cvut/kbss/analysis/controller/FaultEventController.java b/src/main/java/cz/cvut/kbss/analysis/controller/FaultEventController.java index c07d4826..498e6276 100755 --- a/src/main/java/cz/cvut/kbss/analysis/controller/FaultEventController.java +++ b/src/main/java/cz/cvut/kbss/analysis/controller/FaultEventController.java @@ -81,10 +81,10 @@ public List getTopFaultEvents(@PathVariable String systemFragmen return repositoryService.getTopFaultEvents(systemUri); } - @GetMapping(value = "/all-fault-events/{systemFragment}", produces = {MediaType.APPLICATION_JSON_VALUE, JsonLd.MEDIA_TYPE}) - public List getAllFaultEvents(@PathVariable String systemFragment){ - log.info("> getFaultEventTypes - {}", systemFragment); - URI systemUri = identifierService.composeIdentifier(Vocabulary.s_c_system, systemFragment); + @GetMapping(value = "/all-fault-events/{faultTreeFragment}", produces = {MediaType.APPLICATION_JSON_VALUE, JsonLd.MEDIA_TYPE}) + public List getAllFaultEvents(@PathVariable String faultTreeFragment){ + log.info("> getFaultEventTypes - {}", faultTreeFragment); + URI systemUri = identifierService.composeIdentifier(Vocabulary.s_c_fault_tree, faultTreeFragment); return repositoryService.getAllFaultEvents(systemUri); } diff --git a/src/main/java/cz/cvut/kbss/analysis/service/FaultEventRepositoryService.java b/src/main/java/cz/cvut/kbss/analysis/service/FaultEventRepositoryService.java index 5f56ea06..46128f40 100755 --- a/src/main/java/cz/cvut/kbss/analysis/service/FaultEventRepositoryService.java +++ b/src/main/java/cz/cvut/kbss/analysis/service/FaultEventRepositoryService.java @@ -194,7 +194,16 @@ protected void setChange(FaultEvent instance){ public List getTopFaultEvents(URI systemUri) { return faultEventDao.getTopFaultEvents(systemUri); } - public List getAllFaultEvents(URI systemUri) { - return faultEventDao.getAllFaultEvents(systemUri); + + public List getAllFaultEvents(URI faultTreeUri) { + FaultTree ftSummary = faultTreeDao.findSummary(faultTreeUri); + List ret = faultEventDao.getAllFaultEvents(ftSummary.getSystem().getUri()); + Set typesToRemove = Optional.ofNullable(ftSummary.getManifestingEvent()).map(r -> r.getSupertypes()) + .filter(s -> s !=null && !s.isEmpty()) + .map(s -> s.stream().map(t -> t.getUri()).collect(Collectors.toSet())) + .orElse(null); + return typesToRemove != null + ? ret.stream().filter(t -> !typesToRemove.contains(t.getUri())).toList() + : ret; } }