aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-08-29 11:37:27 +0100
committerMichael Williamson <mike@zwobble.org>2016-08-29 11:37:27 +0100
commit955a29e828d40123ec64a479b1c4c5164db3c681 (patch)
treea83a65b91bd02c753789f5b57fd68bfbc446c5aa /src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
parent28c8b89afea499191b13849140354b21819937f4 (diff)
Wire up comment conversion code
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
index b53c9dd..0452c63 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
@@ -1,5 +1,6 @@
package org.zwobble.mammoth.internal.docx;
+import org.zwobble.mammoth.internal.documents.Comment;
import org.zwobble.mammoth.internal.documents.Document;
import org.zwobble.mammoth.internal.documents.Notes;
import org.zwobble.mammoth.internal.results.InternalResult;
@@ -9,6 +10,7 @@ import org.zwobble.mammoth.internal.xml.XmlElement;
import java.io.IOException;
import java.nio.file.Path;
+import java.util.List;
import java.util.Optional;
import static org.zwobble.mammoth.internal.util.Lists.list;
@@ -28,13 +30,21 @@ public class DocumentReader {
Relationships relationships = readRelationships(zipFile, name);
return new BodyXmlReader(styles, numbering, relationships, contentTypes, zipFile, fileReader);
};
- return readNotes(zipFile, bodyReaders)
- .flatMap(notes -> {
- DocumentXmlReader reader = new DocumentXmlReader(bodyReaders.forName("document"), notes);
+ return InternalResult.flatMap(
+ readNotes(zipFile, bodyReaders),
+ readComments(zipFile, bodyReaders),
+ (notes, comments) -> {
+ DocumentXmlReader reader = new DocumentXmlReader(bodyReaders.forName("document"), notes, comments);
return reader.readElement(parseOfficeXml(zipFile, "word/document.xml"));
});
}
+ private static InternalResult<List<Comment>> readComments(DocxFile file, BodyReaders bodyReaders) {
+ return tryParseOfficeXml(file, "word/comments.xml")
+ .map(new CommentXmlReader(bodyReaders.forName("comments"))::readElement)
+ .orElse(InternalResult.success(list()));
+ }
+
private static InternalResult<Notes> readNotes(DocxFile file, BodyReaders bodyReaders) {
return InternalResult.map(
tryParseOfficeXml(file, "word/footnotes.xml")