diff options
| author | Michael Williamson <mike@zwobble.org> | 2017-05-20 15:37:34 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2017-05-20 15:37:34 +0100 |
| commit | 370df4d36053736446e9334008d012ebda5f86bb (patch) | |
| tree | cfad042b40bfb45ee885de2ea651aafb8552e633 /src/main/java/org/zwobble/mammoth | |
| parent | 62cdf68ff42c1887aac3c639226f878335a39a79 (diff) | |
Read whether row is header
Diffstat (limited to 'src/main/java/org/zwobble/mammoth')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/documents/TableRow.java | 8 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java | 12 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/TableRow.java b/src/main/java/org/zwobble/mammoth/internal/documents/TableRow.java index 9450c88..f00ec58 100644 --- a/src/main/java/org/zwobble/mammoth/internal/documents/TableRow.java +++ b/src/main/java/org/zwobble/mammoth/internal/documents/TableRow.java @@ -4,9 +4,11 @@ import java.util.List; public class TableRow implements DocumentElement, HasChildren { private final List<DocumentElement> children; + private final boolean isHeader; - public TableRow(List<DocumentElement> children) { + public TableRow(List<DocumentElement> children, boolean isHeader) { this.children = children; + this.isHeader = isHeader; } @Override @@ -18,4 +20,8 @@ public class TableRow implements DocumentElement, HasChildren { public <T> T accept(DocumentElementVisitor<T> visitor) { return visitor.visit(this); } + + public boolean isHeader() { + return isHeader; + } } diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java index f726a29..76ea8ea 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java @@ -95,7 +95,7 @@ class StatefulBodyXmlReader { case "w:tbl": return readTable(element); case "w:tr": - return readElements(element.getChildren()).map(TableRow::new); + return readTableRow(element); case "w:tc": return readTableCell(element); @@ -150,6 +150,7 @@ class StatefulBodyXmlReader { case "w:rPr": case "w:tblPr": case "w:tblGrid": + case "w:trPr": case "w:tcPr": return EMPTY_SUCCESS; @@ -378,7 +379,7 @@ class StatefulBodyXmlReader { } } - return new TableRow(mergedCells); + return new TableRow(mergedCells, row.isHeader()); })); } @@ -398,6 +399,13 @@ class StatefulBodyXmlReader { return Optional.empty(); } + private ReadResult readTableRow(XmlElement element) { + XmlElementLike properties = element.findChildOrEmpty("w:trPr"); + boolean isHeader = properties.hasChild("w:tblHeader"); + return readElements(element.getChildren()) + .map(children -> new TableRow(children, isHeader)); + } + private ReadResult readTableCell(XmlElement element) { XmlElementLike properties = element.findChildOrEmpty("w:tcPr"); Optional<String> gridSpan = properties |
