aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java
diff options
context:
space:
mode:
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
+ ));
+ }
+}