From 53e29ad8211584759938fe4f26fb4280451c2972 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 17 Jun 2016 21:39:58 +0100 Subject: Extract function to check table rows --- .../mammoth/internal/docx/BodyXmlReader.java | 31 +++++++++++++--------- 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java index 95467b0..b4929fa 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java @@ -240,20 +240,11 @@ public class BodyXmlReader { } private ReadResult calculateRowspans(List rows) { - for (DocumentElement rowElement : rows) { - Optional row = Casts.tryCast(TableRow.class, rowElement); - if (!row.isPresent()) { - return ReadResult.withWarning(rows, "unexpected non-row element in table, cell merging may be incorrect"); - } else { - for (DocumentElement cell : row.get().getChildren()) { - if (!(cell instanceof UnmergedTableCell)) { - return ReadResult.withWarning(rows, "unexpected non-cell element in table row, cell merging may be incorrect"); - } - } - } + Optional error = checkTableRows(rows); + if (error.isPresent()) { + return ReadResult.withWarning(rows, error.get()); } - Map, Integer> rowspans = new HashMap<>(); Set> merged = new HashSet<>(); @@ -298,6 +289,22 @@ public class BodyXmlReader { return success(mergedRows); } + private Optional checkTableRows(List rows) { + for (DocumentElement rowElement : rows) { + Optional row = Casts.tryCast(TableRow.class, rowElement); + if (!row.isPresent()) { + return Optional.of("unexpected non-row element in table, cell merging may be incorrect"); + } else { + for (DocumentElement cell : row.get().getChildren()) { + if (!(cell instanceof UnmergedTableCell)) { + return Optional.of("unexpected non-cell element in table row, cell merging may be incorrect"); + } + } + } + } + return Optional.empty(); + } + private ReadResult readTableCell(XmlElement element) { XmlElementLike properties = element.findChildOrEmpty("w:tcPr"); Optional gridSpan = properties -- cgit v1.2.3