From ce9fb45ae37e1a251b7795a38b7cb67f77cd82e9 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 13 Feb 2016 19:20:23 +0000 Subject: Read tabs --- src/main/java/org/zwobble/mammoth/Mammoth.java | 5 +++++ .../zwobble/mammoth/documents/DocumentElementVisitor.java | 2 ++ src/main/java/org/zwobble/mammoth/documents/Tab.java | 13 +++++++++++++ src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java | 3 +++ .../java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java | 9 +++++++++ 5 files changed, 32 insertions(+) create mode 100644 src/main/java/org/zwobble/mammoth/documents/Tab.java (limited to 'src') 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 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 accept(DocumentElementVisitor 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 reader, XmlElement element) { Result result = read(reader, element); assertThat(result.getWarnings(), deepEquals(list())); -- cgit v1.2.3