diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-08-28 21:41:20 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-08-28 21:41:20 +0100 |
| commit | 6e7b019fe842788247d0ff97950122c4ce456c86 (patch) | |
| tree | a407c0219f6f075696c6fdb1b5f55b80fece8c77 /src/main | |
| parent | e43c0559a4e9088f240d4b70f84bf9f4440fe166 (diff) | |
Add reader for comments.xml
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/documents/Comment.java | 21 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java | 32 |
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 + )); + } +} |
