From acb0120ac4acfe5807371ceeb6bdaafbef155122 Mon Sep 17 00:00:00 2001 From: Ulli Hafner Date: Tue, 14 Nov 2023 15:19:02 +0100 Subject: [PATCH] Simplify method. --- .../coverage/parser/CoberturaParser.java | 57 +++++++++++-------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/src/main/java/edu/hm/hafner/coverage/parser/CoberturaParser.java b/src/main/java/edu/hm/hafner/coverage/parser/CoberturaParser.java index 6eb3beeb..f63a5536 100644 --- a/src/main/java/edu/hm/hafner/coverage/parser/CoberturaParser.java +++ b/src/main/java/edu/hm/hafner/coverage/parser/CoberturaParser.java @@ -86,36 +86,45 @@ protected ModuleNode parseReport(final Reader reader, final FilteredLog log) { try { var eventReader = new SecureXmlParserFactory().createXmlEventReader(reader); - var root = new ModuleNode("-"); - boolean isEmpty = true; + var root = new ModuleNode("-"); // Cobertura has no support for module names + handleEmptyResult(log, readModule(log, eventReader, root)); + return root; + } + catch (XMLStreamException exception) { + throw new ParsingException(exception); + } + } - while (eventReader.hasNext()) { - XMLEvent event = eventReader.nextEvent(); + private boolean readModule(final FilteredLog log, final XMLEventReader eventReader, final ModuleNode root) + throws XMLStreamException { + boolean isEmpty = true; - if (event.isStartElement()) { - var startElement = event.asStartElement(); - var tagName = startElement.getName(); - if (SOURCE.equals(tagName)) { - readSource(eventReader, root); - } - else if (PACKAGE.equals(tagName)) { - readPackage(eventReader, root, readName(startElement), log); - isEmpty = false; - } - } - } - if (isEmpty) { - if (ignoreErrors()) { - log.logError("No coverage information found in the specified file."); + while (eventReader.hasNext()) { + XMLEvent event = eventReader.nextEvent(); + + if (event.isStartElement()) { + var startElement = event.asStartElement(); + var tagName = startElement.getName(); + if (SOURCE.equals(tagName)) { + readSource(eventReader, root); } - else { - throw new NoSuchElementException("No coverage information found in the specified file."); + else if (PACKAGE.equals(tagName)) { + readPackage(eventReader, root, readName(startElement), log); + isEmpty = false; } } - return root; } - catch (XMLStreamException exception) { - throw new ParsingException(exception); + return isEmpty; + } + + private void handleEmptyResult(final FilteredLog log, final boolean isEmpty) { + if (isEmpty) { + if (ignoreErrors()) { + log.logError("No coverage information found in the specified file."); + } + else { + throw new NoSuchElementException("No coverage information found in the specified file."); + } } }