From 0f48ba306771ecabede1be858b9f80cfbb1a689f Mon Sep 17 00:00:00 2001 From: Yegor Bugayenko Date: Tue, 19 Nov 2024 13:36:08 +0300 Subject: [PATCH] #11 check lineno --- src/main/java/org/eolang/lints/LintByXsl.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/eolang/lints/LintByXsl.java b/src/main/java/org/eolang/lints/LintByXsl.java index 59238884..203b637d 100644 --- a/src/main/java/org/eolang/lints/LintByXsl.java +++ b/src/main/java/org/eolang/lints/LintByXsl.java @@ -31,6 +31,7 @@ import java.io.IOException; import java.util.Collection; import java.util.LinkedList; +import java.util.List; import org.cactoos.Input; import org.cactoos.io.ResourceOf; import org.cactoos.text.IoCheckedText; @@ -87,11 +88,23 @@ public Collection defects(final XML xmir) { final XML report = this.sheet.transform(xmir); final Collection defects = new LinkedList<>(); for (final XML defect : report.nodes("/defects/defect")) { + final List line = defect.xpath("@line"); + if (line.isEmpty()) { + throw new IllegalStateException( + String.format("No line number reported by %s", this.rule) + ); + } + final List severity = defect.xpath("@severity"); + if (severity.isEmpty()) { + throw new IllegalStateException( + String.format("No severity reported by %s", this.rule) + ); + } defects.add( new Defect.Default( this.rule, - Severity.parsed(defect.xpath("@severity").get(0)), - Integer.parseInt(defect.xpath("@line").get(0)), + Severity.parsed(severity.get(0)), + Integer.parseInt(line.get(0)), defect.xpath("text()").get(0) ) );