From 955a29e828d40123ec64a479b1c4c5164db3c681 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 29 Aug 2016 11:37:27 +0100 Subject: Wire up comment conversion code --- .../zwobble/mammoth/internal/docx/DocumentReader.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java') 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> 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 readNotes(DocxFile file, BodyReaders bodyReaders) { return InternalResult.map( tryParseOfficeXml(file, "word/footnotes.xml") -- cgit v1.2.3