aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/zwobble/mammoth/Mammoth.java5
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java2
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/Tab.java13
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java3
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java9
5 files changed, 32 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/Mammoth.java b/src/main/java/org/zwobble/mammoth/Mammoth.java
index 7780b77..cae4e31 100644
--- a/src/main/java/org/zwobble/mammoth/Mammoth.java
+++ b/src/main/java/org/zwobble/mammoth/Mammoth.java
@@ -60,6 +60,11 @@ public class Mammoth {
public String visit(Text text) {
return text.getValue();
}
+
+ @Override
+ public String visit(Tab tab) {
+ 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 5554f65..5a93837 100644
--- a/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java
+++ b/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java
@@ -4,4 +4,6 @@ public interface DocumentElementVisitor<T> {
T visit(Paragraph paragraph);
T visit(Run run);
T visit(Text text);
+
+ T visit(Tab tab);
}
diff --git a/src/main/java/org/zwobble/mammoth/documents/Tab.java b/src/main/java/org/zwobble/mammoth/documents/Tab.java
new file mode 100644
index 0000000..693f5f6
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/documents/Tab.java
@@ -0,0 +1,13 @@
+package org.zwobble.mammoth.documents;
+
+public class Tab implements DocumentElement {
+ public static final Tab TAB = new Tab();
+
+ private Tab() {
+ }
+
+ @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 7885c3f..9bdf26d 100644
--- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
@@ -35,6 +35,9 @@ public class BodyXmlReader {
case "w:p":
return readParagraph(element);
+ case "w:tab":
+ return success(Tab.TAB);
+
case "w:pPr":
return EMPTY_SUCCESS;
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
index 941ade8..af92e84 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
@@ -253,6 +253,15 @@ public class BodyXmlTests {
// TODO: vertical alignment
+ @Test
+ public void canReadTabElement() {
+ XmlElement element = element("w:tab");
+
+ assertThat(
+ readSuccess(a(bodyReader), element),
+ equalTo(Tab.TAB));
+ }
+
private static DocumentElement readSuccess(Maker<BodyXmlReader> reader, XmlElement element) {
Result<DocumentElement> result = read(reader, element);
assertThat(result.getWarnings(), deepEquals(list()));