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 c07d482..498e627 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 5f56ea0..46128f4 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; } }