From 9db3d8effbab99959a37841ca44709fac42edad9 Mon Sep 17 00:00:00 2001 From: Pascal Wittmann Date: Thu, 27 Feb 2025 00:16:24 +0100 Subject: [PATCH] Do not set drgElementIds for non-drg elements without parents --- .../dmncheck/server/ValidationServer.java | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/server/src/main/java/de/redsix/dmncheck/server/ValidationServer.java b/server/src/main/java/de/redsix/dmncheck/server/ValidationServer.java index 13a8eac3..851a58d4 100644 --- a/server/src/main/java/de/redsix/dmncheck/server/ValidationServer.java +++ b/server/src/main/java/de/redsix/dmncheck/server/ValidationServer.java @@ -83,23 +83,28 @@ private JSONObject validationResultsToJson(final List validati .put( "items", validationResults.stream() - .map(vr -> new JSONObject() - .put("id", vr.getElement().getAttributeValue("id")) - .put( - "drgElementId", - getDrgElementParent(vr.getElement()) - .getAttributeValue("id")) - .put("message", vr.getMessage()) - .put("severity", vr.getSeverity().toString())) + .map(vr -> { + JSONObject json = new JSONObject() + .put("id", vr.getElement().getAttributeValue("id")) + .put("message", vr.getMessage()) + .put("severity", vr.getSeverity().toString()); + + getCorrespondingDrgElement(vr.getElement()) + .ifPresent(drgElement -> + json.put("drgElementId", drgElement.getAttributeValue("id"))); + + return json; + }) .collect(Collectors.toList())); } - private DrgElement getDrgElementParent(final ModelElementInstance elementInstance) { - + private Optional getCorrespondingDrgElement(final ModelElementInstance elementInstance) { if (elementInstance instanceof DrgElement) { - return (DrgElement) elementInstance; + return Optional.of((DrgElement) elementInstance); + } else if (elementInstance.getParentElement() == null) { + return Optional.empty(); } else { - return this.getDrgElementParent(elementInstance.getParentElement()); + return this.getCorrespondingDrgElement(elementInstance.getParentElement()); } }