diff options
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.java | 32 |
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 + )); + } +} |
