From fa073b1cf2dc94637ade21b7cac219436fe0ae4b Mon Sep 17 00:00:00 2001 From: jstaerk Date: Tue, 26 Nov 2024 15:51:19 +0100 Subject: [PATCH] log error ids --- History.md | 1 + .../validator/ValidationContext.java | 16 ++++++++++++++++ .../validator/ValidationResultItem.java | 10 ++++++++++ .../mustangproject/validator/XMLValidator.java | 8 +++++--- .../validator/ZUGFeRDValidator.java | 2 +- 5 files changed, 33 insertions(+), 4 deletions(-) diff --git a/History.md b/History.md index 7f268e79..d1075f4d 100644 --- a/History.md +++ b/History.md @@ -7,6 +7,7 @@ ? log error IDs - closes #579 - #581 +- log error ids 2.15.0 ======= diff --git a/validator/src/main/java/org/mustangproject/validator/ValidationContext.java b/validator/src/main/java/org/mustangproject/validator/ValidationContext.java index a74c9f1c..73b95f2e 100644 --- a/validator/src/main/java/org/mustangproject/validator/ValidationContext.java +++ b/validator/src/main/java/org/mustangproject/validator/ValidationContext.java @@ -135,6 +135,22 @@ public class ValidationContext { return String.join(",", errorcodes); } + /*** + * + * @return the unique error IDs as comma separated string + */ + public String getCSVIDResult() { + final ArrayList errorIDs = new ArrayList<>(); + for (final ValidationResultItem validationResultItem : results) { + if (!validationResultItem.getID().isEmpty()) { + final String errorID=validationResultItem.getID(); + errorIDs.add(errorID); + + } + } + return String.join(",", errorIDs); + } + public void setInvalid() { isValid = false; } diff --git a/validator/src/main/java/org/mustangproject/validator/ValidationResultItem.java b/validator/src/main/java/org/mustangproject/validator/ValidationResultItem.java index d5a9b244..b0d6b5a1 100644 --- a/validator/src/main/java/org/mustangproject/validator/ValidationResultItem.java +++ b/validator/src/main/java/org/mustangproject/validator/ValidationResultItem.java @@ -12,6 +12,7 @@ public class ValidationResultItem { protected String message, location=null; protected int section =-1; + protected String id =""; // e.g. "FX-SCH-A-000026" private ESeverity severity=ESeverity.error; @@ -103,6 +104,15 @@ public class ValidationResultItem { return severity; } + public ValidationResultItem setID(String id) { + this.id=id; + return this; + } + + public String getID() { + return id; + } + public int getSection() { return section; } diff --git a/validator/src/main/java/org/mustangproject/validator/XMLValidator.java b/validator/src/main/java/org/mustangproject/validator/XMLValidator.java index 48dfd6f6..632b56f8 100644 --- a/validator/src/main/java/org/mustangproject/validator/XMLValidator.java +++ b/validator/src/main/java/org/mustangproject/validator/XMLValidator.java @@ -453,6 +453,7 @@ public class XMLValidator extends Validator { String thisFailText = ""; String thisFailID = ""; + String thisFailIDStr = ""; String thisFailTest = ""; String thisFailLocation = ""; if (failedAsserts.getLength() > 0) { @@ -461,7 +462,8 @@ public class XMLValidator extends Validator { //nodes.item(i).getTextContent())) { Node currentFailNode = failedAsserts.item(nodeIndex); if (currentFailNode.getAttributes().getNamedItem("id") != null) { - thisFailID = " [ID " + currentFailNode.getAttributes().getNamedItem("id").getNodeValue() + "]"; + thisFailID = currentFailNode.getAttributes().getNamedItem("id").getNodeValue(); + thisFailIDStr = " [ID " + thisFailID + "]"; } if (currentFailNode.getAttributes().getNamedItem("test") != null) { thisFailTest = currentFailNode.getAttributes().getNamedItem("test").getNodeValue(); @@ -494,8 +496,8 @@ public class XMLValidator extends Validator { LOGGER.info("FailedAssert ", thisFailText); - context.addResultItem(new ValidationResultItem(severity, thisFailText + thisFailID + " from " + xsltFilename + ")") - .setLocation(thisFailLocation).setCriterion(thisFailTest).setSection(section) + context.addResultItem(new ValidationResultItem(severity, thisFailText + thisFailIDStr + " from " + xsltFilename + ")") + .setLocation(thisFailLocation).setCriterion(thisFailTest).setSection(section).setID(thisFailID) .setPart(EPart.fx)); failedRules++; diff --git a/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java b/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java index edd9a73d..d21317b1 100644 --- a/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java +++ b/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java @@ -318,7 +318,7 @@ public class ZUGFeRDValidator { LOGGER.info("Parsed PDF:" + pdfResult + " XML:" + (xmlValidity ? "valid" : "invalid") + " Signature:" + Signature + " Checksum:" + sha1Checksum + " Profile:" + context.getProfile() + " Version:" + context.getGeneration() + " Took:" + duration + "ms Errors:[" + context.getCSVResult() - + "] " + toBeAppended); + + "] ErrorIDs: [" + context.getCSVIDResult() + "]" + toBeAppended); wasCompletelyValid = ((pdfValidity) && (xmlValidity)); return sw.toString(); }