aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-13 19:29:09 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-13 19:29:09 +0000
commita18ba8f9079bec9ab3262e1669d3b60b5354d69e (patch)
tree7a46512cb82bf1476379c2a9f1810b82b76c62e3 /src/main
parentce9fb45ae37e1a251b7795a38b7cb67f77cd82e9 (diff)
Read tables
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/mammoth/Mammoth.java15
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java4
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/Table.java21
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/TableCell.java21
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/TableRow.java21
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java7
6 files changed, 89 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/Mammoth.java b/src/main/java/org/zwobble/mammoth/Mammoth.java
index cae4e31..4e69a6b 100644
--- a/src/main/java/org/zwobble/mammoth/Mammoth.java
+++ b/src/main/java/org/zwobble/mammoth/Mammoth.java
@@ -65,6 +65,21 @@ public class Mammoth {
public String visit(Tab tab) {
throw new UnsupportedOperationException();
}
+
+ @Override
+ public String visit(Table table) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String visit(TableRow tableRow) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String visit(TableCell tableCell) {
+ throw new UnsupportedOperationException();
+ }
});
}
}
diff --git a/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java b/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java
index 5a93837..0781960 100644
--- a/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java
+++ b/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java
@@ -6,4 +6,8 @@ public interface DocumentElementVisitor<T> {
T visit(Text text);
T visit(Tab tab);
+
+ T visit(Table table);
+ T visit(TableRow tableRow);
+ T visit(TableCell tableCell);
}
diff --git a/src/main/java/org/zwobble/mammoth/documents/Table.java b/src/main/java/org/zwobble/mammoth/documents/Table.java
new file mode 100644
index 0000000..ceac458
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/documents/Table.java
@@ -0,0 +1,21 @@
+package org.zwobble.mammoth.documents;
+
+import java.util.List;
+
+public class Table implements DocumentElement, HasChildren {
+ private final List<DocumentElement> children;
+
+ public Table(List<DocumentElement> children) {
+ this.children = children;
+ }
+
+ @Override
+ public List<DocumentElement> getChildren() {
+ return children;
+ }
+
+ @Override
+ public <T> T accept(DocumentElementVisitor<T> visitor) {
+ return visitor.visit(this);
+ }
+}
diff --git a/src/main/java/org/zwobble/mammoth/documents/TableCell.java b/src/main/java/org/zwobble/mammoth/documents/TableCell.java
new file mode 100644
index 0000000..a7a4f59
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/documents/TableCell.java
@@ -0,0 +1,21 @@
+package org.zwobble.mammoth.documents;
+
+import java.util.List;
+
+public class TableCell implements DocumentElement, HasChildren {
+ private final List<DocumentElement> children;
+
+ public TableCell(List<DocumentElement> children) {
+ this.children = children;
+ }
+
+ @Override
+ public List<DocumentElement> getChildren() {
+ return children;
+ }
+
+ @Override
+ public <T> T accept(DocumentElementVisitor<T> visitor) {
+ return visitor.visit(this);
+ }
+}
diff --git a/src/main/java/org/zwobble/mammoth/documents/TableRow.java b/src/main/java/org/zwobble/mammoth/documents/TableRow.java
new file mode 100644
index 0000000..b5ab320
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/documents/TableRow.java
@@ -0,0 +1,21 @@
+package org.zwobble.mammoth.documents;
+
+import java.util.List;
+
+public class TableRow implements DocumentElement, HasChildren {
+ private final List<DocumentElement> children;
+
+ public TableRow(List<DocumentElement> children) {
+ this.children = children;
+ }
+
+ @Override
+ public List<DocumentElement> getChildren() {
+ return children;
+ }
+
+ @Override
+ public <T> T accept(DocumentElementVisitor<T> visitor) {
+ return visitor.visit(this);
+ }
+}
diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
index 9bdf26d..78baf51 100644
--- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
@@ -38,6 +38,13 @@ public class BodyXmlReader {
case "w:tab":
return success(Tab.TAB);
+ case "w:tbl":
+ return readElements(element.children()).map(Table::new);
+ case "w:tr":
+ return readElements(element.children()).map(TableRow::new);
+ case "w:tc":
+ return readElements(element.children()).map(TableCell::new);
+
case "w:pPr":
return EMPTY_SUCCESS;