aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java
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/mammoth/internal/docx/CommentXmlReader.java
parente43c0559a4e9088f240d4b70f84bf9f4440fe166 (diff)
Add reader for comments.xml
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java32
1 files changed, 32 insertions, 0 deletions
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
+ ));
+ }
+}