aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-08-28 21:41:20 +0100
committerMichael Williamson <mike@zwobble.org>2016-08-28 21:41:20 +0100
commit6e7b019fe842788247d0ff97950122c4ce456c86 (patch)
treea407c0219f6f075696c6fdb1b5f55b80fece8c77 /src/main/java/org/zwobble
parente43c0559a4e9088f240d4b70f84bf9f4440fe166 (diff)
Add reader for comments.xml
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/Comment.java21
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java32
2 files changed, 53 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/Comment.java b/src/main/java/org/zwobble/mammoth/internal/documents/Comment.java
new file mode 100644
index 0000000..f3c76ea
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/internal/documents/Comment.java
@@ -0,0 +1,21 @@
+package org.zwobble.mammoth.internal.documents;
+
+import java.util.List;
+
+public class Comment {
+ private final String commentId;
+ private final List<DocumentElement> body;
+
+ public Comment(String commentId, List<DocumentElement> body) {
+ this.commentId = commentId;
+ this.body = body;
+ }
+
+ public String getCommentId() {
+ return commentId;
+ }
+
+ public List<DocumentElement> getBody() {
+ return body;
+ }
+}
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java
new file mode 100644
index 0000000..4cacf08
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java
@@ -0,0 +1,32 @@
+package org.zwobble.mammoth.internal.docx;
+
+import org.zwobble.mammoth.internal.documents.Comment;
+import org.zwobble.mammoth.internal.results.InternalResult;
+import org.zwobble.mammoth.internal.xml.XmlElement;
+
+import java.util.List;
+
+public class CommentXmlReader {
+ private final BodyXmlReader bodyReader;
+
+ public CommentXmlReader(BodyXmlReader bodyReader) {
+ this.bodyReader = bodyReader;
+ }
+
+ public InternalResult<List<Comment>> readElement(XmlElement element) {
+ return InternalResult.flatMap(
+ element.findChildren("w:comment"),
+ this::readCommentElement
+ );
+ }
+
+ private InternalResult<Comment> readCommentElement(XmlElement element) {
+ String commentId = element.getAttribute("w:id");
+ return bodyReader.readElements(element.getChildren())
+ .toResult()
+ .map(children -> new Comment(
+ commentId,
+ children
+ ));
+ }
+}