aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/RunElement.java15
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/BodyXml.java17
2 files changed, 32 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/documents/RunElement.java b/src/main/java/org/zwobble/mammoth/documents/RunElement.java
new file mode 100644
index 0000000..3f80872
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/documents/RunElement.java
@@ -0,0 +1,15 @@
+package org.zwobble.mammoth.documents;
+
+import java.util.List;
+
+public class RunElement implements DocumentElement {
+ private final List<DocumentElement> children;
+
+ public RunElement(List<DocumentElement> children) {
+ this.children = children;
+ }
+
+ public List<DocumentElement> 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 7b3e74e..a8b7246 100644
--- a/src/main/java/org/zwobble/mammoth/docx/BodyXml.java
+++ b/src/main/java/org/zwobble/mammoth/docx/BodyXml.java
@@ -1,16 +1,33 @@
package org.zwobble.mammoth.docx;
+import com.google.common.collect.ImmutableList;
import org.zwobble.mammoth.documents.DocumentElement;
+import org.zwobble.mammoth.documents.RunElement;
import org.zwobble.mammoth.documents.TextElement;
import org.zwobble.mammoth.xml.XmlElement;
+import org.zwobble.mammoth.xml.XmlNode;
+
+import java.util.List;
+
+import static com.google.common.collect.Iterables.filter;
+import static com.google.common.collect.Iterables.transform;
public class BodyXml {
public static DocumentElement readBodyXmlElement(XmlElement element) {
switch (element.getName()) {
case "w:t":
return new TextElement(element.innerText());
+ case "w:r":
+ return new RunElement(readElements(element.children()));
default:
throw new UnsupportedOperationException();
}
}
+
+ private static List<DocumentElement> readElements(Iterable<XmlNode> nodes) {
+ return ImmutableList.copyOf(
+ transform(
+ filter(nodes, XmlElement.class),
+ BodyXml::readBodyXmlElement));
+ }
}