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/DocumentElement.java4
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/TextElement.java13
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/BodyXml.java16
-rw-r--r--src/main/java/org/zwobble/mammoth/xml/XmlElement.java9
-rw-r--r--src/main/java/org/zwobble/mammoth/xml/XmlNode.java1
-rw-r--r--src/main/java/org/zwobble/mammoth/xml/XmlNodes.java4
-rw-r--r--src/main/java/org/zwobble/mammoth/xml/XmlTextNode.java7
7 files changed, 51 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/mammoth/documents/DocumentElement.java b/src/main/java/org/zwobble/mammoth/documents/DocumentElement.java
new file mode 100644
index 0000000..d7b20d3
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/documents/DocumentElement.java
@@ -0,0 +1,4 @@
+package org.zwobble.mammoth.documents;
+
+public interface DocumentElement {
+}
diff --git a/src/main/java/org/zwobble/mammoth/documents/TextElement.java b/src/main/java/org/zwobble/mammoth/documents/TextElement.java
new file mode 100644
index 0000000..e2e7383
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/documents/TextElement.java
@@ -0,0 +1,13 @@
+package org.zwobble.mammoth.documents;
+
+public class TextElement implements DocumentElement {
+ private final String value;
+
+ public TextElement(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+}
diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXml.java b/src/main/java/org/zwobble/mammoth/docx/BodyXml.java
new file mode 100644
index 0000000..7b3e74e
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/docx/BodyXml.java
@@ -0,0 +1,16 @@
+package org.zwobble.mammoth.docx;
+
+import org.zwobble.mammoth.documents.DocumentElement;
+import org.zwobble.mammoth.documents.TextElement;
+import org.zwobble.mammoth.xml.XmlElement;
+
+public class BodyXml {
+ public static DocumentElement readBodyXmlElement(XmlElement element) {
+ switch (element.getName()) {
+ case "w:t":
+ return new TextElement(element.innerText());
+ default:
+ throw new UnsupportedOperationException();
+ }
+ }
+}
diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlElement.java b/src/main/java/org/zwobble/mammoth/xml/XmlElement.java
index 8c3a011..f592415 100644
--- a/src/main/java/org/zwobble/mammoth/xml/XmlElement.java
+++ b/src/main/java/org/zwobble/mammoth/xml/XmlElement.java
@@ -1,5 +1,6 @@
package org.zwobble.mammoth.xml;
+import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -7,8 +8,7 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
-import static com.google.common.collect.Iterables.filter;
-import static com.google.common.collect.Iterables.getFirst;
+import static com.google.common.collect.Iterables.*;
public class XmlElement implements XmlNode, XmlElementLike {
public XmlElement(String name) {
@@ -52,6 +52,11 @@ public class XmlElement implements XmlNode, XmlElementLike {
}
@Override
+ public String innerText() {
+ return Joiner.on("").join(transform(children, XmlNode::innerText));
+ }
+
+ @Override
public <T> T accept(XmlNodeVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlNode.java b/src/main/java/org/zwobble/mammoth/xml/XmlNode.java
index 37ce2cf..be8e48b 100644
--- a/src/main/java/org/zwobble/mammoth/xml/XmlNode.java
+++ b/src/main/java/org/zwobble/mammoth/xml/XmlNode.java
@@ -1,5 +1,6 @@
package org.zwobble.mammoth.xml;
public interface XmlNode {
+ String innerText();
<T> T accept(XmlNodeVisitor<T> visitor);
}
diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlNodes.java b/src/main/java/org/zwobble/mammoth/xml/XmlNodes.java
index ce36615..d168fa6 100644
--- a/src/main/java/org/zwobble/mammoth/xml/XmlNodes.java
+++ b/src/main/java/org/zwobble/mammoth/xml/XmlNodes.java
@@ -22,4 +22,8 @@ public class XmlNodes {
public static XmlElement element(String name, Map<String, String> attributes, List<XmlNode> children) {
return new XmlElement(name, attributes, children);
}
+
+ public static XmlTextNode text(String value) {
+ return new XmlTextNode(value);
+ }
}
diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlTextNode.java b/src/main/java/org/zwobble/mammoth/xml/XmlTextNode.java
index 9b349e3..453863d 100644
--- a/src/main/java/org/zwobble/mammoth/xml/XmlTextNode.java
+++ b/src/main/java/org/zwobble/mammoth/xml/XmlTextNode.java
@@ -10,7 +10,12 @@ public class XmlTextNode implements XmlNode {
public String getValue() {
return value;
}
-
+
+ @Override
+ public String innerText() {
+ return value;
+ }
+
@Override
public <T> T accept(XmlNodeVisitor<T> visitor) {
return visitor.visit(this);