From 3d65267560779e75077332ed6adc3b415bb792a3 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 13 Feb 2016 21:04:19 +0000 Subject: Read line breaks --- src/main/java/org/zwobble/mammoth/Mammoth.java | 5 +++++ .../zwobble/mammoth/documents/DocumentElementVisitor.java | 2 ++ src/main/java/org/zwobble/mammoth/documents/LineBreak.java | 13 +++++++++++++ src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java | 2 ++ .../java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java | 9 +++++++++ 5 files changed, 31 insertions(+) create mode 100644 src/main/java/org/zwobble/mammoth/documents/LineBreak.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 9991266..a1bf0d0 100644 --- a/src/main/java/org/zwobble/mammoth/Mammoth.java +++ b/src/main/java/org/zwobble/mammoth/Mammoth.java @@ -70,6 +70,11 @@ public class Mammoth { throw new UnsupportedOperationException(); } + @Override + public String visit(LineBreak lineBreak) { + throw new UnsupportedOperationException(); + } + @Override public String visit(Table table) { 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 84fccc2..b4cd390 100644 --- a/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java +++ b/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java @@ -6,6 +6,7 @@ public interface DocumentElementVisitor { T visit(Text text); T visit(Tab tab); + T visit(LineBreak lineBreak); T visit(Table table); T visit(TableRow tableRow); @@ -13,4 +14,5 @@ public interface DocumentElementVisitor { T visit(Hyperlink hyperlink); T visit(Bookmark bookmark); + } diff --git a/src/main/java/org/zwobble/mammoth/documents/LineBreak.java b/src/main/java/org/zwobble/mammoth/documents/LineBreak.java new file mode 100644 index 0000000..23253df --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/documents/LineBreak.java @@ -0,0 +1,13 @@ +package org.zwobble.mammoth.documents; + +public class LineBreak implements DocumentElement { + public static final LineBreak LINE_BREAK = new LineBreak(); + + private LineBreak() { + } + + @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 fd32aae..e73f9d8 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java @@ -39,6 +39,8 @@ public class BodyXmlReader { case "w:tab": return success(Tab.TAB); + case "w:br": + return success(LineBreak.LINE_BREAK); case "w:tbl": return readElements(element.children()).map(Table::new); 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 6677467..a98432b 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -260,6 +260,15 @@ public class BodyXmlTests { equalTo(Tab.TAB)); } + @Test + public void brIsReadAsLineBreak() { + XmlElement element = element("w:br"); + + assertThat( + readSuccess(a(bodyReader), element), + equalTo(LineBreak.LINE_BREAK)); + } + @Test public void canReadTableElements() { XmlElement element = element("w:tbl", list( -- cgit v1.2.3