From 70edd90a3077fc63a5890c4d7d55561ba0274902 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 2 Jan 2016 14:19:08 +0000 Subject: Read children of w:p --- .../zwobble/mammoth/documents/ParagraphElement.java | 15 +++++++++++++++ src/main/java/org/zwobble/mammoth/docx/BodyXml.java | 3 +++ .../org/zwobble/mammoth/tests/docx/BodyXmlTests.java | 19 +++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 src/main/java/org/zwobble/mammoth/documents/ParagraphElement.java (limited to 'src') diff --git a/src/main/java/org/zwobble/mammoth/documents/ParagraphElement.java b/src/main/java/org/zwobble/mammoth/documents/ParagraphElement.java new file mode 100644 index 0000000..3a8e447 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/documents/ParagraphElement.java @@ -0,0 +1,15 @@ +package org.zwobble.mammoth.documents; + +import java.util.List; + +public class ParagraphElement implements DocumentElement { + private final List children; + + public ParagraphElement(List children) { + this.children = children; + } + + public List getChildren() { + return children; + } +} diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXml.java b/src/main/java/org/zwobble/mammoth/docx/BodyXml.java index a8b7246..94faf83 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXml.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXml.java @@ -2,6 +2,7 @@ package org.zwobble.mammoth.docx; import com.google.common.collect.ImmutableList; import org.zwobble.mammoth.documents.DocumentElement; +import org.zwobble.mammoth.documents.ParagraphElement; import org.zwobble.mammoth.documents.RunElement; import org.zwobble.mammoth.documents.TextElement; import org.zwobble.mammoth.xml.XmlElement; @@ -19,6 +20,8 @@ public class BodyXml { return new TextElement(element.innerText()); case "w:r": return new RunElement(readElements(element.children())); + case "w:p": + return new ParagraphElement(readElements(element.children())); default: throw new UnsupportedOperationException(); } 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 8b04b51..8ab2dd8 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -4,6 +4,7 @@ import com.google.common.collect.ImmutableList; import org.hamcrest.Matcher; import org.junit.Test; import org.zwobble.mammoth.documents.DocumentElement; +import org.zwobble.mammoth.documents.ParagraphElement; import org.zwobble.mammoth.documents.RunElement; import org.zwobble.mammoth.documents.TextElement; import org.zwobble.mammoth.xml.XmlElement; @@ -32,6 +33,18 @@ public class BodyXmlTests { isRunElement(isTextElement("Hello!"))); } + @Test + public void canReadTextWithinParagraph() { + XmlElement element = paragraphXml(ImmutableList.of(runXml(ImmutableList.of(textXml("Hello!"))))); + assertThat( + readBodyXmlElement(element), + isParagraphElement(isRunElement(isTextElement("Hello!")))); + } + + private XmlElement paragraphXml(List children) { + return element("w:p", children); + } + private XmlElement runXml(List children) { return element("w:r", children); } @@ -40,6 +53,12 @@ public class BodyXmlTests { return element("w:t", ImmutableList.of(text(value))); } + private Matcher isParagraphElement(Matcher child) { + return allOf( + instanceOf(ParagraphElement.class), + hasProperty("children", contains(child))); + } + private Matcher isRunElement(Matcher child) { return allOf( instanceOf(RunElement.class), -- cgit v1.2.3